var dart_library;(function(dart_library){'use strict';class LibraryLoader{constructor(name,defaultValue,imports,lazyImports,loader){this._name=name;this._library=defaultValue?defaultValue:{};this._imports=imports;this._lazyImports=lazyImports;this._loader=loader;this._state=LibraryLoader.NOT_LOADED}loadImports(pendingSet){return this.handleImports(this._imports,(lib)=>lib.load(pendingSet))}deferLazyImports(pendingSet){return this.handleImports(this._lazyImports,(lib)=>{pendingSet.add(lib._name);return lib.stub()})}loadLazyImports(pendingSet){return this.handleImports(pendingSet,(lib)=>lib.load())}handleImports(list,handler){let results=[];for(let name of list){let lib=libraries[name];if(!lib){dart_utils.throwError('Library not available: '+name)}results.push(handler(lib))}return results}load(inheritedPendingSet){if(this._state==LibraryLoader.LOADING){dart_utils.throwError('Circular dependence on library: '+this._name)}else if(this._state>=LibraryLoader.LOADED){return this._library}this._state=LibraryLoader.LOADING;let pendingSet=inheritedPendingSet?inheritedPendingSet:new Set();let args=this.loadImports(pendingSet);args=args.concat(this.deferLazyImports(pendingSet));args.unshift(this._library);this._loader.apply(null,args);this._state=LibraryLoader.LOADED;if(inheritedPendingSet===void 0){this.loadLazyImports(pendingSet)}this._state=LibraryLoader.READY;return this._library}stub(){return this._library}};LibraryLoader.NOT_LOADED=0;LibraryLoader.LOADING=1;LibraryLoader.LOADED=2;LibraryLoader.READY=3;let libraries=new Map();function library(name,defaultValue,imports,lazyImports,loader){return libraries[name]=new LibraryLoader(name,defaultValue,imports,lazyImports,loader)}dart_library.library=library;function import_(libraryName){bootstrap();let loader=libraries[libraryName];return loader.load()}dart_library.import=import_;function start(libraryName){let library=import_(libraryName);let _isolate_helper=import_('dart/_isolate_helper');_isolate_helper.startRootIsolate(library.main,[])}dart_library.start=start;let _bootstrapped=false;function bootstrap(){if(_bootstrapped)return;_bootstrapped=true;var core=import_('dart/core');core.Object.toString=function(){return this.name};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]}}})(dart_library||(dart_library={}));dart_library.library('dart_runtime/dart',null,['dart_runtime/_classes','dart_runtime/_errors','dart_runtime/_operations','dart_runtime/_rtti','dart_runtime/_types',],['dart/_js_helper'],function(exports,classes,errors,operations,rtti,types,_js_helper){'use strict';function _export(value){if(value)return value;console.log("Re-exporting null field: "+name);throw "Bad export"}function exportFrom(value,names){for(let name of names){exports[name]=_export(value[name])}}exports.global=window||global;exports.JsSymbol=_export(Symbol);exports.globalState=null;_js_helper.checkNum=operations.notNull;exportFrom(classes,['bind','classGetConstructorType','dartx','defineNamedConstructor','defineExtensionNames','defineExtensionMembers','generic','implements','list','metadata','mixin','registerExtension','setBaseClass','setSignature','virtualField',]);exportFrom(dart_utils,['copyProperties','instantiate']);exports.defineLazyClass=_export(dart_utils.defineLazy);exports.defineLazyProperties=_export(dart_utils.defineLazy);exports.defineLazyClassGeneric=_export(dart_utils.defineLazyProperty);exportFrom(operations,['JsIterator','arity','assert','const','dcall','dindex','dload','dput','dsend','dsetindex','equals','hashCode','map','noSuchMethod','notNull','stackPrint','stackTrace','throw','toString',]);exports.as=_export(operations.cast);exports.is=_export(operations.instanceOf);exportFrom(types,['bottom','definiteFunctionType','dynamic','functionType','typedef','typeName','void',]);exportFrom(rtti,['fn','realRuntimeType','runtimeType',])});var dart_utils;(function(dart_utils){'use strict';const defineProperty=Object.defineProperty;const getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;const getOwnPropertyNames=Object.getOwnPropertyNames;const getOwnPropertySymbols=Object.getOwnPropertySymbols;const hasOwnProperty=Object.prototype.hasOwnProperty;const slice=[].slice;function throwError(message){throw Error(message)}dart_utils.throwError=throwError;function assert(condition){if(!condition)throwError("The compiler is broken: failed assert");}dart_utils.assert=assert;function getOwnNamesAndSymbols(obj){return getOwnPropertyNames(obj).concat(getOwnPropertySymbols(obj))}dart_utils.getOwnNamesAndSymbols=getOwnNamesAndSymbols;function safeGetOwnProperty(obj,name){let desc=getOwnPropertyDescriptor(obj,name);if(desc)return desc.value;}dart_utils.safeGetOwnProperty=safeGetOwnProperty;function defineLazyProperty(to,name,desc){let init=desc.get;let writable= ! !desc.set;function lazySetter(value){defineProperty(to,name,{value:value,writable:writable})}function lazyGetter(){let f=init;if(f===null){throwError('circular initialization for field '+name)}init=null;let value=f();lazySetter(value);return value}desc.get=lazyGetter;desc.configurable=true;if(writable)desc.set=lazySetter;defineProperty(to,name,desc)}dart_utils.defineLazyProperty=defineLazyProperty;function defineLazy(to,from){for(let name of getOwnNamesAndSymbols(from)){defineLazyProperty(to,name,getOwnPropertyDescriptor(from,name))}}dart_utils.defineLazy=defineLazy;function defineMemoizedGetter(obj,name,get){let cache=null;function getter(){if(cache!=null)return cache;cache=get();get=null;return cache}defineProperty(obj,name,{configurable:true,get:getter})}dart_utils.defineMemoizedGetter=defineMemoizedGetter;function copyTheseProperties(to,from,names){for(let name of names){defineProperty(to,name,getOwnPropertyDescriptor(from,name))}return to}dart_utils.copyTheseProperties=copyTheseProperties;function copyProperties(to,from){return copyTheseProperties(to,from,getOwnNamesAndSymbols(from))}dart_utils.copyProperties=copyProperties;function instantiate(type,args){return new type(...args)}dart_utils.instantiate=instantiate})(dart_utils||(dart_utils={}));dart_library.library('dart_runtime/_classes',null,[],['dart/core','dart/_interceptors','dart_runtime/_types','dart_runtime/_rtti',],function(exports,core,_interceptors,types,rtti){'use strict';const assert=dart_utils.assert;const copyProperties=dart_utils.copyProperties;const copyTheseProperties=dart_utils.copyTheseProperties;const defineMemoizedGetter=dart_utils.defineMemoizedGetter;const safeGetOwnProperty=dart_utils.safeGetOwnProperty;const throwError=dart_utils.throwError;const defineProperty=Object.defineProperty;const getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;const getOwnPropertySymbols=Object.getOwnPropertySymbols;const slice=[].slice;const _mixins=Symbol('mixins');const _implements=Symbol('implements');exports.implements=_implements;const _metadata=Symbol('metadata');exports.metadata=_metadata;function mixin(base ){let mixins=slice.call(arguments,1);class Mixin extends base{[base.name](){for(let i=mixins.length-1;i>=0;i--){let mixin=mixins[i];let init=mixin.prototype[mixin.name];if(init)init.call(this);}let init=base.prototype[base.name];if(init)init.apply(this,arguments);}};for(let m of mixins){copyProperties(Mixin.prototype,m.prototype)}setSignature(Mixin,{methods:()=>{let s={};for(let m of mixins){copyProperties(s,m[_methodSig])}return s}});Mixin[_mixins]=mixins;return Mixin}exports.mixin=mixin;function getMixins(clazz){return clazz[_mixins]}exports.getMixins=getMixins;function getImplements(clazz){return clazz[_implements]}exports.getImplements=getImplements;let _typeArguments=Symbol('typeArguments');let _originalDeclaration=Symbol('originalDeclaration');function generic(typeConstructor){let length=typeConstructor.length;if(length<1){throwError('must have at least one generic type argument')}let resultMap=new Map();function makeGenericType(){if(arguments.length!=length&&arguments.length!=0){throwError('requires '+length+' or 0 type arguments')}let args=slice.call(arguments);while(args.length<length)args.push(types.dynamic);let value=resultMap;for(let i=0;i<length;i++){let arg=args[i];if(arg==null){throwError('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[_typeArguments]=args;value[_originalDeclaration]=makeGenericType}}else{value=new Map()}map.set(arg,value)}}return value}return makeGenericType}exports.generic=generic;function getGenericClass(type){return safeGetOwnProperty(type,_originalDeclaration)};exports.getGenericClass=getGenericClass;function getGenericArgs(type){return safeGetOwnProperty(type,_typeArguments)};exports.getGenericArgs=getGenericArgs;let _constructorSig=Symbol('sigCtor');let _methodSig=Symbol("sig");let _staticSig=Symbol("sigStatic");function _getMethodType(obj,name){if(obj===void 0)return void 0;if(obj==null)return void 0;let sigObj=obj.__proto__.constructor[_methodSig];if(sigObj===void 0)return void 0;let parts=sigObj[name];if(parts===void 0)return void 0;return types.definiteFunctionType.apply(null,parts)}function _getConstructorType(cls,name){if(!name)name=cls.name;if(cls===void 0)return void 0;if(cls==null)return void 0;let sigCtor=cls[_constructorSig];if(sigCtor===void 0)return void 0;let parts=sigCtor[name];if(parts===void 0)return void 0;return types.definiteFunctionType.apply(null,parts)}exports.classGetConstructorType=_getConstructorType;function bind(obj,name){let f=obj[name].bind(obj);let sig=_getMethodType(obj,name);assert(sig);rtti.tag(f,sig);return f}exports.bind=bind;function _setMethodSignature(f,sigF){defineMemoizedGetter(f,_methodSig,()=>{let sigObj=sigF();sigObj.__proto__=f.__proto__[_methodSig];return sigObj})}function _setConstructorSignature(f,sigF){defineMemoizedGetter(f,_constructorSig,sigF)}function _setStaticSignature(f,sigF){defineMemoizedGetter(f,_staticSig,sigF)}function _setStaticTypes(f,names){for(let name of names){rtti.tagMemoized(f[name],function(){let parts=f[_staticSig][name];return types.definiteFunctionType.apply(null,parts)})}}function setSignature(f,signature){let constructors=('constructors'in signature)?signature.constructors:()=>({});let methods=('methods'in signature)?signature.methods:()=>({});let statics=('statics'in signature)?signature.statics:()=>({});let names=('names'in signature)?signature.names:[];_setConstructorSignature(f,constructors);_setMethodSignature(f,methods);_setStaticSignature(f,statics);_setStaticTypes(f,names);rtti.tagMemoized(f,()=>core.Type)}exports.setSignature=setSignature;function hasMethod(obj,name){return _getMethodType(obj,name)!==void 0}exports.hasMethod=hasMethod;exports.getMethodType=_getMethodType;function virtualField(subclass,fieldName){let prop=getOwnPropertyDescriptor(subclass.prototype,fieldName);if(prop)return;let symbol=Symbol(subclass.name+'.'+fieldName);defineProperty(subclass.prototype,fieldName,{get:function(){return this[symbol]},set:function(x){this[symbol]=x}})}exports.virtualField=virtualField;function defineNamedConstructor(clazz,name){let proto=clazz.prototype;let initMethod=proto[name];let ctor=function(){return initMethod.apply(this,arguments)};ctor.prototype=proto;defineProperty(clazz,name,{configurable:true,value:ctor})}exports.defineNamedConstructor=defineNamedConstructor;let _extensionType=Symbol('extensionType');let dartx={};exports.dartx=dartx;function getExtensionSymbol(name){let sym=dartx[name];if(!sym)dartx[name]=sym=Symbol('dartx.'+name);return sym}function defineExtensionNames(names){names.forEach(getExtensionSymbol)}exports.defineExtensionNames=defineExtensionNames;function registerExtension(jsType,dartExtType){let extProto=dartExtType.prototype;let jsProto=jsType.prototype;assert(jsProto[_extensionType]===void 0);jsProto[_extensionType]=extProto;let dartObjProto=core.Object.prototype;while(extProto!==dartObjProto&&extProto!==jsProto){copyTheseProperties(jsProto,extProto,getOwnPropertySymbols(extProto));extProto=extProto.__proto__}}exports.registerExtension=registerExtension;function defineExtensionMembers(type,methodNames){let proto=type.prototype;for(let name of methodNames){let method=getOwnPropertyDescriptor(proto,name);defineProperty(proto,getExtensionSymbol(name),method)}let originalSigFn=getOwnPropertyDescriptor(type,_methodSig).get;defineMemoizedGetter(type,_methodSig,function(){let sig=originalSigFn();for(let name of methodNames){sig[getExtensionSymbol(name)]=sig[name]}return sig})}exports.defineExtensionMembers=defineExtensionMembers;function canonicalMember(obj,name){if(obj[_extensionType])return dartx[name];return name}exports.canonicalMember=canonicalMember;function setType(obj,type){obj.__proto__=type.prototype;return obj}function list(obj,elementType){return setType(obj,_interceptors.JSArray$(elementType))}exports.list=list;function setBaseClass(derived,base){derived.prototype.__proto__=base.prototype}exports.setBaseClass=setBaseClass});dart_library.library('dart_runtime/_errors',null,[],['dart_runtime/_operations','dart/core','dart/_js_helper'],function(exports,operations,core,_js_helper){'use strict';function throwNoSuchMethod(obj,name,pArgs,nArgs,extras){operations.throw(new core.NoSuchMethodError(obj,name,pArgs,nArgs,extras))}exports.throwNoSuchMethod=throwNoSuchMethod;function throwCastError(actual,type){operations.throw(new _js_helper.CastErrorImplementation(actual,type))}exports.throwCastError=throwCastError;function throwAssertionError(){operations.throw(new core.AssertionError())}exports.throwAssertionError=throwAssertionError});dart_library.library('dart_runtime/_operations',null,[],['dart/async','dart/collection','dart/core','dart/_js_helper','dart_runtime/_classes','dart_runtime/_errors','dart_runtime/_rtti','dart_runtime/_types'],function(exports,async,collection,core,_js_helper,classes,errors,rtti,types){'use strict';const getOwnNamesAndSymbols=dart_utils.getOwnNamesAndSymbols;const throwError=dart_utils.throwError;const getOwnPropertyNames=Object.getOwnPropertyNames;const hasOwnProperty=Object.prototype.hasOwnProperty;const slice=[].slice;function _canonicalFieldName(obj,name,args,displayName){name=classes.canonicalMember(obj,name);if(name)return name;errors.throwNoSuchMethod(obj,displayName,args)}function dload(obj,field){field=_canonicalFieldName(obj,field,[],field);if(classes.hasMethod(obj,field)){return classes.bind(obj,field)}let result=obj[field];if(typeof result=="function"&& !hasOwnProperty.call(obj,field)){return result.bind(obj)}return result}exports.dload=dload;function dput(obj,field,value){field=_canonicalFieldName(obj,field,[value],field);obj[field]=value}exports.dput=dput;function checkApply(type,actuals){if(actuals.length<type.args.length)return false;let index=0;for(let i=0;i<type.args.length;++i){if(!instanceOfOrNull(actuals[i],type.args[i]))return false;++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){if(!instanceOfOrNull(actuals[j],type.optionals[i]))return false;}return true}if(extras!=1)return false;if(getOwnPropertyNames(type.named).length==0)return false;let opts=actuals[index];let names=getOwnPropertyNames(opts);if(names.length==0)return false;for(name of names){if(!(hasOwnProperty.call(type.named,name))){return false}if(!instanceOfOrNull(opts[name],type.named[name]))return false;}return true}function throwNoSuchMethod(obj,name,args,opt_func){if(obj===void 0)obj=opt_func;errors.throwNoSuchMethod(obj,name,args)}function checkAndCall(f,ftype,obj,args,name){if(!(f instanceof Function)){if(f!=null){ftype=classes.getMethodType(f,'call');f=f.call}if(!(f instanceof Function)){throwNoSuchMethod(obj,name,args)}}if(ftype===void 0){ftype=rtti.read(f)}if(!ftype){return f.apply(obj,args)}if(checkApply(ftype,args)){return f.apply(obj,args)}throwNoSuchMethod(obj,name,args,f)}function dcall(f ){let args=slice.call(arguments,1);let ftype=rtti.read(f);return checkAndCall(f,ftype,void 0,args,'call')}exports.dcall=dcall;function callMethod(obj,name,args,displayName){let symbol=_canonicalFieldName(obj,name,args,displayName);let f=obj[symbol];let ftype=classes.getMethodType(obj,name);return checkAndCall(f,ftype,obj,args,displayName)}function dsend(obj,method ){return callMethod(obj,method,slice.call(arguments,2))}exports.dsend=dsend;function dindex(obj,index){return callMethod(obj,'get',[index],'[]')}exports.dindex=dindex;function dsetindex(obj,index,value){return callMethod(obj,'set',[index,value],'[]=')}exports.dsetindex=dsetindex;function _ignoreTypeFailure(actual,type){let isSubtype=types.isSubtype;if(isSubtype(type,core.Iterable)&&isSubtype(actual,core.Iterable)||isSubtype(type,async.Future)&&isSubtype(actual,async.Future)||isSubtype(type,core.Map)&&isSubtype(actual,core.Map)||isSubtype(type,core.Function)&&isSubtype(actual,core.Function)){console.error('Ignoring cast fail from '+types.typeName(actual)+' to '+types.typeName(type));return true}return false}function instanceOf(obj,type){return types.isSubtype(rtti.realRuntimeType(obj),type)}exports.instanceOf=instanceOf;function instanceOfOrNull(obj,type){if((obj==null)||instanceOf(obj,type))return true;let actual=rtti.realRuntimeType(obj);if(_ignoreTypeFailure(actual,type))return true;return false}exports.instanceOfOrNull=instanceOfOrNull;function cast(obj,type){if(obj==null)return obj;let actual=rtti.realRuntimeType(obj);if(types.isSubtype(actual,type))return obj;if(_ignoreTypeFailure(actual,type))return obj;errors.throwCastError(actual,type)}exports.cast=cast;function arity(f){return{min:f.length,max:f.length}}exports.arity=arity;function equals(x,y){if(x==null||y==null)return x==y;let eq=x['=='];return eq?eq.call(x,y):x===y}exports.equals=equals;function notNull(x){if(x==null)throwError('expected not-null value');return x}exports.notNull=notNull;function map(values){let map=collection.LinkedHashMap.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 getOwnPropertyNames(values)){map.set(key,values[key])}}return map}exports.map=map;function assert(condition){if(!condition)errors.throwAssertionError();}exports.assert=assert;let _stack=Symbol('_stack');function throw_(obj){obj[_stack]=new Error();throw obj}exports.throw=throw_;function getError(exception){return exception[_stack]?exception[_stack]:exception}function stackPrint(exception){var error=getError(exception);console.log(error.stack?error.stack:'No stack trace for: '+error)}exports.stackPrint=stackPrint;function stackTrace(exception){var error=getError(exception);return _js_helper.getTraceFromException(error)}exports.stackTrace=stackTrace;let _value=Symbol('_value');function multiKeyPutIfAbsent(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(_value))return map.get(_value);let value=valueFn();map.set(_value,value);return value}const constants=new Map();function constant(obj){let objectKey=[rtti.realRuntimeType(obj)];for(let name of getOwnNamesAndSymbols(obj)){objectKey.push(name);objectKey.push(obj[name])}return multiKeyPutIfAbsent(constants,objectKey,()=>obj)}exports.const=constant;function hashCode(obj){if(obj==null){return 0}switch(typeof obj){case "number":case "boolean":return obj&0x1FFFFFFF;case "string":return obj.length}return obj.hashCode}exports.hashCode=hashCode;function toString(obj){if(obj==null){return "null"}return obj.toString()}exports.toString=toString;function noSuchMethod(obj,invocation){if(obj==null){errors.throwNoSuchMethod(obj,invocation.memberName,invocation.positionalArguments,invocation.namedArguments)}switch(typeof obj){case "number":case "boolean":case "string":errors.throwNoSuchMethod(obj,invocation.memberName,invocation.positionalArguments,invocation.namedArguments)}return obj.noSuchMethod(invocation)}exports.noSuchMethod=noSuchMethod;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}}};exports.JsIterator=JsIterator});dart_library.library('dart_runtime/_rtti',null,[],['dart/core','dart_runtime/_types'],function(exports,core,types){'use strict';const defineLazyProperty=dart_utils.defineLazyProperty;const defineProperty=Object.defineProperty;const slice=[].slice;function fn(closure ){if(arguments.length==2){defineLazyProperty(closure,_runtimeType,{get:arguments[1]});return closure}let t;if(arguments.length==1){let len=closure.length;let args=Array.apply(null,new Array(len)).map(()=>types.dynamic);t=types.definiteFunctionType(types.dynamic,args)}else{let args=slice.call(arguments,1);t=types.definiteFunctionType.apply(null,args)}tag(closure,t);return closure}exports.fn=fn;const _runtimeType=Symbol('_runtimeType');function checkPrimitiveType(obj){switch(typeof obj){case "undefined":return core.Null;case "number":return Math.floor(obj)==obj?core.int:core.double;case "boolean":return core.bool;case "string":return core.String;case "symbol":return Symbol}if(obj===null)return core.Null;return null}function runtimeType(obj){let result=checkPrimitiveType(obj);if(result!==null)return result;return obj.runtimeType}exports.runtimeType=runtimeType;function getFunctionType(obj){let args=Array.apply(null,new Array(obj.length)).map(()=>types.dynamic);return types.definiteFunctionType(types.bottom,args)}function realRuntimeType(obj){let result=checkPrimitiveType(obj);if(result!==null)return result;result=obj[_runtimeType];if(result)return result;result=obj.constructor;if(result==Function){return getFunctionType(obj)}return result}exports.realRuntimeType=realRuntimeType;function LazyTagged(infoFn){class _Tagged{get[_runtimeType](){return infoFn()}}return _Tagged}exports.LazyTagged=LazyTagged;function read(value){return value[_runtimeType]}exports.read=read;function tag(value,info){value[_runtimeType]=info}exports.tag=tag;function tagComputed(value,compute){defineProperty(value,_runtimeType,{get:compute})}exports.tagComputed=tagComputed;function tagMemoized(value,compute){let cache=null;function getter(){if(compute==null)return cache;cache=compute();compute=null;return cache}tagComputed(value,getter)}exports.tagMemoized=tagMemoized});dart_library.library('dart_runtime/_types',null,[],['dart/core','dart_runtime/_classes','dart_runtime/_rtti'],function(exports,core,classes,rtti){'use strict';const getOwnPropertyNames=Object.getOwnPropertyNames;const assert=dart_utils.assert;const copyProperties=dart_utils.copyProperties;const safeGetOwnProperty=dart_utils.safeGetOwnProperty;class TypeRep extends rtti.LazyTagged(()=>core.Type){get name(){return this.toString()}}class Dynamic extends TypeRep{toString(){return "dynamic"}}let dynamicR=new Dynamic();exports.dynamic=dynamicR;class Void extends TypeRep{toString(){return "void"}};let voidR=new Void();exports.void=voidR;class Bottom extends TypeRep{toString(){return "bottom"}};let bottomR=new Bottom();exports.bottom=bottomR;class AbstractFunctionType extends TypeRep{constructor(){super();this._stringValue=null}toString(){return this.name}get name(){if(this._stringValue)return this._stringValue;let buffer='(';for(let i=0;i<this.args.length;++i){if(i>0){buffer+=', '}buffer+=typeName(this.args[i])}if(this.optionals.length>0){if(this.args.length>0)buffer+=', ';buffer+='[';for(let i=0;i<this.optionals.length;++i){if(i>0){buffer+=', '}buffer+=typeName(this.optionals[i])}buffer+=']'}else if(Object.keys(this.named).length>0){if(this.args.length>0)buffer+=', ';buffer+='{';let names=getOwnPropertyNames(this.named).sort();for(let i=0;i<names.length;++i){if(i>0){buffer+=', '}buffer+=names[i]+': '+typeName(this.named[names[i]])}buffer+='}'}buffer+=') -> '+typeName(this.returnType);this._stringValue=buffer;return buffer}};class FunctionType extends AbstractFunctionType{constructor(definite,returnType,args,optionals,named){super();this.definite=definite;this.returnType=returnType;this.args=args;this.optionals=optionals;this.named=named;this.metadata=[];function process(array,metadata){var result=[];for(var i=0;i<array.length;++i){var arg=array[i];if(arg instanceof Array){metadata.push(arg.slice(1));result.push(arg[0])}else{metadata.push([]);result.push(arg)}}return result}this.args=process(this.args,this.metadata);this.optionals=process(this.optionals,this.metadata);this._canonize()}_canonize(){if(this.definite)return;function replace(a){return(a==dynamicR)?bottomR:a}this.args=this.args.map(replace);if(this.optionals.length>0){this.optionals=this.optionals.map(replace)}if(Object.keys(this.named).length>0){let r={};for(let name of getOwnPropertyNames(this.named)){r[name]=replace(this.named[name])}this.named=r}}};class Typedef extends AbstractFunctionType{constructor(name,closure){super();this._name=name;this._closure=closure;this._functionType=null}get definite(){return this._functionType.definite}get name(){return this._name}get functionType(){if(!this._functionType){this._functionType=this._closure()}return this._functionType}get returnType(){return this.functionType.returnType}get args(){return this.functionType.args}get optionals(){return this.functionType.optionals}get named(){return this.functionType.named}get metadata(){return this.functionType.metadata}};function _functionType(definite,returnType,args,extra){let optionals;let named;if(extra===void 0){optionals=[];named={}}else if(extra instanceof Array){optionals=extra;named={}}else{optionals=[];named=extra}return new FunctionType(definite,returnType,args,optionals,named)}function functionType(returnType,args,extra){return _functionType(false,returnType,args,extra)}exports.functionType=functionType;function definiteFunctionType(returnType,args,extra){return _functionType(true,returnType,args,extra)}exports.definiteFunctionType=definiteFunctionType;function typedef(name,closure){return new Typedef(name,closure)}exports.typedef=typedef;function isDartType(type){return rtti.read(type)===core.Type}exports.isDartType=isDartType;function typeName(type){if(type instanceof TypeRep)return type.toString();let tag=rtti.read(type);if(tag===core.Type){let name=type.name;let args=classes.getGenericArgs(type);if(args){name+='<';for(let i=0;i<args.length;++i){if(i>0)name+=', ';name+=typeName(args[i])}name+='>'}return name}if(tag)return "Not a type: "+tag.name;return "JSObject<"+type.name+">"}exports.typeName=typeName;function isFunctionType(type){return type instanceof AbstractFunctionType||type==core.Function}function isFunctionSubType(ft1,ft2){if(ft2==core.Function){return true}let ret1=ft1.returnType;let ret2=ft2.returnType;if(!isSubtype_(ret1,ret2)){if(ret2!=voidR){return false}}let args1=ft1.args;let args2=ft2.args;if(args1.length>args2.length){return false}for(let i=0;i<args1.length;++i){if(!isSubtype_(args2[i],args1[i])){return false}}let optionals1=ft1.optionals;let optionals2=ft2.optionals;if(args1.length+optionals1.length<args2.length+optionals2.length){return false}let j=0;for(let i=args1.length;i<args2.length;++i,++j){if(!isSubtype_(args2[i],optionals1[j])){return false}}for(let i=0;i<optionals2.length;++i,++j){if(!isSubtype_(optionals2[i],optionals1[j])){return false}}let named1=ft1.named;let named2=ft2.named;let names=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 false}if(!isSubtype_(n2,n1)){return false}}return true}function canonicalType(t){if(t===Object)return core.Object;if(t===Function)return core.Function;if(t===Array)return core.List;if(t===String)return core.String;if(t===Number)return core.double;if(t===Boolean)return core.bool;return t}const subtypeMap=new Map();function isSubtype(t1,t2){let map=subtypeMap.get(t1);let result;if(map){result=map.get(t2);if(result!==void 0)return result;}else{subtypeMap.set(t1,map=new Map())}result=isSubtype_(t1,t2);map.set(t2,result);return result}exports.isSubtype=isSubtype;function _isBottom(type){return type==bottomR}function _isTop(type){return type==core.Object||(type==dynamicR)}function isSubtype_(t1,t2){t1=canonicalType(t1);t2=canonicalType(t2);if(t1==t2)return true;if(_isTop(t2)||_isBottom(t1)){return true}if(_isTop(t1)||_isBottom(t2)){return false}if(isClassSubType(t1,t2)){return true}if(isFunctionType(t1)&&isFunctionType(t2)){return isFunctionSubType(t1,t2)}return false}function isClassSubType(t1,t2){t1=canonicalType(t1);assert(t2==canonicalType(t2));if(t1==t2)return true;if(t1==core.Object)return false;if(t1==null)return t2==core.Object||t2==dynamicR;let raw1=classes.getGenericClass(t1);let raw2=classes.getGenericClass(t2);if(raw1!=null&&raw1==raw2){let typeArguments1=classes.getGenericArgs(t1);let typeArguments2=classes.getGenericArgs(t2);let length=typeArguments1.length;if(typeArguments2.length==0){return true}else if(length==0){return false}assert(length==typeArguments2.length);for(let i=0;i<length;++i){if(!isSubtype(typeArguments1[i],typeArguments2[i])){return false}}return true}if(isClassSubType(t1.__proto__,t2))return true;let mixins=classes.getMixins(t1);if(mixins){for(let m1 of mixins){if(m1!=null&&isClassSubType(m1,t2))return true;}}let getInterfaces=classes.getImplements(t1);if(getInterfaces){for(let i1 of getInterfaces()){if(i1!=null&&isClassSubType(i1,t2))return true;}}return false}function isGroundType(type){if(type instanceof AbstractFunctionType){if(!_isTop(type.returnType))return false;for(let i=0;i<type.args.length;++i){if(!_isBottom(type.args[i]))return false;}for(let i=0;i<type.optionals.length;++i){if(!_isBottom(type.optionals[i]))return false;}let names=getOwnPropertyNames(type.named);for(let i=0;i<names.length;++i){if(!_isBottom(type.named[names[i]]))return false;}return true}let typeArgs=classes.getGenericArgs(type);if(!typeArgs)return true;for(let t of typeArgs){if(t!=core.Object&&t!=dynamicR)return false;}return true}exports.isGroundType=isGroundType});dart_library.library('dart/_foreign_helper',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;function JS(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.fn(JS,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]);function JS_CURRENT_ISOLATE_CONTEXT(){}dart.fn(JS_CURRENT_ISOLATE_CONTEXT,()=>dart.definiteFunctionType(IsolateContext,[]));class IsolateContext extends core.Object{};function JS_CALL_IN_ISOLATE(isolate,func){}dart.fn(JS_CALL_IN_ISOLATE,dart.dynamic,[dart.dynamic,core.Function]);function JS_SET_CURRENT_ISOLATE(isolate){}dart.fn(JS_SET_CURRENT_ISOLATE,dart.void,[dart.dynamic]);function JS_CREATE_ISOLATE(){}dart.fn(JS_CREATE_ISOLATE);function JS_DART_OBJECT_CONSTRUCTOR(){}dart.fn(JS_DART_OBJECT_CONSTRUCTOR);function JS_INTERCEPTOR_CONSTANT(type){}dart.fn(JS_INTERCEPTOR_CONSTANT,dart.dynamic,[core.Type]);function JS_OPERATOR_IS_PREFIX(){}dart.fn(JS_OPERATOR_IS_PREFIX,core.String,[]);function JS_OPERATOR_AS_PREFIX(){}dart.fn(JS_OPERATOR_AS_PREFIX,core.String,[]);function JS_OBJECT_CLASS_NAME(){}dart.fn(JS_OBJECT_CLASS_NAME,core.String,[]);function JS_NULL_CLASS_NAME(){}dart.fn(JS_NULL_CLASS_NAME,core.String,[]);function JS_FUNCTION_CLASS_NAME(){}dart.fn(JS_FUNCTION_CLASS_NAME,core.String,[]);function JS_IS_INDEXABLE_FIELD_NAME(){}dart.fn(JS_IS_INDEXABLE_FIELD_NAME,core.String,[]);function JS_CURRENT_ISOLATE(){}dart.fn(JS_CURRENT_ISOLATE);function JS_SIGNATURE_NAME(){}dart.fn(JS_SIGNATURE_NAME,core.String,[]);function JS_TYPEDEF_TAG(){}dart.fn(JS_TYPEDEF_TAG,core.String,[]);function JS_FUNCTION_TYPE_TAG(){}dart.fn(JS_FUNCTION_TYPE_TAG,core.String,[]);function JS_FUNCTION_TYPE_VOID_RETURN_TAG(){}dart.fn(JS_FUNCTION_TYPE_VOID_RETURN_TAG,core.String,[]);function JS_FUNCTION_TYPE_RETURN_TYPE_TAG(){}dart.fn(JS_FUNCTION_TYPE_RETURN_TYPE_TAG,core.String,[]);function JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG(){}dart.fn(JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG,core.String,[]);function JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG(){}dart.fn(JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG,core.String,[]);function JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG(){}dart.fn(JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG,core.String,[]);function JS_GET_NAME(name){}dart.fn(JS_GET_NAME,core.String,[core.String]);function JS_EMBEDDED_GLOBAL(typeDescription,name){}dart.fn(JS_EMBEDDED_GLOBAL,dart.dynamic,[core.String,core.String]);function JS_GET_FLAG(name){}dart.fn(JS_GET_FLAG,core.bool,[core.String]);function JS_EFFECT(code){dart.dcall(code,null)}dart.fn(JS_EFFECT,dart.void,[core.Function]);class JS_CONST extends core.Object{JS_CONST(code){this.code=code}};dart.setSignature(JS_CONST,{constructors:()=>({JS_CONST:[JS_CONST,[core.String]]})});function JS_STRING_CONCAT(a,b){return a+b}dart.fn(JS_STRING_CONCAT,core.String,[core.String,core.String]);exports.JS=JS;exports.JS_CURRENT_ISOLATE_CONTEXT=JS_CURRENT_ISOLATE_CONTEXT;exports.IsolateContext=IsolateContext;exports.JS_CALL_IN_ISOLATE=JS_CALL_IN_ISOLATE;exports.JS_SET_CURRENT_ISOLATE=JS_SET_CURRENT_ISOLATE;exports.JS_CREATE_ISOLATE=JS_CREATE_ISOLATE;exports.JS_DART_OBJECT_CONSTRUCTOR=JS_DART_OBJECT_CONSTRUCTOR;exports.JS_INTERCEPTOR_CONSTANT=JS_INTERCEPTOR_CONSTANT;exports.JS_OPERATOR_IS_PREFIX=JS_OPERATOR_IS_PREFIX;exports.JS_OPERATOR_AS_PREFIX=JS_OPERATOR_AS_PREFIX;exports.JS_OBJECT_CLASS_NAME=JS_OBJECT_CLASS_NAME;exports.JS_NULL_CLASS_NAME=JS_NULL_CLASS_NAME;exports.JS_FUNCTION_CLASS_NAME=JS_FUNCTION_CLASS_NAME;exports.JS_IS_INDEXABLE_FIELD_NAME=JS_IS_INDEXABLE_FIELD_NAME;exports.JS_CURRENT_ISOLATE=JS_CURRENT_ISOLATE;exports.JS_SIGNATURE_NAME=JS_SIGNATURE_NAME;exports.JS_TYPEDEF_TAG=JS_TYPEDEF_TAG;exports.JS_FUNCTION_TYPE_TAG=JS_FUNCTION_TYPE_TAG;exports.JS_FUNCTION_TYPE_VOID_RETURN_TAG=JS_FUNCTION_TYPE_VOID_RETURN_TAG;exports.JS_FUNCTION_TYPE_RETURN_TYPE_TAG=JS_FUNCTION_TYPE_RETURN_TYPE_TAG;exports.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG=JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG;exports.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG=JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG;exports.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG=JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG;exports.JS_GET_NAME=JS_GET_NAME;exports.JS_EMBEDDED_GLOBAL=JS_EMBEDDED_GLOBAL;exports.JS_GET_FLAG=JS_GET_FLAG;exports.JS_EFFECT=JS_EFFECT;exports.JS_CONST=JS_CONST;exports.JS_STRING_CONCAT=JS_STRING_CONCAT});dart_library.library('dart/_interceptors',null,["dart_runtime/dart",'dart/core','dart/_internal','dart/collection','dart/math'],['dart/_js_helper'],function(exports,dart,core,_internal,collection,math,_js_helper){'use strict';let dartx=dart.dartx;let JSArray$=dart.generic(function(E){dart.defineExtensionNames(['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{JSArray(){}static typed(allocation){return dart.list(allocation,E)}static markFixed(allocation){return JSArray$(E).typed(JSArray$().markFixedList(dart.as(allocation,core.List)))}static markGrowable(allocation){return JSArray$().typed(allocation)}static markFixedList(list){list.fixed$length=Array;return list}[dartx.checkGrowable](reason){if(this.fixed$length){dart.throw(new core.UnsupportedError(dart.as(reason,core.String)))}}[dartx.add](value){dart.as(value,E);this[dartx.checkGrowable]('add');this.push(value)}[dartx.removeAt](index){if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(this[dartx.length])){dart.throw(new core.RangeError.value(index))}this[dartx.checkGrowable]('removeAt');return this.splice(index,1)[0]}[dartx.insert](index,value){dart.as(value,E);if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));if(dart.notNull(index)<0||dart.notNull(index)>dart.notNull(this[dartx.length])){dart.throw(new core.RangeError.value(index))}this[dartx.checkGrowable]('insert');this.splice(index,0,value)}[dartx.insertAll](index,iterable){dart.as(iterable,core.Iterable$(E));this[dartx.checkGrowable]('insertAll');_internal.IterableMixinWorkaround.insertAllList(this,index,iterable)}[dartx.setAll](index,iterable){dart.as(iterable,core.Iterable$(E));_internal.IterableMixinWorkaround.setAllList(this,index,iterable)}[dartx.removeLast](){this[dartx.checkGrowable]('removeLast');if(this[dartx.length]==0)dart.throw(new core.RangeError.value(-1));return dart.as(this.pop(),E)}[dartx.remove](element){this[dartx.checkGrowable]('remove');for(let i=0;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){if(dart.equals(this[dartx.get](i),element)){this.splice(i,1);return true}}return false}[dartx.removeWhere](test){dart.as(test,dart.functionType(core.bool,[E]));_internal.IterableMixinWorkaround.removeWhereList(this,test)}[dartx.retainWhere](test){dart.as(test,dart.functionType(core.bool,[E]));_internal.IterableMixinWorkaround.removeWhereList(this,dart.fn(element=> !dart.notNull(test(element)),core.bool,[E]))}[dartx.where](f){dart.as(f,dart.functionType(core.bool,[E]));return new(_internal.IterableMixinWorkaround$(E))().where(this,f)}[dartx.expand](f){dart.as(f,dart.functionType(core.Iterable,[E]));return _internal.IterableMixinWorkaround.expand(this,f)}[dartx.addAll](collection){dart.as(collection,core.Iterable$(E));for(let e of collection){this[dartx.add](e)}}[dartx.clear](){this[dartx.length]=0}[dartx.forEach](f){dart.as(f,dart.functionType(dart.void,[E]));let length=this[dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){f(dart.as(this[i],E));if(length!=this[dartx.length]){dart.throw(new core.ConcurrentModificationError(this))}}}[dartx.map](f){dart.as(f,dart.functionType(dart.dynamic,[E]));return _internal.IterableMixinWorkaround.mapList(this,f)}[dartx.join](separator){if(separator===void 0)separator="";let list=core.List.new(this[dartx.length]);for(let i=0;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){list[dartx.set](i,`${this[dartx.get](i)}`)}return list.join(separator)}[dartx.take](n){return new(_internal.IterableMixinWorkaround$(E))().takeList(this,n)}[dartx.takeWhile](test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.IterableMixinWorkaround$(E))().takeWhile(this,test)}[dartx.skip](n){return new(_internal.IterableMixinWorkaround$(E))().skipList(this,n)}[dartx.skipWhile](test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.IterableMixinWorkaround$(E))().skipWhile(this,test)}[dartx.reduce](combine){dart.as(combine,dart.functionType(E,[E,E]));return dart.as(_internal.IterableMixinWorkaround.reduce(this,combine),E)}[dartx.fold](initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));return _internal.IterableMixinWorkaround.fold(this,initialValue,combine)}[dartx.firstWhere](test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));return dart.as(_internal.IterableMixinWorkaround.firstWhere(this,test,orElse),E)}[dartx.lastWhere](test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));return dart.as(_internal.IterableMixinWorkaround.lastWhereList(this,test,orElse),E)}[dartx.singleWhere](test){dart.as(test,dart.functionType(core.bool,[E]));return dart.as(_internal.IterableMixinWorkaround.singleWhere(this,test),E)}[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(new core.ArgumentError(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(end==null){end=this[dartx.length]}else{if(!(typeof end=='number'))dart.throw(new core.ArgumentError(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]))}}if(start==end)return dart.list([],E);return JSArray$(E).typed(this.slice(start,end))}[dartx.getRange](start,end){return new(_internal.IterableMixinWorkaround$(E))().getRangeList(this,start,end)}get[dartx.first](){if(dart.notNull(this[dartx.length])>0)return this[dartx.get](0);dart.throw(new core.StateError("No elements"))}get[dartx.last](){if(dart.notNull(this[dartx.length])>0)return this[dartx.get](dart.notNull(this[dartx.length])-1);dart.throw(new core.StateError("No elements"))}get[dartx.single](){if(this[dartx.length]==1)return this[dartx.get](0);if(this[dartx.length]==0)dart.throw(new core.StateError("No elements"));dart.throw(new core.StateError("More than one element"))}[dartx.removeRange](start,end){this[dartx.checkGrowable]('removeRange');let receiverLength=this[dartx.length];if(dart.notNull(start)<0||dart.notNull(start)>dart.notNull(receiverLength)){dart.throw(new core.RangeError.range(start,0,receiverLength))}if(dart.notNull(end)<dart.notNull(start)||dart.notNull(end)>dart.notNull(receiverLength)){dart.throw(new core.RangeError.range(end,start,receiverLength))}_internal.Lists.copy(this,end,this,start,dart.notNull(receiverLength)-dart.notNull(end));this[dartx.length]=dart.notNull(receiverLength)-(dart.notNull(end)-dart.notNull(start))}[dartx.setRange](start,end,iterable,skipCount){dart.as(iterable,core.Iterable$(E));if(skipCount===void 0)skipCount=0;_internal.IterableMixinWorkaround.setRangeList(this,start,end,iterable,skipCount)}[dartx.fillRange](start,end,fillValue){if(fillValue===void 0)fillValue=null;dart.as(fillValue,E);_internal.IterableMixinWorkaround.fillRangeList(this,start,end,fillValue)}[dartx.replaceRange](start,end,iterable){dart.as(iterable,core.Iterable$(E));_internal.IterableMixinWorkaround.replaceRangeList(this,start,end,iterable)}[dartx.any](f){dart.as(f,dart.functionType(core.bool,[E]));return _internal.IterableMixinWorkaround.any(this,f)}[dartx.every](f){dart.as(f,dart.functionType(core.bool,[E]));return _internal.IterableMixinWorkaround.every(this,f)}get[dartx.reversed](){return new(_internal.IterableMixinWorkaround$(E))().reversedList(this)}[dartx.sort](compare){if(compare===void 0)compare=null;dart.as(compare,dart.functionType(core.int,[E,E]));_internal.IterableMixinWorkaround.sortList(this,compare)}[dartx.shuffle](random){if(random===void 0)random=null;_internal.IterableMixinWorkaround.shuffleList(this,random)}[dartx.indexOf](element,start){if(start===void 0)start=0;return _internal.IterableMixinWorkaround.indexOfList(this,element,start)}[dartx.lastIndexOf](element,start){if(start===void 0)start=null;return _internal.IterableMixinWorkaround.lastIndexOfList(this,element,start)}[dartx.contains](other){for(let i=0;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){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.notNull(this[dartx.isEmpty])}toString(){return collection.ListBase.listToString(this)}[dartx.toList](opts){let growable=opts&&'growable'in opts?opts.growable:true;let list=this.slice();if(!dart.notNull(growable))JSArray$().markFixedList(dart.as(list,core.List));return JSArray$(E).typed(list)}[dartx.toSet](){return core.Set$(E).from(this)}get[dartx.iterator](){return new(_internal.ListIterator$(E))(this)}get hashCode(){return _js_helper.Primitives.objectHashCode(this)}get[dartx.length](){return dart.as(this.length,core.int)}set[dartx.length](newLength){if(!(typeof newLength=='number'))dart.throw(new core.ArgumentError(newLength));if(dart.notNull(newLength)<0)dart.throw(new core.RangeError.value(newLength));this[dartx.checkGrowable]('set length');this.length=newLength}[dartx.get](index){if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));if(dart.notNull(index)>=dart.notNull(this[dartx.length])||dart.notNull(index)<0)dart.throw(new core.RangeError.value(index));return dart.as(this[index],E)}[dartx.set](index,value){dart.as(value,E);if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));if(dart.notNull(index)>=dart.notNull(this[dartx.length])||dart.notNull(index)<0)dart.throw(new core.RangeError.value(index));this[index]=value}[dartx.asMap](){return new(_internal.IterableMixinWorkaround$(E))().asMapList(this)}};dart.setBaseClass(JSArray,dart.global.Array);JSArray[dart.implements]=()=>[core.List$(E),JSIndexable];dart.setSignature(JSArray,{constructors:()=>({JSArray:[JSArray$(E),[]],markFixed:[JSArray$(E),[dart.dynamic]],markGrowable:[JSArray$(E),[dart.dynamic]],typed:[JSArray$(E),[dart.dynamic]]}),methods:()=>({[dartx.asMap]:[core.Map$(core.int,E),[]],[dartx.singleWhere]:[E,[dart.functionType(core.bool,[E])]],[dartx.lastWhere]:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],[dartx.firstWhere]:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],[dartx.elementAt]:[E,[core.int]],[dartx.reduce]:[E,[dart.functionType(E,[E,E])]],[dartx.skipWhile]:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],[dartx.skip]:[core.Iterable$(E),[core.int]],[dartx.takeWhile]:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],[dartx.take]:[core.Iterable$(E),[core.int]],[dartx.sublist]:[core.List$(E),[core.int],[core.int]],[dartx.join]:[core.String,[],[core.String]],[dartx.getRange]:[core.Iterable$(E),[core.int,core.int]],[dartx.map]:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],[dartx.removeRange]:[dart.void,[core.int,core.int]],[dartx.forEach]:[dart.void,[dart.functionType(dart.void,[E])]],[dartx.setRange]:[dart.void,[core.int,core.int,core.Iterable$(E)],[core.int]],[dartx.clear]:[dart.void,[]],[dartx.fillRange]:[dart.void,[core.int,core.int],[E]],[dartx.addAll]:[dart.void,[core.Iterable$(E)]],[dartx.replaceRange]:[dart.void,[core.int,core.int,core.Iterable$(E)]],[dartx.expand]:[core.Iterable,[dart.functionType(core.Iterable,[E])]],[dartx.any]:[core.bool,[dart.functionType(core.bool,[E])]],[dartx.where]:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],[dartx.every]:[core.bool,[dart.functionType(core.bool,[E])]],[dartx.retainWhere]:[dart.void,[dart.functionType(core.bool,[E])]],[dartx.sort]:[dart.void,[],[dart.functionType(core.int,[E,E])]],[dartx.removeWhere]:[dart.void,[dart.functionType(core.bool,[E])]],[dartx.shuffle]:[dart.void,[],[math.Random]],[dartx.remove]:[core.bool,[core.Object]],[dartx.indexOf]:[core.int,[core.Object],[core.int]],[dartx.removeLast]:[E,[]],[dartx.lastIndexOf]:[core.int,[core.Object],[core.int]],[dartx.setAll]:[dart.void,[core.int,core.Iterable$(E)]],[dartx.contains]:[core.bool,[core.Object]],[dartx.insertAll]:[dart.void,[core.int,core.Iterable$(E)]],[dartx.toList]:[core.List$(E),[],{growable:core.bool}],[dartx.insert]:[dart.void,[core.int,E]],[dartx.toSet]:[core.Set$(E),[]],[dartx.removeAt]:[E,[core.int]],[dartx.get]:[E,[core.int]],[dartx.add]:[dart.void,[E]],[dartx.set]:[dart.void,[core.int,E]],[dartx.checkGrowable]:[dart.dynamic,[dart.dynamic]],[dartx.fold]:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]]}),names:['markFixedList'],statics:()=>({markFixedList:[core.List,[core.List]]})});JSArray[dart.metadata]=()=>[dart.const(new _js_helper.JsPeerInterface({name:'Array'}))];return JSArray});let JSArray=JSArray$();dart.registerExtension(dart.global.Array,JSArray);let JSMutableArray$=dart.generic(function(E){class JSMutableArray extends JSArray$(E){JSMutableArray(){super.JSArray()}}JSMutableArray[dart.implements]=()=>[JSMutableIndexable];return JSMutableArray});let JSMutableArray=JSMutableArray$();let JSFixedArray$=dart.generic(function(E){class JSFixedArray extends JSMutableArray$(E){}return JSFixedArray});let JSFixedArray=JSFixedArray$();let JSExtendableArray$=dart.generic(function(E){class JSExtendableArray extends JSMutableArray$(E){}return JSExtendableArray});let JSExtendableArray=JSExtendableArray$();class Interceptor extends core.Object{Interceptor(){}};dart.setSignature(Interceptor,{constructors:()=>({Interceptor:[Interceptor,[]]})});let _isInt32=Symbol('_isInt32');let _tdivFast=Symbol('_tdivFast');let _tdivSlow=Symbol('_tdivSlow');let _shlPositive=Symbol('_shlPositive');let _shrReceiverPositive=Symbol('_shrReceiverPositive');let _shrOtherPositive=Symbol('_shrOtherPositive');let _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','unary-','+','-','/','*','%','~/','<<','>>','&','|','^','<','>','<=','>=','runtimeType']);class JSNumber extends Interceptor{JSNumber(){super.Interceptor()}[dartx.compareTo](b){if(!dart.is(b,core.num))dart.throw(new core.ArgumentError(b));if(dart.notNull(this[dartx['<']](b))){return -1}else if(dart.notNull(this[dartx['>']](b))){return 1}else if(dart.equals(this,b)){if(dart.equals(this,0)){let bIsNegative=b[dartx.isNegative];if(this[dartx.isNegative]==bIsNegative)return 0;if(dart.notNull(this[dartx.isNegative]))return -1;return 1}return 0}else if(dart.notNull(this[dartx.isNaN])){if(dart.notNull(b[dartx.isNaN])){return 0}return 1}else{return -1}}get[dartx.isNegative](){return dart.equals(this,0)?(1)[dartx['/']](this)<0:this[dartx['<']](0)}get[dartx.isNaN](){return isNaN(this)}get[dartx.isInfinite](){return this==Infinity||this== -Infinity}get[dartx.isFinite](){return isFinite(this)}[dartx.remainder](b){_js_helper.checkNull(b);if(!dart.is(b,core.num))dart.throw(new core.ArgumentError(b));return this%b}[dartx.abs](){return Math.abs(this)}get[dartx.sign](){return dart.notNull(this[dartx['>']](0))?1:dart.notNull(this[dartx['<']](0))?-1:this}[dartx.toInt](){if(dart.notNull(this[dartx['>=']](JSNumber._MIN_INT32))&&dart.notNull(this[dartx['<=']](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](){return this[dartx.roundToDouble]()[dartx.toInt]()}[dartx.ceilToDouble](){return Math.ceil(this)}[dartx.floorToDouble](){return Math.floor(this)}[dartx.roundToDouble](){if(dart.notNull(this[dartx['<']](0))){return-Math.round(-this)}else{return Math.round(this)}}[dartx.truncateToDouble](){return dart.notNull(this[dartx['<']](0))?this[dartx.ceilToDouble]():this[dartx.floorToDouble]()}[dartx.clamp](lowerLimit,upperLimit){if(!dart.is(lowerLimit,core.num))dart.throw(new core.ArgumentError(lowerLimit));if(!dart.is(upperLimit,core.num))dart.throw(new core.ArgumentError(upperLimit));if(dart.notNull(lowerLimit[dartx.compareTo](upperLimit))>0){dart.throw(new core.ArgumentError(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(fractionDigits))}let result=this.toFixed(fractionDigits);if(dart.equals(this,0)&&dart.notNull(this[dartx.isNegative]))return `-${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(fractionDigits))}result=this.toExponential(fractionDigits)}else{result=this.toExponential()}if(dart.equals(this,0)&&dart.notNull(this[dartx.isNegative]))return `-${result }`;return result}[dartx.toStringAsPrecision](precision){_js_helper.checkInt(precision);if(dart.notNull(precision)<1||dart.notNull(precision)>21){dart.throw(new core.RangeError(precision))}let result=this.toPrecision(precision);if(dart.equals(this,0)&&dart.notNull(this[dartx.isNegative]))return `-${result }`;return result}[dartx.toRadixString](radix){_js_helper.checkInt(radix);if(dart.notNull(radix)<2||dart.notNull(radix)>36)dart.throw(new core.RangeError(radix));let result=this.toString(radix);let rightParenCode=41;if(result[dartx.codeUnitAt](dart.notNull(result[dartx.length])-1)!=rightParenCode){return result}return JSNumber._handleIEtoString(result)}static _handleIEtoString(result){let match=/^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);if(match==null){dart.throw(new core.UnsupportedError(`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=dart.notNull(exponent)-dart.dindex(match,2).length}return dart.notNull(result)+"0"[dartx['*']](exponent)}toString(){if(dart.equals(this,0)&&1/this<0){return '-0.0'}else{return ""+this}}get hashCode(){return this&0x1FFFFFFF}[dartx['unary-']](){return-this}[dartx['+']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this+other}[dartx['-']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this-other}[dartx['/']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this/other}[dartx['*']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this*other}[dartx['%']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));let result=this%other;if(result==0)return 0;if(dart.notNull(result)>0)return result;if(other<0){return dart.notNull(result)-other}else{return dart.notNull(result)+other}}[_isInt32](value){return(value|0)===value}[dartx['~/']](other){if(false)this[_tdivFast](other);if(dart.notNull(this[_isInt32](this))&&dart.notNull(this[_isInt32](other))&&0!=other&&-1!=other){return this/other|0}else{return this[_tdivSlow](other)}}[_tdivFast](other){return dart.notNull(this[_isInt32](this))?this/other|0:(this/other)[dartx.toInt]()}[_tdivSlow](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return(this/other)[dartx.toInt]()}[dartx['<<']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));if(other<0)dart.throw(new core.ArgumentError(other));return this[_shlPositive](other)}[_shlPositive](other){return other>31?0:dart.as(this<<other>>>0,core.num)}[dartx['>>']](other){if(false)this[_shrReceiverPositive](other);if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));if(other<0)dart.throw(new core.ArgumentError(other));return this[_shrOtherPositive](other)}[_shrOtherPositive](other){return this>0?this[_shrBothPositive](other):dart.as(this>>(dart.notNull(other)>31?31:other)>>>0,core.num)}[_shrReceiverPositive](other){if(other<0)dart.throw(new core.ArgumentError(other));return this[_shrBothPositive](other)}[_shrBothPositive](other){return other>31?0:dart.as(this>>>other,core.num)}[dartx['&']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return dart.as((this&other)>>>0,core.num)}[dartx['|']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return dart.as((this|other)>>>0,core.num)}[dartx['^']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return dart.as((this^other)>>>0,core.num)}[dartx['<']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this<other}[dartx['>']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this>other}[dartx['<=']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this<=other}[dartx['>=']](other){if(!dart.is(other,core.num))dart.throw(new core.ArgumentError(other));return this>=other}get runtimeType(){return core.num}};JSNumber[dart.implements]=()=>[core.num];dart.setSignature(JSNumber,{constructors:()=>({JSNumber:[JSNumber,[]]}),methods:()=>({[dartx['>=']]:[core.bool,[core.num]],[dartx['%']]:[core.num,[core.num]],[dartx['*']]:[core.num,[core.num]],[dartx['/']]:[core.double,[core.num]],[_isInt32]:[core.bool,[dart.dynamic]],[dartx['+']]:[core.num,[core.num]],[dartx['unary-']]:[core.num,[]],[dartx.toRadixString]:[core.String,[core.int]],[dartx.toStringAsPrecision]:[core.String,[core.int]],[dartx.toStringAsExponential]:[core.String,[],[core.int]],[dartx['~/']]:[core.int,[core.num]],[dartx.toStringAsFixed]:[core.String,[core.int]],[_tdivFast]:[core.int,[core.num]],[dartx.toDouble]:[core.double,[]],[_tdivSlow]:[core.int,[core.num]],[dartx.clamp]:[core.num,[core.num,core.num]],[dartx['<<']]:[core.num,[core.num]],[dartx.truncateToDouble]:[core.double,[]],[_shlPositive]:[core.num,[core.num]],[dartx.roundToDouble]:[core.double,[]],[dartx['>>']]:[core.num,[core.num]],[dartx.floorToDouble]:[core.double,[]],[_shrOtherPositive]:[core.num,[core.num]],[dartx.ceilToDouble]:[core.double,[]],[_shrReceiverPositive]:[core.num,[core.num]],[dartx.round]:[core.int,[]],[_shrBothPositive]:[core.num,[core.num]],[dartx.floor]:[core.int,[]],[dartx['&']]:[core.num,[core.num]],[dartx.ceil]:[core.int,[]],[dartx['|']]:[core.num,[core.num]],[dartx.truncate]:[core.int,[]],[dartx['^']]:[core.num,[core.num]],[dartx.toInt]:[core.int,[]],[dartx['<']]:[core.bool,[core.num]],[dartx.abs]:[core.num,[]],[dartx['>']]:[core.bool,[core.num]],[dartx.remainder]:[core.num,[core.num]],[dartx['<=']]:[core.bool,[core.num]],[dartx.compareTo]:[core.int,[core.num]],[dartx['-']]:[core.num,[core.num]]}),names:['_handleIEtoString'],statics:()=>({_handleIEtoString:[core.String,[core.String]]})});JSNumber._MIN_INT32=-2147483648;JSNumber._MAX_INT32=2147483647;dart.defineExtensionNames(['isEven','isOdd','toUnsigned','toSigned','bitLength','runtimeType','~']);class JSInt extends JSNumber{JSInt(){super.JSNumber()}get[dartx.isEven](){return this[dartx['&']](1)==0}get[dartx.isOdd](){return this[dartx['&']](1)==1}[dartx.toUnsigned](width){return this[dartx['&']]((1<<dart.notNull(width))-1)}[dartx.toSigned](width){let signMask=1<<dart.notNull(width)-1;return dart.notNull(this[dartx['&']](dart.notNull(signMask)-1))-dart.notNull(this[dartx['&']](signMask))}get[dartx.bitLength](){let nonneg=dart.notNull(this[dartx['<']](0))?dart.notNull(this[dartx['unary-']]())-1:this;if(dart.notNull(nonneg)>=4294967296){nonneg=(dart.notNull(nonneg)/4294967296)[dartx.truncate]();return dart.notNull(JSInt._bitCount(JSInt._spread(nonneg)))+32}return JSInt._bitCount(JSInt._spread(nonneg))}static _bitCount(i){i=dart.notNull(JSInt._shru(i,0))-(dart.notNull(JSInt._shru(i,1))&1431655765);i=(dart.notNull(i)&858993459)+(dart.notNull(JSInt._shru(i,2))&858993459);i=252645135&dart.notNull(i)+dart.notNull(JSInt._shru(i,4));i=dart.notNull(i)+dart.notNull(JSInt._shru(i,8));i=dart.notNull(i)+dart.notNull(JSInt._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=JSInt._ors(i,JSInt._shrs(i,1));i=JSInt._ors(i,JSInt._shrs(i,2));i=JSInt._ors(i,JSInt._shrs(i,4));i=JSInt._ors(i,JSInt._shrs(i,8));i=JSInt._shru(JSInt._ors(i,JSInt._shrs(i,16)),0);return i}get runtimeType(){return core.int}[dartx['~']](){return dart.as(~this>>>0,core.int)}};JSInt[dart.implements]=()=>[core.int,core.double];dart.setSignature(JSInt,{constructors:()=>({JSInt:[JSInt,[]]}),methods:()=>({[dartx['~']]:[core.int,[]],[dartx.toSigned]:[core.int,[core.int]],[dartx.toUnsigned]:[core.int,[core.int]]}),names:['_bitCount','_shru','_shrs','_ors','_spread'],statics:()=>({_bitCount:[core.int,[core.int]],_ors:[core.int,[core.int,core.int]],_shrs:[core.int,[core.int,core.int]],_shru:[core.int,[core.int,core.int]],_spread:[core.int,[core.int]]})});JSInt[dart.metadata]=()=>[dart.const(new _js_helper.JsPeerInterface({name:'Number'}))];dart.registerExtension(dart.global.Number,JSInt);dart.defineExtensionNames(['runtimeType']);class JSDouble extends JSNumber{JSDouble(){super.JSNumber()}get runtimeType(){return core.double}};JSDouble[dart.implements]=()=>[core.double];dart.setSignature(JSDouble,{constructors:()=>({JSDouble:[JSDouble,[]]})});class JSPositiveInt extends JSInt{JSPositiveInt(){super.JSInt()}};class JSUInt32 extends JSPositiveInt{};class JSUInt31 extends JSUInt32{};let _defaultSplit=Symbol('_defaultSplit');dart.defineExtensionNames(['codeUnitAt','allMatches','matchAsPrefix','+','endsWith','replaceAll','replaceAllMapped','splitMapJoin','replaceFirst','split','startsWith','substring','toLowerCase','toUpperCase','trim','trimLeft','trimRight','*','padLeft','padRight','codeUnits','runes','indexOf','lastIndexOf','contains','isEmpty','isNotEmpty','compareTo','toString','hashCode','runtimeType','length','get']);class JSString extends Interceptor{JSString(){super.Interceptor()}[dartx.codeUnitAt](index){if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));if(dart.notNull(index)<0)dart.throw(new core.RangeError.value(index));if(dart.notNull(index)>=dart.notNull(this[dartx.length]))dart.throw(new core.RangeError.value(index));return dart.as(this.charCodeAt(index),core.int)}[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;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){if(string[dartx.codeUnitAt](dart.notNull(start)+dart.notNull(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(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 dart.as(_js_helper.stringReplaceAllUnchecked(this,from,to),core.String)}[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 dart.as(_js_helper.stringReplaceAllFuncUnchecked(this,from,onMatch,onNonMatch),core.String)}[dartx.replaceFirst](from,to,startIndex){if(startIndex===void 0)startIndex=0;_js_helper.checkString(to);_js_helper.checkInt(startIndex);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 dart.as(_js_helper.stringReplaceFirstUnchecked(this,from,to,startIndex),core.String)}[dartx.split](pattern){_js_helper.checkNull(pattern);if(typeof pattern=='string'){return dart.as(this.split(pattern),core.List$(core.String))}else if(dart.is(pattern,_js_helper.JSSyntaxRegExp)&&_js_helper.regExpCaptureCount(pattern)==0){let re=_js_helper.regExpGetNative(pattern);return dart.as(this.split(re),core.List$(core.String))}else{return this[_defaultSplit](pattern)}}[_defaultSplit](pattern){let result=dart.list([],core.String);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])||dart.notNull(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(dart.notNull(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.notNull(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.notNull(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=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=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=JSString._skipLeadingWhitespace(result,1)}}else{result=this;startIndex=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=JSString._skipTrailingWhitespace(result,dart.notNull(endIndex)-1)}}else{result=this;endIndex=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(!dart.equals(times,times>>>0)){dart.throw(dart.const(new core.OutOfMemoryError()))}let result='';let s=this;while(true){if((dart.notNull(times)&1)==1)result=s[dartx['+']](result);times=dart.as(times>>>1,core.int);if(times==0)break;s=s[dartx['+']](s)}return result}[dartx.padLeft](width,padding){if(padding===void 0)padding=' ';let delta=dart.notNull(width)-dart.notNull(this[dartx.length]);if(dart.notNull(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(dart.notNull(delta)<=0)return this;return this[dartx['+']](padding[dartx['*']](delta))}get[dartx.codeUnits](){return new _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(new core.ArgumentError(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 this.indexOf(pattern,start)}if(dart.is(pattern,_js_helper.JSSyntaxRegExp)){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(new core.ArgumentError(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 dart.as(_js_helper.stringLastIndexOfUnchecked(this,other,start),core.int)}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 dart.as(_js_helper.stringContainsUnchecked(this,other,startIndex),core.bool)}get[dartx.isEmpty](){return this[dartx.length]==0}get[dartx.isNotEmpty](){return!dart.notNull(this[dartx.isEmpty])}[dartx.compareTo](other){if(!(typeof other=='string'))dart.throw(new core.ArgumentError(other));return dart.equals(this,other)?0:this<other?-1:1}toString(){return this}get hashCode(){let hash=0;for(let i=0;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){hash=536870911&dart.notNull(hash)+this.charCodeAt(i);hash=536870911&dart.notNull(hash)+((524287&dart.notNull(hash))<<10);hash=hash^hash>>6}hash=536870911&dart.notNull(hash)+((67108863&dart.notNull(hash))<<3);hash=hash^hash>>11;return 536870911&dart.notNull(hash)+((16383&dart.notNull(hash))<<15)}get runtimeType(){return core.String}get[dartx.length](){return this.length}[dartx.get](index){if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));if(dart.notNull(index)>=dart.notNull(this[dartx.length])||dart.notNull(index)<0)dart.throw(new core.RangeError.value(index));return this[index]}};JSString[dart.implements]=()=>[core.String,JSIndexable];dart.setSignature(JSString,{constructors:()=>({JSString:[JSString,[]]}),methods:()=>({[dartx.get]:[core.String,[core.int]],[dartx.trimLeft]:[core.String,[]],[dartx.trim]:[core.String,[]],[dartx.toUpperCase]:[core.String,[]],[dartx.toLowerCase]:[core.String,[]],[dartx.trimRight]:[core.String,[]],[dartx.startsWith]:[core.bool,[core.Pattern],[core.int]],[_defaultSplit]:[core.List$(core.String),[core.Pattern]],[dartx.split]:[core.List$(core.String),[core.Pattern]],[dartx.replaceFirst]:[core.String,[core.Pattern,core.String],[core.int]],[dartx.splitMapJoin]:[core.String,[core.Pattern],{onMatch:dart.functionType(core.String,[core.Match]),onNonMatch:dart.functionType(core.String,[core.String])}],[dartx['*']]:[core.String,[core.int]],[dartx.replaceAllMapped]:[core.String,[core.Pattern,dart.functionType(core.String,[core.Match])]],[dartx.padLeft]:[core.String,[core.int],[core.String]],[dartx.replaceAll]:[core.String,[core.Pattern,core.String]],[dartx.padRight]:[core.String,[core.int],[core.String]],[dartx.endsWith]:[core.bool,[core.String]],[dartx.indexOf]:[core.int,[core.Pattern],[core.int]],[dartx['+']]:[core.String,[core.String]],[dartx.lastIndexOf]:[core.int,[core.Pattern],[core.int]],[dartx.matchAsPrefix]:[core.Match,[core.String],[core.int]],[dartx.contains]:[core.bool,[core.Pattern],[core.int]],[dartx.allMatches]:[core.Iterable$(core.Match),[core.String],[core.int]],[dartx.compareTo]:[core.int,[core.String]],[dartx.codeUnitAt]:[core.int,[core.int]],[dartx.substring]:[core.String,[core.int],[core.int]]}),names:['_isWhitespace','_skipLeadingWhitespace','_skipTrailingWhitespace'],statics:()=>({_isWhitespace:[core.bool,[core.int]],_skipLeadingWhitespace:[core.int,[core.String,core.int]],_skipTrailingWhitespace:[core.int,[core.String,core.int]]})});JSString[dart.metadata]=()=>[dart.const(new _js_helper.JsPeerInterface({name:'String'}))];dart.registerExtension(dart.global.String,JSString);let _string=Symbol('_string');class _CodeUnits extends _internal.UnmodifiableListBase$(core.int){_CodeUnits(string){this[_string]=string}get length(){return this[_string][dartx.length]}get(i){return this[_string][dartx.codeUnitAt](i)}}dart.setSignature(_CodeUnits,{constructors:()=>({_CodeUnits:[_CodeUnits,[core.String]]}),methods:()=>({get:[core.int,[core.int]]})});dart.defineExtensionMembers(_CodeUnits,['get','length']);function getInterceptor(obj){return obj}dart.fn(getInterceptor);dart.defineExtensionNames(['toString','hashCode','runtimeType']);class JSBool extends Interceptor{JSBool(){super.Interceptor()}toString(){return String(this)}get hashCode(){return this?2*3*23*3761:269*811}get runtimeType(){return core.bool}};JSBool[dart.implements]=()=>[core.bool];dart.setSignature(JSBool,{constructors:()=>({JSBool:[JSBool,[]]})});JSBool[dart.metadata]=()=>[dart.const(new _js_helper.JsPeerInterface({name:'Boolean'}))];dart.registerExtension(dart.global.Boolean,JSBool);class JSIndexable extends core.Object{};class JSMutableIndexable extends JSIndexable{};class JSObject extends core.Object{};class JavaScriptObject extends Interceptor{JavaScriptObject(){super.Interceptor()}get hashCode(){return 0}get runtimeType(){return JSObject}};JavaScriptObject[dart.implements]=()=>[JSObject];dart.setSignature(JavaScriptObject,{constructors:()=>({JavaScriptObject:[JavaScriptObject,[]]})});class PlainJavaScriptObject extends JavaScriptObject{PlainJavaScriptObject(){super.JavaScriptObject()}};dart.setSignature(PlainJavaScriptObject,{constructors:()=>({PlainJavaScriptObject:[PlainJavaScriptObject,[]]})});class UnknownJavaScriptObject extends JavaScriptObject{UnknownJavaScriptObject(){super.JavaScriptObject()}toString(){return String(this)}};dart.setSignature(UnknownJavaScriptObject,{constructors:()=>({UnknownJavaScriptObject:[UnknownJavaScriptObject,[]]})});exports.JSArray$=JSArray$;exports.JSArray=JSArray;exports.JSMutableArray$=JSMutableArray$;exports.JSMutableArray=JSMutableArray;exports.JSFixedArray$=JSFixedArray$;exports.JSFixedArray=JSFixedArray;exports.JSExtendableArray$=JSExtendableArray$;exports.JSExtendableArray=JSExtendableArray;exports.Interceptor=Interceptor;exports.JSNumber=JSNumber;exports.JSInt=JSInt;exports.JSDouble=JSDouble;exports.JSPositiveInt=JSPositiveInt;exports.JSUInt32=JSUInt32;exports.JSUInt31=JSUInt31;exports.JSString=JSString;exports.getInterceptor=getInterceptor;exports.JSBool=JSBool;exports.JSIndexable=JSIndexable;exports.JSMutableIndexable=JSMutableIndexable;exports.JSObject=JSObject;exports.JavaScriptObject=JavaScriptObject;exports.PlainJavaScriptObject=PlainJavaScriptObject;exports.UnknownJavaScriptObject=UnknownJavaScriptObject});dart_library.library('dart/_internal',null,["dart_runtime/dart",'dart/core','dart/collection'],['dart/math','dart/_interceptors','dart/_js_primitives'],function(exports,dart,core,collection,math,_interceptors,_js_primitives){'use strict';let dartx=dart.dartx;class EfficientLength extends core.Object{};let ListIterable$=dart.generic(function(E){class ListIterable extends collection.IterableBase$(E){ListIterable(){super.IterableBase()}get iterator(){return new(ListIterator$(E))(this)}forEach(action){dart.as(action,dart.functionType(dart.void,[E]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){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(IterableElementError.noElement());return this.elementAt(0)}get last(){if(this.length==0)dart.throw(IterableElementError.noElement());return this.elementAt(dart.notNull(this.length)-1)}get single(){if(this.length==0)dart.throw(IterableElementError.noElement());if(dart.notNull(this.length)>1)dart.throw(IterableElementError.tooMany());return this.elementAt(0)}contains(element){let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(dart.equals(this.elementAt(i),element))return true;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return false}every(test){dart.as(test,dart.functionType(core.bool,[E]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(!dart.notNull(test(this.elementAt(i))))return false;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return true}any(test){dart.as(test,dart.functionType(core.bool,[E]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(dart.notNull(test(this.elementAt(i))))return true;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return false}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let element=this.elementAt(i);if(dart.notNull(test(element)))return element;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}lastWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let length=this.length;for(let i=dart.notNull(length)-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){let element=this.elementAt(i);if(dart.notNull(test(element)))return element;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}singleWhere(test){dart.as(test,dart.functionType(core.bool,[E]));let length=this.length;let match=null;let matchFound=false;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let element=this.elementAt(i);if(dart.notNull(test(element))){if(dart.notNull(matchFound)){dart.throw(IterableElementError.tooMany())}matchFound=true;match=element}if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}if(dart.notNull(matchFound))return match;dart.throw(IterableElementError.noElement())}join(separator){if(separator===void 0)separator="";let length=this.length;if(!dart.notNull(separator[dartx.isEmpty])){if(length==0)return "";let first=`${this.elementAt(0)}`;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}let buffer=new core.StringBuffer(first);for(let i=1;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){buffer.write(separator);buffer.write(this.elementAt(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return dart.toString(buffer)}else{let buffer=new core.StringBuffer();for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){buffer.write(this.elementAt(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return dart.toString(buffer)}}where(test){dart.as(test,dart.functionType(core.bool,[E]));return super.where(test)}map(f){dart.as(f,dart.functionType(dart.dynamic,[E]));return new MappedListIterable(this,f)}reduce(combine){dart.as(combine,dart.functionType(E,[dart.dynamic,E]));let length=this.length;if(length==0)dart.throw(IterableElementError.noElement());let value=this.elementAt(0);for(let i=1;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){value=dart.dcall(combine,value,this.elementAt(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return value}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));let value=initialValue;let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){value=dart.dcall(combine,value,this.elementAt(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return value}skip(count){return new(SubListIterable$(E))(this,count,null)}skipWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return super.skipWhile(test)}take(count){return new(SubListIterable$(E))(this,0,count)}takeWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return super.takeWhile(test)}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;let result=null;if(dart.notNull(growable)){result=core.List$(E).new();result[dartx.length]=this.length}else{result=core.List$(E).new(this.length)}for(let i=0;dart.notNull(i)<dart.notNull(this.length);i=dart.notNull(i)+1){result[dartx.set](i,this.elementAt(i))}return result}toSet(){let result=core.Set$(E).new();for(let i=0;dart.notNull(i)<dart.notNull(this.length);i=dart.notNull(i)+1){result.add(this.elementAt(i))}return result}}ListIterable[dart.implements]=()=>[EfficientLength];dart.setSignature(ListIterable,{constructors:()=>({ListIterable:[ListIterable$(E),[]]}),methods:()=>({any:[core.bool,[dart.functionType(core.bool,[E])]],every:[core.bool,[dart.functionType(core.bool,[E])]],firstWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],fold:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],lastWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],map:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],reduce:[E,[dart.functionType(E,[dart.dynamic,E])]],singleWhere:[E,[dart.functionType(core.bool,[E])]],skip:[core.Iterable$(E),[core.int]],skipWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],take:[core.Iterable$(E),[core.int]],takeWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}],toSet:[core.Set$(E),[]],where:[core.Iterable$(E),[dart.functionType(core.bool,[E])]]})});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});let ListIterable=ListIterable$();let _iterable=dart.JsSymbol('_iterable');let _start=dart.JsSymbol('_start');let _endOrLength=dart.JsSymbol('_endOrLength');let _endIndex=dart.JsSymbol('_endIndex');let _startIndex=dart.JsSymbol('_startIndex');let SubListIterable$=dart.generic(function(E){class SubListIterable extends ListIterable$(E){SubListIterable(iterable,start,endOrLength){this[_iterable]=iterable;this[_start]=start;this[_endOrLength]=endOrLength;super.ListIterable();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||dart.notNull(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&&dart.notNull(newStart)>=dart.notNull(this[_endOrLength])){return new(EmptyIterable$(E))()}return new(SubListIterable$(E))(this[_iterable],newStart,this[_endOrLength])}take(count){core.RangeError.checkNotNegative(count,"count");if(this[_endOrLength]==null){return new(SubListIterable$(E))(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])<dart.notNull(newEnd))return this;return new(SubListIterable$(E))(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(dart.notNull(length)<0)length=0;let result=dart.notNull(growable)?(()=>{let _=core.List$(E).new();_[dartx.length]=length;return _})():core.List$(E).new(length);for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){result[dartx.set](i,this[_iterable][dartx.elementAt](dart.notNull(start)+dart.notNull(i)));if(dart.notNull(this[_iterable][dartx.length])<dart.notNull(end))dart.throw(new core.ConcurrentModificationError(this));}return dart.as(result,core.List$(E))}}dart.setSignature(SubListIterable,{constructors:()=>({SubListIterable:[SubListIterable$(E),[core.Iterable$(E),core.int,core.int]]}),methods:()=>({elementAt:[E,[core.int]],skip:[core.Iterable$(E),[core.int]],take:[core.Iterable$(E),[core.int]],toList:[core.List$(E),[],{growable:core.bool}]})});dart.defineExtensionMembers(SubListIterable,['elementAt','skip','take','toList','length']);return SubListIterable});let SubListIterable=SubListIterable$();let _length=dart.JsSymbol('_length');let _index=dart.JsSymbol('_index');let _current=dart.JsSymbol('_current');let ListIterator$=dart.generic(function(E){class ListIterator extends core.Object{ListIterator(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}}ListIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(ListIterator,{constructors:()=>({ListIterator:[ListIterator$(E),[core.Iterable$(E)]]}),methods:()=>({moveNext:[core.bool,[]]})});return ListIterator});let ListIterator=ListIterator$();let _Transformation$=dart.generic(function(S,T){let _Transformation=dart.typedef('_Transformation',()=>dart.functionType(T,[S]));return _Transformation});let _Transformation=_Transformation$();let _f=dart.JsSymbol('_f');let MappedIterable$=dart.generic(function(S,T){class MappedIterable extends collection.IterableBase$(T){static new(iterable,func){if(dart.is(iterable,EfficientLength)){return new(EfficientLengthMappedIterable$(S,T))(iterable,func)}return new(MappedIterable$(S,T))._(dart.as(iterable,core.Iterable$(S)),func)}_(iterable,f){this[_iterable]=iterable;this[_f]=f;super.IterableBase()}get iterator(){return new(MappedIterator$(S,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:()=>({_:[MappedIterable$(S,T),[core.Iterable$(S),dart.functionType(T,[S])]],new:[MappedIterable$(S,T),[core.Iterable,dart.functionType(T,[S])]]}),methods:()=>({elementAt:[T,[core.int]]})});dart.defineExtensionMembers(MappedIterable,['elementAt','iterator','length','isEmpty','first','last','single']);return MappedIterable});let MappedIterable=MappedIterable$();let EfficientLengthMappedIterable$=dart.generic(function(S,T){class EfficientLengthMappedIterable extends MappedIterable$(S,T){EfficientLengthMappedIterable(iterable,func){super._(dart.as(iterable,core.Iterable$(S)),func)}}EfficientLengthMappedIterable[dart.implements]=()=>[EfficientLength];dart.setSignature(EfficientLengthMappedIterable,{constructors:()=>({EfficientLengthMappedIterable:[EfficientLengthMappedIterable$(S,T),[core.Iterable,dart.functionType(T,[S])]]})});return EfficientLengthMappedIterable});let EfficientLengthMappedIterable=EfficientLengthMappedIterable$();let _iterator=dart.JsSymbol('_iterator');let MappedIterator$=dart.generic(function(S,T){class MappedIterator extends core.Iterator$(T){MappedIterator(iterator,f){this[_iterator]=iterator;this[_f]=f;this[_current]=null}moveNext(){if(dart.notNull(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:()=>({MappedIterator:[MappedIterator$(S,T),[core.Iterator$(S),dart.functionType(T,[S])]]}),methods:()=>({moveNext:[core.bool,[]]})});return MappedIterator});let MappedIterator=MappedIterator$();let _source=dart.JsSymbol('_source');let MappedListIterable$=dart.generic(function(S,T){class MappedListIterable extends ListIterable$(T){MappedListIterable(source,f){this[_source]=source;this[_f]=f;super.ListIterable()}get length(){return this[_source][dartx.length]}elementAt(index){return this[_f](this[_source][dartx.elementAt](index))}}MappedListIterable[dart.implements]=()=>[EfficientLength];dart.setSignature(MappedListIterable,{constructors:()=>({MappedListIterable:[MappedListIterable$(S,T),[core.Iterable$(S),dart.functionType(T,[S])]]}),methods:()=>({elementAt:[T,[core.int]]})});dart.defineExtensionMembers(MappedListIterable,['elementAt','length']);return MappedListIterable});let MappedListIterable=MappedListIterable$();let _ElementPredicate$=dart.generic(function(E){let _ElementPredicate=dart.typedef('_ElementPredicate',()=>dart.functionType(core.bool,[E]));return _ElementPredicate});let _ElementPredicate=_ElementPredicate$();let WhereIterable$=dart.generic(function(E){class WhereIterable extends collection.IterableBase$(E){WhereIterable(iterable,f){this[_iterable]=iterable;this[_f]=f;super.IterableBase()}get iterator(){return new(WhereIterator$(E))(this[_iterable][dartx.iterator],this[_f])}}dart.setSignature(WhereIterable,{constructors:()=>({WhereIterable:[WhereIterable$(E),[core.Iterable$(E),dart.functionType(core.bool,[E])]]})});dart.defineExtensionMembers(WhereIterable,['iterator']);return WhereIterable});let WhereIterable=WhereIterable$();let WhereIterator$=dart.generic(function(E){class WhereIterator extends core.Iterator$(E){WhereIterator(iterator,f){this[_iterator]=iterator;this[_f]=f}moveNext(){while(dart.notNull(this[_iterator].moveNext())){if(dart.notNull(this[_f](this[_iterator].current))){return true}}return false}get current(){return this[_iterator].current}}dart.setSignature(WhereIterator,{constructors:()=>({WhereIterator:[WhereIterator$(E),[core.Iterator$(E),dart.functionType(core.bool,[E])]]}),methods:()=>({moveNext:[core.bool,[]]})});return WhereIterator});let WhereIterator=WhereIterator$();let _ExpandFunction$=dart.generic(function(S,T){let _ExpandFunction=dart.typedef('_ExpandFunction',()=>dart.functionType(core.Iterable$(T),[S]));return _ExpandFunction});let _ExpandFunction=_ExpandFunction$();let ExpandIterable$=dart.generic(function(S,T){class ExpandIterable extends collection.IterableBase$(T){ExpandIterable(iterable,f){this[_iterable]=iterable;this[_f]=f;super.IterableBase()}get iterator(){return new(ExpandIterator$(S,T))(this[_iterable][dartx.iterator],dart.as(this[_f],__CastType0))}}dart.setSignature(ExpandIterable,{constructors:()=>({ExpandIterable:[ExpandIterable$(S,T),[core.Iterable$(S),dart.functionType(core.Iterable$(T),[S])]]})});dart.defineExtensionMembers(ExpandIterable,['iterator']);return ExpandIterable});let ExpandIterable=ExpandIterable$();let _currentExpansion=dart.JsSymbol('_currentExpansion');let _nextExpansion=dart.JsSymbol('_nextExpansion');let ExpandIterator$=dart.generic(function(S,T){class ExpandIterator extends core.Object{ExpandIterator(iterator,f){this[_iterator]=iterator;this[_f]=f;this[_currentExpansion]=dart.const(new(EmptyIterator$(T))());this[_current]=null}[_nextExpansion](){}get current(){return this[_current]}moveNext(){if(this[_currentExpansion]==null)return false;while(!dart.notNull(this[_currentExpansion].moveNext())){this[_current]=null;if(dart.notNull(this[_iterator].moveNext())){this[_currentExpansion]=null;this[_currentExpansion]=dart.as(dart.dcall(this[_f],this[_iterator].current)[dartx.iterator],core.Iterator$(T))}else{return false}}this[_current]=this[_currentExpansion].current;return true}}ExpandIterator[dart.implements]=()=>[core.Iterator$(T)];dart.setSignature(ExpandIterator,{constructors:()=>({ExpandIterator:[ExpandIterator$(S,T),[core.Iterator$(S),dart.functionType(core.Iterable$(T),[S])]]}),methods:()=>({[_nextExpansion]:[dart.void,[]],moveNext:[core.bool,[]]})});return ExpandIterator});let ExpandIterator=ExpandIterator$();let _takeCount=dart.JsSymbol('_takeCount');let TakeIterable$=dart.generic(function(E){class TakeIterable extends collection.IterableBase$(E){static new(iterable,takeCount){if(!(typeof takeCount=='number')||dart.notNull(takeCount)<0){dart.throw(new core.ArgumentError(takeCount))}if(dart.is(iterable,EfficientLength)){return new(EfficientLengthTakeIterable$(E))(iterable,takeCount)}return new(TakeIterable$(E))._(iterable,takeCount)}_(iterable,takeCount){this[_iterable]=iterable;this[_takeCount]=takeCount;super.IterableBase()}get iterator(){return new(TakeIterator$(E))(this[_iterable][dartx.iterator],this[_takeCount])}}dart.defineNamedConstructor(TakeIterable,'_');dart.setSignature(TakeIterable,{constructors:()=>({_:[TakeIterable$(E),[core.Iterable$(E),core.int]],new:[TakeIterable$(E),[core.Iterable$(E),core.int]]})});dart.defineExtensionMembers(TakeIterable,['iterator']);return TakeIterable});let TakeIterable=TakeIterable$();let EfficientLengthTakeIterable$=dart.generic(function(E){class EfficientLengthTakeIterable extends TakeIterable$(E){EfficientLengthTakeIterable(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]=()=>[EfficientLength];dart.setSignature(EfficientLengthTakeIterable,{constructors:()=>({EfficientLengthTakeIterable:[EfficientLengthTakeIterable$(E),[core.Iterable$(E),core.int]]})});dart.defineExtensionMembers(EfficientLengthTakeIterable,['length']);return EfficientLengthTakeIterable});let EfficientLengthTakeIterable=EfficientLengthTakeIterable$();let _remaining=dart.JsSymbol('_remaining');let TakeIterator$=dart.generic(function(E){class TakeIterator extends core.Iterator$(E){TakeIterator(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:()=>({TakeIterator:[TakeIterator$(E),[core.Iterator$(E),core.int]]}),methods:()=>({moveNext:[core.bool,[]]})});return TakeIterator});let TakeIterator=TakeIterator$();let TakeWhileIterable$=dart.generic(function(E){class TakeWhileIterable extends collection.IterableBase$(E){TakeWhileIterable(iterable,f){this[_iterable]=iterable;this[_f]=f;super.IterableBase()}get iterator(){return new(TakeWhileIterator$(E))(this[_iterable][dartx.iterator],this[_f])}}dart.setSignature(TakeWhileIterable,{constructors:()=>({TakeWhileIterable:[TakeWhileIterable$(E),[core.Iterable$(E),dart.functionType(core.bool,[E])]]})});dart.defineExtensionMembers(TakeWhileIterable,['iterator']);return TakeWhileIterable});let TakeWhileIterable=TakeWhileIterable$();let _isFinished=dart.JsSymbol('_isFinished');let TakeWhileIterator$=dart.generic(function(E){class TakeWhileIterator extends core.Iterator$(E){TakeWhileIterator(iterator,f){this[_iterator]=iterator;this[_f]=f;this[_isFinished]=false}moveNext(){if(dart.notNull(this[_isFinished]))return false;if(!dart.notNull(this[_iterator].moveNext())|| !dart.notNull(this[_f](this[_iterator].current))){this[_isFinished]=true;return false}return true}get current(){if(dart.notNull(this[_isFinished]))return null;return this[_iterator].current}}dart.setSignature(TakeWhileIterator,{constructors:()=>({TakeWhileIterator:[TakeWhileIterator$(E),[core.Iterator$(E),dart.functionType(core.bool,[E])]]}),methods:()=>({moveNext:[core.bool,[]]})});return TakeWhileIterator});let TakeWhileIterator=TakeWhileIterator$();let _skipCount=dart.JsSymbol('_skipCount');let SkipIterable$=dart.generic(function(E){class SkipIterable extends collection.IterableBase$(E){static new(iterable,count){if(dart.is(iterable,EfficientLength)){return new(EfficientLengthSkipIterable$(E))(iterable,count)}return new(SkipIterable$(E))._(iterable,count)}_(iterable,skipCount){this[_iterable]=iterable;this[_skipCount]=skipCount;super.IterableBase();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(SkipIterable$(E))._(this[_iterable],dart.notNull(this[_skipCount])+dart.notNull(count))}get iterator(){return new(SkipIterator$(E))(this[_iterable][dartx.iterator],this[_skipCount])}}dart.defineNamedConstructor(SkipIterable,'_');dart.setSignature(SkipIterable,{constructors:()=>({_:[SkipIterable$(E),[core.Iterable$(E),core.int]],new:[SkipIterable$(E),[core.Iterable$(E),core.int]]}),methods:()=>({skip:[core.Iterable$(E),[core.int]]})});dart.defineExtensionMembers(SkipIterable,['skip','iterator']);return SkipIterable});let SkipIterable=SkipIterable$();let EfficientLengthSkipIterable$=dart.generic(function(E){class EfficientLengthSkipIterable extends SkipIterable$(E){EfficientLengthSkipIterable(iterable,skipCount){super._(iterable,skipCount)}get length(){let length=dart.notNull(this[_iterable][dartx.length])-dart.notNull(this[_skipCount]);if(dart.notNull(length)>=0)return length;return 0}}EfficientLengthSkipIterable[dart.implements]=()=>[EfficientLength];dart.setSignature(EfficientLengthSkipIterable,{constructors:()=>({EfficientLengthSkipIterable:[EfficientLengthSkipIterable$(E),[core.Iterable$(E),core.int]]})});dart.defineExtensionMembers(EfficientLengthSkipIterable,['length']);return EfficientLengthSkipIterable});let EfficientLengthSkipIterable=EfficientLengthSkipIterable$();let SkipIterator$=dart.generic(function(E){class SkipIterator extends core.Iterator$(E){SkipIterator(iterator,skipCount){this[_iterator]=iterator;this[_skipCount]=skipCount;dart.assert(typeof this[_skipCount]=='number'&&dart.notNull(this[_skipCount])>=0)}moveNext(){for(let i=0;dart.notNull(i)<dart.notNull(this[_skipCount]);i=dart.notNull(i)+1)this[_iterator].moveNext();this[_skipCount]=0;return this[_iterator].moveNext()}get current(){return this[_iterator].current}}dart.setSignature(SkipIterator,{constructors:()=>({SkipIterator:[SkipIterator$(E),[core.Iterator$(E),core.int]]}),methods:()=>({moveNext:[core.bool,[]]})});return SkipIterator});let SkipIterator=SkipIterator$();let SkipWhileIterable$=dart.generic(function(E){class SkipWhileIterable extends collection.IterableBase$(E){SkipWhileIterable(iterable,f){this[_iterable]=iterable;this[_f]=f;super.IterableBase()}get iterator(){return new(SkipWhileIterator$(E))(this[_iterable][dartx.iterator],this[_f])}}dart.setSignature(SkipWhileIterable,{constructors:()=>({SkipWhileIterable:[SkipWhileIterable$(E),[core.Iterable$(E),dart.functionType(core.bool,[E])]]})});dart.defineExtensionMembers(SkipWhileIterable,['iterator']);return SkipWhileIterable});let SkipWhileIterable=SkipWhileIterable$();let _hasSkipped=dart.JsSymbol('_hasSkipped');let SkipWhileIterator$=dart.generic(function(E){class SkipWhileIterator extends core.Iterator$(E){SkipWhileIterator(iterator,f){this[_iterator]=iterator;this[_f]=f;this[_hasSkipped]=false}moveNext(){if(!dart.notNull(this[_hasSkipped])){this[_hasSkipped]=true;while(dart.notNull(this[_iterator].moveNext())){if(!dart.notNull(this[_f](this[_iterator].current)))return true;}}return this[_iterator].moveNext()}get current(){return this[_iterator].current}}dart.setSignature(SkipWhileIterator,{constructors:()=>({SkipWhileIterator:[SkipWhileIterator$(E),[core.Iterator$(E),dart.functionType(core.bool,[E])]]}),methods:()=>({moveNext:[core.bool,[]]})});return SkipWhileIterator});let SkipWhileIterator=SkipWhileIterator$();let EmptyIterable$=dart.generic(function(E){class EmptyIterable extends collection.IterableBase$(E){EmptyIterable(){super.IterableBase()}get iterator(){return dart.const(new(EmptyIterator$(E))())}forEach(action){dart.as(action,dart.functionType(dart.void,[E]))}get isEmpty(){return true}get length(){return 0}get first(){dart.throw(IterableElementError.noElement())}get last(){dart.throw(IterableElementError.noElement())}get single(){dart.throw(IterableElementError.noElement())}elementAt(index){dart.throw(new core.RangeError.range(index,0,0,"index"))}contains(element){return false}every(test){dart.as(test,dart.functionType(core.bool,[E]));return true}any(test){dart.as(test,dart.functionType(core.bool,[E]));return false}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}lastWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}singleWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}join(separator){if(separator===void 0)separator="";return ""}where(test){dart.as(test,dart.functionType(core.bool,[E]));return this}map(f){dart.as(f,dart.functionType(dart.dynamic,[E]));return dart.const(new(EmptyIterable$())())}reduce(combine){dart.as(combine,dart.functionType(E,[E,E]));dart.throw(IterableElementError.noElement())}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));return initialValue}skip(count){core.RangeError.checkNotNegative(count,"count");return this}skipWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return this}take(count){core.RangeError.checkNotNegative(count,"count");return this}takeWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return this}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;return dart.notNull(growable)?dart.list([],E):core.List$(E).new(0)}toSet(){return core.Set$(E).new()}}EmptyIterable[dart.implements]=()=>[EfficientLength];dart.setSignature(EmptyIterable,{constructors:()=>({EmptyIterable:[EmptyIterable$(E),[]]}),methods:()=>({any:[core.bool,[dart.functionType(core.bool,[E])]],elementAt:[E,[core.int]],every:[core.bool,[dart.functionType(core.bool,[E])]],firstWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],fold:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],lastWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],map:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],reduce:[E,[dart.functionType(E,[E,E])]],singleWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],skip:[core.Iterable$(E),[core.int]],skipWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],take:[core.Iterable$(E),[core.int]],takeWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}],toSet:[core.Set$(E),[]],where:[core.Iterable$(E),[dart.functionType(core.bool,[E])]]})});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});let EmptyIterable=EmptyIterable$();let EmptyIterator$=dart.generic(function(E){class EmptyIterator extends core.Object{EmptyIterator(){}moveNext(){return false}get current(){return null}}EmptyIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(EmptyIterator,{constructors:()=>({EmptyIterator:[EmptyIterator$(E),[]]}),methods:()=>({moveNext:[core.bool,[]]})});return EmptyIterator});let EmptyIterator=EmptyIterator$();let BidirectionalIterator$=dart.generic(function(T){class BidirectionalIterator extends core.Object{}BidirectionalIterator[dart.implements]=()=>[core.Iterator$(T)];return BidirectionalIterator});let BidirectionalIterator=BidirectionalIterator$();let IterableMixinWorkaround$=dart.generic(function(T){class IterableMixinWorkaround extends core.Object{static contains(iterable,element){for(let e of iterable){if(dart.equals(e,element))return true;}return false}static forEach(iterable,f){dart.as(f,dart.functionType(dart.void,[dart.dynamic]));for(let e of iterable){dart.dcall(f,e)}}static any(iterable,f){dart.as(f,dart.functionType(core.bool,[dart.dynamic]));for(let e of iterable){if(dart.notNull(dart.dcall(f,e)))return true;}return false}static every(iterable,f){dart.as(f,dart.functionType(core.bool,[dart.dynamic]));for(let e of iterable){if(!dart.notNull(dart.dcall(f,e)))return false;}return true}static reduce(iterable,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));let iterator=iterable[dartx.iterator];if(!dart.notNull(iterator.moveNext()))dart.throw(IterableElementError.noElement());let value=iterator.current;while(dart.notNull(iterator.moveNext())){value=dart.dcall(combine,value,iterator.current)}return value}static fold(iterable,initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));for(let element of iterable){initialValue=dart.dcall(combine,initialValue,element)}return initialValue}static removeWhereList(list,test){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));let retained=[];let length=list[dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let element=list[dartx.get](i);if(!dart.notNull(dart.dcall(test,element))){retained[dartx.add](element)}if(length!=list[dartx.length]){dart.throw(new core.ConcurrentModificationError(list))}}if(retained[dartx.length]==length)return;list[dartx.length]=retained[dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(retained[dartx.length]);i=dart.notNull(i)+1){list[dartx.set](i,retained[dartx.get](i))}}static isEmpty(iterable){return!dart.notNull(iterable[dartx.iterator].moveNext())}static first(iterable){let it=iterable[dartx.iterator];if(!dart.notNull(it.moveNext())){dart.throw(IterableElementError.noElement())}return it.current}static last(iterable){let it=iterable[dartx.iterator];if(!dart.notNull(it.moveNext())){dart.throw(IterableElementError.noElement())}let result=null;do{result=it.current}while(dart.notNull(it.moveNext()));return result}static single(iterable){let it=iterable[dartx.iterator];if(!dart.notNull(it.moveNext()))dart.throw(IterableElementError.noElement());let result=it.current;if(dart.notNull(it.moveNext()))dart.throw(IterableElementError.tooMany());return result}static firstWhere(iterable,test,orElse){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));dart.as(orElse,dart.functionType(dart.dynamic,[]));for(let element of iterable){if(dart.notNull(dart.dcall(test,element)))return element;}if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}static lastWhere(iterable,test,orElse){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));dart.as(orElse,dart.functionType(dart.dynamic,[]));let result=null;let foundMatching=false;for(let element of iterable){if(dart.notNull(dart.dcall(test,element))){result=element;foundMatching=true}}if(dart.notNull(foundMatching))return result;if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}static lastWhereList(list,test,orElse){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));dart.as(orElse,dart.functionType(dart.dynamic,[]));for(let i=dart.notNull(list[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){let element=list[dartx.get](i);if(dart.notNull(dart.dcall(test,element)))return element;}if(orElse!=null)return orElse();dart.throw(IterableElementError.noElement())}static singleWhere(iterable,test){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));let result=null;let foundMatching=false;for(let element of iterable){if(dart.notNull(dart.dcall(test,element))){if(dart.notNull(foundMatching)){dart.throw(IterableElementError.tooMany())}result=element;foundMatching=true}}if(dart.notNull(foundMatching))return result;dart.throw(IterableElementError.noElement())}static elementAt(iterable,index){if(!(typeof index=='number'))dart.throw(new core.ArgumentError.notNull("index"));core.RangeError.checkNotNegative(index,"index");let elementIndex=0;for(let element of iterable){if(index==elementIndex)return element;elementIndex=dart.notNull(elementIndex)+1}dart.throw(core.RangeError.index(index,iterable,"index",null,elementIndex))}static join(iterable,separator){if(separator===void 0)separator=null;let buffer=new core.StringBuffer();buffer.writeAll(iterable,separator);return dart.toString(buffer)}static joinList(list,separator){if(separator===void 0)separator=null;if(dart.notNull(list[dartx.isEmpty]))return "";if(list[dartx.length]==1)return `${list[dartx.get](0)}`;let buffer=new core.StringBuffer();if(dart.notNull(separator[dartx.isEmpty])){for(let i=0;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){buffer.write(list[dartx.get](i))}}else{buffer.write(list[dartx.get](0));for(let i=1;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){buffer.write(separator);buffer.write(list[dartx.get](i))}}return dart.toString(buffer)}where(iterable,f){dart.as(f,dart.functionType(core.bool,[dart.dynamic]));return new(WhereIterable$(T))(dart.as(iterable,core.Iterable$(T)),dart.as(f,__CastType2))}static map(iterable,f){dart.as(f,dart.functionType(dart.dynamic,[dart.dynamic]));return MappedIterable.new(iterable,f)}static mapList(list,f){dart.as(f,dart.functionType(dart.dynamic,[dart.dynamic]));return new MappedListIterable(list,f)}static expand(iterable,f){dart.as(f,dart.functionType(core.Iterable,[dart.dynamic]));return new ExpandIterable(iterable,f)}takeList(list,n){return new(SubListIterable$(T))(dart.as(list,core.Iterable$(T)),0,n)}takeWhile(iterable,test){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));return new(TakeWhileIterable$(T))(dart.as(iterable,core.Iterable$(T)),dart.as(test,dart.functionType(core.bool,[T])))}skipList(list,n){return new(SubListIterable$(T))(dart.as(list,core.Iterable$(T)),n,null)}skipWhile(iterable,test){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));return new(SkipWhileIterable$(T))(dart.as(iterable,core.Iterable$(T)),dart.as(test,dart.functionType(core.bool,[T])))}reversedList(list){return new(ReversedListIterable$(T))(dart.as(list,core.Iterable$(T)))}static sortList(list,compare){dart.as(compare,dart.functionType(core.int,[dart.dynamic,dart.dynamic]));if(compare==null)compare=core.Comparable.compare;Sort.sort(list,compare)}static shuffleList(list,random){if(random==null)random=math.Random.new();let length=list[dartx.length];while(dart.notNull(length)>1){let pos=random.nextInt(length);length=dart.notNull(length)-1;let tmp=list[dartx.get](length);list[dartx.set](length,list[dartx.get](pos));list[dartx.set](pos,tmp)}}static indexOfList(list,element,start){return Lists.indexOf(list,element,start,list[dartx.length])}static lastIndexOfList(list,element,start){if(start==null)start=dart.notNull(list[dartx.length])-1;return Lists.lastIndexOf(list,element,start)}static _rangeCheck(list,start,end){core.RangeError.checkValidRange(start,end,list[dartx.length])}getRangeList(list,start,end){IterableMixinWorkaround$()._rangeCheck(list,start,end);return new(SubListIterable$(T))(dart.as(list,core.Iterable$(T)),start,end)}static setRangeList(list,start,end,from,skipCount){IterableMixinWorkaround$()._rangeCheck(list,start,end);let length=dart.notNull(end)-dart.notNull(start);if(length==0)return;if(dart.notNull(skipCount)<0)dart.throw(new core.ArgumentError(skipCount));let otherList=null;let otherStart=null;if(dart.is(from,core.List)){otherList=from;otherStart=skipCount}else{otherList=from[dartx.skip](skipCount)[dartx.toList]({growable:false});otherStart=0}if(dart.notNull(otherStart)+dart.notNull(length)>dart.notNull(otherList[dartx.length])){dart.throw(IterableElementError.tooFew())}Lists.copy(otherList,otherStart,list,start,length)}static replaceRangeList(list,start,end,iterable){IterableMixinWorkaround$()._rangeCheck(list,start,end);if(!dart.is(iterable,EfficientLength)){iterable=iterable[dartx.toList]()}let removeLength=dart.notNull(end)-dart.notNull(start);let insertLength=iterable[dartx.length];if(dart.notNull(removeLength)>=dart.notNull(insertLength)){let delta=dart.notNull(removeLength)-dart.notNull(insertLength);let insertEnd=dart.notNull(start)+dart.notNull(insertLength);let newEnd=dart.notNull(list[dartx.length])-dart.notNull(delta);list[dartx.setRange](start,insertEnd,iterable);if(delta!=0){list[dartx.setRange](insertEnd,newEnd,list,end);list[dartx.length]=newEnd}}else{let delta=dart.notNull(insertLength)-dart.notNull(removeLength);let newLength=dart.notNull(list[dartx.length])+dart.notNull(delta);let insertEnd=dart.notNull(start)+dart.notNull(insertLength);list[dartx.length]=newLength;list[dartx.setRange](insertEnd,newLength,list,end);list[dartx.setRange](start,insertEnd,iterable)}}static fillRangeList(list,start,end,fillValue){IterableMixinWorkaround$()._rangeCheck(list,start,end);for(let i=start;dart.notNull(i)<dart.notNull(end);i=dart.notNull(i)+1){list[dartx.set](i,fillValue)}}static insertAllList(list,index,iterable){core.RangeError.checkValueInInterval(index,0,list[dartx.length],"index");if(!dart.is(iterable,EfficientLength)){iterable=iterable[dartx.toList]({growable:false})}let insertionLength=iterable[dartx.length];list[dartx.length]=dart.notNull(list[dartx.length])+dart.notNull(insertionLength);list[dartx.setRange](dart.notNull(index)+dart.notNull(insertionLength),list[dartx.length],list,index);for(let element of iterable){list[dartx.set]((()=>{let x=index;index=dart.notNull(x)+1;return x})(),element)}}static setAllList(list,index,iterable){core.RangeError.checkValueInInterval(index,0,list[dartx.length],"index");for(let element of iterable){list[dartx.set]((()=>{let x=index;index=dart.notNull(x)+1;return x})(),element)}}asMapList(l){return new(ListMapView$(T))(dart.as(l,core.List$(T)))}static setContainsAll(set,other){for(let element of other){if(!dart.notNull(set.contains(element)))return false;}return true}static setIntersection(set,other,result){let smaller=null;let larger=null;if(dart.notNull(set.length)<dart.notNull(other.length)){smaller=set;larger=other}else{smaller=other;larger=set}for(let element of smaller){if(dart.notNull(larger.contains(element))){result.add(element)}}return result}static setUnion(set,other,result){result.addAll(set);result.addAll(other);return result}static setDifference(set,other,result){for(let element of set){if(!dart.notNull(other.contains(element))){result.add(element)}}return result}}dart.setSignature(IterableMixinWorkaround,{methods:()=>({asMapList:[core.Map$(core.int,T),[core.List]],getRangeList:[core.Iterable$(T),[core.List,core.int,core.int]],reversedList:[core.Iterable$(T),[core.List]],skipList:[core.Iterable$(T),[core.List,core.int]],skipWhile:[core.Iterable$(T),[core.Iterable,dart.functionType(core.bool,[dart.dynamic])]],takeList:[core.Iterable$(T),[core.List,core.int]],takeWhile:[core.Iterable$(T),[core.Iterable,dart.functionType(core.bool,[dart.dynamic])]],where:[core.Iterable$(T),[core.Iterable,dart.functionType(core.bool,[dart.dynamic])]]}),names:['contains','forEach','any','every','reduce','fold','removeWhereList','isEmpty','first','last','single','firstWhere','lastWhere','lastWhereList','singleWhere','elementAt','join','joinList','map','mapList','expand','sortList','shuffleList','indexOfList','lastIndexOfList','_rangeCheck','setRangeList','replaceRangeList','fillRangeList','insertAllList','setAllList','setContainsAll','setIntersection','setUnion','setDifference'],statics:()=>({_rangeCheck:[dart.void,[core.List,core.int,core.int]],any:[core.bool,[core.Iterable,dart.functionType(core.bool,[dart.dynamic])]],contains:[core.bool,[core.Iterable,dart.dynamic]],elementAt:[dart.dynamic,[core.Iterable,core.int]],every:[core.bool,[core.Iterable,dart.functionType(core.bool,[dart.dynamic])]],expand:[core.Iterable,[core.Iterable,dart.functionType(core.Iterable,[dart.dynamic])]],fillRangeList:[dart.void,[core.List,core.int,core.int,dart.dynamic]],first:[dart.dynamic,[core.Iterable]],firstWhere:[dart.dynamic,[core.Iterable,dart.functionType(core.bool,[dart.dynamic]),dart.functionType(dart.dynamic,[])]],fold:[dart.dynamic,[core.Iterable,dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],forEach:[dart.void,[core.Iterable,dart.functionType(dart.void,[dart.dynamic])]],indexOfList:[core.int,[core.List,dart.dynamic,core.int]],insertAllList:[dart.void,[core.List,core.int,core.Iterable]],isEmpty:[core.bool,[core.Iterable]],join:[core.String,[core.Iterable],[core.String]],joinList:[core.String,[core.List],[core.String]],last:[dart.dynamic,[core.Iterable]],lastIndexOfList:[core.int,[core.List,dart.dynamic,core.int]],lastWhere:[dart.dynamic,[core.Iterable,dart.functionType(core.bool,[dart.dynamic]),dart.functionType(dart.dynamic,[])]],lastWhereList:[dart.dynamic,[core.List,dart.functionType(core.bool,[dart.dynamic]),dart.functionType(dart.dynamic,[])]],map:[core.Iterable,[core.Iterable,dart.functionType(dart.dynamic,[dart.dynamic])]],mapList:[core.Iterable,[core.List,dart.functionType(dart.dynamic,[dart.dynamic])]],reduce:[dart.dynamic,[core.Iterable,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],removeWhereList:[dart.void,[core.List,dart.functionType(core.bool,[dart.dynamic])]],replaceRangeList:[dart.void,[core.List,core.int,core.int,core.Iterable]],setAllList:[dart.void,[core.List,core.int,core.Iterable]],setContainsAll:[core.bool,[core.Set,core.Iterable]],setDifference:[core.Set,[core.Set,core.Set,core.Set]],setIntersection:[core.Set,[core.Set,core.Set,core.Set]],setRangeList:[dart.void,[core.List,core.int,core.int,core.Iterable,core.int]],setUnion:[core.Set,[core.Set,core.Set,core.Set]],shuffleList:[dart.void,[core.List,math.Random]],single:[dart.dynamic,[core.Iterable]],singleWhere:[dart.dynamic,[core.Iterable,dart.functionType(core.bool,[dart.dynamic])]],sortList:[dart.void,[core.List,dart.functionType(core.int,[dart.dynamic,dart.dynamic])]]})});return IterableMixinWorkaround});let IterableMixinWorkaround=IterableMixinWorkaround$();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(IterableElementError,{names:['noElement','tooMany','tooFew'],statics:()=>({noElement:[core.StateError,[]],tooFew:[core.StateError,[]],tooMany:[core.StateError,[]]})});let __CastType0$=dart.generic(function(S,T){let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.Iterable$(T),[S]));return __CastType0});let __CastType0=__CastType0$();let __CastType2$=dart.generic(function(T){let __CastType2=dart.typedef('__CastType2',()=>dart.functionType(core.bool,[T]));return __CastType2});let __CastType2=__CastType2$();let FixedLengthListMixin$=dart.generic(function(E){class FixedLengthListMixin extends core.Object{set length(newLength){dart.throw(new core.UnsupportedError("Cannot change the length of a fixed-length list"))}add(value){dart.as(value,E);dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"))}insert(index,value){dart.as(value,E);dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"))}insertAll(at,iterable){dart.as(iterable,core.Iterable$(E));dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"))}addAll(iterable){dart.as(iterable,core.Iterable$(E));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.as(test,dart.functionType(core.bool,[E]));dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"))}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));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){dart.as(iterable,core.Iterable$(E));dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"))}}dart.setSignature(FixedLengthListMixin,{methods:()=>({add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],clear:[dart.void,[]],insert:[dart.void,[core.int,E]],insertAll:[dart.void,[core.int,core.Iterable$(E)]],remove:[core.bool,[core.Object]],removeAt:[E,[core.int]],removeLast:[E,[]],removeRange:[dart.void,[core.int,core.int]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],replaceRange:[dart.void,[core.int,core.int,core.Iterable$(E)]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]]})});return FixedLengthListMixin});let FixedLengthListMixin=FixedLengthListMixin$();let UnmodifiableListMixin$=dart.generic(function(E){class UnmodifiableListMixin extends core.Object{set(index,value){dart.as(value,E);dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"))}set length(newLength){dart.throw(new core.UnsupportedError("Cannot change the length of an unmodifiable list"))}setAll(at,iterable){dart.as(iterable,core.Iterable$(E));dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"))}add(value){dart.as(value,E);dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"))}insert(index,value){dart.as(value,E);dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"))}insertAll(at,iterable){dart.as(iterable,core.Iterable$(E));dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"))}addAll(iterable){dart.as(iterable,core.Iterable$(E));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.as(test,dart.functionType(core.bool,[E]));dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"))}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"))}sort(compare){if(compare===void 0)compare=null;dart.as(compare,core.Comparator$(E));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){dart.as(iterable,core.Iterable$(E));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){dart.as(iterable,core.Iterable$(E));dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"))}fillRange(start,end,fillValue){if(fillValue===void 0)fillValue=null;dart.as(fillValue,E);dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"))}}UnmodifiableListMixin[dart.implements]=()=>[core.List$(E)];dart.setSignature(UnmodifiableListMixin,{methods:()=>({add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],clear:[dart.void,[]],fillRange:[dart.void,[core.int,core.int],[E]],insert:[E,[core.int,E]],insertAll:[dart.void,[core.int,core.Iterable$(E)]],remove:[core.bool,[core.Object]],removeAt:[E,[core.int]],removeLast:[E,[]],removeRange:[dart.void,[core.int,core.int]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],replaceRange:[dart.void,[core.int,core.int,core.Iterable$(E)]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]],set:[dart.void,[core.int,E]],setAll:[dart.void,[core.int,core.Iterable$(E)]],setRange:[dart.void,[core.int,core.int,core.Iterable$(E)],[core.int]],shuffle:[dart.void,[],[math.Random]],sort:[dart.void,[],[core.Comparator$(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});let UnmodifiableListMixin=UnmodifiableListMixin$();let FixedLengthListBase$=dart.generic(function(E){class FixedLengthListBase extends dart.mixin(collection.ListBase$(E),FixedLengthListMixin$(E)){FixedLengthListBase(){super.ListBase(...arguments)}}return FixedLengthListBase});let FixedLengthListBase=FixedLengthListBase$();let UnmodifiableListBase$=dart.generic(function(E){class UnmodifiableListBase extends dart.mixin(collection.ListBase$(E),UnmodifiableListMixin$(E)){UnmodifiableListBase(){super.ListBase(...arguments)}}return UnmodifiableListBase});let UnmodifiableListBase=UnmodifiableListBase$();let _backedList=dart.JsSymbol('_backedList');class _ListIndicesIterable extends ListIterable$(core.int){_ListIndicesIterable(backedList){this[_backedList]=backedList;super.ListIterable()}get length(){return this[_backedList][dartx.length]}elementAt(index){core.RangeError.checkValidIndex(index,this);return index}}dart.setSignature(_ListIndicesIterable,{constructors:()=>({_ListIndicesIterable:[_ListIndicesIterable,[core.List]]}),methods:()=>({elementAt:[core.int,[core.int]]})});dart.defineExtensionMembers(_ListIndicesIterable,['elementAt','length']);let _values=dart.JsSymbol('_values');let ListMapView$=dart.generic(function(E){class ListMapView extends core.Object{ListMapView(values){this[_values]=values}get(key){return dart.notNull(this.containsKey(key))?this[_values][dartx.get](dart.as(key,core.int)):null}get length(){return this[_values][dartx.length]}get values(){return new(SubListIterable$(E))(this[_values],0,null)}get keys(){return new _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){dart.as(f,dart.functionType(dart.void,[core.int,E]));let length=this[_values][dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){f(i,this[_values][dartx.get](i));if(length!=this[_values][dartx.length]){dart.throw(new core.ConcurrentModificationError(this[_values]))}}}set(key,value){dart.as(value,E);dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"))}putIfAbsent(key,ifAbsent){dart.as(ifAbsent,dart.functionType(E,[]));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){dart.as(other,core.Map$(core.int,E));dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"))}toString(){return collection.Maps.mapToString(this)}}ListMapView[dart.implements]=()=>[core.Map$(core.int,E)];dart.setSignature(ListMapView,{constructors:()=>({ListMapView:[ListMapView$(E),[core.List$(E)]]}),methods:()=>({addAll:[dart.void,[core.Map$(core.int,E)]],clear:[dart.void,[]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[core.int,E])]],get:[E,[core.Object]],putIfAbsent:[E,[core.int,dart.functionType(E,[])]],remove:[E,[core.Object]],set:[dart.void,[core.int,E]]})});return ListMapView});let ListMapView=ListMapView$();let ReversedListIterable$=dart.generic(function(E){class ReversedListIterable extends ListIterable$(E){ReversedListIterable(source){this[_source]=source;super.ListIterable()}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:()=>({ReversedListIterable:[ReversedListIterable$(E),[core.Iterable$(E)]]}),methods:()=>({elementAt:[E,[core.int]]})});dart.defineExtensionMembers(ReversedListIterable,['elementAt','length']);return ReversedListIterable});let ReversedListIterable=ReversedListIterable$();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(UnmodifiableListError,{names:['add','change','length','remove'],statics:()=>({add:[core.UnsupportedError,[]],change:[core.UnsupportedError,[]],length:[core.UnsupportedError,[]],remove:[core.UnsupportedError,[]]})});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(NonGrowableListError,{names:['add','length','remove'],statics:()=>({add:[core.UnsupportedError,[]],length:[core.UnsupportedError,[]],remove:[core.UnsupportedError,[]]})});function makeListFixedLength(growableList){_interceptors.JSArray.markFixedList(growableList);return growableList}dart.fn(makeListFixedLength,core.List,[core.List]);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;dart.notNull(i)>=dart.notNull(srcStart);i=dart.notNull(i)-1,j=dart.notNull(j)-1){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(dart.notNull(core.identical(a,b)))return true;if(!dart.is(b,core.List))return false;let length=a[dartx.length];if(!dart.equals(length,dart.dload(b,'length')))return false;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(!dart.notNull(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=`${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(Lists,{names:['copy','areEqual','indexOf','lastIndexOf','indicesCheck','rangeCheck'],statics:()=>({areEqual:[core.bool,[core.List,dart.dynamic]],copy:[dart.void,[core.List,core.int,core.List,core.int,core.int]],indexOf:[core.int,[core.List,core.Object,core.int,core.int]],indicesCheck:[dart.void,[core.List,core.int,core.int]],lastIndexOf:[core.int,[core.List,core.Object,core.int]],rangeCheck:[dart.void,[core.List,core.int,core.int]]})});exports.printToZone=null;function printToConsole(line){_js_primitives.printString(`${line }`)}dart.fn(printToConsole,dart.void,[core.String]);class Sort extends core.Object{static sort(a,compare){Sort._doSort(a,0,dart.notNull(a[dartx.length])-1,compare)}static sortRange(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")}Sort._doSort(a,from,dart.notNull(to)-1,compare)}static _doSort(a,left,right,compare){if(dart.notNull(right)-dart.notNull(left)<=dart.notNull(Sort._INSERTION_SORT_THRESHOLD)){Sort._insertionSort(a,left,right,compare)}else{Sort._dualPivotQuicksort(a,left,right,compare)}}static _insertionSort(a,left,right,compare){for(let i=dart.notNull(left)+1;dart.notNull(i)<=dart.notNull(right);i=dart.notNull(i)+1){let el=a[dartx.get](i);let j=i;while(dart.notNull(j)>dart.notNull(left)&&dart.notNull(dart.dcall(compare,a[dartx.get](dart.notNull(j)-1),el))>0){a[dartx.set](j,a[dartx.get](dart.notNull(j)-1));j=dart.notNull(j)-1}a[dartx.set](j,el)}}static _dualPivotQuicksort(a,left,right,compare){dart.assert(dart.notNull(right)-dart.notNull(left)>dart.notNull(Sort._INSERTION_SORT_THRESHOLD));let sixth=((dart.notNull(right)-dart.notNull(left)+1)/6)[dartx.truncate]();let index1=dart.notNull(left)+dart.notNull(sixth);let index5=dart.notNull(right)-dart.notNull(sixth);let index3=((dart.notNull(left)+dart.notNull(right))/2)[dartx.truncate]();let index2=dart.notNull(index3)-dart.notNull(sixth);let index4=dart.notNull(index3)+dart.notNull(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(dart.dcall(compare,el1,el2))>0){let t=el1;el1=el2;el2=t}if(dart.notNull(dart.dcall(compare,el4,el5))>0){let t=el4;el4=el5;el5=t}if(dart.notNull(dart.dcall(compare,el1,el3))>0){let t=el1;el1=el3;el3=t}if(dart.notNull(dart.dcall(compare,el2,el3))>0){let t=el2;el2=el3;el3=t}if(dart.notNull(dart.dcall(compare,el1,el4))>0){let t=el1;el1=el4;el4=t}if(dart.notNull(dart.dcall(compare,el3,el4))>0){let t=el3;el3=el4;el4=t}if(dart.notNull(dart.dcall(compare,el2,el5))>0){let t=el2;el2=el5;el5=t}if(dart.notNull(dart.dcall(compare,el2,el3))>0){let t=el2;el2=el3;el3=t}if(dart.notNull(dart.dcall(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=dart.dcall(compare,pivot1,pivot2)==0;if(dart.notNull(pivots_are_equal)){let pivot=pivot1;for(let k=less;dart.notNull(k)<=dart.notNull(great);k=dart.notNull(k)+1){let ak=a[dartx.get](k);let comp=dart.dcall(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=dart.notNull(less)+1}else{while(true){comp=dart.dcall(compare,a[dartx.get](great),pivot);if(dart.notNull(comp)>0){great=dart.notNull(great)-1;continue}else if(dart.notNull(comp)<0){a[dartx.set](k,a[dartx.get](less));a[dartx.set]((()=>{let x=less;less=dart.notNull(x)+1;return x})(),a[dartx.get](great));a[dartx.set]((()=>{let x=great;great=dart.notNull(x)-1;return x})(),ak);break}else{a[dartx.set](k,a[dartx.get](great));a[dartx.set]((()=>{let x=great;great=dart.notNull(x)-1;return x})(),ak);break}}}}}else{for(let k=less;dart.notNull(k)<=dart.notNull(great);k=dart.notNull(k)+1){let ak=a[dartx.get](k);let comp_pivot1=dart.dcall(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=dart.notNull(less)+1}else{let comp_pivot2=dart.dcall(compare,ak,pivot2);if(dart.notNull(comp_pivot2)>0){while(true){let comp=dart.dcall(compare,a[dartx.get](great),pivot2);if(dart.notNull(comp)>0){great=dart.notNull(great)-1;if(dart.notNull(great)<dart.notNull(k))break;continue}else{comp=dart.dcall(compare,a[dartx.get](great),pivot1);if(dart.notNull(comp)<0){a[dartx.set](k,a[dartx.get](less));a[dartx.set]((()=>{let x=less;less=dart.notNull(x)+1;return x})(),a[dartx.get](great));a[dartx.set]((()=>{let x=great;great=dart.notNull(x)-1;return x})(),ak)}else{a[dartx.set](k,a[dartx.get](great));a[dartx.set]((()=>{let x=great;great=dart.notNull(x)-1;return x})(),ak)}break}}}}}}a[dartx.set](left,a[dartx.get](dart.notNull(less)-1));a[dartx.set](dart.notNull(less)-1,pivot1);a[dartx.set](right,a[dartx.get](dart.notNull(great)+1));a[dartx.set](dart.notNull(great)+1,pivot2);Sort._doSort(a,left,dart.notNull(less)-2,compare);Sort._doSort(a,dart.notNull(great)+2,right,compare);if(dart.notNull(pivots_are_equal)){return}if(dart.notNull(less)<dart.notNull(index1)&&dart.notNull(great)>dart.notNull(index5)){while(dart.dcall(compare,a[dartx.get](less),pivot1)==0){less=dart.notNull(less)+1}while(dart.dcall(compare,a[dartx.get](great),pivot2)==0){great=dart.notNull(great)-1}for(let k=less;dart.notNull(k)<=dart.notNull(great);k=dart.notNull(k)+1){let ak=a[dartx.get](k);let comp_pivot1=dart.dcall(compare,ak,pivot1);if(comp_pivot1==0){if(k!=less){a[dartx.set](k,a[dartx.get](less));a[dartx.set](less,ak)}less=dart.notNull(less)+1}else{let comp_pivot2=dart.dcall(compare,ak,pivot2);if(comp_pivot2==0){while(true){let comp=dart.dcall(compare,a[dartx.get](great),pivot2);if(comp==0){great=dart.notNull(great)-1;if(dart.notNull(great)<dart.notNull(k))break;continue}else{comp=dart.dcall(compare,a[dartx.get](great),pivot1);if(dart.notNull(comp)<0){a[dartx.set](k,a[dartx.get](less));a[dartx.set]((()=>{let x=less;less=dart.notNull(x)+1;return x})(),a[dartx.get](great));a[dartx.set]((()=>{let x=great;great=dart.notNull(x)-1;return x})(),ak)}else{a[dartx.set](k,a[dartx.get](great));a[dartx.set]((()=>{let x=great;great=dart.notNull(x)-1;return x})(),ak)}break}}}}}Sort._doSort(a,less,great,compare)}else{Sort._doSort(a,less,great,compare)}}};dart.setSignature(Sort,{names:['sort','sortRange','_doSort','_insertionSort','_dualPivotQuicksort'],statics:()=>({_doSort:[dart.void,[core.List,core.int,core.int,dart.functionType(core.int,[dart.dynamic,dart.dynamic])]],_dualPivotQuicksort:[dart.void,[core.List,core.int,core.int,dart.functionType(core.int,[dart.dynamic,dart.dynamic])]],_insertionSort:[dart.void,[core.List,core.int,core.int,dart.functionType(core.int,[dart.dynamic,dart.dynamic])]],sort:[dart.void,[core.List,dart.functionType(core.int,[dart.dynamic,dart.dynamic])]],sortRange:[dart.void,[core.List,core.int,core.int,dart.functionType(core.int,[dart.dynamic,dart.dynamic])]]})});Sort._INSERTION_SORT_THRESHOLD=32;let _name=dart.JsSymbol('_name');class Symbol extends core.Object{Symbol(name){this[_name]=name}unvalidated(name){this[_name]=name}validated(name){this[_name]=Symbol.validatePublicSymbol(name)}['=='](other){return dart.is(other,Symbol)&&this[_name]==other[_name]}get hashCode(){let arbitraryPrime=664597;return 536870911&dart.notNull(arbitraryPrime)*dart.notNull(dart.hashCode(this[_name]))}toString(){return `Symbol("${this[_name]}")`}static getName(symbol){return symbol[_name]}static validatePublicSymbol(name){if(dart.notNull(name[dartx.isEmpty])||dart.notNull(Symbol.publicSymbolPattern.hasMatch(name)))return name;if(dart.notNull(name[dartx.startsWith]('_'))){dart.throw(new core.ArgumentError(`"${name }" is a private identifier`))}dart.throw(new core.ArgumentError(`"${name }" is not a valid (qualified) symbol name`))}static isValidSymbol(name){return dart.notNull(name[dartx.isEmpty])||dart.notNull(Symbol.symbolPattern.hasMatch(name))}};Symbol[dart.implements]=()=>[core.Symbol];dart.defineNamedConstructor(Symbol,'unvalidated');dart.defineNamedConstructor(Symbol,'validated');dart.setSignature(Symbol,{constructors:()=>({Symbol:[Symbol,[core.String]],unvalidated:[Symbol,[core.String]],validated:[Symbol,[core.String]]}),methods:()=>({'==':[core.bool,[core.Object]]}),names:['getName','validatePublicSymbol','isValidSymbol'],statics:()=>({getName:[core.String,[Symbol]],isValidSymbol:[core.bool,[core.String]],validatePublicSymbol:[core.String,[core.String]]})});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))';Symbol.publicIdentifierRE='(?!'+`${Symbol.reservedWordRE }`+'\\b(?!\\$))[a-zA-Z$][\\w$]*';Symbol.identifierRE='(?!'+`${Symbol.reservedWordRE }`+'\\b(?!\\$))[a-zA-Z$_][\\w$]*';Symbol.operatorRE='(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)';let POWERS_OF_TEN=dart.const([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]);dart.defineLazyProperties(Symbol,{get symbolPattern(){return core.RegExp.new(`^(?:${Symbol.operatorRE }$|${Symbol.identifierRE }(?:=?$|[.](?!$)))+?$`)},get publicSymbolPattern(){return core.RegExp.new(`^(?:${Symbol.operatorRE }$|${Symbol.publicIdentifierRE }(?:=?$|[.](?!$)))+?$`)}});exports.EfficientLength=EfficientLength;exports.ListIterable$=ListIterable$;exports.ListIterable=ListIterable;exports.SubListIterable$=SubListIterable$;exports.SubListIterable=SubListIterable;exports.ListIterator$=ListIterator$;exports.ListIterator=ListIterator;exports.MappedIterable$=MappedIterable$;exports.MappedIterable=MappedIterable;exports.EfficientLengthMappedIterable$=EfficientLengthMappedIterable$;exports.EfficientLengthMappedIterable=EfficientLengthMappedIterable;exports.MappedIterator$=MappedIterator$;exports.MappedIterator=MappedIterator;exports.MappedListIterable$=MappedListIterable$;exports.MappedListIterable=MappedListIterable;exports.WhereIterable$=WhereIterable$;exports.WhereIterable=WhereIterable;exports.WhereIterator$=WhereIterator$;exports.WhereIterator=WhereIterator;exports.ExpandIterable$=ExpandIterable$;exports.ExpandIterable=ExpandIterable;exports.ExpandIterator$=ExpandIterator$;exports.ExpandIterator=ExpandIterator;exports.TakeIterable$=TakeIterable$;exports.TakeIterable=TakeIterable;exports.EfficientLengthTakeIterable$=EfficientLengthTakeIterable$;exports.EfficientLengthTakeIterable=EfficientLengthTakeIterable;exports.TakeIterator$=TakeIterator$;exports.TakeIterator=TakeIterator;exports.TakeWhileIterable$=TakeWhileIterable$;exports.TakeWhileIterable=TakeWhileIterable;exports.TakeWhileIterator$=TakeWhileIterator$;exports.TakeWhileIterator=TakeWhileIterator;exports.SkipIterable$=SkipIterable$;exports.SkipIterable=SkipIterable;exports.EfficientLengthSkipIterable$=EfficientLengthSkipIterable$;exports.EfficientLengthSkipIterable=EfficientLengthSkipIterable;exports.SkipIterator$=SkipIterator$;exports.SkipIterator=SkipIterator;exports.SkipWhileIterable$=SkipWhileIterable$;exports.SkipWhileIterable=SkipWhileIterable;exports.SkipWhileIterator$=SkipWhileIterator$;exports.SkipWhileIterator=SkipWhileIterator;exports.EmptyIterable$=EmptyIterable$;exports.EmptyIterable=EmptyIterable;exports.EmptyIterator$=EmptyIterator$;exports.EmptyIterator=EmptyIterator;exports.BidirectionalIterator$=BidirectionalIterator$;exports.BidirectionalIterator=BidirectionalIterator;exports.IterableMixinWorkaround$=IterableMixinWorkaround$;exports.IterableMixinWorkaround=IterableMixinWorkaround;exports.IterableElementError=IterableElementError;exports.FixedLengthListMixin$=FixedLengthListMixin$;exports.FixedLengthListMixin=FixedLengthListMixin;exports.UnmodifiableListMixin$=UnmodifiableListMixin$;exports.UnmodifiableListMixin=UnmodifiableListMixin;exports.FixedLengthListBase$=FixedLengthListBase$;exports.FixedLengthListBase=FixedLengthListBase;exports.UnmodifiableListBase$=UnmodifiableListBase$;exports.UnmodifiableListBase=UnmodifiableListBase;exports.ListMapView$=ListMapView$;exports.ListMapView=ListMapView;exports.ReversedListIterable$=ReversedListIterable$;exports.ReversedListIterable=ReversedListIterable;exports.UnmodifiableListError=UnmodifiableListError;exports.NonGrowableListError=NonGrowableListError;exports.makeListFixedLength=makeListFixedLength;exports.Lists=Lists;exports.printToConsole=printToConsole;exports.Sort=Sort;exports.Symbol=Symbol;exports.POWERS_OF_TEN=POWERS_OF_TEN});dart_library.library('dart/_isolate_helper',null,["dart_runtime/dart",'dart/core','dart/_interceptors','dart/_js_helper','dart/isolate','dart/_foreign_helper','dart/collection','dart/async'],['dart/_native_typed_data','dart/_js_embedded_names'],function(exports,dart,core,_interceptors,_js_helper,isolate,_foreign_helper,collection,async,_native_typed_data,_js_embedded_names){'use strict';let dartx=dart.dartx;function _serializeMessage(message){return new _Serializer().serialize(message)}dart.fn(_serializeMessage);function _deserializeMessage(message){return new _Deserializer().deserialize(message)}dart.fn(_deserializeMessage);function _clone(message){let serializer=new _Serializer({serializeSendPorts:false});let deserializer=new _Deserializer();return deserializer.deserialize(serializer.serialize(message))}dart.fn(_clone);let _serializeSendPorts=Symbol('_serializeSendPorts');let _workerId=Symbol('_workerId');let _isolateId=Symbol('_isolateId');let _receivePortId=Symbol('_receivePortId');let _id=Symbol('_id');let _receivePort=Symbol('_receivePort');class _Serializer extends core.Object{_Serializer(opts){let serializeSendPorts=opts&&'serializeSendPorts'in opts?opts.serializeSendPorts:true;this.serializedObjectIds=core.Map$(dart.dynamic,core.int).identity();this[_serializeSendPorts]=dart.as(serializeSendPorts,core.bool)}serialize(x){if(dart.notNull(this.isPrimitive(x)))return this.serializePrimitive(x);let serializationId=this.serializedObjectIds.get(x);if(serializationId!=null)return this.makeRef(serializationId);serializationId=this.serializedObjectIds.length;this.serializedObjectIds.set(x,serializationId);if(dart.is(x,_native_typed_data.NativeByteBuffer))return this.serializeByteBuffer(dart.as(x,_native_typed_data.NativeByteBuffer));if(dart.is(x,_native_typed_data.NativeTypedData))return this.serializeTypedData(dart.as(x,_native_typed_data.NativeTypedData));if(dart.is(x,_interceptors.JSIndexable))return this.serializeJSIndexable(dart.as(x,_interceptors.JSIndexable));if(dart.is(x,_js_helper.InternalMap))return this.serializeMap(dart.as(x,core.Map));if(dart.is(x,_interceptors.JSObject))return this.serializeJSObject(dart.as(x,_interceptors.JSObject));if(dart.is(x,_interceptors.Interceptor))this.unsupported(x);if(dart.is(x,isolate.RawReceivePort)){this.unsupported(x,"RawReceivePorts can't be transmitted:")}if(dart.is(x,_NativeJsSendPort))return this.serializeJsSendPort(dart.as(x,_NativeJsSendPort));if(dart.is(x,_WorkerSendPort))return this.serializeWorkerSendPort(dart.as(x,_WorkerSendPort));if(dart.is(x,core.Function))return this.serializeClosure(dart.as(x,core.Function));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(`${message } ${x }`))}makeRef(serializationId){return["ref",serializationId]}isPrimitive(x){return x==null||typeof x=='string'||dart.is(x,core.num)||typeof x=='boolean'}serializePrimitive(primitive){return primitive}serializeByteBuffer(buffer){return["buffer",buffer]}serializeTypedData(data){return["typed",data]}serializeJSIndexable(indexable){dart.assert(!(typeof indexable=='string'));let serialized=dart.as(this.serializeArray(dart.as(indexable,_interceptors.JSArray)),core.List);if(dart.is(indexable,_interceptors.JSFixedArray))return["fixed",serialized];if(dart.is(indexable,_interceptors.JSExtendableArray))return["extendable",serialized];if(dart.is(indexable,_interceptors.JSMutableArray))return["mutable",serialized];if(dart.is(indexable,_interceptors.JSArray))return["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;dart.notNull(i)<dart.notNull(x[dartx.length]);i=dart.notNull(i)+1){serialized[dartx.set](i,this.serialize(x[dartx.get](i)))}return serialized}serializeArrayInPlace(x){for(let i=0;dart.notNull(i)<dart.notNull(x[dartx.length]);i=dart.notNull(i)+1){x[dartx.set](i,this.serialize(x[dartx.get](i)))}return x}serializeMap(x){let serializeTearOff=dart.bind(this,'serialize');return['map',x.keys[dartx.map](dart.as(serializeTearOff,__CastType0))[dartx.toList](),x.values[dartx.map](dart.as(serializeTearOff,dart.functionType(dart.dynamic,[dart.dynamic])))[dartx.toList]()]}serializeJSObject(x){if(! !x.constructor&&x.constructor!==Object){this.unsupported(x,"Only plain JS Objects are supported:")}let keys=dart.as(Object.keys(x),core.List);let values=[];values[dartx.length]=keys[dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){values[dartx.set](i,this.serialize(x[keys[dartx.get](i)]))}return['js-object',keys,values]}serializeWorkerSendPort(x){if(dart.notNull(this[_serializeSendPorts])){return['sendport',x[_workerId],x[_isolateId],x[_receivePortId]]}return['raw sendport',x]}serializeJsSendPort(x){if(dart.notNull(this[_serializeSendPorts])){let workerId=exports._globalState.currentManagerId;return['sendport',workerId,x[_isolateId],x[_receivePort][_id]]}return['raw sendport',x]}serializeCapability(x){return['capability',x[_id]]}serializeClosure(x){let name=IsolateNatives._getJSFunctionName(x);if(name==null){this.unsupported(x,"Closures can't be transmitted:")}return['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=dart.as(fieldsExtractor(x),core.List);return['dart',classId,this.serializeArrayInPlace(dart.as(fields,_interceptors.JSArray))]}};dart.setSignature(_Serializer,{constructors:()=>({_Serializer:[_Serializer,[],{serializeSendPorts:dart.dynamic}]}),methods:()=>({isPrimitive:[core.bool,[dart.dynamic]],makeRef:[dart.dynamic,[core.int]],serialize:[dart.dynamic,[dart.dynamic]],serializeArray:[dart.dynamic,[_interceptors.JSArray]],serializeArrayInPlace:[dart.dynamic,[_interceptors.JSArray]],serializeByteBuffer:[dart.dynamic,[_native_typed_data.NativeByteBuffer]],serializeCapability:[dart.dynamic,[CapabilityImpl]],serializeClosure:[dart.dynamic,[core.Function]],serializeDartObject:[dart.dynamic,[dart.dynamic]],serializeJSIndexable:[dart.dynamic,[_interceptors.JSIndexable]],serializeJSObject:[dart.dynamic,[_interceptors.JSObject]],serializeJsSendPort:[dart.dynamic,[_NativeJsSendPort]],serializeMap:[dart.dynamic,[core.Map]],serializePrimitive:[dart.dynamic,[dart.dynamic]],serializeTypedData:[dart.dynamic,[_native_typed_data.NativeTypedData]],serializeWorkerSendPort:[dart.dynamic,[_WorkerSendPort]],unsupported:[dart.void,[dart.dynamic],[core.String]]})});let _adjustSendPorts=Symbol('_adjustSendPorts');class _Deserializer extends core.Object{_Deserializer(opts){let adjustSendPorts=opts&&'adjustSendPorts'in opts?opts.adjustSendPorts:true;this.deserializedObjects=core.List.new();this[_adjustSendPorts]=dart.as(adjustSendPorts,core.bool)}deserialize(x){if(dart.notNull(this.isPrimitive(x)))return this.deserializePrimitive(x);if(!dart.is(x,_interceptors.JSArray))dart.throw(new core.ArgumentError(`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(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(`couldn't deserialize: ${x }`)}}}isPrimitive(x){return x==null||typeof x=='string'||dart.is(x,core.num)||typeof x=='boolean'}deserializePrimitive(x){return x}deserializeRef(x){dart.assert(dart.equals(dart.dindex(x,0),'ref'));let serializationId=dart.as(dart.dindex(x,1),core.int);return this.deserializedObjects[dartx.get](serializationId)}deserializeByteBuffer(x){dart.assert(dart.equals(dart.dindex(x,0),'buffer'));let result=dart.as(dart.dindex(x,1),_native_typed_data.NativeByteBuffer);this.deserializedObjects[dartx.add](result);return result}deserializeTypedData(x){dart.assert(dart.equals(dart.dindex(x,0),'typed'));let result=dart.as(dart.dindex(x,1),_native_typed_data.NativeTypedData);this.deserializedObjects[dartx.add](result);return result}deserializeArrayInPlace(x){for(let i=0;dart.notNull(i)<dart.notNull(x[dartx.length]);i=dart.notNull(i)+1){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=dart.as(dart.dindex(x,1),core.List);this.deserializedObjects[dartx.add](result);return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.as(result,_interceptors.JSArray)))}deserializeExtendable(x){dart.assert(dart.equals(dart.dindex(x,0),'extendable'));let result=dart.as(dart.dindex(x,1),core.List);this.deserializedObjects[dartx.add](result);return _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace(dart.as(result,_interceptors.JSArray)))}deserializeMutable(x){dart.assert(dart.equals(dart.dindex(x,0),'mutable'));let result=dart.as(dart.dindex(x,1),core.List);this.deserializedObjects[dartx.add](result);return this.deserializeArrayInPlace(dart.as(result,_interceptors.JSArray))}deserializeConst(x){dart.assert(dart.equals(dart.dindex(x,0),'const'));let result=dart.as(dart.dindex(x,1),core.List);this.deserializedObjects[dartx.add](result);return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.as(result,_interceptors.JSArray)))}deserializeMap(x){dart.assert(dart.equals(dart.dindex(x,0),'map'));let keys=dart.as(dart.dindex(x,1),core.List);let values=dart.as(dart.dindex(x,2),core.List);let result=dart.map();this.deserializedObjects[dartx.add](result);keys=keys[dartx.map](dart.bind(this,'deserialize'))[dartx.toList]();for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){result.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=dart.as(dart.dindex(x,1),core.int);let isolateId=dart.as(dart.dindex(x,2),core.int);let receivePortId=dart.as(dart.dindex(x,3),core.int);let result=null;if(managerId==exports._globalState.currentManagerId){let isolate=exports._globalState.isolates.get(isolateId);if(isolate==null)return null;let receivePort=isolate.lookup(receivePortId);if(receivePort==null)return null;result=new _NativeJsSendPort(receivePort,isolateId)}else{result=new _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=dart.as(dart.dindex(x,1),isolate.SendPort);this.deserializedObjects[dartx.add](result);return result}deserializeJSObject(x){dart.assert(dart.equals(dart.dindex(x,0),'js-object'));let keys=dart.as(dart.dindex(x,1),core.List);let values=dart.as(dart.dindex(x,2),core.List);let o={};this.deserializedObjects[dartx.add](o);for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){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=dart.as(dart.dindex(x,1),core.String);let result=dart.as(IsolateNatives._getJSFunctionFromName(name),core.Function);this.deserializedObjects[dartx.add](result);return result}deserializeDartObject(x){dart.assert(dart.equals(dart.dindex(x,0),'dart'));let classId=dart.as(dart.dindex(x,1),core.String);let fields=dart.as(dart.dindex(x,2),core.List);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(dart.as(fields,_interceptors.JSArray));return initializeObject(classId,emptyInstance,fields)}};dart.setSignature(_Deserializer,{constructors:()=>({_Deserializer:[_Deserializer,[],{adjustSendPorts:dart.dynamic}]}),methods:()=>({deserialize:[dart.dynamic,[dart.dynamic]],deserializeArrayInPlace:[core.List,[_interceptors.JSArray]],deserializeByteBuffer:[_native_typed_data.NativeByteBuffer,[dart.dynamic]],deserializeClosure:[core.Function,[dart.dynamic]],deserializeConst:[core.List,[dart.dynamic]],deserializeDartObject:[dart.dynamic,[dart.dynamic]],deserializeExtendable:[core.List,[dart.dynamic]],deserializeFixed:[core.List,[dart.dynamic]],deserializeJSObject:[dart.dynamic,[dart.dynamic]],deserializeMap:[core.Map,[dart.dynamic]],deserializeMutable:[core.List,[dart.dynamic]],deserializePrimitive:[dart.dynamic,[dart.dynamic]],deserializeRawSendPort:[isolate.SendPort,[dart.dynamic]],deserializeRef:[dart.dynamic,[dart.dynamic]],deserializeSendPort:[isolate.SendPort,[dart.dynamic]],deserializeTypedData:[_native_typed_data.NativeTypedData,[dart.dynamic]],isPrimitive:[core.bool,[dart.dynamic]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic]));function _callInIsolate(isolate,func){let result=isolate.eval(func);exports._globalState.topEventLoop.run();return result}dart.fn(_callInIsolate,()=>dart.definiteFunctionType(dart.dynamic,[_IsolateContext,core.Function]));let _activeJsAsyncCount=Symbol('_activeJsAsyncCount');function enterJsAsync(){let o=exports._globalState.topEventLoop;o[_activeJsAsyncCount]=dart.notNull(o[_activeJsAsyncCount])+1}dart.fn(enterJsAsync);function leaveJsAsync(){let o=exports._globalState.topEventLoop;o[_activeJsAsyncCount]=dart.notNull(o[_activeJsAsyncCount])-1;dart.assert(dart.notNull(exports._globalState.topEventLoop[_activeJsAsyncCount])>=0)}dart.fn(leaveJsAsync);function isWorker(){return exports._globalState.isWorker}dart.fn(isWorker,core.bool,[]);function _currentIsolate(){return exports._globalState.currentContext}dart.fn(_currentIsolate,()=>dart.definiteFunctionType(_IsolateContext,[]));function startRootIsolate(entry,args){args=args;if(args==null)args=[];if(!dart.is(args,core.List)){dart.throw(new core.ArgumentError(`Arguments to main must be a List: ${args }`))}exports._globalState=new _Manager(dart.as(entry,core.Function));if(dart.notNull(exports._globalState.isWorker))return;let rootContext=new _IsolateContext();exports._globalState.rootContext=rootContext;exports._globalState.currentContext=rootContext;if(dart.is(entry,_MainFunctionArgs)){rootContext.eval(dart.fn(()=>{dart.dcall(entry,args)}))}else if(dart.is(entry,_MainFunctionArgsMessage)){rootContext.eval(dart.fn(()=>{dart.dcall(entry,args,null)}))}else{rootContext.eval(dart.as(entry,core.Function))}exports._globalState.topEventLoop.run()}dart.fn(startRootIsolate,dart.void,[dart.dynamic,dart.dynamic]);dart.copyProperties(exports,{get _globalState(){return dart.as(dart.globalState,_Manager)},set _globalState(val){dart.globalState=val}});let _nativeDetectEnvironment=Symbol('_nativeDetectEnvironment');let _nativeInitWorkerMessageHandler=Symbol('_nativeInitWorkerMessageHandler');class _Manager extends core.Object{get useWorkers(){return this.supportsWorkers}_Manager(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 _EventLoop();this.isolates=core.Map$(core.int,_IsolateContext).new();this.managers=core.Map$(core.int,dart.dynamic).new();if(dart.notNull(this.isWorker)){this.mainManager=new _MainManagerStub();this[_nativeInitWorkerMessageHandler]()}}[_nativeDetectEnvironment](){let isWindowDefined=exports.globalWindow!=null;let isWorkerDefined=exports.globalWorker!=null;this.isWorker= !dart.notNull(isWindowDefined)&&dart.notNull(exports.globalPostMessageDefined);this.supportsWorkers=dart.notNull(this.isWorker)||dart.notNull(isWorkerDefined)&&IsolateNatives.thisScript!=null;this.fromCommandLine= !dart.notNull(isWindowDefined)&& !dart.notNull(this.isWorker)}[_nativeInitWorkerMessageHandler](){let func=(function(f,a){return function(e){f(a,e)}})(IsolateNatives._processWorkerMessage,this.mainManager);self.onmessage=func;self.dartPrint=self.dartPrint||(function(serialize){return function(object){if(self.console&&self.console.log){self.console.log(object)}else{self.postMessage(serialize(object))}}})(_Manager._serializePrintMessage)}static _serializePrintMessage(object){return _serializeMessage(dart.map({command:"print",msg:object}))}maybeCloseWorker(){if(dart.notNull(this.isWorker)&&dart.notNull(this.isolates.isEmpty)&&this.topEventLoop[_activeJsAsyncCount]==0){this.mainManager.postMessage(_serializeMessage(dart.map({command:'close'})))}}};dart.setSignature(_Manager,{constructors:()=>({_Manager:[_Manager,[core.Function]]}),methods:()=>({[_nativeInitWorkerMessageHandler]:[dart.void,[]],[_nativeDetectEnvironment]:[dart.void,[]],maybeCloseWorker:[dart.void,[]]}),names:['_serializePrintMessage'],statics:()=>({_serializePrintMessage:[dart.dynamic,[dart.dynamic]]})});let _scheduledControlEvents=Symbol('_scheduledControlEvents');let _isExecutingEvent=Symbol('_isExecutingEvent');let _updateGlobalState=Symbol('_updateGlobalState');let _setGlobals=Symbol('_setGlobals');let _addRegistration=Symbol('_addRegistration');let _close=Symbol('_close');class _IsolateContext extends core.Object{_IsolateContext(){this.id=(()=>{let o=exports._globalState,x=o.nextIsolateId;o.nextIsolateId=dart.notNull(x)+1;return x})();this.ports=core.Map$(core.int,RawReceivePortImpl).new();this.weakPorts=core.Set$(core.int).new();this.isolateStatics=_foreign_helper.JS_CREATE_ISOLATE();this.controlPort=new RawReceivePortImpl._controlPort();this.pauseCapability=isolate.Capability.new();this.terminateCapability=isolate.Capability.new();this.delayedEvents=dart.list([],_IsolateEvent);this.pauseTokens=core.Set$(isolate.Capability).new();this.errorPorts=core.Set$(isolate.SendPort).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.notNull(this.pauseTokens.add(resume))&& !dart.notNull(this.isPaused)){this.isPaused=true}this[_updateGlobalState]()}removePause(resume){if(!dart.notNull(this.isPaused))return;this.pauseTokens.remove(resume);if(dart.notNull(this.pauseTokens.isEmpty)){while(dart.notNull(this.delayedEvents[dartx.isNotEmpty])){let event=this.delayedEvents[dartx.removeLast]();exports._globalState.topEventLoop.prequeue(event)}this.isPaused=false}this[_updateGlobalState]()}addDoneListener(responsePort){if(this.doneHandlers==null){this.doneHandlers=[]}if(dart.notNull(dart.as(dart.dsend(this.doneHandlers,'contains',responsePort),core.bool)))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.notNull(this[_isExecutingEvent])){responsePort.send(null);return}function respond(){responsePort.send(null)}dart.fn(respond,dart.void,[]);if(pingType==isolate.Isolate.AS_EVENT){exports._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.notNull(this[_isExecutingEvent])){this.kill();return}if(priority==isolate.Isolate.AS_EVENT){exports._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.notNull(this.errorPorts.isEmpty)){if(dart.notNull(this.errorsAreFatal)&&dart.notNull(core.identical(this,exports._globalState.rootContext))){return}if(self.console&&self.console.error){self.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=exports._globalState.currentContext;exports._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.notNull(this.errorsAreFatal)){this.kill();if(dart.notNull(core.identical(this,exports._globalState.rootContext))){throw e}}}finally{this[_isExecutingEvent]=false;exports._globalState.currentContext=old;if(old!=null)old[_setGlobals]();if(this[_scheduledControlEvents]!=null){while(dart.notNull(dart.as(dart.dload(this[_scheduledControlEvents],'isNotEmpty'),core.bool))){dart.dcall(dart.dsend(this[_scheduledControlEvents],'removeFirst'))}}}return result}[_setGlobals](){_foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics)}handleControlMessage(message){switch(dart.dindex(message,0)){case "pause":{this.addPause(dart.as(dart.dindex(message,1),isolate.Capability),dart.as(dart.dindex(message,2),isolate.Capability));break}case "resume":{this.removePause(dart.as(dart.dindex(message,1),isolate.Capability));break}case 'add-ondone':{this.addDoneListener(dart.as(dart.dindex(message,1),isolate.SendPort));break}case 'remove-ondone':{this.removeDoneListener(dart.as(dart.dindex(message,1),isolate.SendPort));break}case 'set-errors-fatal':{this.setErrorsFatal(dart.as(dart.dindex(message,1),isolate.Capability),dart.as(dart.dindex(message,2),core.bool));break}case "ping":{this.handlePing(dart.as(dart.dindex(message,1),isolate.SendPort),dart.as(dart.dindex(message,2),core.int));break}case "kill":{this.handleKill(dart.as(dart.dindex(message,1),isolate.Capability),dart.as(dart.dindex(message,2),core.int));break}case "getErrors":{this.addErrorListener(dart.as(dart.dindex(message,1),isolate.SendPort));break}case "stopErrors":{this.removeErrorListener(dart.as(dart.dindex(message,1),isolate.SendPort));break}default:}}lookup(portId){return this.ports.get(portId)}[_addRegistration](portId,port){if(dart.notNull(this.ports.containsKey(portId))){dart.throw(core.Exception.new("Registry: ports must be registered only once."))}this.ports.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.length)-dart.notNull(this.weakPorts.length)>0||dart.notNull(this.isPaused)|| !dart.notNull(this.initialized)){exports._globalState.isolates.set(this.id,this)}else{this.kill()}}kill(){if(this[_scheduledControlEvents]!=null){dart.dsend(this[_scheduledControlEvents],'clear')}for(let port of this.ports.values){port[_close]()}this.ports.clear();this.weakPorts.clear();exports._globalState.isolates.remove(this.id);this.errorPorts.clear();if(this.doneHandlers!=null){for(let port of dart.as(this.doneHandlers,core.Iterable$(isolate.SendPort))){port.send(null)}this.doneHandlers=null}}unregister(portId){this.ports.remove(portId);this.weakPorts.remove(portId);this[_updateGlobalState]()}};_IsolateContext[dart.implements]=()=>[_foreign_helper.IsolateContext];dart.setSignature(_IsolateContext,{constructors:()=>({_IsolateContext:[_IsolateContext,[]]}),methods:()=>({[_updateGlobalState]:[dart.void,[]],[_addRegistration]:[dart.void,[core.int,RawReceivePortImpl]],[_setGlobals]:[dart.void,[]],addDoneListener:[dart.void,[isolate.SendPort]],addErrorListener:[dart.void,[isolate.SendPort]],addPause:[dart.void,[isolate.Capability,isolate.Capability]],eval:[dart.dynamic,[core.Function]],handleControlMessage:[dart.void,[dart.dynamic]],handleKill:[dart.void,[isolate.Capability,core.int]],handlePing:[dart.void,[isolate.SendPort,core.int]],handleUncaughtError:[dart.void,[dart.dynamic,core.StackTrace]],kill:[dart.void,[]],lookup:[RawReceivePortImpl,[core.int]],register:[dart.void,[core.int,RawReceivePortImpl]],registerWeak:[dart.void,[core.int,RawReceivePortImpl]],removeDoneListener:[dart.void,[isolate.SendPort]],removeErrorListener:[dart.void,[isolate.SendPort]],removePause:[dart.void,[isolate.Capability]],setErrorsFatal:[dart.void,[isolate.Capability,core.bool]],unregister:[dart.void,[core.int]]})});let _runHelper=Symbol('_runHelper');class _EventLoop extends core.Object{_EventLoop(){this.events=collection.Queue$(_IsolateEvent).new();this[_activeJsAsyncCount]=0}enqueue(isolate,fn,msg){this.events.addLast(new _IsolateEvent(dart.as(isolate,_IsolateContext),dart.as(fn,core.Function),dart.as(msg,core.String)))}prequeue(event){this.events.addFirst(event)}dequeue(){if(dart.notNull(this.events.isEmpty))return null;return this.events.removeFirst()}checkOpenReceivePortsFromCommandLine(){if(exports._globalState.rootContext!=null&&dart.notNull(exports._globalState.isolates.containsKey(exports._globalState.rootContext.id))&&dart.notNull(exports._globalState.fromCommandLine)&&dart.notNull(exports._globalState.rootContext.ports.isEmpty)){dart.throw(core.Exception.new("Program exited with open ReceivePorts."))}}runIteration(){let event=this.dequeue();if(event==null){this.checkOpenReceivePortsFromCommandLine();exports._globalState.maybeCloseWorker();return false}event.process();return true}[_runHelper](){if(exports.globalWindow!=null){let next=(function(){if(!dart.notNull(this.runIteration()))return;async.Timer.run(next)}).bind(this);dart.fn(next);next()}else{while(dart.notNull(this.runIteration())){}}}run(){if(!dart.notNull(exports._globalState.isWorker)){this[_runHelper]()}else{try{this[_runHelper]()}catch(e){let trace=dart.stackTrace(e);exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command:'error',msg:`${e }\n${trace }`})))}}}};dart.setSignature(_EventLoop,{constructors:()=>({_EventLoop:[_EventLoop,[]]}),methods:()=>({[_runHelper]:[dart.void,[]],checkOpenReceivePortsFromCommandLine:[dart.void,[]],dequeue:[_IsolateEvent,[]],enqueue:[dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]],prequeue:[dart.void,[_IsolateEvent]],run:[dart.void,[]],runIteration:[core.bool,[]]})});class _IsolateEvent extends core.Object{_IsolateEvent(isolate,fn,message){this.isolate=isolate;this.fn=fn;this.message=message}process(){if(dart.notNull(this.isolate.isPaused)){this.isolate.delayedEvents[dartx.add](this);return}this.isolate.eval(this.fn)}};dart.setSignature(_IsolateEvent,{constructors:()=>({_IsolateEvent:[_IsolateEvent,[_IsolateContext,core.Function,core.String]]}),methods:()=>({process:[dart.void,[]]})});class _MainManagerStub extends core.Object{postMessage(msg){self.postMessage(msg)}};dart.setSignature(_MainManagerStub,{methods:()=>({postMessage:[dart.void,[dart.dynamic]]})});let _SPAWNED_SIGNAL="spawned";let _SPAWN_FAILED_SIGNAL="spawn failed";dart.copyProperties(exports,{get globalPostMessageDefined(){return! !self.postMessage},get globalWorker(){return self.Worker},get globalWindow(){return self.window}});let _MainFunction=dart.typedef('_MainFunction',()=>dart.functionType(dart.dynamic,[]));let _MainFunctionArgs=dart.typedef('_MainFunctionArgs',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let _MainFunctionArgsMessage=dart.typedef('_MainFunctionArgsMessage',()=>dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));class IsolateNatives extends core.Object{static computeThisScript(){let currentScript=document.currentScript;if(currentScript!=null){return String(currentScript.src)}if(dart.notNull(_js_helper.Primitives.isD8))return IsolateNatives.computeThisScriptD8();if(dart.notNull(_js_helper.Primitives.isJsshell))return IsolateNatives.computeThisScriptJsshell();if(dart.notNull(exports._globalState.isWorker))return IsolateNatives.computeThisScriptFromTrace();return null}static computeThisScriptJsshell(){return dart.as(thisFilename(),core.String)}static computeThisScriptD8(){return 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(`Cannot extract URI from "${stack }"`))}static _getEventData(e){return e.data}static _processWorkerMessage(sender,e){let msg=_deserializeMessage(IsolateNatives._getEventData(e));switch(dart.dindex(msg,'command')){case 'start':{exports._globalState.currentManagerId=dart.as(dart.dindex(msg,'id'),core.int);let functionName=dart.as(dart.dindex(msg,'functionName'),core.String);let entryPoint=functionName==null?exports._globalState.entry:dart.as(IsolateNatives._getJSFunctionFromName(functionName),core.Function);let args=dart.dindex(msg,'args');let message=_deserializeMessage(dart.dindex(msg,'msg'));let isSpawnUri=dart.dindex(msg,'isSpawnUri');let startPaused=dart.dindex(msg,'startPaused');let replyTo=_deserializeMessage(dart.dindex(msg,'replyTo'));let context=new _IsolateContext();exports._globalState.topEventLoop.enqueue(context,dart.fn(()=>{IsolateNatives._startIsolate(entryPoint,dart.as(args,core.List$(core.String)),message,dart.as(isSpawnUri,core.bool),dart.as(startPaused,core.bool),dart.as(replyTo,isolate.SendPort))}),'worker-start');exports._globalState.currentContext=context;exports._globalState.topEventLoop.run();break}case 'spawn-worker':{if(IsolateNatives.enableSpawnWorker!=null)IsolateNatives.handleSpawnWorkerRequest(msg);break}case 'message':{let port=dart.as(dart.dindex(msg,'port'),isolate.SendPort);if(port!=null){dart.dsend(dart.dindex(msg,'port'),'send',dart.dindex(msg,'msg'))}exports._globalState.topEventLoop.run();break}case 'close':{exports._globalState.managers.remove(IsolateNatives.workerIds.get(sender));sender.terminate();exports._globalState.topEventLoop.run();break}case 'log':{IsolateNatives._log(dart.dindex(msg,'msg'));break}case 'print':{if(dart.notNull(exports._globalState.isWorker)){exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command:'print',msg:msg})))}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');IsolateNatives.spawn(dart.as(dart.dindex(msg,'functionName'),core.String),dart.as(dart.dindex(msg,'uri'),core.String),dart.as(dart.dindex(msg,'args'),core.List$(core.String)),dart.dindex(msg,'msg'),false,dart.as(dart.dindex(msg,'isSpawnUri'),core.bool),dart.as(dart.dindex(msg,'startPaused'),core.bool)).then(dart.fn(msg=>{dart.dsend(replyPort,'send',msg)}),{onError:dart.fn(errorMessage=>{dart.dsend(replyPort,'send',[_SPAWN_FAILED_SIGNAL,errorMessage])},dart.dynamic,[core.String])})}static _log(msg){if(dart.notNull(exports._globalState.isWorker)){exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command:'log',msg:msg})))}else{try{IsolateNatives._consoleLog(msg)}catch(e){let trace=dart.stackTrace(e);dart.throw(core.Exception.new(trace))}}}static _consoleLog(msg){self.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 dart.as(f.$name,core.String)}static _allocate(ctor){return new ctor()}static spawnFunction(topLevelFunction,message,startPaused){IsolateNatives.enableSpawnWorker=true;let name=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 IsolateNatives.spawn(name,null,null,message,isLight,isSpawnUri,startPaused)}static spawnUri(uri,args,message,startPaused){IsolateNatives.enableSpawnWorker=true;let isLight=false;let isSpawnUri=true;return IsolateNatives.spawn(null,dart.toString(uri),args,message,isLight,isSpawnUri,startPaused)}static spawn(functionName,uri,args,message,isLight,isSpawnUri,startPaused){if(uri!=null&&dart.notNull(uri[dartx.endsWith](".dart"))){uri=dart.notNull(uri)+".js"}let port=isolate.ReceivePort.new();let completer=async.Completer$(core.List).new();port.first.then(dart.fn(msg=>{if(dart.equals(dart.dindex(msg,0),_SPAWNED_SIGNAL)){completer.complete(msg)}else{dart.assert(dart.equals(dart.dindex(msg,0),_SPAWN_FAILED_SIGNAL));completer.completeError(dart.dindex(msg,1))}}));let signalReply=port.sendPort;if(dart.notNull(exports._globalState.useWorkers)&& !dart.notNull(isLight)){IsolateNatives._startWorker(functionName,uri,args,message,isSpawnUri,startPaused,signalReply,dart.fn(message=>completer.completeError(message),dart.void,[core.String]))}else{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=core.List$(core.String).from(args);if(dart.notNull(exports._globalState.isWorker)){exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({args:args,command:'spawn-worker',functionName:functionName,isSpawnUri:isSpawnUri,msg:message,replyPort:replyPort,startPaused:startPaused,uri:uri})))}else{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=_clone(message);if(args!=null)args=core.List$(core.String).from(args);exports._globalState.topEventLoop.enqueue(new _IsolateContext(),dart.fn(()=>{let func=IsolateNatives._getJSFunctionFromName(functionName);IsolateNatives._startIsolate(dart.as(func,core.Function),args,message,isSpawnUri,startPaused,replyPort)}),'nonworker start')}static get currentIsolate(){let context=dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(),_IsolateContext);return new isolate.Isolate(context.controlPort.sendPort,{pauseCapability:context.pauseCapability,terminateCapability:context.terminateCapability})}static _startIsolate(topLevel,args,message,isSpawnUri,startPaused,replyTo){let context=dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(),_IsolateContext);_js_helper.Primitives.initializeStatics(context.id);replyTo.send([_SPAWNED_SIGNAL,context.controlPort.sendPort,context.pauseCapability,context.terminateCapability]);function runStartFunction(){context.initialized=true;if(!dart.notNull(isSpawnUri)){dart.dcall(topLevel,message)}else if(dart.is(topLevel,_MainFunctionArgsMessage)){dart.dcall(topLevel,args,message)}else if(dart.is(topLevel,_MainFunctionArgs)){dart.dcall(topLevel,args)}else{dart.dcall(topLevel)}}dart.fn(runStartFunction,dart.void,[]);if(dart.notNull(startPaused)){context.addPause(context.pauseCapability,context.pauseCapability);exports._globalState.topEventLoop.enqueue(context,runStartFunction,'start isolate')}else{runStartFunction()}}static _spawnWorker(functionName,uri,args,message,isSpawnUri,startPaused,replyPort,onError){if(uri==null)uri=IsolateNatives.thisScript;let worker=new Worker(uri);let onerrorTrampoline=(function(f,u,c){return function(e){return f(e,u,c)}})(IsolateNatives.workerOnError,uri,onError);worker.onerror=onerrorTrampoline;let processWorkerMessageTrampoline=(function(f,a){return function(e){e.onerror=null;return f(a,e)}})(IsolateNatives._processWorkerMessage,worker);worker.onmessage=processWorkerMessageTrampoline;let o=exports._globalState;let workerId=o.nextManagerId;o.nextManagerId=dart.notNull(workerId)+1;IsolateNatives.workerIds.set(worker,workerId);exports._globalState.managers.set(workerId,worker);worker.postMessage(_serializeMessage(dart.map({args:args,command:'start',functionName:functionName,id:workerId,isSpawnUri:isSpawnUri,msg:_serializeMessage(message),replyTo:_serializeMessage(replyPort),startPaused:startPaused})))}static workerOnError(event,uri,onError){event.preventDefault();let message=dart.as(event.message,core.String);if(message==null){message=`Error spawning worker for ${uri }`}else{message=`Error spawning worker for ${uri } (${message })`}onError(message);return true}};dart.setSignature(IsolateNatives,{names:['computeThisScript','computeThisScriptJsshell','computeThisScriptD8','computeThisScriptFromTrace','_getEventData','_processWorkerMessage','handleSpawnWorkerRequest','_log','_consoleLog','_getJSFunctionFromName','_getJSFunctionName','_allocate','spawnFunction','spawnUri','spawn','_startWorker','_startNonWorker','_startIsolate','_spawnWorker','workerOnError'],statics:()=>({_allocate:[dart.dynamic,[dart.dynamic]],_consoleLog:[dart.void,[dart.dynamic]],_getEventData:[dart.dynamic,[dart.dynamic]],_getJSFunctionFromName:[dart.dynamic,[core.String]],_getJSFunctionName:[core.String,[core.Function]],_log:[dart.dynamic,[dart.dynamic]],_processWorkerMessage:[dart.void,[dart.dynamic,dart.dynamic]],_spawnWorker:[dart.void,[dart.dynamic,core.String,core.List$(core.String),dart.dynamic,core.bool,core.bool,isolate.SendPort,dart.functionType(dart.void,[core.String])]],_startIsolate:[dart.void,[core.Function,core.List$(core.String),dart.dynamic,core.bool,core.bool,isolate.SendPort]],_startNonWorker:[dart.void,[core.String,core.String,core.List$(core.String),dart.dynamic,core.bool,core.bool,isolate.SendPort]],_startWorker:[dart.void,[core.String,core.String,core.List$(core.String),dart.dynamic,core.bool,core.bool,isolate.SendPort,dart.functionType(dart.void,[core.String])]],computeThisScript:[core.String,[]],computeThisScriptD8:[core.String,[]],computeThisScriptFromTrace:[core.String,[]],computeThisScriptJsshell:[core.String,[]],handleSpawnWorkerRequest:[dart.dynamic,[dart.dynamic]],spawn:[async.Future$(core.List),[core.String,core.String,core.List$(core.String),dart.dynamic,core.bool,core.bool,core.bool]],spawnFunction:[async.Future$(core.List),[dart.functionType(dart.void,[dart.dynamic]),dart.dynamic,core.bool]],spawnUri:[async.Future$(core.List),[core.Uri,core.List$(core.String),dart.dynamic,core.bool]],workerOnError:[core.bool,[dart.dynamic,core.String,dart.functionType(dart.void,[core.String])]]})});IsolateNatives.enableSpawnWorker=null;dart.defineLazyProperties(IsolateNatives,{get workerIds(){return new(core.Expando$(core.int))()},get thisScript(){return IsolateNatives.computeThisScript()},set thisScript(_){}});let _checkReplyTo=Symbol('_checkReplyTo');class _BaseSendPort extends core.Object{_BaseSendPort(isolateId){this[_isolateId]=isolateId}[_checkReplyTo](replyTo){if(replyTo!=null&& !dart.is(replyTo,_NativeJsSendPort)&& !dart.is(replyTo,_WorkerSendPort)){dart.throw(core.Exception.new("SendPort.send: Illegal replyTo port type"))}}};_BaseSendPort[dart.implements]=()=>[isolate.SendPort];dart.setSignature(_BaseSendPort,{constructors:()=>({_BaseSendPort:[_BaseSendPort,[core.int]]}),methods:()=>({[_checkReplyTo]:[dart.void,[isolate.SendPort]]})});let _isClosed=Symbol('_isClosed');let _add=Symbol('_add');class _NativeJsSendPort extends _BaseSendPort{_NativeJsSendPort(receivePort,isolateId){this[_receivePort]=receivePort;super._BaseSendPort(isolateId)}send(message){let isolate=exports._globalState.isolates.get(this[_isolateId]);if(isolate==null)return;if(dart.notNull(this[_receivePort][_isClosed]))return;let msg=_clone(message);if(dart.equals(isolate.controlPort,this[_receivePort])){isolate.handleControlMessage(msg);return}exports._globalState.topEventLoop.enqueue(isolate,dart.fn(()=>{if(!dart.notNull(this[_receivePort][_isClosed])){this[_receivePort][_add](msg)}}),`receive ${message }`)}['=='](other){return dart.is(other,_NativeJsSendPort)&&dart.equals(this[_receivePort],dart.dload(other,_receivePort))}get hashCode(){return this[_receivePort][_id]}};_NativeJsSendPort[dart.implements]=()=>[isolate.SendPort];dart.setSignature(_NativeJsSendPort,{constructors:()=>({_NativeJsSendPort:[_NativeJsSendPort,[RawReceivePortImpl,core.int]]}),methods:()=>({send:[dart.void,[dart.dynamic]]})});class _WorkerSendPort extends _BaseSendPort{_WorkerSendPort(workerId,isolateId,receivePortId){this[_workerId]=workerId;this[_receivePortId]=receivePortId;super._BaseSendPort(isolateId)}send(message){let workerMessage=_serializeMessage(dart.map({command:'message',msg:message,port:this}));if(dart.notNull(exports._globalState.isWorker)){exports._globalState.mainManager.postMessage(workerMessage)}else{let manager=exports._globalState.managers.get(this[_workerId]);if(manager!=null){manager.postMessage(workerMessage)}}}['=='](other){return dart.is(other,_WorkerSendPort)&&dart.equals(this[_workerId],dart.dload(other,_workerId))&&dart.equals(this[_isolateId],dart.dload(other,_isolateId))&&dart.equals(this[_receivePortId],dart.dload(other,_receivePortId))}get hashCode(){return dart.notNull(this[_workerId])<<16^dart.notNull(this[_isolateId])<<8^dart.notNull(this[_receivePortId])}};_WorkerSendPort[dart.implements]=()=>[isolate.SendPort];dart.setSignature(_WorkerSendPort,{constructors:()=>({_WorkerSendPort:[_WorkerSendPort,[core.int,core.int,core.int]]}),methods:()=>({send:[dart.void,[dart.dynamic]]})});let _handler=Symbol('_handler');class RawReceivePortImpl extends core.Object{RawReceivePortImpl(handler){this[_handler]=handler;this[_id]=(()=>{let x=RawReceivePortImpl._nextFreeId;RawReceivePortImpl._nextFreeId=dart.notNull(x)+1;return x})();this[_isClosed]=false;exports._globalState.currentContext.register(this[_id],this)}weak(handler){this[_handler]=handler;this[_id]=(()=>{let x=RawReceivePortImpl._nextFreeId;RawReceivePortImpl._nextFreeId=dart.notNull(x)+1;return x})();this[_isClosed]=false;exports._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.notNull(this[_isClosed]))return;this[_isClosed]=true;this[_handler]=null;exports._globalState.currentContext.unregister(this[_id])}[_add](dataEvent){if(dart.notNull(this[_isClosed]))return;dart.dcall(this[_handler],dataEvent)}get sendPort(){return new _NativeJsSendPort(this,exports._globalState.currentContext.id)}};RawReceivePortImpl[dart.implements]=()=>[isolate.RawReceivePort];dart.defineNamedConstructor(RawReceivePortImpl,'weak');dart.defineNamedConstructor(RawReceivePortImpl,'_controlPort');dart.setSignature(RawReceivePortImpl,{constructors:()=>({_controlPort:[RawReceivePortImpl,[]],RawReceivePortImpl:[RawReceivePortImpl,[core.Function]],weak:[RawReceivePortImpl,[core.Function]]}),methods:()=>({[_add]:[dart.void,[dart.dynamic]],[_close]:[dart.void,[]],close:[dart.void,[]]})});RawReceivePortImpl._nextFreeId=1;let _rawPort=Symbol('_rawPort');let _controller=Symbol('_controller');class ReceivePortImpl extends async.Stream{ReceivePortImpl(){this.fromRawReceivePort(new RawReceivePortImpl(null))}weak(){this.fromRawReceivePort(new RawReceivePortImpl.weak(null))}fromRawReceivePort(rawPort){this[_rawPort]=rawPort;this[_controller]=null;super.Stream();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,{cancelOnError:cancelOnError,onDone:onDone,onError:onError})}close(){this[_rawPort].close();this[_controller].close()}get sendPort(){return this[_rawPort].sendPort}};ReceivePortImpl[dart.implements]=()=>[isolate.ReceivePort];dart.defineNamedConstructor(ReceivePortImpl,'weak');dart.defineNamedConstructor(ReceivePortImpl,'fromRawReceivePort');dart.setSignature(ReceivePortImpl,{constructors:()=>({fromRawReceivePort:[ReceivePortImpl,[isolate.RawReceivePort]],ReceivePortImpl:[ReceivePortImpl,[]],weak:[ReceivePortImpl,[]]}),methods:()=>({close:[dart.void,[]],listen:[async.StreamSubscription,[dart.functionType(dart.void,[dart.dynamic])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});let _once=Symbol('_once');let _inEventLoop=Symbol('_inEventLoop');let _handle=Symbol('_handle');class TimerImpl extends core.Object{TimerImpl(milliseconds,callback){this[_once]=true;this[_inEventLoop]=false;this[_handle]=null;if(milliseconds==0&&(!dart.notNull(hasTimer())||dart.notNull(exports._globalState.isWorker))){let internalCallback=(function(){this[_handle]=null;callback()}).bind(this);dart.fn(internalCallback,dart.void,[]);this[_handle]=1;exports._globalState.topEventLoop.enqueue(exports._globalState.currentContext,internalCallback,'timer');this[_inEventLoop]=true}else if(dart.notNull(hasTimer())){let internalCallback=(function(){this[_handle]=null;leaveJsAsync();callback()}).bind(this);dart.fn(internalCallback,dart.void,[]);enterJsAsync();this[_handle]=self.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.notNull(hasTimer())){enterJsAsync();this[_handle]=self.setInterval(dart.fn(()=>{callback(this)}),milliseconds)}else{dart.throw(new core.UnsupportedError("Periodic timer."))}}cancel(){if(dart.notNull(hasTimer())){if(dart.notNull(this[_inEventLoop])){dart.throw(new core.UnsupportedError("Timer in event loop cannot be canceled."))}if(this[_handle]==null)return;leaveJsAsync();if(dart.notNull(this[_once])){self.clearTimeout(this[_handle])}else{self.clearInterval(this[_handle])}this[_handle]=null}else{dart.throw(new core.UnsupportedError("Canceling a timer."))}}get isActive(){return this[_handle]!=null}};TimerImpl[dart.implements]=()=>[async.Timer];dart.defineNamedConstructor(TimerImpl,'periodic');dart.setSignature(TimerImpl,{constructors:()=>({periodic:[TimerImpl,[core.int,dart.functionType(dart.void,[async.Timer])]],TimerImpl:[TimerImpl,[core.int,dart.functionType(dart.void,[])]]}),methods:()=>({cancel:[dart.void,[]]})});function hasTimer(){return self.setTimeout!=null}dart.fn(hasTimer,core.bool,[]);class CapabilityImpl extends core.Object{CapabilityImpl(){this._internal(_js_helper.random64())}_internal(id){this[_id]=id}get hashCode(){let hash=this[_id];hash=dart.notNull(hash)>>0^(dart.notNull(hash)/4294967296)[dartx.truncate]();hash= ~dart.notNull(hash)+(dart.notNull(hash)<<15)&4294967295;hash=dart.notNull(hash)^dart.notNull(hash)>>12;hash=dart.notNull(hash)*5&4294967295;hash=dart.notNull(hash)^dart.notNull(hash)>>4;hash=dart.notNull(hash)*2057&4294967295;hash=dart.notNull(hash)^dart.notNull(hash)>>16;return hash}['=='](other){if(dart.notNull(core.identical(other,this)))return true;if(dart.is(other,CapabilityImpl)){return core.identical(this[_id],other[_id])}return false}};CapabilityImpl[dart.implements]=()=>[isolate.Capability];dart.defineNamedConstructor(CapabilityImpl,'_internal');dart.setSignature(CapabilityImpl,{constructors:()=>({_internal:[CapabilityImpl,[core.int]],CapabilityImpl:[CapabilityImpl,[]]}),methods:()=>({'==':[core.bool,[core.Object]]})});exports.enterJsAsync=enterJsAsync;exports.leaveJsAsync=leaveJsAsync;exports.isWorker=isWorker;exports.startRootIsolate=startRootIsolate;exports.IsolateNatives=IsolateNatives;exports.RawReceivePortImpl=RawReceivePortImpl;exports.ReceivePortImpl=ReceivePortImpl;exports.TimerImpl=TimerImpl;exports.hasTimer=hasTimer;exports.CapabilityImpl=CapabilityImpl});dart_library.library('dart/_js_embedded_names',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx;let DISPATCH_PROPERTY_NAME="dispatchPropertyName";let TYPE_INFORMATION='typeInformation';let GLOBAL_FUNCTIONS='globalFunctions';let STATICS='statics';let INTERCEPTED_NAMES='interceptedNames';let MANGLED_GLOBAL_NAMES='mangledGlobalNames';let MANGLED_NAMES='mangledNames';let LIBRARIES='libraries';let FINISHED_CLASSES='finishedClasses';let ALL_CLASSES='allClasses';let METADATA='metadata';let INTERCEPTORS_BY_TAG='interceptorsByTag';let LEAF_TAGS='leafTags';let LAZIES='lazies';let GET_ISOLATE_TAG='getIsolateTag';let ISOLATE_TAG='isolateTag';let CURRENT_SCRIPT='currentScript';let DEFERRED_LIBRARY_URIS='deferredLibraryUris';let DEFERRED_LIBRARY_HASHES='deferredLibraryHashes';let INITIALIZE_LOADED_HUNK='initializeLoadedHunk';let IS_HUNK_LOADED='isHunkLoaded';let IS_HUNK_INITIALIZED='isHunkInitialized';let DEFERRED_INITIALIZED='deferredInitialized';let CLASS_ID_EXTRACTOR='classIdExtractor';let CLASS_FIELDS_EXTRACTOR='classFieldsExtractor';let INSTANCE_FROM_CLASS_ID="instanceFromClassId";let INITIALIZE_EMPTY_INSTANCE="initializeEmptyInstance";let TYPEDEF_TYPE_PROPERTY_NAME="$typedefType";let TYPEDEF_PREDICATE_PROPERTY_NAME="$$isTypedef";let NATIVE_SUPERCLASS_TAG_NAME="$nativeSuperclassTag";let MAP_TYPE_TO_INTERCEPTOR="mapTypeToInterceptor";exports.DISPATCH_PROPERTY_NAME=DISPATCH_PROPERTY_NAME;exports.TYPE_INFORMATION=TYPE_INFORMATION;exports.GLOBAL_FUNCTIONS=GLOBAL_FUNCTIONS;exports.STATICS=STATICS;exports.INTERCEPTED_NAMES=INTERCEPTED_NAMES;exports.MANGLED_GLOBAL_NAMES=MANGLED_GLOBAL_NAMES;exports.MANGLED_NAMES=MANGLED_NAMES;exports.LIBRARIES=LIBRARIES;exports.FINISHED_CLASSES=FINISHED_CLASSES;exports.ALL_CLASSES=ALL_CLASSES;exports.METADATA=METADATA;exports.INTERCEPTORS_BY_TAG=INTERCEPTORS_BY_TAG;exports.LEAF_TAGS=LEAF_TAGS;exports.LAZIES=LAZIES;exports.GET_ISOLATE_TAG=GET_ISOLATE_TAG;exports.ISOLATE_TAG=ISOLATE_TAG;exports.CURRENT_SCRIPT=CURRENT_SCRIPT;exports.DEFERRED_LIBRARY_URIS=DEFERRED_LIBRARY_URIS;exports.DEFERRED_LIBRARY_HASHES=DEFERRED_LIBRARY_HASHES;exports.INITIALIZE_LOADED_HUNK=INITIALIZE_LOADED_HUNK;exports.IS_HUNK_LOADED=IS_HUNK_LOADED;exports.IS_HUNK_INITIALIZED=IS_HUNK_INITIALIZED;exports.DEFERRED_INITIALIZED=DEFERRED_INITIALIZED;exports.CLASS_ID_EXTRACTOR=CLASS_ID_EXTRACTOR;exports.CLASS_FIELDS_EXTRACTOR=CLASS_FIELDS_EXTRACTOR;exports.INSTANCE_FROM_CLASS_ID=INSTANCE_FROM_CLASS_ID;exports.INITIALIZE_EMPTY_INSTANCE=INITIALIZE_EMPTY_INSTANCE;exports.TYPEDEF_TYPE_PROPERTY_NAME=TYPEDEF_TYPE_PROPERTY_NAME;exports.TYPEDEF_PREDICATE_PROPERTY_NAME=TYPEDEF_PREDICATE_PROPERTY_NAME;exports.NATIVE_SUPERCLASS_TAG_NAME=NATIVE_SUPERCLASS_TAG_NAME;exports.MAP_TYPE_TO_INTERCEPTOR=MAP_TYPE_TO_INTERCEPTOR});dart_library.library('dart/_js_helper',null,["dart_runtime/dart",'dart/core','dart/collection','dart/_interceptors','dart/_foreign_helper'],[],function(exports,dart,core,collection,_interceptors,_foreign_helper){'use strict';let dartx=dart.dartx;class NoThrows extends core.Object{NoThrows(){}};dart.setSignature(NoThrows,{constructors:()=>({NoThrows:[NoThrows,[]]})});class NoInline extends core.Object{NoInline(){}};dart.setSignature(NoInline,{constructors:()=>({NoInline:[NoInline,[]]})});class Native extends core.Object{Native(name){this.name=name}};dart.setSignature(Native,{constructors:()=>({Native:[Native,[core.String]]})});class JsName extends core.Object{JsName(opts){let name=opts&&'name'in opts?opts.name:null;this.name=name}};dart.setSignature(JsName,{constructors:()=>({JsName:[JsName,[],{name:core.String}]})});class JsPeerInterface extends core.Object{JsPeerInterface(opts){let name=opts&&'name'in opts?opts.name:null;this.name=name}};dart.setSignature(JsPeerInterface,{constructors:()=>({JsPeerInterface:[JsPeerInterface,[],{name:core.String}]})});class SupportJsExtensionMethods extends core.Object{SupportJsExtensionMethods(){}};dart.setSignature(SupportJsExtensionMethods,{constructors:()=>({SupportJsExtensionMethods:[SupportJsExtensionMethods,[]]})});function defineProperty(obj,property,value){Object.defineProperty(obj,property,{configurable:true,enumerable:false,value:value,writable:true})}dart.fn(defineProperty,dart.void,[dart.dynamic,core.String,dart.dynamic]);let _nativeRegExp=Symbol('_nativeRegExp');function regExpGetNative(regexp){return regexp[_nativeRegExp]}dart.fn(regExpGetNative,()=>dart.definiteFunctionType(dart.dynamic,[JSSyntaxRegExp]));let _nativeGlobalVersion=Symbol('_nativeGlobalVersion');function regExpGetGlobalNative(regexp){let nativeRegexp=regexp[_nativeGlobalVersion];nativeRegexp.lastIndex=0;return nativeRegexp}dart.fn(regExpGetGlobalNative,()=>dart.definiteFunctionType(dart.dynamic,[JSSyntaxRegExp]));let _nativeAnchoredVersion=Symbol('_nativeAnchoredVersion');function regExpCaptureCount(regexp){let nativeAnchoredRegExp=regexp[_nativeAnchoredVersion];let match=nativeAnchoredRegExp.exec('');return dart.as(dart.dsend(dart.dload(match,'length'),'-',2),core.int)}dart.fn(regExpCaptureCount,()=>dart.definiteFunctionType(core.int,[JSSyntaxRegExp]));let _nativeGlobalRegExp=Symbol('_nativeGlobalRegExp');let _nativeAnchoredRegExp=Symbol('_nativeAnchoredRegExp');let _isMultiLine=Symbol('_isMultiLine');let _isCaseSensitive=Symbol('_isCaseSensitive');let _execGlobal=Symbol('_execGlobal');let _execAnchored=Symbol('_execAnchored');class JSSyntaxRegExp extends core.Object{toString(){return `RegExp/${this.pattern }/`}JSSyntaxRegExp(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]=JSSyntaxRegExp.makeNative(source,multiLine,caseSensitive,false);this[_nativeGlobalRegExp]=null;this[_nativeAnchoredRegExp]=null}get[_nativeGlobalVersion](){if(this[_nativeGlobalRegExp]!=null)return this[_nativeGlobalRegExp];return this[_nativeGlobalRegExp]=JSSyntaxRegExp.makeNative(this.pattern,this[_isMultiLine],this[_isCaseSensitive],true)}get[_nativeAnchoredVersion](){if(this[_nativeAnchoredRegExp]!=null)return this[_nativeAnchoredRegExp];return this[_nativeAnchoredRegExp]=JSSyntaxRegExp.makeNative(`${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){checkString(source);let m=dart.notNull(multiLine)?'m':'';let i=dart.notNull(caseSensitive)?'':'i';let g=dart.notNull(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(`Illegal RegExp pattern: ${source }, ${errorMessage }`))}firstMatch(string){let m=dart.as(this[_nativeRegExp].exec(checkString(string)),core.List$(core.String));if(m==null)return null;return new _MatchImplementation(this,m)}hasMatch(string){return this[_nativeRegExp].test(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;checkString(string);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 _AllMatchesIterable(this,string,start)}[_execGlobal](string,start){let regexp=this[_nativeGlobalVersion];regexp.lastIndex=start;let match=dart.as(regexp.exec(string),core.List);if(match==null)return null;return new _MatchImplementation(this,dart.as(match,core.List$(core.String)))}[_execAnchored](string,start){let regexp=this[_nativeAnchoredVersion];regexp.lastIndex=start;let match=dart.as(regexp.exec(string),core.List);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 _MatchImplementation(this,dart.as(match,core.List$(core.String)))}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]}};JSSyntaxRegExp[dart.implements]=()=>[core.RegExp];dart.setSignature(JSSyntaxRegExp,{constructors:()=>({JSSyntaxRegExp:[JSSyntaxRegExp,[core.String],{caseSensitive:core.bool,multiLine:core.bool}]}),methods:()=>({[_execAnchored]:[core.Match,[core.String,core.int]],[_execGlobal]:[core.Match,[core.String,core.int]],allMatches:[core.Iterable$(core.Match),[core.String],[core.int]],firstMatch:[core.Match,[core.String]],hasMatch:[core.bool,[core.String]],matchAsPrefix:[core.Match,[core.String],[core.int]],stringMatch:[core.String,[core.String]]}),names:['makeNative'],statics:()=>({makeNative:[dart.dynamic,[core.String,core.bool,core.bool,core.bool]]})});dart.defineExtensionMembers(JSSyntaxRegExp,['allMatches','matchAsPrefix']);let _match=Symbol('_match');class _MatchImplementation extends core.Object{_MatchImplementation(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=dart.list([],core.String);for(let i of groups){out[dartx.add](this.group(i))}return out}};_MatchImplementation[dart.implements]=()=>[core.Match];dart.setSignature(_MatchImplementation,{constructors:()=>({_MatchImplementation:[_MatchImplementation,[core.Pattern,core.List$(core.String)]]}),methods:()=>({get:[core.String,[core.int]],group:[core.String,[core.int]],groups:[core.List$(core.String),[core.List$(core.int)]]})});let _re=Symbol('_re');let _string=Symbol('_string');let _start=Symbol('_start');class _AllMatchesIterable extends collection.IterableBase$(core.Match){_AllMatchesIterable(re,string,start){this[_re]=re;this[_string]=string;this[_start]=start;super.IterableBase()}get iterator(){return new _AllMatchesIterator(this[_re],this[_string],this[_start])}}dart.setSignature(_AllMatchesIterable,{constructors:()=>({_AllMatchesIterable:[_AllMatchesIterable,[JSSyntaxRegExp,core.String,core.int]]})});dart.defineExtensionMembers(_AllMatchesIterable,['iterator']);let _regExp=Symbol('_regExp');let _nextIndex=Symbol('_nextIndex');let _current=Symbol('_current');class _AllMatchesIterator extends core.Object{_AllMatchesIterator(regExp,string,nextIndex){this[_regExp]=regExp;this[_string]=string;this[_nextIndex]=nextIndex;this[_current]=null}get current(){return this[_current]}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]=match;let nextIndex=match.end;if(match.start==nextIndex){nextIndex=dart.notNull(nextIndex)+1}this[_nextIndex]=nextIndex;return true}}this[_current]=null;this[_string]=null;return false}};_AllMatchesIterator[dart.implements]=()=>[core.Iterator$(core.Match)];dart.setSignature(_AllMatchesIterator,{constructors:()=>({_AllMatchesIterator:[_AllMatchesIterator,[JSSyntaxRegExp,core.String,core.int]]}),methods:()=>({moveNext:[core.bool,[]]})});function firstMatchAfter(regExp,string,start){return regExp[_execGlobal](string,start)}dart.fn(firstMatchAfter,core.Match,[JSSyntaxRegExp,core.String,core.int]);class StringMatch extends core.Object{StringMatch(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=core.List$(core.String).new();for(let g of groups_){result[dartx.add](this.group(g))}return result}};StringMatch[dart.implements]=()=>[core.Match];dart.setSignature(StringMatch,{constructors:()=>({StringMatch:[StringMatch,[core.int,core.String,core.String]]}),methods:()=>({get:[core.String,[core.int]],group:[core.String,[core.int]],groups:[core.List$(core.String),[core.List$(core.int)]]})});function allMatchesInStringUnchecked(needle,haystack,startIndex){let result=core.List$(core.Match).new();let length=haystack[dartx.length];let patternLength=needle[dartx.length];while(true){let position=haystack[dartx.indexOf](needle,startIndex);if(position==-1){break}result[dartx.add](new StringMatch(position,haystack,needle));let endIndex=dart.notNull(position)+dart.notNull(patternLength);if(endIndex==length){break}else if(position==endIndex){startIndex=dart.notNull(startIndex)+1}else{startIndex=endIndex}}return result}dart.fn(allMatchesInStringUnchecked,core.List$(core.Match),[core.String,core.String,core.int]);function stringContainsUnchecked(receiver,other,startIndex){if(typeof other=='string'){return!dart.equals(dart.dsend(receiver,'indexOf',other,startIndex),-1)}else if(dart.is(other,JSSyntaxRegExp)){return dart.dsend(other,'hasMatch',dart.dsend(receiver,'substring',startIndex))}else{let substr=dart.dsend(receiver,'substring',startIndex);return dart.dload(dart.dsend(other,'allMatches',substr),'isNotEmpty')}}dart.fn(stringContainsUnchecked);function stringReplaceJS(receiver,replacer,to){to=to.replace(/\$/g,"$$$$");return receiver.replace(replacer,to)}dart.fn(stringReplaceJS);function stringReplaceFirstRE(receiver,regexp,to,startIndex){let match=dart.dsend(regexp,_execGlobal,receiver,startIndex);if(match==null)return receiver;let start=dart.dload(match,'start');let end=dart.dload(match,'end');return `${dart.dsend(receiver,'substring',0,start)}${to }${dart.dsend(receiver,'substring',end)}`}dart.fn(stringReplaceFirstRE);let ESCAPE_REGEXP='[[\\]{}()*+?.\\\\^$|]';function stringReplaceAllUnchecked(receiver,from,to){checkString(to);if(typeof from=='string'){if(dart.equals(from,"")){if(dart.equals(receiver,"")){return to}else{let result=new core.StringBuffer();let length=dart.as(dart.dload(receiver,'length'),core.int);result.write(to);for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){result.write(dart.dindex(receiver,i));result.write(to)}return dart.toString(result)}}else{let quoter=new RegExp(ESCAPE_REGEXP,'g');let quoted=from.replace(quoter,"\\$&");let replacer=new RegExp(quoted,'g');return stringReplaceJS(receiver,replacer,to)}}else if(dart.is(from,JSSyntaxRegExp)){let re=regExpGetGlobalNative(dart.as(from,JSSyntaxRegExp));return stringReplaceJS(receiver,re,to)}else{checkNull(from);dart.throw("String.replaceAll(Pattern) UNIMPLEMENTED")}}dart.fn(stringReplaceAllUnchecked);function _matchString(match){return match.get(0)}dart.fn(_matchString,core.String,[core.Match]);function _stringIdentity(string){return string}dart.fn(_stringIdentity,core.String,[core.String]);function stringReplaceAllFuncUnchecked(receiver,pattern,onMatch,onNonMatch){if(!dart.is(pattern,core.Pattern)){dart.throw(new core.ArgumentError(`${pattern } is not a Pattern`))}if(onMatch==null)onMatch=_matchString;if(onNonMatch==null)onNonMatch=_stringIdentity;if(typeof pattern=='string'){return stringReplaceAllStringFuncUnchecked(receiver,pattern,onMatch,onNonMatch)}let buffer=new core.StringBuffer();let startIndex=0;for(let match of dart.as(dart.dsend(pattern,'allMatches',receiver),core.Iterable$(core.Match))){buffer.write(dart.dcall(onNonMatch,dart.dsend(receiver,'substring',startIndex,match.start)));buffer.write(dart.dcall(onMatch,match));startIndex=match.end}buffer.write(dart.dcall(onNonMatch,dart.dsend(receiver,'substring',startIndex)));return dart.toString(buffer)}dart.fn(stringReplaceAllFuncUnchecked);function stringReplaceAllEmptyFuncUnchecked(receiver,onMatch,onNonMatch){let buffer=new core.StringBuffer();let length=dart.as(dart.dload(receiver,'length'),core.int);let i=0;buffer.write(dart.dcall(onNonMatch,""));while(dart.notNull(i)<dart.notNull(length)){buffer.write(dart.dcall(onMatch,new StringMatch(i,dart.as(receiver,core.String),"")));let code=dart.as(dart.dsend(receiver,'codeUnitAt',i),core.int);if((dart.notNull(code)& ~1023)==55296&&dart.notNull(length)>dart.notNull(i)+1){code=dart.as(dart.dsend(receiver,'codeUnitAt',dart.notNull(i)+1),core.int);if((dart.notNull(code)& ~1023)==56320){buffer.write(dart.dcall(onNonMatch,dart.dsend(receiver,'substring',i,dart.notNull(i)+2)));i=dart.notNull(i)+2;continue}}buffer.write(dart.dcall(onNonMatch,dart.dindex(receiver,i)));i=dart.notNull(i)+1}buffer.write(dart.dcall(onMatch,new StringMatch(i,dart.as(receiver,core.String),"")));buffer.write(dart.dcall(onNonMatch,""));return dart.toString(buffer)}dart.fn(stringReplaceAllEmptyFuncUnchecked);function stringReplaceAllStringFuncUnchecked(receiver,pattern,onMatch,onNonMatch){let patternLength=dart.as(dart.dload(pattern,'length'),core.int);if(patternLength==0){return stringReplaceAllEmptyFuncUnchecked(receiver,onMatch,onNonMatch)}let length=dart.as(dart.dload(receiver,'length'),core.int);let buffer=new core.StringBuffer();let startIndex=0;while(dart.notNull(startIndex)<dart.notNull(length)){let position=dart.as(dart.dsend(receiver,'indexOf',pattern,startIndex),core.int);if(position==-1){break}buffer.write(dart.dcall(onNonMatch,dart.dsend(receiver,'substring',startIndex,position)));buffer.write(dart.dcall(onMatch,new StringMatch(position,dart.as(receiver,core.String),dart.as(pattern,core.String))));startIndex=dart.notNull(position)+dart.notNull(patternLength)}buffer.write(dart.dcall(onNonMatch,dart.dsend(receiver,'substring',startIndex)));return dart.toString(buffer)}dart.fn(stringReplaceAllStringFuncUnchecked);function stringReplaceFirstUnchecked(receiver,from,to,startIndex){if(startIndex===void 0)startIndex=0;if(typeof from=='string'){let index=dart.dsend(receiver,'indexOf',from,startIndex);if(dart.notNull(dart.as(dart.dsend(index,'<',0),core.bool)))return receiver;return `${dart.dsend(receiver,'substring',0,index)}${to }`+`${dart.dsend(receiver,'substring',dart.dsend(index,'+',dart.dload(from,'length')))}`}else if(dart.is(from,JSSyntaxRegExp)){return startIndex==0?stringReplaceJS(receiver,regExpGetNative(dart.as(from,JSSyntaxRegExp)),to):stringReplaceFirstRE(receiver,from,to,startIndex)}else{checkNull(from);dart.throw("String.replace(Pattern) UNIMPLEMENTED")}}dart.fn(stringReplaceFirstUnchecked,dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic],[core.int]);function stringJoinUnchecked(array,separator){return array.join(separator)}dart.fn(stringJoinUnchecked);function getRuntimeType(object){return dart.as(dart.realRuntimeType(object),core.Type)}dart.fn(getRuntimeType,core.Type,[dart.dynamic]);function getIndex(array,index){dart.assert(isJsArray(array));return array[index]}dart.fn(getIndex,dart.dynamic,[dart.dynamic,core.int]);function getLength(array){dart.assert(isJsArray(array));return array.length}dart.fn(getLength,core.int,[dart.dynamic]);function isJsArray(value){return dart.is(value,_interceptors.JSArray)}dart.fn(isJsArray,core.bool,[dart.dynamic]);class _Patch extends core.Object{_Patch(){}};dart.setSignature(_Patch,{constructors:()=>({_Patch:[_Patch,[]]})});let patch=dart.const(new _Patch());class InternalMap extends core.Object{};class Primitives extends core.Object{static initializeStatics(id){Primitives.mirrorFunctionCacheName=dart.notNull(Primitives.mirrorFunctionCacheName)+`_${id }`;Primitives.mirrorInvokeCacheName=dart.notNull(Primitives.mirrorInvokeCacheName)+`_${id }`}static objectHashCode(object){let hash=dart.as(object.$identityHash,core.int);if(hash==null){hash=Math.random()*0x3fffffff|0;object.$identityHash=hash}return hash}static _throwFormatException(string){dart.throw(new core.FormatException(string))}static parseInt(source,radix,handleError){if(handleError==null)handleError=dart.fn(s=>dart.as(Primitives._throwFormatException(dart.as(s,core.String)),core.int),core.int,[dart.dynamic]);checkString(source);let match=/^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source);let digitsIndex=1;let hexIndex=2;let decimalIndex=3;let nonDecimalHexIndex=4;if(radix==null){radix=10;if(match!=null){if(dart.dindex(match,hexIndex)!=null){return parseInt(source,16)}if(dart.dindex(match,decimalIndex)!=null){return parseInt(source,10)}return handleError(source)}}else{if(!(typeof radix=='number'))dart.throw(new core.ArgumentError("Radix is not an integer"));if(dart.notNull(radix)<2||dart.notNull(radix)>36){dart.throw(new core.RangeError(`Radix ${radix } not in range 2..36`))}if(match!=null){if(radix==10&&dart.dindex(match,decimalIndex)!=null){return parseInt(source,10)}if(dart.notNull(radix)<10||dart.dindex(match,decimalIndex)==null){let maxCharCode=null;if(dart.notNull(radix)<=10){maxCharCode=48+dart.notNull(radix)-1}else{maxCharCode=97+dart.notNull(radix)-10-1}let digitsPart=dart.as(dart.dindex(match,digitsIndex),core.String);for(let i=0;dart.notNull(i)<dart.notNull(digitsPart[dartx.length]);i=dart.notNull(i)+1){let characterCode=dart.notNull(digitsPart[dartx.codeUnitAt](0))|32;if(dart.notNull(digitsPart[dartx.codeUnitAt](i))>dart.notNull(maxCharCode)){return handleError(source)}}}}}if(match==null)return handleError(source);return parseInt(source,radix)}static parseDouble(source,handleError){checkString(source);if(handleError==null)handleError=dart.fn(s=>dart.as(Primitives._throwFormatException(dart.as(s,core.String)),core.double),core.double,[dart.dynamic]);if(!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(source)){return handleError(source)}let result=parseFloat(source);if(dart.notNull(result[dartx.isNaN])){let trimmed=source[dartx.trim]();if(trimmed=='NaN'||trimmed=='+NaN'||trimmed=='-NaN'){return result}return handleError(source)}return result}static objectTypeName(object){return dart.toString(getRuntimeType(object))}static objectToString(object){let name=dart.typeName(dart.realRuntimeType(object));return `Instance of '${name }'`}static dateNow(){return Date.now()}static initTicker(){if(Primitives.timerFrequency!=null)return;Primitives.timerFrequency=1000;Primitives.timerTicks=Primitives.dateNow;if(typeof window=="undefined")return;if(window==null)return;let performance=window.performance;if(performance==null)return;if(typeof performance.now!="function")return;Primitives.timerFrequency=1000000;Primitives.timerTicks=dart.fn(()=>(1000*performance.now())[dartx.floor](),core.int,[])}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 result="";let kMaxApply=500;let end=array[dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(end);i=dart.notNull(i)+dart.notNull(kMaxApply)){let subarray=null;if(dart.notNull(end)<=dart.notNull(kMaxApply)){subarray=array}else{subarray=array.slice(i,dart.notNull(i)+dart.notNull(kMaxApply)<dart.notNull(end)?dart.notNull(i)+dart.notNull(kMaxApply):end)}result=result+String.fromCharCode.apply(null,subarray)}return result}static stringFromCodePoints(codePoints){let a=dart.list([],core.int);for(let i of dart.as(codePoints,core.Iterable)){if(!(typeof i=='number'))dart.throw(new core.ArgumentError(i));if(dart.notNull(dart.as(dart.dsend(i,'<=',65535),core.bool))){a[dartx.add](dart.as(i,core.int))}else if(dart.notNull(dart.as(dart.dsend(i,'<=',1114111),core.bool))){a[dartx.add]((55296)[dartx['+']](dart.as(dart.dsend(dart.dsend(dart.dsend(i,'-',65536),'>>',10),'&',1023),core.num)));a[dartx.add]((56320)[dartx['+']](dart.as(dart.dsend(i,'&',1023),core.num)))}else{dart.throw(new core.ArgumentError(i))}}return Primitives._fromCharCodeApply(a)}static stringFromCharCodes(charCodes){for(let i of dart.as(charCodes,core.Iterable)){if(!(typeof i=='number'))dart.throw(new core.ArgumentError(i));if(dart.notNull(dart.as(dart.dsend(i,'<',0),core.bool)))dart.throw(new core.ArgumentError(i));if(dart.notNull(dart.as(dart.dsend(i,'>',65535),core.bool)))return Primitives.stringFromCodePoints(charCodes);}return Primitives._fromCharCodeApply(dart.as(charCodes,core.List$(core.int)))}static stringFromCharCode(charCode){if(0<=dart.notNull(dart.as(charCode,core.num))){if(dart.notNull(dart.as(dart.dsend(charCode,'<=',65535),core.bool))){return String.fromCharCode(charCode)}if(dart.notNull(dart.as(dart.dsend(charCode,'<=',1114111),core.bool))){let bits=dart.dsend(charCode,'-',65536);let low=(56320)[dartx['|']](dart.as(dart.dsend(bits,'&',1023),core.int));let high=(55296)[dartx['|']](dart.as(dart.dsend(bits,'>>',10),core.int));return String.fromCharCode(high,low)}}dart.throw(new core.RangeError.range(dart.as(charCode,core.num),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=Primitives.lazyAsJsDate(receiver);let match=dart.as(/\((.*)\)/.exec(d.toString()),core.List);if(match!=null)return dart.as(match[dartx.get](1),core.String);match=dart.as(/^[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()),core.List);if(match!=null)return dart.as(match[dartx.get](1),core.String);match=dart.as(/(?:GMT|UTC)[+-]\d{4}/.exec(d.toString()),core.List);if(match!=null)return dart.as(match[dartx.get](0),core.String);return ""}static getTimeZoneOffsetInMinutes(receiver){return-Primitives.lazyAsJsDate(receiver).getTimezoneOffset()}static valueFromDecomposedDate(years,month,day,hours,minutes,seconds,milliseconds,isUtc){let MAX_MILLISECONDS_SINCE_EPOCH=8640000000000000;checkInt(years);checkInt(month);checkInt(day);checkInt(hours);checkInt(minutes);checkInt(seconds);checkInt(milliseconds);checkBool(isUtc);let jsMonth=dart.dsend(month,'-',1);let value=null;if(dart.notNull(dart.as(isUtc,core.bool))){value=Date.UTC(years,jsMonth,day,hours,minutes,seconds,milliseconds)}else{value=new Date(years,jsMonth,day,hours,minutes,seconds,milliseconds).valueOf()}if(dart.notNull(dart.as(dart.dload(value,'isNaN'),core.bool))||dart.notNull(dart.as(dart.dsend(value,'<',-dart.notNull(MAX_MILLISECONDS_SINCE_EPOCH)),core.bool))||dart.notNull(dart.as(dart.dsend(value,'>',MAX_MILLISECONDS_SINCE_EPOCH),core.bool))){return null}if(dart.notNull(dart.as(dart.dsend(years,'<=',0),core.bool))||dart.notNull(dart.as(dart.dsend(years,'<',100),core.bool)))return Primitives.patchUpY2K(value,years,isUtc);return value}static patchUpY2K(value,years,isUtc){let date=new Date(value);if(dart.notNull(dart.as(isUtc,core.bool))){date.setUTCFullYear(years)}else{date.setFullYear(years)}return date.valueOf()}static lazyAsJsDate(receiver){if(receiver.date===void 0){receiver.date=new Date(dart.dload(receiver,'millisecondsSinceEpoch'))}return receiver.date}static getYear(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCFullYear()+0:Primitives.lazyAsJsDate(receiver).getFullYear()+0}static getMonth(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCMonth()+1:Primitives.lazyAsJsDate(receiver).getMonth()+1}static getDay(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCDate()+0:Primitives.lazyAsJsDate(receiver).getDate()+0}static getHours(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCHours()+0:Primitives.lazyAsJsDate(receiver).getHours()+0}static getMinutes(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCMinutes()+0:Primitives.lazyAsJsDate(receiver).getMinutes()+0}static getSeconds(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCSeconds()+0:Primitives.lazyAsJsDate(receiver).getSeconds()+0}static getMilliseconds(receiver){return dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCMilliseconds()+0:Primitives.lazyAsJsDate(receiver).getMilliseconds()+0}static getWeekday(receiver){let weekday=dart.notNull(dart.as(dart.dload(receiver,'isUtc'),core.bool))?Primitives.lazyAsJsDate(receiver).getUTCDay()+0:Primitives.lazyAsJsDate(receiver).getDay()+0;return(dart.notNull(weekday)+6)%7+1}static valueFromDateString(str){if(!(typeof str=='string'))dart.throw(new core.ArgumentError(str));let value=Date.parse(str);if(dart.notNull(value[dartx.isNaN]))dart.throw(new core.ArgumentError(str));return value}static getProperty(object,key){if(object==null||typeof object=='boolean'||dart.is(object,core.num)||typeof object=='string'){dart.throw(new core.ArgumentError(object))}return object[key]}static setProperty(object,key,value){if(object==null||typeof object=='boolean'||dart.is(object,core.num)||typeof object=='string'){dart.throw(new core.ArgumentError(object))}object[key]=value}static identicalImplementation(a,b){return a==null?b==null:a===b}static extractStackTrace(error){return getTraceFromException(error.$thrownJsError)}};dart.setSignature(Primitives,{names:['initializeStatics','objectHashCode','_throwFormatException','parseInt','parseDouble','objectTypeName','objectToString','dateNow','initTicker','currentUri','_fromCharCodeApply','stringFromCodePoints','stringFromCharCodes','stringFromCharCode','stringConcatUnchecked','flattenString','getTimeZoneName','getTimeZoneOffsetInMinutes','valueFromDecomposedDate','patchUpY2K','lazyAsJsDate','getYear','getMonth','getDay','getHours','getMinutes','getSeconds','getMilliseconds','getWeekday','valueFromDateString','getProperty','setProperty','identicalImplementation','extractStackTrace'],statics:()=>({_fromCharCodeApply:[core.String,[core.List$(core.int)]],_throwFormatException:[dart.dynamic,[core.String]],currentUri:[core.String,[]],dateNow:[core.num,[]],extractStackTrace:[core.StackTrace,[core.Error]],flattenString:[core.String,[core.String]],getDay:[dart.dynamic,[dart.dynamic]],getHours:[dart.dynamic,[dart.dynamic]],getMilliseconds:[dart.dynamic,[dart.dynamic]],getMinutes:[dart.dynamic,[dart.dynamic]],getMonth:[dart.dynamic,[dart.dynamic]],getProperty:[dart.dynamic,[dart.dynamic,dart.dynamic]],getSeconds:[dart.dynamic,[dart.dynamic]],getTimeZoneName:[core.String,[dart.dynamic]],getTimeZoneOffsetInMinutes:[core.int,[dart.dynamic]],getWeekday:[dart.dynamic,[dart.dynamic]],getYear:[dart.dynamic,[dart.dynamic]],identicalImplementation:[core.bool,[dart.dynamic,dart.dynamic]],initializeStatics:[dart.void,[core.int]],initTicker:[dart.void,[]],lazyAsJsDate:[dart.dynamic,[dart.dynamic]],objectHashCode:[core.int,[dart.dynamic]],objectToString:[core.String,[core.Object]],objectTypeName:[core.String,[core.Object]],parseDouble:[core.double,[core.String,dart.functionType(core.double,[core.String])]],parseInt:[core.int,[core.String,core.int,dart.functionType(core.int,[core.String])]],patchUpY2K:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],setProperty:[dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]],stringConcatUnchecked:[core.String,[core.String,core.String]],stringFromCharCode:[core.String,[dart.dynamic]],stringFromCharCodes:[core.String,[dart.dynamic]],stringFromCodePoints:[core.String,[dart.dynamic]],valueFromDateString:[dart.dynamic,[dart.dynamic]],valueFromDecomposedDate:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]]})});Primitives.mirrorFunctionCacheName='$cachedFunction';Primitives.mirrorInvokeCacheName='$cachedInvocation';Primitives.DOLLAR_CHAR_VALUE=36;Primitives.timerFrequency=null;Primitives.timerTicks=null;function stringLastIndexOfUnchecked(receiver,element,start){return receiver.lastIndexOf(element,start)}dart.fn(stringLastIndexOfUnchecked);function checkNull(object){if(object==null)dart.throw(new core.ArgumentError(null));return object}dart.fn(checkNull);function checkNum(value){if(!dart.is(value,core.num)){dart.throw(new core.ArgumentError(value))}return value}dart.fn(checkNum);function checkInt(value){if(!(typeof value=='number')){dart.throw(new core.ArgumentError(value))}return value}dart.fn(checkInt);function checkBool(value){if(!(typeof value=='boolean')){dart.throw(new core.ArgumentError(value))}return value}dart.fn(checkBool);function checkString(value){if(!(typeof value=='string')){dart.throw(new core.ArgumentError(value))}return value}dart.fn(checkString);function throwRuntimeError(message){dart.throw(new RuntimeError(message))}dart.fn(throwRuntimeError);function throwAbstractClassInstantiationError(className){dart.throw(new core.AbstractClassInstantiationError(dart.as(className,core.String)))}dart.fn(throwAbstractClassInstantiationError);let _message=Symbol('_message');let _method=Symbol('_method');class NullError extends core.Error{NullError(message,match){this[_message]=message;this[_method]=match==null?null:dart.as(match.method,core.String);super.Error()}toString(){if(this[_method]==null)return `NullError: ${this[_message]}`;return `NullError: Cannot call "${this[_method]}" on null`}};NullError[dart.implements]=()=>[core.NoSuchMethodError];dart.setSignature(NullError,{constructors:()=>({NullError:[NullError,[core.String,dart.dynamic]]})});let _receiver=Symbol('_receiver');class JsNoSuchMethodError extends core.Error{JsNoSuchMethodError(message,match){this[_message]=message;this[_method]=match==null?null:dart.as(match.method,core.String);this[_receiver]=match==null?null:dart.as(match.receiver,core.String);super.Error()}toString(){if(this[_method]==null)return `NoSuchMethodError: ${this[_message]}`;if(this[_receiver]==null){return `NoSuchMethodError: Cannot call "${this[_method]}" (${this[_message]})`}return `NoSuchMethodError: Cannot call "${this[_method]}" on "${this[_receiver]}" `+`(${this[_message]})`}};JsNoSuchMethodError[dart.implements]=()=>[core.NoSuchMethodError];dart.setSignature(JsNoSuchMethodError,{constructors:()=>({JsNoSuchMethodError:[JsNoSuchMethodError,[core.String,dart.dynamic]]})});class UnknownJsTypeError extends core.Error{UnknownJsTypeError(message){this[_message]=message;super.Error()}toString(){return dart.notNull(this[_message][dartx.isEmpty])?'Error':`Error: ${this[_message]}`}};dart.setSignature(UnknownJsTypeError,{constructors:()=>({UnknownJsTypeError:[UnknownJsTypeError,[core.String]]})});function getTraceFromException(exception){return new _StackTrace(exception)}dart.fn(getTraceFromException,core.StackTrace,[dart.dynamic]);let _exception=Symbol('_exception');let _trace=Symbol('_trace');class _StackTrace extends core.Object{_StackTrace(exception){this[_exception]=exception;this[_trace]=null}toString(){if(this[_trace]!=null)return this[_trace];let trace=null;if(typeof this[_exception]==="object"){trace=dart.as(this[_exception].stack,core.String)}return this[_trace]=trace==null?'':trace}};_StackTrace[dart.implements]=()=>[core.StackTrace];dart.setSignature(_StackTrace,{constructors:()=>({_StackTrace:[_StackTrace,[dart.dynamic]]})});function objectHashCode(object){if(object==null||typeof object!='object'){return dart.hashCode(object)}else{return Primitives.objectHashCode(object)}}dart.fn(objectHashCode,core.int,[dart.dynamic]);function fillLiteralMap(keyValuePairs,result){let index=0;let length=getLength(keyValuePairs);while(dart.notNull(index)<dart.notNull(length)){let key=getIndex(keyValuePairs,(()=>{let x=index;index=dart.notNull(x)+1;return x})());let value=getIndex(keyValuePairs,(()=>{let x=index;index=dart.notNull(x)+1;return x})());result.set(key,value)}return result}dart.fn(fillLiteralMap,dart.dynamic,[dart.dynamic,core.Map]);function jsHasOwnProperty(jsObject,property){return jsObject.hasOwnProperty(property)}dart.fn(jsHasOwnProperty,core.bool,[dart.dynamic,core.String]);function jsPropertyAccess(jsObject,property){return jsObject[property]}dart.fn(jsPropertyAccess,dart.dynamic,[dart.dynamic,core.String]);function getFallThroughError(){return new FallThroughErrorImplementation()}dart.fn(getFallThroughError);class Creates extends core.Object{Creates(types){this.types=types}};dart.setSignature(Creates,{constructors:()=>({Creates:[Creates,[core.String]]})});class Returns extends core.Object{Returns(types){this.types=types}};dart.setSignature(Returns,{constructors:()=>({Returns:[Returns,[core.String]]})});class JSName extends core.Object{JSName(name){this.name=name}};dart.setSignature(JSName,{constructors:()=>({JSName:[JSName,[core.String]]})});class JavaScriptIndexingBehavior extends _interceptors.JSMutableIndexable{};class TypeErrorImplementation extends core.Error{TypeErrorImplementation(value,type){this.message=`type '${Primitives.objectTypeName(value)}' is not a subtype `+`of type '${type }'`;super.Error()}fromMessage(message){this.message=message;super.Error()}toString(){return this.message}};TypeErrorImplementation[dart.implements]=()=>[core.TypeError];dart.defineNamedConstructor(TypeErrorImplementation,'fromMessage');dart.setSignature(TypeErrorImplementation,{constructors:()=>({fromMessage:[TypeErrorImplementation,[core.String]],TypeErrorImplementation:[TypeErrorImplementation,[core.Object,core.String]]})});class CastErrorImplementation extends core.Error{CastErrorImplementation(actualType,expectedType){this.message=`CastError: Casting value of type ${actualType } to`+` incompatible type ${expectedType }`;super.Error()}toString(){return this.message}};CastErrorImplementation[dart.implements]=()=>[core.CastError];dart.setSignature(CastErrorImplementation,{constructors:()=>({CastErrorImplementation:[CastErrorImplementation,[core.Object,core.Object]]})});class FallThroughErrorImplementation extends core.FallThroughError{FallThroughErrorImplementation(){super.FallThroughError()}toString(){return "Switch case fall-through."}};dart.setSignature(FallThroughErrorImplementation,{constructors:()=>({FallThroughErrorImplementation:[FallThroughErrorImplementation,[]]})});class RuntimeError extends core.Error{RuntimeError(message){this.message=message;super.Error()}toString(){return `RuntimeError: ${this.message }`}};dart.setSignature(RuntimeError,{constructors:()=>({RuntimeError:[RuntimeError,[dart.dynamic]]})});function random64(){let int32a=Math.random()*0x100000000>>>0;let int32b=Math.random()*0x100000000>>>0;return dart.notNull(int32a)+dart.notNull(int32b)*4294967296}dart.fn(random64,core.int,[]);function jsonEncodeNative(string){return JSON.stringify(string)}dart.fn(jsonEncodeNative,core.String,[core.String]);exports.NoThrows=NoThrows;exports.NoInline=NoInline;exports.Native=Native;exports.JsName=JsName;exports.JsPeerInterface=JsPeerInterface;exports.SupportJsExtensionMethods=SupportJsExtensionMethods;exports.defineProperty=defineProperty;exports.regExpGetNative=regExpGetNative;exports.regExpGetGlobalNative=regExpGetGlobalNative;exports.regExpCaptureCount=regExpCaptureCount;exports.JSSyntaxRegExp=JSSyntaxRegExp;exports.firstMatchAfter=firstMatchAfter;exports.StringMatch=StringMatch;exports.allMatchesInStringUnchecked=allMatchesInStringUnchecked;exports.stringContainsUnchecked=stringContainsUnchecked;exports.stringReplaceJS=stringReplaceJS;exports.stringReplaceFirstRE=stringReplaceFirstRE;exports.ESCAPE_REGEXP=ESCAPE_REGEXP;exports.stringReplaceAllUnchecked=stringReplaceAllUnchecked;exports.stringReplaceAllFuncUnchecked=stringReplaceAllFuncUnchecked;exports.stringReplaceAllEmptyFuncUnchecked=stringReplaceAllEmptyFuncUnchecked;exports.stringReplaceAllStringFuncUnchecked=stringReplaceAllStringFuncUnchecked;exports.stringReplaceFirstUnchecked=stringReplaceFirstUnchecked;exports.stringJoinUnchecked=stringJoinUnchecked;exports.getRuntimeType=getRuntimeType;exports.getIndex=getIndex;exports.getLength=getLength;exports.isJsArray=isJsArray;exports.patch=patch;exports.InternalMap=InternalMap;exports.Primitives=Primitives;exports.stringLastIndexOfUnchecked=stringLastIndexOfUnchecked;exports.checkNull=checkNull;exports.checkNum=checkNum;exports.checkInt=checkInt;exports.checkBool=checkBool;exports.checkString=checkString;exports.throwRuntimeError=throwRuntimeError;exports.throwAbstractClassInstantiationError=throwAbstractClassInstantiationError;exports.NullError=NullError;exports.JsNoSuchMethodError=JsNoSuchMethodError;exports.UnknownJsTypeError=UnknownJsTypeError;exports.getTraceFromException=getTraceFromException;exports.objectHashCode=objectHashCode;exports.fillLiteralMap=fillLiteralMap;exports.jsHasOwnProperty=jsHasOwnProperty;exports.jsPropertyAccess=jsPropertyAccess;exports.getFallThroughError=getFallThroughError;exports.Creates=Creates;exports.Returns=Returns;exports.JSName=JSName;exports.JavaScriptIndexingBehavior=JavaScriptIndexingBehavior;exports.TypeErrorImplementation=TypeErrorImplementation;exports.CastErrorImplementation=CastErrorImplementation;exports.FallThroughErrorImplementation=FallThroughErrorImplementation;exports.RuntimeError=RuntimeError;exports.random64=random64;exports.jsonEncodeNative=jsonEncodeNative});dart_library.library('dart/_js_mirrors',null,["dart_runtime/dart",'dart/_internal','dart/core','dart/mirrors'],[],function(exports,dart,_internal,core,mirrors){'use strict';let dartx=dart.dartx;function getName(symbol){return _internal.Symbol.getName(dart.as(symbol,_internal.Symbol))}dart.fn(getName,core.String,[core.Symbol]);function getSymbol(name,library){return dart.throw(new core.UnimplementedError("MirrorSystem.getSymbol unimplemented"))}dart.fn(getSymbol,core.Symbol,[dart.dynamic,dart.dynamic]);dart.defineLazyProperties(exports,{get currentJsMirrorSystem(){return dart.throw(new core.UnimplementedError("MirrorSystem.currentJsMirrorSystem unimplemented"))}});function reflect(reflectee){return new JsInstanceMirror._(reflectee)}dart.fn(reflect,mirrors.InstanceMirror,[dart.dynamic]);function reflectType(key){return new JsClassMirror._(key)}dart.fn(reflectType,mirrors.TypeMirror,[core.Type]);dart.defineLazyProperties(exports,{get _metadata(){return exports._dart.metadata},get _dart(){return dart}});function _dload(obj,name){return exports._dart.dload(obj,name)}dart.fn(_dload,dart.dynamic,[dart.dynamic,core.String]);function _dput(obj,name,val){exports._dart.dput(obj,name,val)}dart.fn(_dput,dart.void,[dart.dynamic,core.String,dart.dynamic]);function _dsend(obj,name,args){return exports._dart.dsend(obj,name,...args)}dart.fn(_dsend,dart.dynamic,[dart.dynamic,core.String,core.List]);let _toJsMap=Symbol('_toJsMap');class JsInstanceMirror extends core.Object{_(reflectee){this.reflectee=reflectee}get type(){return dart.throw(new core.UnimplementedError("ClassMirror.type unimplemented"))}get hasReflectee(){return dart.throw(new core.UnimplementedError("ClassMirror.hasReflectee unimplemented"))}delegate(invocation){return dart.throw(new core.UnimplementedError("ClassMirror.delegate unimplemented"))}getField(symbol){let name=getName(symbol);let field=_dload(this.reflectee,name);return new JsInstanceMirror._(field)}setField(symbol,value){let name=getName(symbol);let field=_dput(this.reflectee,name,value);return new JsInstanceMirror._(field)}invoke(symbol,args,namedArgs){if(namedArgs===void 0)namedArgs=null;let name=getName(symbol);if(namedArgs!=null){args=core.List.from(args);args[dartx.add](this[_toJsMap](namedArgs))}let result=_dsend(this.reflectee,name,args);return new JsInstanceMirror._(result)}[_toJsMap](map){let obj={};map.forEach(dart.fn((key,value)=>{obj[getName(key)]=value},dart.dynamic,[core.Symbol,dart.dynamic]));return obj}};JsInstanceMirror[dart.implements]=()=>[mirrors.InstanceMirror];dart.defineNamedConstructor(JsInstanceMirror,'_');dart.setSignature(JsInstanceMirror,{constructors:()=>({_:[JsInstanceMirror,[core.Object]]}),methods:()=>({[_toJsMap]:[dart.dynamic,[core.Map$(core.Symbol,dart.dynamic)]],delegate:[dart.dynamic,[core.Invocation]],getField:[mirrors.InstanceMirror,[core.Symbol]],invoke:[mirrors.InstanceMirror,[core.Symbol,core.List],[core.Map$(core.Symbol,dart.dynamic)]],setField:[mirrors.InstanceMirror,[core.Symbol,core.Object]]})});let _metadata=Symbol('_metadata');let _declarations=Symbol('_declarations');let _cls=Symbol('_cls');class JsClassMirror extends core.Object{get metadata(){return this[_metadata]}get declarations(){return this[_declarations]}_(cls){this[_cls]=cls;this.simpleName=core.Symbol.new(cls.name);this[_metadata]=null;this[_declarations]=null;let fn=this[_cls][dart.metadata];this[_metadata]=fn==null?dart.list([],mirrors.InstanceMirror):core.List$(mirrors.InstanceMirror).from(dart.as(dart.dsend(dart.dcall(fn),'map',dart.fn(i=>new JsInstanceMirror._(i),JsInstanceMirror,[dart.dynamic])),core.Iterable));this[_declarations]=core.Map$(core.Symbol,mirrors.MethodMirror).new();this[_declarations].set(this.simpleName,new JsMethodMirror._(this,this[_cls]))}newInstance(constructorName,args,namedArgs){if(namedArgs===void 0)namedArgs=null;dart.assert(getName(constructorName)=="");dart.assert(namedArgs==null||dart.notNull(namedArgs.isEmpty));let instance=exports._dart.instantiate(this[_cls],args);return new JsInstanceMirror._(instance)}get superinterfaces(){let interfaces=this[_cls][dart.implements];if(interfaces==null){return dart.list([],mirrors.ClassMirror)}dart.throw(new core.UnimplementedError("ClassMirror.superinterfaces unimplemented"))}getField(fieldName){return dart.throw(new core.UnimplementedError("ClassMirror.getField unimplemented"))}invoke(memberName,positionalArguments,namedArguments){if(namedArguments===void 0)namedArguments=null;return dart.throw(new core.UnimplementedError("ClassMirror.invoke unimplemented"))}isAssignableTo(other){return dart.throw(new core.UnimplementedError("ClassMirror.isAssignable unimplemented"))}isSubclassOf(other){return dart.throw(new core.UnimplementedError("ClassMirror.isSubclassOf unimplemented"))}isSubtypeOf(other){return dart.throw(new core.UnimplementedError("ClassMirror.isSubtypeOf unimplemented"))}setField(fieldName,value){return dart.throw(new core.UnimplementedError("ClassMirror.setField unimplemented"))}get hasReflectedType(){return dart.throw(new core.UnimplementedError("ClassMirror.hasReflectedType unimplemented"))}get instanceMembers(){return dart.throw(new core.UnimplementedError("ClassMirror.instanceMembers unimplemented"))}get isAbstract(){return dart.throw(new core.UnimplementedError("ClassMirror.isAbstract unimplemented"))}get isEnum(){return dart.throw(new core.UnimplementedError("ClassMirror.isEnum unimplemented"))}get isOriginalDeclaration(){return dart.throw(new core.UnimplementedError("ClassMirror.isOriginalDeclaration unimplemented"))}get isPrivate(){return dart.throw(new core.UnimplementedError("ClassMirror.isPrivate unimplemented"))}get isTopLevel(){return dart.throw(new core.UnimplementedError("ClassMirror.isTopLevel unimplemented"))}get location(){return dart.throw(new core.UnimplementedError("ClassMirror.location unimplemented"))}get mixin(){return dart.throw(new core.UnimplementedError("ClassMirror.mixin unimplemented"))}get originalDeclaration(){return dart.throw(new core.UnimplementedError("ClassMirror.originalDeclaration unimplemented"))}get owner(){return dart.throw(new core.UnimplementedError("ClassMirror.owner unimplemented"))}get qualifiedName(){return dart.throw(new core.UnimplementedError("ClassMirror.qualifiedName unimplemented"))}get reflectedType(){return dart.throw(new core.UnimplementedError("ClassMirror.reflectedType unimplemented"))}get staticMembers(){return dart.throw(new core.UnimplementedError("ClassMirror.staticMembers unimplemented"))}get superclass(){return dart.throw(new core.UnimplementedError("ClassMirror.superclass unimplemented"))}get typeArguments(){return dart.throw(new core.UnimplementedError("ClassMirror.typeArguments unimplemented"))}get typeVariables(){return dart.throw(new core.UnimplementedError("ClassMirror.typeVariables unimplemented"))}};JsClassMirror[dart.implements]=()=>[mirrors.ClassMirror];dart.defineNamedConstructor(JsClassMirror,'_');dart.setSignature(JsClassMirror,{constructors:()=>({_:[JsClassMirror,[core.Type]]}),methods:()=>({getField:[mirrors.InstanceMirror,[core.Symbol]],invoke:[mirrors.InstanceMirror,[core.Symbol,core.List],[core.Map$(core.Symbol,dart.dynamic)]],isAssignableTo:[core.bool,[mirrors.TypeMirror]],isSubclassOf:[core.bool,[mirrors.ClassMirror]],isSubtypeOf:[core.bool,[mirrors.TypeMirror]],newInstance:[mirrors.InstanceMirror,[core.Symbol,core.List],[core.Map$(core.Symbol,dart.dynamic)]],setField:[mirrors.InstanceMirror,[core.Symbol,core.Object]]})});class JsTypeMirror extends core.Object{_(reflectedType){this.reflectedType=reflectedType;this.hasReflectedType=true}isAssignableTo(other){return dart.throw(new core.UnimplementedError("TypeMirror.isAssignable unimplemented"))}isSubtypeOf(other){return dart.throw(new core.UnimplementedError("TypeMirror.isSubtypeOf unimplemented"))}get isOriginalDeclaration(){return dart.throw(new core.UnimplementedError("TypeMirror.isOriginalDeclaration unimplemented"))}get isPrivate(){return dart.throw(new core.UnimplementedError("TypeMirror.isPrivate unimplemented"))}get isTopLevel(){return dart.throw(new core.UnimplementedError("TypeMirror.isTopLevel unimplemented"))}get location(){return dart.throw(new core.UnimplementedError("TypeMirror.location unimplemented"))}get metadata(){return dart.throw(new core.UnimplementedError("TypeMirror.metadata unimplemented"))}get originalDeclaration(){return dart.throw(new core.UnimplementedError("TypeMirror.originalDeclaration unimplemented"))}get owner(){return dart.throw(new core.UnimplementedError("TypeMirror.owner unimplemented"))}get qualifiedName(){return dart.throw(new core.UnimplementedError("TypeMirror.qualifiedName unimplemented"))}get simpleName(){return dart.throw(new core.UnimplementedError("TypeMirror.simpleName unimplemented"))}get typeArguments(){return dart.throw(new core.UnimplementedError("TypeMirror.typeArguments unimplemented"))}get typeVariables(){return dart.throw(new core.UnimplementedError("TypeMirror.typeVariables unimplemented"))}};JsTypeMirror[dart.implements]=()=>[mirrors.TypeMirror];dart.defineNamedConstructor(JsTypeMirror,'_');dart.setSignature(JsTypeMirror,{constructors:()=>({_:[JsTypeMirror,[core.Type]]}),methods:()=>({isAssignableTo:[core.bool,[mirrors.TypeMirror]],isSubtypeOf:[core.bool,[mirrors.TypeMirror]]})});let _name=Symbol('_name');class JsParameterMirror extends core.Object{_(name,t,annotations){this[_name]=name;this.type=new JsTypeMirror._(t);this.metadata=core.List$(mirrors.InstanceMirror).from(annotations[dartx.map](dart.fn(a=>new JsInstanceMirror._(a),JsInstanceMirror,[dart.dynamic])))}get defaultValue(){return dart.throw(new core.UnimplementedError("ParameterMirror.defaultValues unimplemented"))}get hasDefaultValue(){return dart.throw(new core.UnimplementedError("ParameterMirror.hasDefaultValue unimplemented"))}get isConst(){return dart.throw(new core.UnimplementedError("ParameterMirror.isConst unimplemented"))}get isFinal(){return dart.throw(new core.UnimplementedError("ParameterMirror.isFinal unimplemented"))}get isNamed(){return dart.throw(new core.UnimplementedError("ParameterMirror.isNamed unimplemented"))}get isOptional(){return dart.throw(new core.UnimplementedError("ParameterMirror.isOptional unimplemented"))}get isPrivate(){return dart.throw(new core.UnimplementedError("ParameterMirror.isPrivate unimplemented"))}get isStatic(){return dart.throw(new core.UnimplementedError("ParameterMirror.isStatic unimplemented"))}get isTopLevel(){return dart.throw(new core.UnimplementedError("ParameterMirror.isTopLevel unimplemented"))}get location(){return dart.throw(new core.UnimplementedError("ParameterMirror.location unimplemented"))}get owner(){return dart.throw(new core.UnimplementedError("ParameterMirror.owner unimplemented"))}get qualifiedName(){return dart.throw(new core.UnimplementedError("ParameterMirror.qualifiedName unimplemented"))}get simpleName(){return dart.throw(new core.UnimplementedError("ParameterMirror.simpleName unimplemented"))}};JsParameterMirror[dart.implements]=()=>[mirrors.ParameterMirror];dart.defineNamedConstructor(JsParameterMirror,'_');dart.setSignature(JsParameterMirror,{constructors:()=>({_:[JsParameterMirror,[core.String,core.Type,core.List]]})});let _method=Symbol('_method');let _params=Symbol('_params');let _createParameterMirrorList=Symbol('_createParameterMirrorList');class JsMethodMirror extends core.Object{_(cls,method){this[_method]=method;this[_name]=getName(cls.simpleName);this[_params]=null;let ftype=exports._dart.classGetConstructorType(cls[_cls]);this[_params]=this[_createParameterMirrorList](ftype)}get constructorName(){return core.Symbol.new('')}get parameters(){return this[_params]}[_createParameterMirrorList](ftype){if(ftype==null){return dart.list([],mirrors.ParameterMirror)}let args=dart.as(dart.dload(ftype,'args'),core.List);let opts=dart.as(dart.dload(ftype,'optionals'),core.List);let params=core.List$(mirrors.ParameterMirror).new(dart.notNull(args[dartx.length])+dart.notNull(opts[dartx.length]));for(let i=0;dart.notNull(i)<dart.notNull(args[dartx.length]);i=dart.notNull(i)+1){let type=args[dartx.get](i);let metadata=dart.dindex(dart.dload(ftype,'metadata'),i);let param=new JsParameterMirror._('',dart.as(type,core.Type),dart.as(metadata,core.List));params[dartx.set](i,param)}for(let i=0;dart.notNull(i)<dart.notNull(opts[dartx.length]);i=dart.notNull(i)+1){let type=opts[dartx.get](i);let metadata=dart.dindex(dart.dload(ftype,'metadata'),dart.notNull(args[dartx.length])+dart.notNull(i));let param=new JsParameterMirror._('',dart.as(type,core.Type),dart.as(metadata,core.List));params[dartx.set](dart.notNull(i)+dart.notNull(args[dartx.length]),param)}return params}get isAbstract(){return dart.throw(new core.UnimplementedError("MethodMirror.isAbstract unimplemented"))}get isConstConstructor(){return dart.throw(new core.UnimplementedError("MethodMirror.isConstConstructor unimplemented"))}get isConstructor(){return dart.throw(new core.UnimplementedError("MethodMirror.isConstructor unimplemented"))}get isFactoryConstructor(){return dart.throw(new core.UnimplementedError("MethodMirror.isFactoryConstructor unimplemented"))}get isGenerativeConstructor(){return dart.throw(new core.UnimplementedError("MethodMirror.isGenerativeConstructor unimplemented"))}get isGetter(){return dart.throw(new core.UnimplementedError("MethodMirror.isGetter unimplemented"))}get isOperator(){return dart.throw(new core.UnimplementedError("MethodMirror.isOperator unimplemented"))}get isPrivate(){return dart.throw(new core.UnimplementedError("MethodMirror.isPrivate unimplemented"))}get isRedirectingConstructor(){return dart.throw(new core.UnimplementedError("MethodMirror.isRedirectingConstructor unimplemented"))}get isRegularMethod(){return dart.throw(new core.UnimplementedError("MethodMirror.isRegularMethod unimplemented"))}get isSetter(){return dart.throw(new core.UnimplementedError("MethodMirror.isSetter unimplemented"))}get isStatic(){return dart.throw(new core.UnimplementedError("MethodMirror.isStatic unimplemented"))}get isSynthetic(){return dart.throw(new core.UnimplementedError("MethodMirror.isSynthetic unimplemented"))}get isTopLevel(){return dart.throw(new core.UnimplementedError("MethodMirror.isTopLevel unimplemented"))}get location(){return dart.throw(new core.UnimplementedError("MethodMirror.location unimplemented"))}get metadata(){return dart.throw(new core.UnimplementedError("MethodMirror.metadata unimplemented"))}get owner(){return dart.throw(new core.UnimplementedError("MethodMirror.owner unimplemented"))}get qualifiedName(){return dart.throw(new core.UnimplementedError("MethodMirror.qualifiedName unimplemented"))}get returnType(){return dart.throw(new core.UnimplementedError("MethodMirror.returnType unimplemented"))}get simpleName(){return dart.throw(new core.UnimplementedError("MethodMirror.simpleName unimplemented"))}get source(){return dart.throw(new core.UnimplementedError("MethodMirror.source unimplemented"))}};JsMethodMirror[dart.implements]=()=>[mirrors.MethodMirror];dart.defineNamedConstructor(JsMethodMirror,'_');dart.setSignature(JsMethodMirror,{constructors:()=>({_:[JsMethodMirror,[JsClassMirror,dart.dynamic]]}),methods:()=>({[_createParameterMirrorList]:[core.List$(mirrors.ParameterMirror),[dart.dynamic]]})});exports.getName=getName;exports.getSymbol=getSymbol;exports.reflect=reflect;exports.reflectType=reflectType;exports.JsInstanceMirror=JsInstanceMirror;exports.JsClassMirror=JsClassMirror;exports.JsTypeMirror=JsTypeMirror;exports.JsParameterMirror=JsParameterMirror;exports.JsMethodMirror=JsMethodMirror});dart_library.library('dart/_js_primitives',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;function printString(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.fn(printString,dart.void,[core.String]);exports.printString=printString});dart_library.library('dart/_native_typed_data',null,["dart_runtime/dart",'dart/core','dart/typed_data','dart/_js_helper','dart/collection','dart/_internal','dart/_interceptors','dart/math'],[],function(exports,dart,core,typed_data,_js_helper,collection,_internal,_interceptors,math){'use strict';let dartx=dart.dartx;class NativeByteBuffer extends core.Object{NativeByteBuffer(){this.lengthInBytes=null}get runtimeType(){return typed_data.ByteBuffer}asUint8List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeUint8List.view(this,offsetInBytes,length)}asInt8List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeInt8List.view(this,offsetInBytes,length)}asUint8ClampedList(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeUint8ClampedList.view(this,offsetInBytes,length)}asUint16List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeUint16List.view(this,offsetInBytes,length)}asInt16List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeInt16List.view(this,offsetInBytes,length)}asUint32List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeUint32List.view(this,offsetInBytes,length)}asInt32List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeInt32List.view(this,offsetInBytes,length)}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."))}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."))}asInt32x4List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;let storage=dart.as(this.asInt32List(offsetInBytes,length!=null?dart.notNull(length)*4:null),NativeInt32List);return new NativeInt32x4List._externalStorage(storage)}asFloat32List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeFloat32List.view(this,offsetInBytes,length)}asFloat64List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeFloat64List.view(this,offsetInBytes,length)}asFloat32x4List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;let storage=dart.as(this.asFloat32List(offsetInBytes,length!=null?dart.notNull(length)*4:null),NativeFloat32List);return new NativeFloat32x4List._externalStorage(storage)}asFloat64x2List(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;let storage=dart.as(this.asFloat64List(offsetInBytes,length!=null?dart.notNull(length)*2:null),NativeFloat64List);return new NativeFloat64x2List._externalStorage(storage)}asByteData(offsetInBytes,length){if(offsetInBytes===void 0)offsetInBytes=0;if(length===void 0)length=null;return NativeByteData.view(this,offsetInBytes,length)}};NativeByteBuffer[dart.implements]=()=>[typed_data.ByteBuffer];dart.setSignature(NativeByteBuffer,{methods:()=>({asByteData:[typed_data.ByteData,[],[core.int,core.int]],asFloat32List:[typed_data.Float32List,[],[core.int,core.int]],asFloat32x4List:[typed_data.Float32x4List,[],[core.int,core.int]],asFloat64List:[typed_data.Float64List,[],[core.int,core.int]],asFloat64x2List:[typed_data.Float64x2List,[],[core.int,core.int]],asInt16List:[typed_data.Int16List,[],[core.int,core.int]],asInt32List:[typed_data.Int32List,[],[core.int,core.int]],asInt32x4List:[typed_data.Int32x4List,[],[core.int,core.int]],asInt64List:[typed_data.Int64List,[],[core.int,core.int]],asInt8List:[typed_data.Int8List,[],[core.int,core.int]],asUint16List:[typed_data.Uint16List,[],[core.int,core.int]],asUint32List:[typed_data.Uint32List,[],[core.int,core.int]],asUint64List:[typed_data.Uint64List,[],[core.int,core.int]],asUint8ClampedList:[typed_data.Uint8ClampedList,[],[core.int,core.int]],asUint8List:[typed_data.Uint8List,[],[core.int,core.int]]})});NativeByteBuffer[dart.metadata]=()=>[dart.const(new _js_helper.Native("ArrayBuffer"))];let _storage=Symbol('_storage');let _invalidIndex=Symbol('_invalidIndex');let _checkIndex=Symbol('_checkIndex');let _checkSublistArguments=Symbol('_checkSublistArguments');class NativeFloat32x4List extends dart.mixin(core.Object,collection.ListMixin$(typed_data.Float32x4),_internal.FixedLengthListMixin$(typed_data.Float32x4)){NativeFloat32x4List(length){this[_storage]=NativeFloat32List.new(dart.notNull(length)*4)}_externalStorage(storage){this[_storage]=storage}_slowFromList(list){this[_storage]=NativeFloat32List.new(dart.notNull(list[dartx.length])*4);for(let i=0;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){let e=list[dartx.get](i);this[_storage].set(dart.notNull(i)*4+0,e.x);this[_storage].set(dart.notNull(i)*4+1,e.y);this[_storage].set(dart.notNull(i)*4+2,e.z);this[_storage].set(dart.notNull(i)*4+3,e.w)}}get runtimeType(){return typed_data.Float32x4List}static fromList(list){if(dart.is(list,NativeFloat32x4List)){return new NativeFloat32x4List._externalStorage(NativeFloat32List.fromList(list[_storage]))}else{return new NativeFloat32x4List._slowFromList(list)}}get buffer(){return this[_storage].buffer}get lengthInBytes(){return this[_storage].lengthInBytes}get offsetInBytes(){return this[_storage].offsetInBytes}get elementSizeInBytes(){return typed_data.Float32x4List.BYTES_PER_ELEMENT}[_invalidIndex](index,length){if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(length)){if(length==this.length){dart.throw(core.RangeError.index(index,this))}dart.throw(new core.RangeError.range(index,0,dart.notNull(length)-1))}else{dart.throw(new core.ArgumentError(`Invalid list index ${index }`))}}[_checkIndex](index,length){if(index>>>0!=index||dart.notNull(index)>=dart.notNull(length)){this[_invalidIndex](index,length)}}[_checkSublistArguments](start,end,length){this[_checkIndex](start,dart.notNull(length)+1);if(end==null)return length;this[_checkIndex](end,dart.notNull(length)+1);if(dart.notNull(start)>dart.notNull(end))dart.throw(new core.RangeError.range(start,0,end));return end}get length(){return(dart.notNull(this[_storage].length)/4)[dartx.truncate]()}get(index){this[_checkIndex](index,this.length);let _x=this[_storage].get(dart.notNull(index)*4+0);let _y=this[_storage].get(dart.notNull(index)*4+1);let _z=this[_storage].get(dart.notNull(index)*4+2);let _w=this[_storage].get(dart.notNull(index)*4+3);return new NativeFloat32x4._truncated(_x,_y,_z,_w)}set(index,value){this[_checkIndex](index,this.length);this[_storage].set(dart.notNull(index)*4+0,value.x);this[_storage].set(dart.notNull(index)*4+1,value.y);this[_storage].set(dart.notNull(index)*4+2,value.z);this[_storage].set(dart.notNull(index)*4+3,value.w)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);return new NativeFloat32x4List._externalStorage(dart.as(this[_storage].sublist(dart.notNull(start)*4,dart.notNull(end)*4),NativeFloat32List))}}NativeFloat32x4List[dart.implements]=()=>[typed_data.Float32x4List];dart.defineNamedConstructor(NativeFloat32x4List,'_externalStorage');dart.defineNamedConstructor(NativeFloat32x4List,'_slowFromList');dart.setSignature(NativeFloat32x4List,{constructors:()=>({_externalStorage:[NativeFloat32x4List,[NativeFloat32List]],_slowFromList:[NativeFloat32x4List,[core.List$(typed_data.Float32x4)]],fromList:[NativeFloat32x4List,[core.List$(typed_data.Float32x4)]],NativeFloat32x4List:[NativeFloat32x4List,[core.int]]}),methods:()=>({[_checkSublistArguments]:[core.int,[core.int,core.int,core.int]],[_checkIndex]:[dart.void,[core.int,core.int]],[_invalidIndex]:[dart.void,[core.int,core.int]],get:[typed_data.Float32x4,[core.int]],set:[dart.void,[core.int,typed_data.Float32x4]],sublist:[core.List$(typed_data.Float32x4),[core.int],[core.int]]})});dart.defineExtensionMembers(NativeFloat32x4List,['get','set','sublist','length']);class NativeInt32x4List extends dart.mixin(core.Object,collection.ListMixin$(typed_data.Int32x4),_internal.FixedLengthListMixin$(typed_data.Int32x4)){NativeInt32x4List(length){this[_storage]=NativeInt32List.new(dart.notNull(length)*4)}_externalStorage(storage){this[_storage]=storage}_slowFromList(list){this[_storage]=NativeInt32List.new(dart.notNull(list[dartx.length])*4);for(let i=0;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){let e=list[dartx.get](i);this[_storage].set(dart.notNull(i)*4+0,e.x);this[_storage].set(dart.notNull(i)*4+1,e.y);this[_storage].set(dart.notNull(i)*4+2,e.z);this[_storage].set(dart.notNull(i)*4+3,e.w)}}get runtimeType(){return typed_data.Int32x4List}static fromList(list){if(dart.is(list,NativeInt32x4List)){return new NativeInt32x4List._externalStorage(NativeInt32List.fromList(list[_storage]))}else{return new NativeInt32x4List._slowFromList(list)}}get buffer(){return this[_storage].buffer}get lengthInBytes(){return this[_storage].lengthInBytes}get offsetInBytes(){return this[_storage].offsetInBytes}get elementSizeInBytes(){return typed_data.Int32x4List.BYTES_PER_ELEMENT}[_invalidIndex](index,length){if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(length)){if(length==this.length){dart.throw(core.RangeError.index(index,this))}dart.throw(new core.RangeError.range(index,0,dart.notNull(length)-1))}else{dart.throw(new core.ArgumentError(`Invalid list index ${index }`))}}[_checkIndex](index,length){if(index>>>0!=index||index>=length){this[_invalidIndex](index,length)}}[_checkSublistArguments](start,end,length){this[_checkIndex](start,dart.notNull(length)+1);if(end==null)return length;this[_checkIndex](end,dart.notNull(length)+1);if(dart.notNull(start)>dart.notNull(end))dart.throw(new core.RangeError.range(start,0,end));return end}get length(){return(dart.notNull(this[_storage].length)/4)[dartx.truncate]()}get(index){this[_checkIndex](index,this.length);let _x=this[_storage].get(dart.notNull(index)*4+0);let _y=this[_storage].get(dart.notNull(index)*4+1);let _z=this[_storage].get(dart.notNull(index)*4+2);let _w=this[_storage].get(dart.notNull(index)*4+3);return new NativeInt32x4._truncated(_x,_y,_z,_w)}set(index,value){this[_checkIndex](index,this.length);this[_storage].set(dart.notNull(index)*4+0,value.x);this[_storage].set(dart.notNull(index)*4+1,value.y);this[_storage].set(dart.notNull(index)*4+2,value.z);this[_storage].set(dart.notNull(index)*4+3,value.w)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);return new NativeInt32x4List._externalStorage(dart.as(this[_storage].sublist(dart.notNull(start)*4,dart.notNull(end)*4),typed_data.Int32List))}}NativeInt32x4List[dart.implements]=()=>[typed_data.Int32x4List];dart.defineNamedConstructor(NativeInt32x4List,'_externalStorage');dart.defineNamedConstructor(NativeInt32x4List,'_slowFromList');dart.setSignature(NativeInt32x4List,{constructors:()=>({_externalStorage:[NativeInt32x4List,[typed_data.Int32List]],_slowFromList:[NativeInt32x4List,[core.List$(typed_data.Int32x4)]],fromList:[NativeInt32x4List,[core.List$(typed_data.Int32x4)]],NativeInt32x4List:[NativeInt32x4List,[core.int]]}),methods:()=>({[_checkSublistArguments]:[core.int,[core.int,core.int,core.int]],[_checkIndex]:[dart.void,[core.int,core.int]],[_invalidIndex]:[dart.void,[core.int,core.int]],get:[typed_data.Int32x4,[core.int]],set:[dart.void,[core.int,typed_data.Int32x4]],sublist:[core.List$(typed_data.Int32x4),[core.int],[core.int]]})});dart.defineExtensionMembers(NativeInt32x4List,['get','set','sublist','length']);class NativeFloat64x2List extends dart.mixin(core.Object,collection.ListMixin$(typed_data.Float64x2),_internal.FixedLengthListMixin$(typed_data.Float64x2)){NativeFloat64x2List(length){this[_storage]=NativeFloat64List.new(dart.notNull(length)*2)}_externalStorage(storage){this[_storage]=storage}_slowFromList(list){this[_storage]=NativeFloat64List.new(dart.notNull(list[dartx.length])*2);for(let i=0;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){let e=list[dartx.get](i);this[_storage].set(dart.notNull(i)*2+0,e.x);this[_storage].set(dart.notNull(i)*2+1,e.y)}}static fromList(list){if(dart.is(list,NativeFloat64x2List)){return new NativeFloat64x2List._externalStorage(NativeFloat64List.fromList(list[_storage]))}else{return new NativeFloat64x2List._slowFromList(list)}}get runtimeType(){return typed_data.Float64x2List}get buffer(){return this[_storage].buffer}get lengthInBytes(){return this[_storage].lengthInBytes}get offsetInBytes(){return this[_storage].offsetInBytes}get elementSizeInBytes(){return typed_data.Float64x2List.BYTES_PER_ELEMENT}[_invalidIndex](index,length){if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(length)){if(length==this.length){dart.throw(core.RangeError.index(index,this))}dart.throw(new core.RangeError.range(index,0,dart.notNull(length)-1))}else{dart.throw(new core.ArgumentError(`Invalid list index ${index }`))}}[_checkIndex](index,length){if(index>>>0!=index||dart.notNull(index)>=dart.notNull(length)){this[_invalidIndex](index,length)}}[_checkSublistArguments](start,end,length){this[_checkIndex](start,dart.notNull(length)+1);if(end==null)return length;this[_checkIndex](end,dart.notNull(length)+1);if(dart.notNull(start)>dart.notNull(end))dart.throw(new core.RangeError.range(start,0,end));return end}get length(){return(dart.notNull(this[_storage].length)/2)[dartx.truncate]()}get(index){this[_checkIndex](index,this.length);let _x=this[_storage].get(dart.notNull(index)*2+0);let _y=this[_storage].get(dart.notNull(index)*2+1);return typed_data.Float64x2.new(_x,_y)}set(index,value){this[_checkIndex](index,this.length);this[_storage].set(dart.notNull(index)*2+0,value.x);this[_storage].set(dart.notNull(index)*2+1,value.y)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);return new NativeFloat64x2List._externalStorage(dart.as(this[_storage].sublist(dart.notNull(start)*2,dart.notNull(end)*2),NativeFloat64List))}}NativeFloat64x2List[dart.implements]=()=>[typed_data.Float64x2List];dart.defineNamedConstructor(NativeFloat64x2List,'_externalStorage');dart.defineNamedConstructor(NativeFloat64x2List,'_slowFromList');dart.setSignature(NativeFloat64x2List,{constructors:()=>({_externalStorage:[NativeFloat64x2List,[NativeFloat64List]],_slowFromList:[NativeFloat64x2List,[core.List$(typed_data.Float64x2)]],fromList:[NativeFloat64x2List,[core.List$(typed_data.Float64x2)]],NativeFloat64x2List:[NativeFloat64x2List,[core.int]]}),methods:()=>({[_checkSublistArguments]:[core.int,[core.int,core.int,core.int]],[_checkIndex]:[dart.void,[core.int,core.int]],[_invalidIndex]:[dart.void,[core.int,core.int]],get:[typed_data.Float64x2,[core.int]],set:[dart.void,[core.int,typed_data.Float64x2]],sublist:[core.List$(typed_data.Float64x2),[core.int],[core.int]]})});dart.defineExtensionMembers(NativeFloat64x2List,['get','set','sublist','length']);class NativeTypedData extends core.Object{NativeTypedData(){this.buffer=null;this.lengthInBytes=null;this.offsetInBytes=null;this.elementSizeInBytes=null}[_invalidIndex](index,length){if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(length)){if(dart.is(this,core.List)){let list=this;if(dart.equals(length,list.length)){dart.throw(core.RangeError.index(index,this))}}dart.throw(new core.RangeError.range(index,0,dart.notNull(length)-1))}else{dart.throw(new core.ArgumentError(`Invalid list index ${index }`))}}[_checkIndex](index,length){if(index>>>0!==index||index>=dart.notNull(length)){this[_invalidIndex](index,length)}}[_checkSublistArguments](start,end,length){this[_checkIndex](start,dart.notNull(length)+1);if(end==null)return length;this[_checkIndex](end,dart.notNull(length)+1);if(dart.notNull(start)>dart.notNull(end))dart.throw(new core.RangeError.range(start,0,end));return end}};NativeTypedData[dart.implements]=()=>[typed_data.TypedData];dart.setSignature(NativeTypedData,{methods:()=>({[_checkSublistArguments]:[core.int,[core.int,core.int,core.int]],[_checkIndex]:[dart.void,[core.int,core.int]],[_invalidIndex]:[dart.void,[core.int,core.int]]})});NativeTypedData[dart.metadata]=()=>[dart.const(new _js_helper.Native("ArrayBufferView"))];function _checkLength(length){if(!(typeof length=='number'))dart.throw(new core.ArgumentError(`Invalid length ${length }`));return dart.as(length,core.int)}dart.fn(_checkLength,core.int,[dart.dynamic]);function _checkViewArguments(buffer,offsetInBytes,length){if(!dart.is(buffer,NativeByteBuffer)){dart.throw(new core.ArgumentError('Invalid view buffer'))}if(!(typeof offsetInBytes=='number')){dart.throw(new core.ArgumentError(`Invalid view offsetInBytes ${offsetInBytes }`))}if(length!=null&& !(typeof length=='number')){dart.throw(new core.ArgumentError(`Invalid view length ${length }`))}}dart.fn(_checkViewArguments,dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]);function _ensureNativeList(list){if(dart.is(list,_interceptors.JSIndexable))return list;let result=core.List.new(list[dartx.length]);for(let i=0;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){result[dartx.set](i,list[dartx.get](i))}return result}dart.fn(_ensureNativeList,core.List,[core.List]);let _getFloat32=Symbol('_getFloat32');let _getFloat64=Symbol('_getFloat64');let _getInt16=Symbol('_getInt16');let _getInt32=Symbol('_getInt32');let _getUint16=Symbol('_getUint16');let _getUint32=Symbol('_getUint32');let _setFloat32=Symbol('_setFloat32');let _setFloat64=Symbol('_setFloat64');let _setInt16=Symbol('_setInt16');let _setInt32=Symbol('_setInt32');let _setUint16=Symbol('_setUint16');let _setUint32=Symbol('_setUint32');class NativeByteData extends NativeTypedData{static new(length){return NativeByteData._create1(_checkLength(length))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeByteData._create2(buffer,offsetInBytes):NativeByteData._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.ByteData}get elementSizeInBytes(){return 1}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))}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))}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))}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))}getInt64(byteOffset,endian){if(endian===void 0)endian=typed_data.Endianness.BIG_ENDIAN;dart.throw(new core.UnsupportedError('Int64 accessor not supported by dart2js.'))}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))}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))}getUint64(byteOffset,endian){if(endian===void 0)endian=typed_data.Endianness.BIG_ENDIAN;dart.throw(new core.UnsupportedError('Uint64 accessor not supported by dart2js.'))}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))}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))}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))}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))}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.'))}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))}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))}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.'))}static _create1(arg){return dart.as(new DataView(new ArrayBuffer(arg)),NativeByteData)}static _create2(arg1,arg2){return dart.as(new DataView(arg1,arg2),NativeByteData)}static _create3(arg1,arg2,arg3){return dart.as(new DataView(arg1,arg2,arg3),NativeByteData)}};NativeByteData[dart.implements]=()=>[typed_data.ByteData];dart.setSignature(NativeByteData,{constructors:()=>({new:[NativeByteData,[core.int]],view:[NativeByteData,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({[_getUint32]:[core.int,[core.int],[core.bool]],[_getUint16]:[core.int,[core.int],[core.bool]],[_getFloat64]:[core.double,[core.int],[core.bool]],[_setFloat32]:[dart.void,[core.int,core.num],[core.bool]],[_setUint16]:[dart.void,[core.int,core.int],[core.bool]],[_getFloat32]:[core.double,[core.int],[core.bool]],[_setInt16]:[dart.void,[core.int,core.int],[core.bool]],[_setUint32]:[dart.void,[core.int,core.int],[core.bool]],[_setFloat64]:[dart.void,[core.int,core.num],[core.bool]],[_getInt32]:[core.int,[core.int],[core.bool]],[_setInt32]:[dart.void,[core.int,core.int],[core.bool]],[_getInt16]:[core.int,[core.int],[core.bool]],getFloat32:[core.double,[core.int],[typed_data.Endianness]],getFloat64:[core.double,[core.int],[typed_data.Endianness]],getInt16:[core.int,[core.int],[typed_data.Endianness]],getInt32:[core.int,[core.int],[typed_data.Endianness]],getInt64:[core.int,[core.int],[typed_data.Endianness]],getInt8:[core.int,[core.int]],getUint16:[core.int,[core.int],[typed_data.Endianness]],getUint32:[core.int,[core.int],[typed_data.Endianness]],getUint64:[core.int,[core.int],[typed_data.Endianness]],getUint8:[core.int,[core.int]],setFloat32:[dart.void,[core.int,core.num],[typed_data.Endianness]],setFloat64:[dart.void,[core.int,core.num],[typed_data.Endianness]],setInt16:[dart.void,[core.int,core.int],[typed_data.Endianness]],setInt32:[dart.void,[core.int,core.int],[typed_data.Endianness]],setInt64:[dart.void,[core.int,core.int],[typed_data.Endianness]],setInt8:[dart.void,[core.int,core.int]],setUint16:[dart.void,[core.int,core.int],[typed_data.Endianness]],setUint32:[dart.void,[core.int,core.int],[typed_data.Endianness]],setUint64:[dart.void,[core.int,core.int],[typed_data.Endianness]],setUint8:[dart.void,[core.int,core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeByteData,[dart.dynamic]],_create2:[NativeByteData,[dart.dynamic,dart.dynamic]],_create3:[NativeByteData,[dart.dynamic,dart.dynamic,dart.dynamic]]})});NativeByteData[dart.metadata]=()=>[dart.const(new _js_helper.Native("DataView"))];let _setRangeFast=Symbol('_setRangeFast');class NativeTypedArray extends NativeTypedData{NativeTypedArray(){super.NativeTypedData()}[_setRangeFast](start,end,source,skipCount){let targetLength=this.length;this[_checkIndex](start,dart.notNull(targetLength)+1);this[_checkIndex](end,dart.notNull(targetLength)+1);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.length;if(dart.notNull(sourceLength)-dart.notNull(skipCount)<dart.notNull(count)){dart.throw(new core.StateError('Not enough elements'))}if(skipCount!=0||sourceLength!=count){source=dart.as(source.subarray(skipCount,dart.notNull(skipCount)+dart.notNull(count)),NativeTypedArray)}this.set(source,start)}};NativeTypedArray[dart.implements]=()=>[_js_helper.JavaScriptIndexingBehavior];dart.setSignature(NativeTypedArray,{methods:()=>({[_setRangeFast]:[dart.void,[core.int,core.int,NativeTypedArray,core.int]]})});class NativeTypedArrayOfDouble extends dart.mixin(NativeTypedArray,collection.ListMixin$(core.double),_internal.FixedLengthListMixin$(core.double)){get length(){return dart.as(this.length,core.int)}get(index){this[_checkIndex](index,this.length);return this[index]}set(index,value){this[_checkIndex](index,this.length);this[index]=value}setRange(start,end,iterable,skipCount){if(skipCount===void 0)skipCount=0;if(dart.is(iterable,NativeTypedArrayOfDouble)){this[_setRangeFast](start,end,iterable,skipCount);return}super.setRange(start,end,iterable,skipCount)}}dart.setSignature(NativeTypedArrayOfDouble,{methods:()=>({get:[core.double,[core.int]],set:[dart.void,[core.int,core.num]],setRange:[dart.void,[core.int,core.int,core.Iterable$(core.double)],[core.int]]})});dart.defineExtensionMembers(NativeTypedArrayOfDouble,['get','set','setRange','length']);class NativeTypedArrayOfInt extends dart.mixin(NativeTypedArray,collection.ListMixin$(core.int),_internal.FixedLengthListMixin$(core.int)){get length(){return dart.as(this.length,core.int)}set(index,value){this[_checkIndex](index,this.length);this[index]=value}setRange(start,end,iterable,skipCount){if(skipCount===void 0)skipCount=0;if(dart.is(iterable,NativeTypedArrayOfInt)){this[_setRangeFast](start,end,iterable,skipCount);return}super.setRange(start,end,iterable,skipCount)}}NativeTypedArrayOfInt[dart.implements]=()=>[core.List$(core.int)];dart.setSignature(NativeTypedArrayOfInt,{methods:()=>({set:[dart.void,[core.int,core.int]],setRange:[dart.void,[core.int,core.int,core.Iterable$(core.int)],[core.int]]})});dart.defineExtensionMembers(NativeTypedArrayOfInt,['set','setRange','length']);class NativeFloat32List extends NativeTypedArrayOfDouble{static new(length){return NativeFloat32List._create1(_checkLength(length))}static fromList(elements){return NativeFloat32List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeFloat32List._create2(buffer,offsetInBytes):NativeFloat32List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Float32List}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeFloat32List._create1(source)}static _create1(arg){return dart.as(new Float32Array(arg),NativeFloat32List)}static _create2(arg1,arg2){return dart.as(new Float32Array(arg1,arg2),NativeFloat32List)}static _create3(arg1,arg2,arg3){return dart.as(new Float32Array(arg1,arg2,arg3),NativeFloat32List)}};NativeFloat32List[dart.implements]=()=>[typed_data.Float32List];dart.setSignature(NativeFloat32List,{constructors:()=>({fromList:[NativeFloat32List,[core.List$(core.double)]],new:[NativeFloat32List,[core.int]],view:[NativeFloat32List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({sublist:[core.List$(core.double),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeFloat32List,[dart.dynamic]],_create2:[NativeFloat32List,[dart.dynamic,dart.dynamic]],_create3:[NativeFloat32List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeFloat32List,['sublist']);NativeFloat32List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Float32Array"))];class NativeFloat64List extends NativeTypedArrayOfDouble{static new(length){return NativeFloat64List._create1(_checkLength(length))}static fromList(elements){return NativeFloat64List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeFloat64List._create2(buffer,offsetInBytes):NativeFloat64List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Float64List}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeFloat64List._create1(source)}static _create1(arg){return dart.as(new Float64Array(arg),NativeFloat64List)}static _create2(arg1,arg2){return dart.as(new Float64Array(arg1,arg2),NativeFloat64List)}static _create3(arg1,arg2,arg3){return dart.as(new Float64Array(arg1,arg2,arg3),NativeFloat64List)}};NativeFloat64List[dart.implements]=()=>[typed_data.Float64List];dart.setSignature(NativeFloat64List,{constructors:()=>({fromList:[NativeFloat64List,[core.List$(core.double)]],new:[NativeFloat64List,[core.int]],view:[NativeFloat64List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({sublist:[core.List$(core.double),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeFloat64List,[dart.dynamic]],_create2:[NativeFloat64List,[dart.dynamic,dart.dynamic]],_create3:[NativeFloat64List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeFloat64List,['sublist']);NativeFloat64List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Float64Array"))];class NativeInt16List extends NativeTypedArrayOfInt{static new(length){return NativeInt16List._create1(_checkLength(length))}static fromList(elements){return NativeInt16List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeInt16List._create2(buffer,offsetInBytes):NativeInt16List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Int16List}get(index){this[_checkIndex](index,this.length);return this[index]}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeInt16List._create1(source)}static _create1(arg){return dart.as(new Int16Array(arg),NativeInt16List)}static _create2(arg1,arg2){return dart.as(new Int16Array(arg1,arg2),NativeInt16List)}static _create3(arg1,arg2,arg3){return dart.as(new Int16Array(arg1,arg2,arg3),NativeInt16List)}};NativeInt16List[dart.implements]=()=>[typed_data.Int16List];dart.setSignature(NativeInt16List,{constructors:()=>({fromList:[NativeInt16List,[core.List$(core.int)]],new:[NativeInt16List,[core.int]],view:[NativeInt16List,[NativeByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeInt16List,[dart.dynamic]],_create2:[NativeInt16List,[dart.dynamic,dart.dynamic]],_create3:[NativeInt16List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeInt16List,['get','sublist']);NativeInt16List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Int16Array"))];class NativeInt32List extends NativeTypedArrayOfInt{static new(length){return NativeInt32List._create1(_checkLength(length))}static fromList(elements){return NativeInt32List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeInt32List._create2(buffer,offsetInBytes):NativeInt32List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Int32List}get(index){this[_checkIndex](index,this.length);return this[index]}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeInt32List._create1(source)}static _create1(arg){return dart.as(new Int32Array(arg),NativeInt32List)}static _create2(arg1,arg2){return dart.as(new Int32Array(arg1,arg2),NativeInt32List)}static _create3(arg1,arg2,arg3){return dart.as(new Int32Array(arg1,arg2,arg3),NativeInt32List)}};NativeInt32List[dart.implements]=()=>[typed_data.Int32List];dart.setSignature(NativeInt32List,{constructors:()=>({fromList:[NativeInt32List,[core.List$(core.int)]],new:[NativeInt32List,[core.int]],view:[NativeInt32List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeInt32List,[dart.dynamic]],_create2:[NativeInt32List,[dart.dynamic,dart.dynamic]],_create3:[NativeInt32List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeInt32List,['get','sublist']);NativeInt32List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Int32Array"))];class NativeInt8List extends NativeTypedArrayOfInt{static new(length){return NativeInt8List._create1(_checkLength(length))}static fromList(elements){return NativeInt8List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return dart.as(length==null?NativeInt8List._create2(buffer,offsetInBytes):NativeInt8List._create3(buffer,offsetInBytes,length),NativeInt8List)}get runtimeType(){return typed_data.Int8List}get(index){this[_checkIndex](index,this.length);return this[index]}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeInt8List._create1(source)}static _create1(arg){return dart.as(new Int8Array(arg),NativeInt8List)}static _create2(arg1,arg2){return dart.as(new Int8Array(arg1,arg2),NativeInt8List)}static _create3(arg1,arg2,arg3){return dart.as(new Int8Array(arg1,arg2,arg3),typed_data.Int8List)}};NativeInt8List[dart.implements]=()=>[typed_data.Int8List];dart.setSignature(NativeInt8List,{constructors:()=>({fromList:[NativeInt8List,[core.List$(core.int)]],new:[NativeInt8List,[core.int]],view:[NativeInt8List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeInt8List,[dart.dynamic]],_create2:[NativeInt8List,[dart.dynamic,dart.dynamic]],_create3:[typed_data.Int8List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeInt8List,['get','sublist']);NativeInt8List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Int8Array"))];class NativeUint16List extends NativeTypedArrayOfInt{static new(length){return NativeUint16List._create1(_checkLength(length))}static fromList(list){return NativeUint16List._create1(_ensureNativeList(list))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeUint16List._create2(buffer,offsetInBytes):NativeUint16List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Uint16List}get(index){this[_checkIndex](index,this.length);return dart.as(this[index],core.int)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeUint16List._create1(source)}static _create1(arg){return dart.as(new Uint16Array(arg),NativeUint16List)}static _create2(arg1,arg2){return dart.as(new Uint16Array(arg1,arg2),NativeUint16List)}static _create3(arg1,arg2,arg3){return dart.as(new Uint16Array(arg1,arg2,arg3),NativeUint16List)}};NativeUint16List[dart.implements]=()=>[typed_data.Uint16List];dart.setSignature(NativeUint16List,{constructors:()=>({fromList:[NativeUint16List,[core.List$(core.int)]],new:[NativeUint16List,[core.int]],view:[NativeUint16List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeUint16List,[dart.dynamic]],_create2:[NativeUint16List,[dart.dynamic,dart.dynamic]],_create3:[NativeUint16List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeUint16List,['get','sublist']);NativeUint16List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Uint16Array"))];class NativeUint32List extends NativeTypedArrayOfInt{static new(length){return NativeUint32List._create1(_checkLength(length))}static fromList(elements){return NativeUint32List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeUint32List._create2(buffer,offsetInBytes):NativeUint32List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Uint32List}get(index){this[_checkIndex](index,this.length);return dart.as(this[index],core.int)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeUint32List._create1(source)}static _create1(arg){return dart.as(new Uint32Array(arg),NativeUint32List)}static _create2(arg1,arg2){return dart.as(new Uint32Array(arg1,arg2),NativeUint32List)}static _create3(arg1,arg2,arg3){return dart.as(new Uint32Array(arg1,arg2,arg3),NativeUint32List)}};NativeUint32List[dart.implements]=()=>[typed_data.Uint32List];dart.setSignature(NativeUint32List,{constructors:()=>({fromList:[NativeUint32List,[core.List$(core.int)]],new:[NativeUint32List,[core.int]],view:[NativeUint32List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeUint32List,[dart.dynamic]],_create2:[NativeUint32List,[dart.dynamic,dart.dynamic]],_create3:[NativeUint32List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeUint32List,['get','sublist']);NativeUint32List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Uint32Array"))];class NativeUint8ClampedList extends NativeTypedArrayOfInt{static new(length){return NativeUint8ClampedList._create1(_checkLength(length))}static fromList(elements){return NativeUint8ClampedList._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeUint8ClampedList._create2(buffer,offsetInBytes):NativeUint8ClampedList._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Uint8ClampedList}get length(){return dart.as(this.length,core.int)}get(index){this[_checkIndex](index,this.length);return dart.as(this[index],core.int)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeUint8ClampedList._create1(source)}static _create1(arg){return dart.as(new Uint8ClampedArray(arg),NativeUint8ClampedList)}static _create2(arg1,arg2){return dart.as(new Uint8ClampedArray(arg1,arg2),NativeUint8ClampedList)}static _create3(arg1,arg2,arg3){return dart.as(new Uint8ClampedArray(arg1,arg2,arg3),NativeUint8ClampedList)}};NativeUint8ClampedList[dart.implements]=()=>[typed_data.Uint8ClampedList];dart.setSignature(NativeUint8ClampedList,{constructors:()=>({fromList:[NativeUint8ClampedList,[core.List$(core.int)]],new:[NativeUint8ClampedList,[core.int]],view:[NativeUint8ClampedList,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeUint8ClampedList,[dart.dynamic]],_create2:[NativeUint8ClampedList,[dart.dynamic,dart.dynamic]],_create3:[NativeUint8ClampedList,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeUint8ClampedList,['get','sublist','length']);NativeUint8ClampedList[dart.metadata]=()=>[dart.const(new _js_helper.Native("Uint8ClampedArray,CanvasPixelArray"))];class NativeUint8List extends NativeTypedArrayOfInt{static new(length){return NativeUint8List._create1(_checkLength(length))}static fromList(elements){return NativeUint8List._create1(_ensureNativeList(elements))}static view(buffer,offsetInBytes,length){_checkViewArguments(buffer,offsetInBytes,length);return length==null?NativeUint8List._create2(buffer,offsetInBytes):NativeUint8List._create3(buffer,offsetInBytes,length)}get runtimeType(){return typed_data.Uint8List}get length(){return dart.as(this.length,core.int)}get(index){this[_checkIndex](index,this.length);return dart.as(this[index],core.int)}sublist(start,end){if(end===void 0)end=null;end=this[_checkSublistArguments](start,end,this.length);let source=this.subarray(start,end);return NativeUint8List._create1(source)}static _create1(arg){return dart.as(new Uint8Array(arg),NativeUint8List)}static _create2(arg1,arg2){return dart.as(new Uint8Array(arg1,arg2),NativeUint8List)}static _create3(arg1,arg2,arg3){return dart.as(new Uint8Array(arg1,arg2,arg3),NativeUint8List)}};NativeUint8List[dart.implements]=()=>[typed_data.Uint8List];dart.setSignature(NativeUint8List,{constructors:()=>({fromList:[NativeUint8List,[core.List$(core.int)]],new:[NativeUint8List,[core.int]],view:[NativeUint8List,[typed_data.ByteBuffer,core.int,core.int]]}),methods:()=>({get:[core.int,[core.int]],sublist:[core.List$(core.int),[core.int],[core.int]]}),names:['_create1','_create2','_create3'],statics:()=>({_create1:[NativeUint8List,[dart.dynamic]],_create2:[NativeUint8List,[dart.dynamic,dart.dynamic]],_create3:[NativeUint8List,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(NativeUint8List,['get','sublist','length']);NativeUint8List[dart.metadata]=()=>[dart.const(new _js_helper.Native("Uint8Array,!nonleaf"))];class NativeFloat32x4 extends core.Object{static _truncate(x){NativeFloat32x4._list.set(0,dart.as(x,core.num));return NativeFloat32x4._list.get(0)}NativeFloat32x4(x,y,z,w){this.x=dart.as(NativeFloat32x4._truncate(x),core.double);this.y=dart.as(NativeFloat32x4._truncate(y),core.double);this.z=dart.as(NativeFloat32x4._truncate(z),core.double);this.w=dart.as(NativeFloat32x4._truncate(w),core.double);if(!dart.is(x,core.num))dart.throw(new core.ArgumentError(x));if(!dart.is(y,core.num))dart.throw(new core.ArgumentError(y));if(!dart.is(z,core.num))dart.throw(new core.ArgumentError(z));if(!dart.is(w,core.num))dart.throw(new core.ArgumentError(w));}splat(v){this.NativeFloat32x4(v,v,v,v)}zero(){this._truncated(0.0,0.0,0.0,0.0)}static fromInt32x4Bits(i){NativeFloat32x4._uint32view.set(0,i.x);NativeFloat32x4._uint32view.set(1,i.y);NativeFloat32x4._uint32view.set(2,i.z);NativeFloat32x4._uint32view.set(3,i.w);return new NativeFloat32x4._truncated(NativeFloat32x4._list.get(0),NativeFloat32x4._list.get(1),NativeFloat32x4._list.get(2),NativeFloat32x4._list.get(3))}fromFloat64x2(v){this._truncated(dart.as(NativeFloat32x4._truncate(v.x),core.double),dart.as(NativeFloat32x4._truncate(v.y),core.double),0.0,0.0)}_doubles(x,y,z,w){this.x=dart.as(NativeFloat32x4._truncate(x),core.double);this.y=dart.as(NativeFloat32x4._truncate(y),core.double);this.z=dart.as(NativeFloat32x4._truncate(z),core.double);this.w=dart.as(NativeFloat32x4._truncate(w),core.double)}_truncated(x,y,z,w){this.x=x;this.y=y;this.z=z;this.w=w}toString(){return `[${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 NativeFloat32x4._doubles(_x,_y,_z,_w)}['unary-'](){return new 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 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 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 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 NativeInt32x4._truncated(dart.notNull(_cx)?-1:0,dart.notNull(_cy)?-1:0,dart.notNull(_cz)?-1:0,dart.notNull(_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 NativeInt32x4._truncated(dart.notNull(_cx)?-1:0,dart.notNull(_cy)?-1:0,dart.notNull(_cz)?-1:0,dart.notNull(_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 NativeInt32x4._truncated(dart.notNull(_cx)?-1:0,dart.notNull(_cy)?-1:0,dart.notNull(_cz)?-1:0,dart.notNull(_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 NativeInt32x4._truncated(dart.notNull(_cx)?-1:0,dart.notNull(_cy)?-1:0,dart.notNull(_cz)?-1:0,dart.notNull(_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 NativeInt32x4._truncated(dart.notNull(_cx)?-1:0,dart.notNull(_cy)?-1:0,dart.notNull(_cz)?-1:0,dart.notNull(_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 NativeInt32x4._truncated(dart.notNull(_cx)?-1:0,dart.notNull(_cy)?-1:0,dart.notNull(_cz)?-1:0,dart.notNull(_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 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 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 NativeFloat32x4._truncated(_x,_y,_z,_w)}get signMask(){let view=NativeFloat32x4._uint32view;let mx=null,my=null,mz=null,mw=null;NativeFloat32x4._list.set(0,this.x);NativeFloat32x4._list.set(1,this.y);NativeFloat32x4._list.set(2,this.z);NativeFloat32x4._list.set(3,this.w);mx=(dart.notNull(view.get(0))&2147483648)>>31;my=(dart.notNull(view.get(1))&2147483648)>>30;mz=(dart.notNull(view.get(2))&2147483648)>>29;mw=(dart.notNull(view.get(3))&2147483648)>>28;return dart.as(dart.dsend(dart.dsend(dart.dsend(mx,'|',my),'|',mz),'|',mw),core.int)}shuffle(m){if(dart.notNull(m)<0||dart.notNull(m)>255){dart.throw(new core.RangeError(`mask ${m } must be in the range [0..256)`))}NativeFloat32x4._list.set(0,this.x);NativeFloat32x4._list.set(1,this.y);NativeFloat32x4._list.set(2,this.z);NativeFloat32x4._list.set(3,this.w);let _x=NativeFloat32x4._list.get(dart.notNull(m)&3);let _y=NativeFloat32x4._list.get(dart.notNull(m)>>2&3);let _z=NativeFloat32x4._list.get(dart.notNull(m)>>4&3);let _w=NativeFloat32x4._list.get(dart.notNull(m)>>6&3);return new NativeFloat32x4._truncated(_x,_y,_z,_w)}shuffleMix(other,m){if(dart.notNull(m)<0||dart.notNull(m)>255){dart.throw(new core.RangeError(`mask ${m } must be in the range [0..256)`))}NativeFloat32x4._list.set(0,this.x);NativeFloat32x4._list.set(1,this.y);NativeFloat32x4._list.set(2,this.z);NativeFloat32x4._list.set(3,this.w);let _x=NativeFloat32x4._list.get(dart.notNull(m)&3);let _y=NativeFloat32x4._list.get(dart.notNull(m)>>2&3);NativeFloat32x4._list.set(0,other.x);NativeFloat32x4._list.set(1,other.y);NativeFloat32x4._list.set(2,other.z);NativeFloat32x4._list.set(3,other.w);let _z=NativeFloat32x4._list.get(dart.notNull(m)>>4&3);let _w=NativeFloat32x4._list.get(dart.notNull(m)>>6&3);return new NativeFloat32x4._truncated(_x,_y,_z,_w)}withX(newX){return new NativeFloat32x4._truncated(dart.as(NativeFloat32x4._truncate(newX),core.double),this.y,this.z,this.w)}withY(newY){return new NativeFloat32x4._truncated(this.x,dart.as(NativeFloat32x4._truncate(newY),core.double),this.z,this.w)}withZ(newZ){return new NativeFloat32x4._truncated(this.x,this.y,dart.as(NativeFloat32x4._truncate(newZ),core.double),this.w)}withW(newW){return new NativeFloat32x4._truncated(this.x,this.y,this.z,dart.as(NativeFloat32x4._truncate(newW),core.double))}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 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 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 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 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 NativeFloat32x4._doubles(_x,_y,_z,_w)}};NativeFloat32x4[dart.implements]=()=>[typed_data.Float32x4];dart.defineNamedConstructor(NativeFloat32x4,'splat');dart.defineNamedConstructor(NativeFloat32x4,'zero');dart.defineNamedConstructor(NativeFloat32x4,'fromFloat64x2');dart.defineNamedConstructor(NativeFloat32x4,'_doubles');dart.defineNamedConstructor(NativeFloat32x4,'_truncated');dart.setSignature(NativeFloat32x4,{constructors:()=>({_doubles:[NativeFloat32x4,[core.double,core.double,core.double,core.double]],_truncated:[NativeFloat32x4,[core.double,core.double,core.double,core.double]],fromFloat64x2:[NativeFloat32x4,[typed_data.Float64x2]],fromInt32x4Bits:[NativeFloat32x4,[typed_data.Int32x4]],NativeFloat32x4:[NativeFloat32x4,[core.double,core.double,core.double,core.double]],splat:[NativeFloat32x4,[core.double]],zero:[NativeFloat32x4,[]]}),methods:()=>({'*':[typed_data.Float32x4,[typed_data.Float32x4]],'+':[typed_data.Float32x4,[typed_data.Float32x4]],'-':[typed_data.Float32x4,[typed_data.Float32x4]],'/':[typed_data.Float32x4,[typed_data.Float32x4]],'unary-':[typed_data.Float32x4,[]],abs:[typed_data.Float32x4,[]],clamp:[typed_data.Float32x4,[typed_data.Float32x4,typed_data.Float32x4]],equal:[typed_data.Int32x4,[typed_data.Float32x4]],greaterThan:[typed_data.Int32x4,[typed_data.Float32x4]],greaterThanOrEqual:[typed_data.Int32x4,[typed_data.Float32x4]],lessThan:[typed_data.Int32x4,[typed_data.Float32x4]],lessThanOrEqual:[typed_data.Int32x4,[typed_data.Float32x4]],max:[typed_data.Float32x4,[typed_data.Float32x4]],min:[typed_data.Float32x4,[typed_data.Float32x4]],notEqual:[typed_data.Int32x4,[typed_data.Float32x4]],reciprocal:[typed_data.Float32x4,[]],reciprocalSqrt:[typed_data.Float32x4,[]],scale:[typed_data.Float32x4,[core.double]],shuffle:[typed_data.Float32x4,[core.int]],shuffleMix:[typed_data.Float32x4,[typed_data.Float32x4,core.int]],sqrt:[typed_data.Float32x4,[]],withW:[typed_data.Float32x4,[core.double]],withX:[typed_data.Float32x4,[core.double]],withY:[typed_data.Float32x4,[core.double]],withZ:[typed_data.Float32x4,[core.double]]}),names:['_truncate'],statics:()=>({_truncate:[dart.dynamic,[dart.dynamic]]})});dart.defineLazyProperties(NativeFloat32x4,{get _uint32view(){return NativeFloat32x4._list.buffer.asUint32List()},get _list(){return NativeFloat32List.new(4)}});class NativeInt32x4 extends core.Object{static _truncate(x){NativeInt32x4._list.set(0,dart.as(x,core.int));return NativeInt32x4._list.get(0)}NativeInt32x4(x,y,z,w){this.x=dart.as(NativeInt32x4._truncate(x),core.int);this.y=dart.as(NativeInt32x4._truncate(y),core.int);this.z=dart.as(NativeInt32x4._truncate(z),core.int);this.w=dart.as(NativeInt32x4._truncate(w),core.int);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.notNull(x)?-1:0;this.y=dart.notNull(y)?-1:0;this.z=dart.notNull(z)?-1:0;this.w=dart.notNull(w)?-1:0}static fromFloat32x4Bits(f){let floatList=NativeFloat32x4._list;floatList.set(0,f.x);floatList.set(1,f.y);floatList.set(2,f.z);floatList.set(3,f.w);let view=dart.as(floatList.buffer.asInt32List(),NativeInt32List);return new NativeInt32x4._truncated(view.get(0),view.get(1),view.get(2),view.get(3))}_truncated(x,y,z,w){this.x=x;this.y=y;this.z=z;this.w=w}toString(){return `[${this.x }, ${this.y }, ${this.z }, ${this.w }]`}['|'](other){return new NativeInt32x4._truncated(this.x|other.x,this.y|other.y,this.z|other.z,this.w|other.w)}['&'](other){return new NativeInt32x4._truncated(this.x&other.x,this.y&other.y,this.z&other.z,this.w&other.w)}['^'](other){return new NativeInt32x4._truncated(this.x^other.x,this.y^other.y,this.z^other.z,this.w^other.w)}['+'](other){return new 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 NativeInt32x4._truncated(this.x-other.x|0,this.y-other.y|0,this.z-other.z|0,this.w-other.w|0)}['unary-'](){return new 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 dart.notNull(mx)|dart.notNull(my)<<1|dart.notNull(mz)<<2|dart.notNull(mw)<<3}shuffle(mask){if(dart.notNull(mask)<0||dart.notNull(mask)>255){dart.throw(new core.RangeError(`mask ${mask } must be in the range [0..256)`))}NativeInt32x4._list.set(0,this.x);NativeInt32x4._list.set(1,this.y);NativeInt32x4._list.set(2,this.z);NativeInt32x4._list.set(3,this.w);let _x=NativeInt32x4._list.get(dart.notNull(mask)&3);let _y=NativeInt32x4._list.get(dart.notNull(mask)>>2&3);let _z=NativeInt32x4._list.get(dart.notNull(mask)>>4&3);let _w=NativeInt32x4._list.get(dart.notNull(mask)>>6&3);return new NativeInt32x4._truncated(_x,_y,_z,_w)}shuffleMix(other,mask){if(dart.notNull(mask)<0||dart.notNull(mask)>255){dart.throw(new core.RangeError(`mask ${mask } must be in the range [0..256)`))}NativeInt32x4._list.set(0,this.x);NativeInt32x4._list.set(1,this.y);NativeInt32x4._list.set(2,this.z);NativeInt32x4._list.set(3,this.w);let _x=NativeInt32x4._list.get(dart.notNull(mask)&3);let _y=NativeInt32x4._list.get(dart.notNull(mask)>>2&3);NativeInt32x4._list.set(0,other.x);NativeInt32x4._list.set(1,other.y);NativeInt32x4._list.set(2,other.z);NativeInt32x4._list.set(3,other.w);let _z=NativeInt32x4._list.get(dart.notNull(mask)>>4&3);let _w=NativeInt32x4._list.get(dart.notNull(mask)>>6&3);return new NativeInt32x4._truncated(_x,_y,_z,_w)}withX(x){let _x=dart.as(NativeInt32x4._truncate(x),core.int);return new NativeInt32x4._truncated(_x,this.y,this.z,this.w)}withY(y){let _y=dart.as(NativeInt32x4._truncate(y),core.int);return new NativeInt32x4._truncated(this.x,_y,this.z,this.w)}withZ(z){let _z=dart.as(NativeInt32x4._truncate(z),core.int);return new NativeInt32x4._truncated(this.x,this.y,_z,this.w)}withW(w){let _w=dart.as(NativeInt32x4._truncate(w),core.int);return new 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.notNull(flagX)?-1:0;return new NativeInt32x4._truncated(_x,this.y,this.z,this.w)}withFlagY(flagY){let _y=dart.notNull(flagY)?-1:0;return new NativeInt32x4._truncated(this.x,_y,this.z,this.w)}withFlagZ(flagZ){let _z=dart.notNull(flagZ)?-1:0;return new NativeInt32x4._truncated(this.x,this.y,_z,this.w)}withFlagW(flagW){let _w=dart.notNull(flagW)?-1:0;return new NativeInt32x4._truncated(this.x,this.y,this.z,_w)}select(trueValue,falseValue){let floatList=NativeFloat32x4._list;let intView=NativeFloat32x4._uint32view;floatList.set(0,trueValue.x);floatList.set(1,trueValue.y);floatList.set(2,trueValue.z);floatList.set(3,trueValue.w);let stx=intView.get(0);let sty=intView.get(1);let stz=intView.get(2);let stw=intView.get(3);floatList.set(0,falseValue.x);floatList.set(1,falseValue.y);floatList.set(2,falseValue.z);floatList.set(3,falseValue.w);let sfx=intView.get(0);let sfy=intView.get(1);let sfz=intView.get(2);let sfw=intView.get(3);let _x=dart.notNull(this.x)&dart.notNull(stx)| ~dart.notNull(this.x)&dart.notNull(sfx);let _y=dart.notNull(this.y)&dart.notNull(sty)| ~dart.notNull(this.y)&dart.notNull(sfy);let _z=dart.notNull(this.z)&dart.notNull(stz)| ~dart.notNull(this.z)&dart.notNull(sfz);let _w=dart.notNull(this.w)&dart.notNull(stw)| ~dart.notNull(this.w)&dart.notNull(sfw);intView.set(0,_x);intView.set(1,_y);intView.set(2,_z);intView.set(3,_w);return new NativeFloat32x4._truncated(floatList.get(0),floatList.get(1),floatList.get(2),floatList.get(3))}};NativeInt32x4[dart.implements]=()=>[typed_data.Int32x4];dart.defineNamedConstructor(NativeInt32x4,'bool');dart.defineNamedConstructor(NativeInt32x4,'_truncated');dart.setSignature(NativeInt32x4,{constructors:()=>({_truncated:[NativeInt32x4,[core.int,core.int,core.int,core.int]],bool:[NativeInt32x4,[core.bool,core.bool,core.bool,core.bool]],fromFloat32x4Bits:[NativeInt32x4,[typed_data.Float32x4]],NativeInt32x4:[NativeInt32x4,[core.int,core.int,core.int,core.int]]}),methods:()=>({'&':[typed_data.Int32x4,[typed_data.Int32x4]],'+':[typed_data.Int32x4,[typed_data.Int32x4]],'-':[typed_data.Int32x4,[typed_data.Int32x4]],'^':[typed_data.Int32x4,[typed_data.Int32x4]],'unary-':[typed_data.Int32x4,[]],'|':[typed_data.Int32x4,[typed_data.Int32x4]],select:[typed_data.Float32x4,[typed_data.Float32x4,typed_data.Float32x4]],shuffle:[typed_data.Int32x4,[core.int]],shuffleMix:[typed_data.Int32x4,[typed_data.Int32x4,core.int]],withFlagW:[typed_data.Int32x4,[core.bool]],withFlagX:[typed_data.Int32x4,[core.bool]],withFlagY:[typed_data.Int32x4,[core.bool]],withFlagZ:[typed_data.Int32x4,[core.bool]],withW:[typed_data.Int32x4,[core.int]],withX:[typed_data.Int32x4,[core.int]],withY:[typed_data.Int32x4,[core.int]],withZ:[typed_data.Int32x4,[core.int]]}),names:['_truncate'],statics:()=>({_truncate:[dart.dynamic,[dart.dynamic]]})});dart.defineLazyProperties(NativeInt32x4,{get _list(){return NativeInt32List.new(4)}});class NativeFloat64x2 extends core.Object{NativeFloat64x2(x,y){this.x=x;this.y=y;if(!dart.is(this.x,core.num))dart.throw(new core.ArgumentError(this.x));if(!dart.is(this.y,core.num))dart.throw(new core.ArgumentError(this.y));}splat(v){this.NativeFloat64x2(v,v)}zero(){this.splat(0.0)}fromFloat32x4(v){this.NativeFloat64x2(v.x,v.y)}_doubles(x,y){this.x=x;this.y=y}toString(){return `[${this.x }, ${this.y }]`}['+'](other){return new NativeFloat64x2._doubles(dart.notNull(this.x)+dart.notNull(other.x),dart.notNull(this.y)+dart.notNull(other.y))}['unary-'](){return new NativeFloat64x2._doubles(-dart.notNull(this.x),-dart.notNull(this.y))}['-'](other){return new NativeFloat64x2._doubles(dart.notNull(this.x)-dart.notNull(other.x),dart.notNull(this.y)-dart.notNull(other.y))}['*'](other){return new NativeFloat64x2._doubles(dart.notNull(this.x)*dart.notNull(other.x),dart.notNull(this.y)*dart.notNull(other.y))}['/'](other){return new NativeFloat64x2._doubles(dart.notNull(this.x)/dart.notNull(other.x),dart.notNull(this.y)/dart.notNull(other.y))}scale(s){return new NativeFloat64x2._doubles(dart.notNull(this.x)*dart.notNull(s),dart.notNull(this.y)*dart.notNull(s))}abs(){return new 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 NativeFloat64x2._doubles(_x,_y)}get signMask(){let view=NativeFloat64x2._uint32View;NativeFloat64x2._list.set(0,this.x);NativeFloat64x2._list.set(1,this.y);let mx=(dart.notNull(view.get(1))&2147483648)>>31;let my=(dart.notNull(view.get(3))&2147483648)>>31;return dart.notNull(mx)|dart.notNull(my)<<1}withX(x){if(!dart.is(x,core.num))dart.throw(new core.ArgumentError(x));return new NativeFloat64x2._doubles(x,this.y)}withY(y){if(!dart.is(y,core.num))dart.throw(new core.ArgumentError(y));return new NativeFloat64x2._doubles(this.x,y)}min(other){return new 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 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 NativeFloat64x2._doubles(math.sqrt(this.x),math.sqrt(this.y))}};NativeFloat64x2[dart.implements]=()=>[typed_data.Float64x2];dart.defineNamedConstructor(NativeFloat64x2,'splat');dart.defineNamedConstructor(NativeFloat64x2,'zero');dart.defineNamedConstructor(NativeFloat64x2,'fromFloat32x4');dart.defineNamedConstructor(NativeFloat64x2,'_doubles');dart.setSignature(NativeFloat64x2,{constructors:()=>({_doubles:[NativeFloat64x2,[core.double,core.double]],fromFloat32x4:[NativeFloat64x2,[typed_data.Float32x4]],NativeFloat64x2:[NativeFloat64x2,[core.double,core.double]],splat:[NativeFloat64x2,[core.double]],zero:[NativeFloat64x2,[]]}),methods:()=>({'*':[typed_data.Float64x2,[typed_data.Float64x2]],'+':[typed_data.Float64x2,[typed_data.Float64x2]],'-':[typed_data.Float64x2,[typed_data.Float64x2]],'/':[typed_data.Float64x2,[typed_data.Float64x2]],'unary-':[typed_data.Float64x2,[]],abs:[typed_data.Float64x2,[]],clamp:[typed_data.Float64x2,[typed_data.Float64x2,typed_data.Float64x2]],max:[typed_data.Float64x2,[typed_data.Float64x2]],min:[typed_data.Float64x2,[typed_data.Float64x2]],scale:[typed_data.Float64x2,[core.double]],sqrt:[typed_data.Float64x2,[]],withX:[typed_data.Float64x2,[core.double]],withY:[typed_data.Float64x2,[core.double]]})});dart.defineLazyProperties(NativeFloat64x2,{get _uint32View(){return dart.as(NativeFloat64x2._list.buffer.asUint32List(),NativeUint32List)},get _list(){return NativeFloat64List.new(2)},set _uint32View(_){},set _list(_){}});exports.NativeByteBuffer=NativeByteBuffer;exports.NativeFloat32x4List=NativeFloat32x4List;exports.NativeInt32x4List=NativeInt32x4List;exports.NativeFloat64x2List=NativeFloat64x2List;exports.NativeTypedData=NativeTypedData;exports.NativeByteData=NativeByteData;exports.NativeTypedArray=NativeTypedArray;exports.NativeTypedArrayOfDouble=NativeTypedArrayOfDouble;exports.NativeTypedArrayOfInt=NativeTypedArrayOfInt;exports.NativeFloat32List=NativeFloat32List;exports.NativeFloat64List=NativeFloat64List;exports.NativeInt16List=NativeInt16List;exports.NativeInt32List=NativeInt32List;exports.NativeInt8List=NativeInt8List;exports.NativeUint16List=NativeUint16List;exports.NativeUint32List=NativeUint32List;exports.NativeUint8ClampedList=NativeUint8ClampedList;exports.NativeUint8List=NativeUint8List;exports.NativeFloat32x4=NativeFloat32x4;exports.NativeInt32x4=NativeInt32x4;exports.NativeFloat64x2=NativeFloat64x2});dart_library.library('dart/async',null,["dart_runtime/dart",'dart/core','dart/_internal','dart/collection'],['dart/_isolate_helper'],function(exports,dart,core,_internal,collection,_isolate_helper){'use strict';let dartx=dart.dartx;function _invokeErrorHandler(errorHandler,error,stackTrace){if(dart.is(errorHandler,ZoneBinaryCallback)){return dart.dcall(errorHandler,error,stackTrace)}else{return dart.dcall(errorHandler,error)}}dart.fn(_invokeErrorHandler,dart.dynamic,[core.Function,core.Object,core.StackTrace]);function _registerErrorHandler(errorHandler,zone){if(dart.is(errorHandler,ZoneBinaryCallback)){return zone.registerBinaryCallback(errorHandler)}else{return zone.registerUnaryCallback(dart.as(errorHandler,__CastType0))}}dart.fn(_registerErrorHandler,()=>dart.definiteFunctionType(core.Function,[core.Function,Zone]));class AsyncError extends core.Object{AsyncError(error,stackTrace){this.error=error;this.stackTrace=stackTrace}toString(){return dart.toString(this.error)}};AsyncError[dart.implements]=()=>[core.Error];dart.setSignature(AsyncError,{constructors:()=>({AsyncError:[AsyncError,[dart.dynamic,core.StackTrace]]})});class _UncaughtAsyncError extends AsyncError{_UncaughtAsyncError(error,stackTrace){super.AsyncError(error,_UncaughtAsyncError._getBestStackTrace(error,stackTrace))}static _getBestStackTrace(error,stackTrace){if(stackTrace!=null)return stackTrace;if(dart.is(error,core.Error)){return dart.as(dart.dload(error,'stackTrace'),core.StackTrace)}return null}toString(){let result=`Uncaught Error: ${this.error }`;if(this.stackTrace!=null){result=dart.notNull(result)+`\nStack Trace:\n${this.stackTrace }`}return result}};dart.setSignature(_UncaughtAsyncError,{constructors:()=>({_UncaughtAsyncError:[_UncaughtAsyncError,[dart.dynamic,core.StackTrace]]}),names:['_getBestStackTrace'],statics:()=>({_getBestStackTrace:[core.StackTrace,[dart.dynamic,core.StackTrace]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let _add=Symbol('_add');let _closeUnchecked=Symbol('_closeUnchecked');let _addError=Symbol('_addError');let _completeError=Symbol('_completeError');let _complete=Symbol('_complete');let _sink=Symbol('_sink');let Stream$=dart.generic(function(T){class Stream extends core.Object{Stream(){}static fromFuture(future){let controller=dart.as(StreamController$(T).new({sync:true}),_StreamController$(T));future.then(dart.fn(value=>{controller[_add](dart.as(value,T));controller[_closeUnchecked]()}),{onError:dart.fn((error,stackTrace)=>{controller[_addError](error,dart.as(stackTrace,core.StackTrace));controller[_closeUnchecked]()})});return controller.stream}static fromIterable(data){return new(_GeneratedStreamImpl$(T))(dart.fn(()=>new(_IterablePendingEvents$(T))(data),_IterablePendingEvents$(T),[]))}static periodic(period,computation){if(computation===void 0)computation=null;if(computation==null)computation=dart.fn(i=>null,dart.bottom,[dart.dynamic]);let timer=null;let computationCount=0;let controller=null;let watch=new core.Stopwatch();function sendEvent(){watch.reset();let data=computation((()=>{let x=computationCount;computationCount=dart.notNull(x)+1;return x})());controller.add(data)}dart.fn(sendEvent,dart.void,[]);function startPeriodicTimer(){dart.assert(timer==null);timer=Timer.periodic(period,dart.fn(timer=>{sendEvent()},dart.dynamic,[Timer]))}dart.fn(startPeriodicTimer,dart.void,[]);controller=StreamController$(T).new({onCancel:dart.fn(()=>{if(timer!=null)timer.cancel();timer=null}),onListen:dart.fn(()=>{watch.start();startPeriodicTimer()}),onPause:dart.fn(()=>{timer.cancel();timer=null;watch.stop()}),onResume:dart.fn(()=>{dart.assert(timer==null);let elapsed=watch.elapsed;watch.start();timer=Timer.new(period['-'](elapsed),dart.fn(()=>{timer=null;startPeriodicTimer();sendEvent()}))}),sync:true});return controller.stream}static eventTransformed(source,mapSink){return new(_BoundSinkStream$(dart.dynamic,T))(source,dart.as(mapSink,_SinkMapper))}get isBroadcast(){return false}asBroadcastStream(opts){let onListen=opts&&'onListen'in opts?opts.onListen:null;dart.as(onListen,dart.functionType(dart.void,[StreamSubscription$(T)]));let onCancel=opts&&'onCancel'in opts?opts.onCancel:null;dart.as(onCancel,dart.functionType(dart.void,[StreamSubscription$(T)]));return new(_AsBroadcastStream$(T))(this,dart.as(onListen,__CastType12),dart.as(onCancel,dart.functionType(dart.void,[StreamSubscription])))}where(test){dart.as(test,dart.functionType(core.bool,[T]));return new(_WhereStream$(T))(this,test)}map(convert){dart.as(convert,dart.functionType(dart.dynamic,[T]));return new(_MapStream$(T,dart.dynamic))(this,convert)}asyncMap(convert){dart.as(convert,dart.functionType(dart.dynamic,[T]));let controller=null;let subscription=null;let onListen=(function(){let add=dart.bind(controller,'add');dart.assert(dart.is(controller,_StreamController)||dart.is(controller,_BroadcastStreamController));let eventSink=controller;let addError=eventSink[_addError];subscription=this.listen(dart.fn(event=>{dart.as(event,T);let newValue=null;try{newValue=convert(event)}catch(e){let s=dart.stackTrace(e);controller.addError(e,s);return}if(dart.is(newValue,Future)){subscription.pause();dart.dsend(dart.dsend(newValue,'then',add,{onError:addError}),'whenComplete',dart.bind(subscription,'resume'))}else{controller.add(newValue)}},dart.dynamic,[T]),{onDone:dart.bind(controller,'close'),onError:dart.as(addError,core.Function)})}).bind(this);dart.fn(onListen,dart.void,[]);if(dart.notNull(this.isBroadcast)){controller=StreamController.broadcast({onCancel:dart.fn(()=>{subscription.cancel()}),onListen:onListen,sync:true})}else{controller=StreamController.new({onCancel:dart.fn(()=>{subscription.cancel()}),onListen:onListen,onPause:dart.fn(()=>{subscription.pause()}),onResume:dart.fn(()=>{subscription.resume()}),sync:true})}return controller.stream}asyncExpand(convert){dart.as(convert,dart.functionType(Stream$(),[T]));let controller=null;let subscription=null;let onListen=(function(){dart.assert(dart.is(controller,_StreamController)||dart.is(controller,_BroadcastStreamController));let eventSink=controller;subscription=this.listen(dart.fn(event=>{dart.as(event,T);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'))}},dart.dynamic,[T]),{onDone:dart.bind(controller,'close'),onError:dart.as(eventSink[_addError],core.Function)})}).bind(this);dart.fn(onListen,dart.void,[]);if(dart.notNull(this.isBroadcast)){controller=StreamController.broadcast({onCancel:dart.fn(()=>{subscription.cancel()}),onListen:onListen,sync:true})}else{controller=StreamController.new({onCancel:dart.fn(()=>{subscription.cancel()}),onListen:onListen,onPause:dart.fn(()=>{subscription.pause()}),onResume:dart.fn(()=>{subscription.resume()}),sync:true})}return controller.stream}handleError(onError,opts){let test=opts&&'test'in opts?opts.test:null;dart.as(test,dart.functionType(core.bool,[dart.dynamic]));return new(_HandleErrorStream$(T))(this,onError,test)}expand(convert){dart.as(convert,dart.functionType(core.Iterable,[T]));return new(_ExpandStream$(T,dart.dynamic))(this,convert)}pipe(streamConsumer){dart.as(streamConsumer,StreamConsumer$(T));return streamConsumer.addStream(this).then(dart.fn(_=>streamConsumer.close(),Future,[dart.dynamic]))}transform(streamTransformer){dart.as(streamTransformer,StreamTransformer$(T,dart.dynamic));return streamTransformer.bind(this)}reduce(combine){dart.as(combine,dart.functionType(T,[T,T]));let result=new(_Future$(T))();let seenFirst=false;let value=null;let subscription=null;subscription=this.listen(dart.fn(element=>{dart.as(element,T);if(dart.notNull(seenFirst)){_runUserCode(dart.fn(()=>combine(value,element),T,[]),dart.fn(newValue=>{dart.as(newValue,T);value=newValue},dart.dynamic,[T]),dart.as(_cancelAndErrorClosure(subscription,result),__CastType14))}else{value=element;seenFirst=true}},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{if(!dart.notNull(seenFirst)){try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(result,e,s)}}else{result[_complete](value)}}),onError:dart.bind(result,_completeError)});return result}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,T]));let result=new _Future();let value=initialValue;let subscription=null;subscription=this.listen(dart.fn(element=>{dart.as(element,T);_runUserCode(dart.fn(()=>dart.dcall(combine,value,element)),dart.fn(newValue=>{value=newValue}),dart.as(_cancelAndErrorClosure(subscription,result),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{result[_complete](value)}),onError:dart.fn((e,st)=>{result[_completeError](e,dart.as(st,core.StackTrace))})});return result}join(separator){if(separator===void 0)separator="";let result=new(_Future$(core.String))();let buffer=new core.StringBuffer();let subscription=null;let first=true;subscription=this.listen(dart.fn(element=>{dart.as(element,T);if(!dart.notNull(first)){buffer.write(separator)}first=false;try{buffer.write(element)}catch(e){let s=dart.stackTrace(e);_cancelAndErrorWithReplacement(subscription,result,e,s)}},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{result[_complete](dart.toString(buffer))}),onError:dart.fn(e=>{result[_completeError](e)})});return result}contains(needle){let future=new(_Future$(core.bool))();let subscription=null;subscription=this.listen(dart.fn(element=>{dart.as(element,T);_runUserCode(dart.fn(()=>dart.equals(element,needle),core.bool,[]),dart.fn(isMatch=>{if(dart.notNull(isMatch)){_cancelAndValue(subscription,future,true)}},dart.dynamic,[core.bool]),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](false)}),onError:dart.bind(future,_completeError)});return future}forEach(action){dart.as(action,dart.functionType(dart.void,[T]));let future=new _Future();let subscription=null;subscription=this.listen(dart.fn(element=>{dart.as(element,T);_runUserCode(dart.fn(()=>action(element),dart.void,[]),dart.fn(_=>{}),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](null)}),onError:dart.bind(future,_completeError)});return future}every(test){dart.as(test,dart.functionType(core.bool,[T]));let future=new(_Future$(core.bool))();let subscription=null;subscription=this.listen(dart.fn(element=>{dart.as(element,T);_runUserCode(dart.fn(()=>test(element),core.bool,[]),dart.fn(isMatch=>{if(!dart.notNull(isMatch)){_cancelAndValue(subscription,future,false)}},dart.dynamic,[core.bool]),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](true)}),onError:dart.bind(future,_completeError)});return future}any(test){dart.as(test,dart.functionType(core.bool,[T]));let future=new(_Future$(core.bool))();let subscription=null;subscription=this.listen(dart.fn(element=>{dart.as(element,T);_runUserCode(dart.fn(()=>test(element),core.bool,[]),dart.fn(isMatch=>{if(dart.notNull(isMatch)){_cancelAndValue(subscription,future,true)}},dart.dynamic,[core.bool]),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](false)}),onError:dart.bind(future,_completeError)});return future}get length(){let future=new(_Future$(core.int))();let count=0;this.listen(dart.fn(_=>{count=dart.notNull(count)+1}),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](count)}),onError:dart.bind(future,_completeError)});return future}get isEmpty(){let future=new(_Future$(core.bool))();let subscription=null;subscription=this.listen(dart.fn(_=>{_cancelAndValue(subscription,future,false)}),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](true)}),onError:dart.bind(future,_completeError)});return future}toList(){let result=dart.list([],T);let future=new(_Future$(core.List$(T)))();this.listen(dart.fn(data=>{dart.as(data,T);result[dartx.add](data)},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](result)}),onError:dart.bind(future,_completeError)});return future}toSet(){let result=core.Set$(T).new();let future=new(_Future$(core.Set$(T)))();this.listen(dart.fn(data=>{dart.as(data,T);result.add(data)},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_complete](result)}),onError:dart.bind(future,_completeError)});return future}drain(futureValue){if(futureValue===void 0)futureValue=null;return this.listen(null,{cancelOnError:true}).asFuture(futureValue)}take(count){return new(_TakeStream$(T))(this,count)}takeWhile(test){dart.as(test,dart.functionType(core.bool,[T]));return new(_TakeWhileStream$(T))(this,test)}skip(count){return new(_SkipStream$(T))(this,count)}skipWhile(test){dart.as(test,dart.functionType(core.bool,[T]));return new(_SkipWhileStream$(T))(this,test)}distinct(equals){if(equals===void 0)equals=null;dart.as(equals,dart.functionType(core.bool,[T,T]));return new(_DistinctStream$(T))(this,equals)}get first(){let future=new(_Future$(T))();let subscription=null;subscription=this.listen(dart.fn(value=>{dart.as(value,T);_cancelAndValue(subscription,future,value)},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(future,e,s)}}),onError:dart.bind(future,_completeError)});return future}get last(){let future=new(_Future$(T))();let result=null;let foundResult=false;let subscription=null;subscription=this.listen(dart.fn(value=>{dart.as(value,T);foundResult=true;result=value},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{if(dart.notNull(foundResult)){future[_complete](result);return}try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(future,e,s)}}),onError:dart.bind(future,_completeError)});return future}get single(){let future=new(_Future$(T))();let result=null;let foundResult=false;let subscription=null;subscription=this.listen(dart.fn(value=>{dart.as(value,T);if(dart.notNull(foundResult)){try{dart.throw(_internal.IterableElementError.tooMany())}catch(e){let s=dart.stackTrace(e);_cancelAndErrorWithReplacement(subscription,future,e,s)}return}foundResult=true;result=value},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{if(dart.notNull(foundResult)){future[_complete](result);return}try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(future,e,s)}}),onError:dart.bind(future,_completeError)});return future}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[T]));let defaultValue=opts&&'defaultValue'in opts?opts.defaultValue:null;dart.as(defaultValue,dart.functionType(core.Object,[]));let future=new _Future();let subscription=null;subscription=this.listen(dart.fn(value=>{dart.as(value,T);_runUserCode(dart.fn(()=>test(value),core.bool,[]),dart.fn(isMatch=>{if(dart.notNull(isMatch)){_cancelAndValue(subscription,future,value)}},dart.dynamic,[core.bool]),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{if(defaultValue!=null){_runUserCode(defaultValue,dart.bind(future,_complete),dart.bind(future,_completeError));return}try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(future,e,s)}}),onError:dart.bind(future,_completeError)});return future}lastWhere(test,opts){dart.as(test,dart.functionType(core.bool,[T]));let defaultValue=opts&&'defaultValue'in opts?opts.defaultValue:null;dart.as(defaultValue,dart.functionType(core.Object,[]));let future=new _Future();let result=null;let foundResult=false;let subscription=null;subscription=this.listen(dart.fn(value=>{dart.as(value,T);_runUserCode(dart.fn(()=>true==test(value),core.bool,[]),dart.fn(isMatch=>{if(dart.notNull(isMatch)){foundResult=true;result=value}},dart.dynamic,[core.bool]),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{if(dart.notNull(foundResult)){future[_complete](result);return}if(defaultValue!=null){_runUserCode(defaultValue,dart.bind(future,_complete),dart.bind(future,_completeError));return}try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(future,e,s)}}),onError:dart.bind(future,_completeError)});return future}singleWhere(test){dart.as(test,dart.functionType(core.bool,[T]));let future=new(_Future$(T))();let result=null;let foundResult=false;let subscription=null;subscription=this.listen(dart.fn(value=>{dart.as(value,T);_runUserCode(dart.fn(()=>true==test(value),core.bool,[]),dart.fn(isMatch=>{if(dart.notNull(isMatch)){if(dart.notNull(foundResult)){try{dart.throw(_internal.IterableElementError.tooMany())}catch(e){let s=dart.stackTrace(e);_cancelAndErrorWithReplacement(subscription,future,e,s)}return}foundResult=true;result=value}},dart.dynamic,[core.bool]),dart.as(_cancelAndErrorClosure(subscription,future),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])))},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{if(dart.notNull(foundResult)){future[_complete](result);return}try{dart.throw(_internal.IterableElementError.noElement())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(future,e,s)}}),onError:dart.bind(future,_completeError)});return future}elementAt(index){if(!(typeof index=='number')||dart.notNull(index)<0)dart.throw(new core.ArgumentError(index));let future=new(_Future$(T))();let subscription=null;let elementIndex=0;subscription=this.listen(dart.fn(value=>{dart.as(value,T);if(index==elementIndex){_cancelAndValue(subscription,future,value);return}elementIndex=dart.notNull(elementIndex)+1},dart.dynamic,[T]),{cancelOnError:true,onDone:dart.fn(()=>{future[_completeError](core.RangeError.index(index,this,"index",null,elementIndex))}),onError:dart.bind(future,_completeError)});return future}timeout(timeLimit,opts){let onTimeout=opts&&'onTimeout'in opts?opts.onTimeout:null;dart.as(onTimeout,dart.functionType(dart.void,[EventSink]));let controller=null;let subscription=null;let timer=null;let zone=null;let timeout=null;function onData(event){dart.as(event,T);timer.cancel();controller.add(event);timer=zone.createTimer(timeLimit,dart.as(timeout,__CastType17))}dart.fn(onData,dart.void,[T]);function onError(error,stackTrace){timer.cancel();dart.assert(dart.is(controller,_StreamController)||dart.is(controller,_BroadcastStreamController));let eventSink=controller;dart.dcall(eventSink[_addError],error,stackTrace);timer=zone.createTimer(timeLimit,dart.as(timeout,dart.functionType(dart.void,[])))}dart.fn(onError,dart.void,[dart.dynamic,core.StackTrace]);function onDone(){timer.cancel();controller.close()}dart.fn(onDone,dart.void,[]);let onListen=(function(){zone=Zone.current;if(onTimeout==null){timeout=dart.fn(()=>{controller.addError(new TimeoutException("No stream event",timeLimit),null)})}else{onTimeout=dart.as(zone.registerUnaryCallback(onTimeout),__CastType18);let wrapper=new _ControllerEventSinkWrapper(null);timeout=dart.fn(()=>{wrapper[_sink]=controller;zone.runUnaryGuarded(onTimeout,wrapper);wrapper[_sink]=null})}subscription=this.listen(onData,{onDone:onDone,onError:onError});timer=zone.createTimer(timeLimit,dart.as(timeout,dart.functionType(dart.void,[])))}).bind(this);dart.fn(onListen,dart.void,[]);function onCancel(){timer.cancel();let result=subscription.cancel();subscription=null;return result}dart.fn(onCancel,Future,[]);controller=dart.notNull(this.isBroadcast)?new _SyncBroadcastStreamController(onListen,onCancel):new _SyncStreamController(onListen,dart.fn(()=>{timer.cancel();subscription.pause()}),dart.fn(()=>{subscription.resume();timer=zone.createTimer(timeLimit,dart.as(timeout,dart.functionType(dart.void,[])))}),onCancel);return controller.stream}}dart.setSignature(Stream,{constructors:()=>({eventTransformed:[Stream$(T),[Stream$(),dart.functionType(EventSink,[EventSink$(T)])]],fromFuture:[Stream$(T),[Future$(T)]],fromIterable:[Stream$(T),[core.Iterable$(T)]],periodic:[Stream$(T),[core.Duration],[dart.functionType(T,[core.int])]],Stream:[Stream$(T),[]]}),methods:()=>({any:[Future$(core.bool),[dart.functionType(core.bool,[T])]],asBroadcastStream:[Stream$(T),[],{onCancel:dart.functionType(dart.void,[StreamSubscription$(T)]),onListen:dart.functionType(dart.void,[StreamSubscription$(T)])}],asyncExpand:[Stream$(),[dart.functionType(Stream$(),[T])]],asyncMap:[Stream$(),[dart.functionType(dart.dynamic,[T])]],contains:[Future$(core.bool),[core.Object]],distinct:[Stream$(T),[],[dart.functionType(core.bool,[T,T])]],drain:[Future,[],[dart.dynamic]],elementAt:[Future$(T),[core.int]],every:[Future$(core.bool),[dart.functionType(core.bool,[T])]],expand:[Stream$(),[dart.functionType(core.Iterable,[T])]],firstWhere:[Future,[dart.functionType(core.bool,[T])],{defaultValue:dart.functionType(core.Object,[])}],fold:[Future,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,T])]],forEach:[Future,[dart.functionType(dart.void,[T])]],handleError:[Stream$(T),[core.Function],{test:dart.functionType(core.bool,[dart.dynamic])}],join:[Future$(core.String),[],[core.String]],lastWhere:[Future,[dart.functionType(core.bool,[T])],{defaultValue:dart.functionType(core.Object,[])}],map:[Stream$(),[dart.functionType(dart.dynamic,[T])]],pipe:[Future,[StreamConsumer$(T)]],reduce:[Future$(T),[dart.functionType(T,[T,T])]],singleWhere:[Future$(T),[dart.functionType(core.bool,[T])]],skip:[Stream$(T),[core.int]],skipWhile:[Stream$(T),[dart.functionType(core.bool,[T])]],take:[Stream$(T),[core.int]],takeWhile:[Stream$(T),[dart.functionType(core.bool,[T])]],timeout:[Stream$(),[core.Duration],{onTimeout:dart.functionType(dart.void,[EventSink])}],toList:[Future$(core.List$(T)),[]],toSet:[Future$(core.Set$(T)),[]],transform:[Stream$(),[StreamTransformer$(T,dart.dynamic)]],where:[Stream$(T),[dart.functionType(core.bool,[T])]]})});return Stream});let Stream=Stream$();let _createSubscription=Symbol('_createSubscription');let _onListen=Symbol('_onListen');let _StreamImpl$=dart.generic(function(T){class _StreamImpl extends Stream$(T){_StreamImpl(){super.Stream()}listen(onData,opts){dart.as(onData,dart.functionType(dart.void,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;dart.as(onDone,dart.functionType(dart.void,[]));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 dart.as(subscription,StreamSubscription$(T))}[_createSubscription](onData,onError,onDone,cancelOnError){dart.as(onData,dart.functionType(dart.void,[T]));dart.as(onDone,dart.functionType(dart.void,[]));return new(_BufferingStreamSubscription$(T))(onData,onError,onDone,cancelOnError)}[_onListen](subscription){}}dart.setSignature(_StreamImpl,{methods:()=>({[_onListen]:[dart.void,[StreamSubscription]],[_createSubscription]:[StreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]],listen:[StreamSubscription$(T),[dart.functionType(dart.void,[T])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});return _StreamImpl});let _StreamImpl=_StreamImpl$();let _controller=Symbol('_controller');let _subscribe=Symbol('_subscribe');let _ControllerStream$=dart.generic(function(T){class _ControllerStream extends _StreamImpl$(T){_ControllerStream(controller){this[_controller]=controller}[_createSubscription](onData,onError,onDone,cancelOnError){dart.as(onData,dart.functionType(dart.void,[T]));dart.as(onDone,dart.functionType(dart.void,[]));return this[_controller][_subscribe](onData,onError,onDone,cancelOnError)}get hashCode(){return dart.notNull(dart.hashCode(this[_controller]))^892482866}['=='](other){if(dart.notNull(core.identical(this,other)))return true;if(!dart.is(other,_ControllerStream$()))return false;let otherStream=dart.as(other,_ControllerStream$());return core.identical(otherStream[_controller],this[_controller])}}dart.setSignature(_ControllerStream,{constructors:()=>({_ControllerStream:[_ControllerStream$(T),[_StreamControllerLifecycle$(T)]]}),methods:()=>({'==':[core.bool,[core.Object]],[_createSubscription]:[StreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]})});return _ControllerStream});let _ControllerStream=_ControllerStream$();let _BroadcastStream$=dart.generic(function(T){class _BroadcastStream extends _ControllerStream$(T){_BroadcastStream(controller){super._ControllerStream(dart.as(controller,_StreamControllerLifecycle$(T)))}get isBroadcast(){return true}}dart.setSignature(_BroadcastStream,{constructors:()=>({_BroadcastStream:[_BroadcastStream$(T),[_StreamControllerLifecycle]]})});return _BroadcastStream});let _BroadcastStream=_BroadcastStream$();let _next=Symbol('_next');let _previous=Symbol('_previous');class _BroadcastSubscriptionLink extends core.Object{_BroadcastSubscriptionLink(){this[_next]=null;this[_previous]=null}};let _zone=Symbol('_zone');let _state=Symbol('_state');let _onData=Symbol('_onData');let _onError=Symbol('_onError');let _onDone=Symbol('_onDone');let _cancelFuture=Symbol('_cancelFuture');let _pending=Symbol('_pending');let _setPendingEvents=Symbol('_setPendingEvents');let _extractPending=Symbol('_extractPending');let _isCanceled=Symbol('_isCanceled');let _isPaused=Symbol('_isPaused');let _isInputPaused=Symbol('_isInputPaused');let _inCallback=Symbol('_inCallback');let _guardCallback=Symbol('_guardCallback');let _onPause=Symbol('_onPause');let _decrementPauseCount=Symbol('_decrementPauseCount');let _hasPending=Symbol('_hasPending');let _mayResumeInput=Symbol('_mayResumeInput');let _onResume=Symbol('_onResume');let _cancel=Symbol('_cancel');let _isClosed=Symbol('_isClosed');let _waitsForCancel=Symbol('_waitsForCancel');let _canFire=Symbol('_canFire');let _cancelOnError=Symbol('_cancelOnError');let _onCancel=Symbol('_onCancel');let _incrementPauseCount=Symbol('_incrementPauseCount');let _sendData=Symbol('_sendData');let _addPending=Symbol('_addPending');let _sendError=Symbol('_sendError');let _close=Symbol('_close');let _sendDone=Symbol('_sendDone');let _checkState=Symbol('_checkState');let _BufferingStreamSubscription$=dart.generic(function(T){class _BufferingStreamSubscription extends core.Object{_BufferingStreamSubscription(onData,onError,onDone,cancelOnError){this[_zone]=Zone.current;this[_state]=dart.notNull(cancelOnError)?_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){dart.assert(this[_pending]==null);if(pendingEvents==null)return;this[_pending]=pendingEvents;if(!dart.notNull(pendingEvents.isEmpty)){this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING);this[_pending].schedule(this)}}[_extractPending](){dart.assert(this[_isCanceled]);let events=this[_pending];this[_pending]=null;return events}onData(handleData){dart.as(handleData,dart.functionType(dart.void,[T]));if(handleData==null)handleData=dart.as(_nullDataHandler,__CastType20);this[_onData]=dart.as(this[_zone].registerUnaryCallback(handleData),_DataHandler$(T))}onError(handleError){if(handleError==null)handleError=_nullErrorHandler;this[_onError]=_registerErrorHandler(handleError,this[_zone])}onDone(handleDone){dart.as(handleDone,dart.functionType(dart.void,[]));if(handleDone==null)handleDone=_nullDoneHandler;this[_onDone]=this[_zone].registerCallback(handleDone)}pause(resumeSignal){if(resumeSignal===void 0)resumeSignal=null;if(dart.notNull(this[_isCanceled]))return;let wasPaused=this[_isPaused];let wasInputPaused=this[_isInputPaused];this[_state]=dart.notNull(this[_state])+dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT)|dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED);if(resumeSignal!=null)resumeSignal.whenComplete(dart.bind(this,'resume'));if(!dart.notNull(wasPaused)&&this[_pending]!=null)this[_pending].cancelSchedule();if(!dart.notNull(wasInputPaused)&& !dart.notNull(this[_inCallback]))this[_guardCallback](dart.bind(this,_onPause));}resume(){if(dart.notNull(this[_isCanceled]))return;if(dart.notNull(this[_isPaused])){this[_decrementPauseCount]();if(!dart.notNull(this[_isPaused])){if(dart.notNull(this[_hasPending])&& !dart.notNull(this[_pending].isEmpty)){this[_pending].schedule(this)}else{dart.assert(this[_mayResumeInput]);this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED);if(!dart.notNull(this[_inCallback]))this[_guardCallback](dart.bind(this,_onResume));}}}}cancel(){this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL);if(dart.notNull(this[_isCanceled]))return this[_cancelFuture];this[_cancel]();return this[_cancelFuture]}asFuture(futureValue){if(futureValue===void 0)futureValue=null;let result=new(_Future$(T))();this[_onDone]=dart.fn(()=>{result[_complete](futureValue)});this[_onError]=dart.fn((error,stackTrace)=>{this.cancel();result[_completeError](error,dart.as(stackTrace,core.StackTrace))});return result}get[_isInputPaused](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED))!=0}get[_isClosed](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_CLOSED))!=0}get[_isCanceled](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_CANCELED))!=0}get[_waitsForCancel](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL))!=0}get[_inCallback](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK))!=0}get[_hasPending](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING))!=0}get[_isPaused](){return dart.notNull(this[_state])>=dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT)}get[_canFire](){return dart.notNull(this[_state])<dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK)}get[_mayResumeInput](){return!dart.notNull(this[_isPaused])&&(this[_pending]==null||dart.notNull(this[_pending].isEmpty))}get[_cancelOnError](){return(dart.notNull(this[_state])&dart.notNull(_BufferingStreamSubscription$()._STATE_CANCEL_ON_ERROR))!=0}get isPaused(){return this[_isPaused]}[_cancel](){this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_CANCELED);if(dart.notNull(this[_hasPending])){this[_pending].cancelSchedule()}if(!dart.notNull(this[_inCallback]))this[_pending]=null;this[_cancelFuture]=this[_onCancel]()}[_incrementPauseCount](){this[_state]=dart.notNull(this[_state])+dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT)|dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED)}[_decrementPauseCount](){dart.assert(this[_isPaused]);this[_state]=dart.notNull(this[_state])-dart.notNull(_BufferingStreamSubscription$()._STATE_PAUSE_COUNT)}[_add](data){dart.as(data,T);dart.assert(!dart.notNull(this[_isClosed]));if(dart.notNull(this[_isCanceled]))return;if(dart.notNull(this[_canFire])){this[_sendData](data)}else{this[_addPending](new _DelayedData(data))}}[_addError](error,stackTrace){if(dart.notNull(this[_isCanceled]))return;if(dart.notNull(this[_canFire])){this[_sendError](error,stackTrace)}else{this[_addPending](new _DelayedError(error,stackTrace))}}[_close](){dart.assert(!dart.notNull(this[_isClosed]));if(dart.notNull(this[_isCanceled]))return;this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_CLOSED);if(dart.notNull(this[_canFire])){this[_sendDone]()}else{this[_addPending](dart.const(new _DelayedDone()))}}[_onPause](){dart.assert(this[_isInputPaused])}[_onResume](){dart.assert(!dart.notNull(this[_isInputPaused]))}[_onCancel](){dart.assert(this[_isCanceled]);return null}[_addPending](event){let pending=dart.as(this[_pending],_StreamImplEvents);if(this[_pending]==null)pending=this[_pending]=new _StreamImplEvents();pending.add(event);if(!dart.notNull(this[_hasPending])){this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING);if(!dart.notNull(this[_isPaused])){this[_pending].schedule(this)}}}[_sendData](data){dart.as(data,T);dart.assert(!dart.notNull(this[_isCanceled]));dart.assert(!dart.notNull(this[_isPaused]));dart.assert(!dart.notNull(this[_inCallback]));let wasInputPaused=this[_isInputPaused];this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);this[_zone].runUnaryGuarded(this[_onData],data);this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);this[_checkState](wasInputPaused)}[_sendError](error,stackTrace){dart.assert(!dart.notNull(this[_isCanceled]));dart.assert(!dart.notNull(this[_isPaused]));dart.assert(!dart.notNull(this[_inCallback]));let wasInputPaused=this[_isInputPaused];let sendError=(function(){if(dart.notNull(this[_isCanceled])&& !dart.notNull(this[_waitsForCancel]))return;this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);if(dart.is(this[_onError],ZoneBinaryCallback)){this[_zone].runBinaryGuarded(dart.as(this[_onError],__CastType22),error,stackTrace)}else{this[_zone].runUnaryGuarded(dart.as(this[_onError],__CastType25),error)}this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK)}).bind(this);dart.fn(sendError,dart.void,[]);if(dart.notNull(this[_cancelOnError])){this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL);this[_cancel]();if(dart.is(this[_cancelFuture],Future)){this[_cancelFuture].whenComplete(sendError)}else{sendError()}}else{sendError();this[_checkState](wasInputPaused)}}[_sendDone](){dart.assert(!dart.notNull(this[_isCanceled]));dart.assert(!dart.notNull(this[_isPaused]));dart.assert(!dart.notNull(this[_inCallback]));let sendDone=(function(){if(!dart.notNull(this[_waitsForCancel]))return;this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_CANCELED)|dart.notNull(_BufferingStreamSubscription$()._STATE_CLOSED)|dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);this[_zone].runGuarded(this[_onDone]);this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK)}).bind(this);dart.fn(sendDone,dart.void,[]);this[_cancel]();this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_WAIT_FOR_CANCEL);if(dart.is(this[_cancelFuture],Future)){this[_cancelFuture].whenComplete(sendDone)}else{sendDone()}}[_guardCallback](callback){dart.assert(!dart.notNull(this[_inCallback]));let wasInputPaused=this[_isInputPaused];this[_state]=dart.notNull(this[_state])|dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);dart.dcall(callback);this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);this[_checkState](wasInputPaused)}[_checkState](wasInputPaused){dart.assert(!dart.notNull(this[_inCallback]));if(dart.notNull(this[_hasPending])&&dart.notNull(this[_pending].isEmpty)){this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_HAS_PENDING);if(dart.notNull(this[_isInputPaused])&&dart.notNull(this[_mayResumeInput])){this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_INPUT_PAUSED)}}while(true){if(dart.notNull(this[_isCanceled])){this[_pending]=null;return}let isInputPaused=this[_isInputPaused];if(wasInputPaused==isInputPaused)break;this[_state]=dart.notNull(this[_state])^dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);if(dart.notNull(isInputPaused)){this[_onPause]()}else{this[_onResume]()}this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BufferingStreamSubscription$()._STATE_IN_CALLBACK);wasInputPaused=isInputPaused}if(dart.notNull(this[_hasPending])&& !dart.notNull(this[_isPaused])){this[_pending].schedule(this)}}}_BufferingStreamSubscription[dart.implements]=()=>[StreamSubscription$(T),_EventSink$(T),_EventDispatch$(T)];dart.setSignature(_BufferingStreamSubscription,{constructors:()=>({_BufferingStreamSubscription:[_BufferingStreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]}),methods:()=>({[_checkState]:[dart.void,[core.bool]],[_addPending]:[dart.void,[_DelayedEvent]],[_onCancel]:[Future,[]],[_onResume]:[dart.void,[]],[_sendData]:[dart.void,[T]],[_close]:[dart.void,[]],[_addError]:[dart.void,[core.Object,core.StackTrace]],[_add]:[dart.void,[T]],[_guardCallback]:[dart.void,[dart.dynamic]],[_incrementPauseCount]:[dart.void,[]],[_sendError]:[dart.void,[core.Object,core.StackTrace]],[_cancel]:[dart.void,[]],[_sendDone]:[dart.void,[]],[_extractPending]:[_PendingEvents,[]],[_onPause]:[dart.void,[]],[_setPendingEvents]:[dart.void,[_PendingEvents]],[_decrementPauseCount]:[dart.void,[]],asFuture:[Future,[],[dart.dynamic]],cancel:[Future,[]],onData:[dart.void,[dart.functionType(dart.void,[T])]],onDone:[dart.void,[dart.functionType(dart.void,[])]],onError:[dart.void,[core.Function]],pause:[dart.void,[],[Future]],resume:[dart.void,[]]})});return _BufferingStreamSubscription});let _BufferingStreamSubscription=_BufferingStreamSubscription$();let _recordCancel=Symbol('_recordCancel');let _recordPause=Symbol('_recordPause');let _recordResume=Symbol('_recordResume');let _ControllerSubscription$=dart.generic(function(T){class _ControllerSubscription extends _BufferingStreamSubscription$(T){_ControllerSubscription(controller,onData,onError,onDone,cancelOnError){this[_controller]=controller;super._BufferingStreamSubscription(onData,onError,onDone,cancelOnError)}[_onCancel](){return this[_controller][_recordCancel](this)}[_onPause](){this[_controller][_recordPause](this)}[_onResume](){this[_controller][_recordResume](this)}}dart.setSignature(_ControllerSubscription,{constructors:()=>({_ControllerSubscription:[_ControllerSubscription$(T),[_StreamControllerLifecycle$(T),dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]})});return _ControllerSubscription});let _ControllerSubscription=_ControllerSubscription$();let _eventState=Symbol('_eventState');let _expectsEvent=Symbol('_expectsEvent');let _toggleEventId=Symbol('_toggleEventId');let _isFiring=Symbol('_isFiring');let _setRemoveAfterFiring=Symbol('_setRemoveAfterFiring');let _removeAfterFiring=Symbol('_removeAfterFiring');let _BroadcastSubscription$=dart.generic(function(T){class _BroadcastSubscription extends _ControllerSubscription$(T){_BroadcastSubscription(controller,onData,onError,onDone,cancelOnError){this[_eventState]=null;this[_next]=null;this[_previous]=null;super._ControllerSubscription(dart.as(controller,_StreamControllerLifecycle$(T)),onData,onError,onDone,cancelOnError);this[_next]=this[_previous]=this}get[_controller](){return dart.as(super[_controller],_BroadcastStreamController$(T))}[_expectsEvent](eventId){return(dart.notNull(this[_eventState])&dart.notNull(_BroadcastSubscription$()._STATE_EVENT_ID))==eventId}[_toggleEventId](){this[_eventState]=dart.notNull(this[_eventState])^dart.notNull(_BroadcastSubscription$()._STATE_EVENT_ID)}get[_isFiring](){return(dart.notNull(this[_eventState])&dart.notNull(_BroadcastSubscription$()._STATE_FIRING))!=0}[_setRemoveAfterFiring](){dart.assert(this[_isFiring]);this[_eventState]=dart.notNull(this[_eventState])|dart.notNull(_BroadcastSubscription$()._STATE_REMOVE_AFTER_FIRING)}get[_removeAfterFiring](){return(dart.notNull(this[_eventState])&dart.notNull(_BroadcastSubscription$()._STATE_REMOVE_AFTER_FIRING))!=0}[_onPause](){}[_onResume](){}}_BroadcastSubscription[dart.implements]=()=>[_BroadcastSubscriptionLink];dart.setSignature(_BroadcastSubscription,{constructors:()=>({_BroadcastSubscription:[_BroadcastSubscription$(T),[_StreamControllerLifecycle,dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]}),methods:()=>({[_setRemoveAfterFiring]:[dart.void,[]],[_toggleEventId]:[dart.void,[]],[_expectsEvent]:[core.bool,[core.int]]})});return _BroadcastSubscription});let _BroadcastSubscription=_BroadcastSubscription$();_BroadcastSubscription._STATE_EVENT_ID=1;_BroadcastSubscription._STATE_FIRING=2;_BroadcastSubscription._STATE_REMOVE_AFTER_FIRING=4;let _addStreamState=Symbol('_addStreamState');let _doneFuture=Symbol('_doneFuture');let _isEmpty=Symbol('_isEmpty');let _hasOneListener=Symbol('_hasOneListener');let _isAddingStream=Symbol('_isAddingStream');let _mayAddEvent=Symbol('_mayAddEvent');let _ensureDoneFuture=Symbol('_ensureDoneFuture');let _addListener=Symbol('_addListener');let _removeListener=Symbol('_removeListener');let _callOnCancel=Symbol('_callOnCancel');let _addEventError=Symbol('_addEventError');let _forEachListener=Symbol('_forEachListener');let _mayComplete=Symbol('_mayComplete');let _asyncComplete=Symbol('_asyncComplete');let _BroadcastStreamController$=dart.generic(function(T){class _BroadcastStreamController extends core.Object{_BroadcastStreamController(onListen,onCancel){this[_onListen]=onListen;this[_onCancel]=onCancel;this[_state]=_BroadcastStreamController$()._STATE_INITIAL;this[_next]=null;this[_previous]=null;this[_addStreamState]=null;this[_doneFuture]=null;this[_next]=this[_previous]=this}get stream(){return new(_BroadcastStream$(T))(this)}get sink(){return new(_StreamSinkWrapper$(T))(this)}get isClosed(){return(dart.notNull(this[_state])&dart.notNull(_BroadcastStreamController$()._STATE_CLOSED))!=0}get isPaused(){return false}get hasListener(){return!dart.notNull(this[_isEmpty])}get[_hasOneListener](){dart.assert(!dart.notNull(this[_isEmpty]));return core.identical(this[_next][_next],this)}get[_isFiring](){return(dart.notNull(this[_state])&dart.notNull(_BroadcastStreamController$()._STATE_FIRING))!=0}get[_isAddingStream](){return(dart.notNull(this[_state])&dart.notNull(_BroadcastStreamController$()._STATE_ADDSTREAM))!=0}get[_mayAddEvent](){return dart.notNull(this[_state])<dart.notNull(_BroadcastStreamController$()._STATE_CLOSED)}[_ensureDoneFuture](){if(this[_doneFuture]!=null)return this[_doneFuture];return this[_doneFuture]=new _Future()}get[_isEmpty](){return core.identical(this[_next],this)}[_addListener](subscription){dart.as(subscription,_BroadcastSubscription$(T));dart.assert(core.identical(subscription[_next],subscription));subscription[_previous]=this[_previous];subscription[_next]=this;this[_previous][_next]=subscription;this[_previous]=subscription;subscription[_eventState]=dart.notNull(this[_state])&dart.notNull(_BroadcastStreamController$()._STATE_EVENT_ID)}[_removeListener](subscription){dart.as(subscription,_BroadcastSubscription$(T));dart.assert(core.identical(subscription[_controller],this));dart.assert(!dart.notNull(core.identical(subscription[_next],subscription)));let previous=subscription[_previous];let next=subscription[_next];previous[_next]=next;next[_previous]=previous;subscription[_next]=subscription[_previous]=subscription}[_subscribe](onData,onError,onDone,cancelOnError){dart.as(onData,dart.functionType(dart.void,[T]));dart.as(onDone,dart.functionType(dart.void,[]));if(dart.notNull(this.isClosed)){if(onDone==null)onDone=_nullDoneHandler;return new(_DoneStreamSubscription$(T))(onDone)}let subscription=new(_BroadcastSubscription$(T))(this,onData,onError,onDone,cancelOnError);this[_addListener](dart.as(subscription,_BroadcastSubscription$(T)));if(dart.notNull(core.identical(this[_next],this[_previous]))){_runGuarded(this[_onListen])}return dart.as(subscription,StreamSubscription$(T))}[_recordCancel](subscription){dart.as(subscription,StreamSubscription$(T));if(dart.notNull(core.identical(subscription[_next],subscription)))return null;dart.assert(!dart.notNull(core.identical(subscription[_next],subscription)));if(dart.notNull(dart.as(subscription[_isFiring],core.bool))){dart.dcall(subscription[_setRemoveAfterFiring])}else{dart.assert(!dart.notNull(core.identical(subscription[_next],subscription)));this[_removeListener](dart.as(subscription,_BroadcastSubscription$(T)));if(!dart.notNull(this[_isFiring])&&dart.notNull(this[_isEmpty])){this[_callOnCancel]()}}return null}[_recordPause](subscription){dart.as(subscription,StreamSubscription$(T))}[_recordResume](subscription){dart.as(subscription,StreamSubscription$(T))}[_addEventError](){if(dart.notNull(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){dart.as(data,T);if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_addEventError]());this[_sendData](data)}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;error=_nonNullError(error);if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_addEventError]());let replacement=Zone.current.errorCallback(error,stackTrace);if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}this[_sendError](error,stackTrace)}close(){if(dart.notNull(this.isClosed)){dart.assert(this[_doneFuture]!=null);return this[_doneFuture]}if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_addEventError]());this[_state]=dart.notNull(this[_state])|dart.notNull(_BroadcastStreamController$()._STATE_CLOSED);let doneFuture=this[_ensureDoneFuture]();this[_sendDone]();return doneFuture}get done(){return this[_ensureDoneFuture]()}addStream(stream,opts){dart.as(stream,Stream$(T));let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:true;if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_addEventError]());this[_state]=dart.notNull(this[_state])|dart.notNull(_BroadcastStreamController$()._STATE_ADDSTREAM);this[_addStreamState]=new(_AddStreamState$(T))(this,stream,cancelOnError);return this[_addStreamState].addStreamFuture}[_add](data){dart.as(data,T);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])& ~dart.notNull(_BroadcastStreamController$()._STATE_ADDSTREAM);addState.complete()}[_forEachListener](action){dart.as(action,dart.functionType(dart.void,[_BufferingStreamSubscription$(T)]));if(dart.notNull(this[_isFiring])){dart.throw(new core.StateError("Cannot fire new event. Controller is already firing an event"))}if(dart.notNull(this[_isEmpty]))return;let id=dart.notNull(this[_state])&dart.notNull(_BroadcastStreamController$()._STATE_EVENT_ID);this[_state]=dart.notNull(this[_state])^(dart.notNull(_BroadcastStreamController$()._STATE_EVENT_ID)|dart.notNull(_BroadcastStreamController$()._STATE_FIRING));let link=this[_next];while(!dart.notNull(core.identical(link,this))){let subscription=dart.as(link,_BroadcastSubscription$(T));if(dart.notNull(subscription[_expectsEvent](id))){subscription[_eventState]=dart.notNull(subscription[_eventState])|dart.notNull(_BroadcastSubscription._STATE_FIRING);action(subscription);subscription[_toggleEventId]();link=subscription[_next];if(dart.notNull(subscription[_removeAfterFiring])){this[_removeListener](subscription)}subscription[_eventState]=dart.notNull(subscription[_eventState])& ~dart.notNull(_BroadcastSubscription._STATE_FIRING)}else{link=subscription[_next]}}this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BroadcastStreamController$()._STATE_FIRING);if(dart.notNull(this[_isEmpty])){this[_callOnCancel]()}}[_callOnCancel](){dart.assert(this[_isEmpty]);if(dart.notNull(this.isClosed)&&dart.notNull(this[_doneFuture][_mayComplete])){this[_doneFuture][_asyncComplete](null)}_runGuarded(this[_onCancel])}}_BroadcastStreamController[dart.implements]=()=>[StreamController$(T),_StreamControllerLifecycle$(T),_BroadcastSubscriptionLink,_EventSink$(T),_EventDispatch$(T)];dart.setSignature(_BroadcastStreamController,{constructors:()=>({_BroadcastStreamController:[_BroadcastStreamController$(T),[_NotificationHandler,_NotificationHandler]]}),methods:()=>({[_callOnCancel]:[dart.void,[]],[_addError]:[dart.void,[core.Object,core.StackTrace]],[_add]:[dart.void,[T]],[_addListener]:[dart.void,[_BroadcastSubscription$(T)]],[_removeListener]:[dart.void,[_BroadcastSubscription$(T)]],[_close]:[dart.void,[]],[_forEachListener]:[dart.void,[dart.functionType(dart.void,[_BufferingStreamSubscription$(T)])]],[_addEventError]:[core.Error,[]],[_recordResume]:[dart.void,[StreamSubscription$(T)]],[_recordPause]:[dart.void,[StreamSubscription$(T)]],[_recordCancel]:[Future,[StreamSubscription$(T)]],[_subscribe]:[StreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]],[_ensureDoneFuture]:[_Future,[]],add:[dart.void,[T]],addError:[dart.void,[core.Object],[core.StackTrace]],addStream:[Future,[Stream$(T)],{cancelOnError:core.bool}],close:[Future,[]]})});return _BroadcastStreamController});let _BroadcastStreamController=_BroadcastStreamController$();_BroadcastStreamController._STATE_INITIAL=0;_BroadcastStreamController._STATE_EVENT_ID=1;_BroadcastStreamController._STATE_FIRING=2;_BroadcastStreamController._STATE_CLOSED=4;_BroadcastStreamController._STATE_ADDSTREAM=8;let _SyncBroadcastStreamController$=dart.generic(function(T){class _SyncBroadcastStreamController extends _BroadcastStreamController$(T){_SyncBroadcastStreamController(onListen,onCancel){super._BroadcastStreamController(onListen,onCancel)}[_sendData](data){dart.as(data,T);if(dart.notNull(this[_isEmpty]))return;if(dart.notNull(this[_hasOneListener])){this[_state]=dart.notNull(this[_state])|dart.notNull(_BroadcastStreamController._STATE_FIRING);let subscription=dart.as(this[_next],_BroadcastSubscription);subscription[_add](data);this[_state]=dart.notNull(this[_state])& ~dart.notNull(_BroadcastStreamController._STATE_FIRING);if(dart.notNull(this[_isEmpty])){this[_callOnCancel]()}return}this[_forEachListener](dart.fn(subscription=>{dart.as(subscription,_BufferingStreamSubscription$(T));subscription[_add](data)},dart.dynamic,[_BufferingStreamSubscription$(T)]))}[_sendError](error,stackTrace){if(dart.notNull(this[_isEmpty]))return;this[_forEachListener](dart.fn(subscription=>{dart.as(subscription,_BufferingStreamSubscription$(T));subscription[_addError](error,stackTrace)},dart.dynamic,[_BufferingStreamSubscription$(T)]))}[_sendDone](){if(!dart.notNull(this[_isEmpty])){this[_forEachListener](dart.as(dart.fn(subscription=>{dart.as(subscription,_BroadcastSubscription$(T));subscription[_close]()},dart.dynamic,[_BroadcastSubscription$(T)]),__CastType2))}else{dart.assert(this[_doneFuture]!=null);dart.assert(this[_doneFuture][_mayComplete]);this[_doneFuture][_asyncComplete](null)}}}dart.setSignature(_SyncBroadcastStreamController,{constructors:()=>({_SyncBroadcastStreamController:[_SyncBroadcastStreamController$(T),[dart.functionType(dart.void,[]),dart.functionType(dart.void,[])]]}),methods:()=>({[_sendDone]:[dart.void,[]],[_sendError]:[dart.void,[core.Object,core.StackTrace]],[_sendData]:[dart.void,[T]]})});return _SyncBroadcastStreamController});let _SyncBroadcastStreamController=_SyncBroadcastStreamController$();let _AsyncBroadcastStreamController$=dart.generic(function(T){class _AsyncBroadcastStreamController extends _BroadcastStreamController$(T){_AsyncBroadcastStreamController(onListen,onCancel){super._BroadcastStreamController(onListen,onCancel)}[_sendData](data){dart.as(data,T);for(let link=this[_next];!dart.notNull(core.identical(link,this));link=link[_next]){let subscription=dart.as(link,_BroadcastSubscription$(T));subscription[_addPending](new _DelayedData(data))}}[_sendError](error,stackTrace){for(let link=this[_next];!dart.notNull(core.identical(link,this));link=link[_next]){let subscription=dart.as(link,_BroadcastSubscription$(T));subscription[_addPending](new _DelayedError(error,stackTrace))}}[_sendDone](){if(!dart.notNull(this[_isEmpty])){for(let link=this[_next];!dart.notNull(core.identical(link,this));link=link[_next]){let subscription=dart.as(link,_BroadcastSubscription$(T));subscription[_addPending](dart.const(new _DelayedDone()))}}else{dart.assert(this[_doneFuture]!=null);dart.assert(this[_doneFuture][_mayComplete]);this[_doneFuture][_asyncComplete](null)}}}dart.setSignature(_AsyncBroadcastStreamController,{constructors:()=>({_AsyncBroadcastStreamController:[_AsyncBroadcastStreamController$(T),[dart.functionType(dart.void,[]),dart.functionType(dart.void,[])]]}),methods:()=>({[_sendDone]:[dart.void,[]],[_sendError]:[dart.void,[core.Object,core.StackTrace]],[_sendData]:[dart.void,[T]]})});return _AsyncBroadcastStreamController});let _AsyncBroadcastStreamController=_AsyncBroadcastStreamController$();let _addPendingEvent=Symbol('_addPendingEvent');let _AsBroadcastStreamController$=dart.generic(function(T){class _AsBroadcastStreamController extends _SyncBroadcastStreamController$(T){_AsBroadcastStreamController(onListen,onCancel){this[_pending]=null;super._SyncBroadcastStreamController(onListen,onCancel)}get[_hasPending](){return this[_pending]!=null&& !dart.notNull(this[_pending].isEmpty)}[_addPendingEvent](event){if(this[_pending]==null){this[_pending]=new _StreamImplEvents()}this[_pending].add(event)}add(data){dart.as(data,T);if(!dart.notNull(this.isClosed)&&dart.notNull(this[_isFiring])){this[_addPendingEvent](new(_DelayedData$(T))(data));return}super.add(data);while(dart.notNull(this[_hasPending])){this[_pending].handleNext(this)}}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;if(!dart.notNull(this.isClosed)&&dart.notNull(this[_isFiring])){this[_addPendingEvent](new _DelayedError(error,stackTrace));return}if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_addEventError]());this[_sendError](error,stackTrace);while(dart.notNull(this[_hasPending])){this[_pending].handleNext(this)}}close(){if(!dart.notNull(this.isClosed)&&dart.notNull(this[_isFiring])){this[_addPendingEvent](dart.const(new _DelayedDone()));this[_state]=dart.notNull(this[_state])|dart.notNull(_BroadcastStreamController._STATE_CLOSED);return super.done}let result=super.close();dart.assert(!dart.notNull(this[_hasPending]));return result}[_callOnCancel](){if(dart.notNull(this[_hasPending])){this[_pending].clear();this[_pending]=null}super[_callOnCancel]()}}_AsBroadcastStreamController[dart.implements]=()=>[_EventDispatch$(T)];dart.setSignature(_AsBroadcastStreamController,{constructors:()=>({_AsBroadcastStreamController:[_AsBroadcastStreamController$(T),[dart.functionType(dart.void,[]),dart.functionType(dart.void,[])]]}),methods:()=>({[_addPendingEvent]:[dart.void,[_DelayedEvent]],add:[dart.void,[T]]})});return _AsBroadcastStreamController});let _AsBroadcastStreamController=_AsBroadcastStreamController$();let _pauseCount=Symbol('_pauseCount');let _resume=Symbol('_resume');let _DoneSubscription$=dart.generic(function(T){class _DoneSubscription extends core.Object{_DoneSubscription(){this[_pauseCount]=0}onData(handleData){dart.as(handleData,dart.functionType(dart.void,[T]))}onError(handleError){}onDone(handleDone){dart.as(handleDone,dart.functionType(dart.void,[]))}pause(resumeSignal){if(resumeSignal===void 0)resumeSignal=null;if(resumeSignal!=null)resumeSignal.then(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 _Future.immediate(null)}get isPaused(){return dart.notNull(this[_pauseCount])>0}asFuture(value){if(value===void 0)value=null;return new _Future()}}_DoneSubscription[dart.implements]=()=>[StreamSubscription$(T)];dart.setSignature(_DoneSubscription,{methods:()=>({[_resume]:[dart.void,[dart.dynamic]],asFuture:[Future,[],[core.Object]],cancel:[Future,[]],onData:[dart.void,[dart.functionType(dart.void,[T])]],onDone:[dart.void,[dart.functionType(dart.void,[])]],onError:[dart.void,[core.Function]],pause:[dart.void,[],[Future]],resume:[dart.void,[]]})});return _DoneSubscription});let _DoneSubscription=_DoneSubscription$();let __CastType2$=dart.generic(function(T){let __CastType2=dart.typedef('__CastType2',()=>dart.functionType(dart.void,[_BufferingStreamSubscription$(T)]));return __CastType2});let __CastType2=__CastType2$();class DeferredLibrary extends core.Object{DeferredLibrary(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(DeferredLibrary,{constructors:()=>({DeferredLibrary:[DeferredLibrary,[core.String],{uri:core.String}]}),methods:()=>({load:[Future$(core.Null),[]]})});DeferredLibrary[dart.metadata]=()=>[dart.const(new core.Deprecated("Dart sdk v. 1.8"))];let _s=Symbol('_s');class DeferredLoadException extends core.Object{DeferredLoadException(s){this[_s]=s}toString(){return `DeferredLoadException: '${this[_s]}'`}};DeferredLoadException[dart.implements]=()=>[core.Exception];dart.setSignature(DeferredLoadException,{constructors:()=>({DeferredLoadException:[DeferredLoadException,[core.String]]})});let _completeWithValue=Symbol('_completeWithValue');let Future$=dart.generic(function(T){class Future extends core.Object{static new(computation){let result=new(_Future$(T))();Timer.run(dart.fn(()=>{try{result[_complete](computation())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(result,e,s)}}));return dart.as(result,Future$(T))}static microtask(computation){let result=new(_Future$(T))();scheduleMicrotask(dart.fn(()=>{try{result[_complete](computation())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(result,e,s)}}));return dart.as(result,Future$(T))}static sync(computation){try{let result=computation();return Future$(T).value(result)}catch(error){let stackTrace=dart.stackTrace(error);return Future$(T).error(error,stackTrace)}}static value(value){if(value===void 0)value=null;return new(_Future$(T)).immediate(value)}static error(error,stackTrace){if(stackTrace===void 0)stackTrace=null;error=_nonNullError(error);if(!dart.notNull(core.identical(Zone.current,_ROOT_ZONE))){let replacement=Zone.current.errorCallback(error,stackTrace);if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}}return new(_Future$(T)).immediateError(error,stackTrace)}static delayed(duration,computation){if(computation===void 0)computation=null;let result=new(_Future$(T))();Timer.new(duration,dart.fn(()=>{try{result[_complete](computation==null?null:computation())}catch(e){let s=dart.stackTrace(e);_completeWithErrorCallback(result,e,s)}}));return dart.as(result,Future$(T))}static wait(futures,opts){let eagerError=opts&&'eagerError'in opts?opts.eagerError:false;let cleanUp=opts&&'cleanUp'in opts?opts.cleanUp:null;dart.as(cleanUp,dart.functionType(dart.void,[dart.dynamic]));let result=new(_Future$(core.List))();let values=null;let remaining=0;let error=null;let stackTrace=null;function handleError(theError,theStackTrace){remaining=dart.notNull(remaining)-1;if(values!=null){if(cleanUp!=null){for(let value of values){if(value!=null){Future$().sync(dart.fn(()=>{dart.dcall(cleanUp,value)}))}}}values=null;if(remaining==0||dart.notNull(eagerError)){result[_completeError](theError,dart.as(theStackTrace,core.StackTrace))}else{error=theError;stackTrace=dart.as(theStackTrace,core.StackTrace)}}else if(remaining==0&& !dart.notNull(eagerError)){result[_completeError](error,stackTrace)}}dart.fn(handleError,dart.void,[dart.dynamic,dart.dynamic]);for(let future of futures){let pos=remaining;remaining=dart.notNull(pos)+1;future.then(dart.fn(value=>{remaining=dart.notNull(remaining)-1;if(values!=null){values[dartx.set](pos,value);if(remaining==0){result[_completeWithValue](values)}}else{if(cleanUp!=null&&value!=null){Future$().sync(dart.fn(()=>{dart.dcall(cleanUp,value)}))}if(remaining==0&& !dart.notNull(eagerError)){result[_completeError](error,stackTrace)}}},dart.dynamic,[core.Object]),{onError:handleError})}if(remaining==0){return Future$(core.List).value(dart.const([]))}values=core.List.new(remaining);return result}static forEach(input,f){dart.as(f,dart.functionType(dart.dynamic,[dart.dynamic]));let iterator=input[dartx.iterator];return Future$().doWhile(dart.fn(()=>{if(!dart.notNull(iterator.moveNext()))return false;return Future$().sync(dart.fn(()=>dart.dcall(f,iterator.current))).then(dart.fn(_=>true,core.bool,[dart.dynamic]))}))}static doWhile(f){dart.as(f,dart.functionType(dart.dynamic,[]));let doneSignal=new _Future();let nextIteration=null;nextIteration=Zone.current.bindUnaryCallback(dart.fn(keepGoing=>{if(dart.notNull(keepGoing)){Future$().sync(f).then(dart.as(nextIteration,__CastType4),{onError:dart.bind(doneSignal,_completeError)})}else{doneSignal[_complete](null)}},dart.dynamic,[core.bool]),{runGuarded:true});dart.dcall(nextIteration,true);return doneSignal}}dart.setSignature(Future,{constructors:()=>({delayed:[Future$(T),[core.Duration],[dart.functionType(T,[])]],error:[Future$(T),[core.Object],[core.StackTrace]],microtask:[Future$(T),[dart.functionType(dart.dynamic,[])]],new:[Future$(T),[dart.functionType(dart.dynamic,[])]],sync:[Future$(T),[dart.functionType(dart.dynamic,[])]],value:[Future$(T),[],[dart.dynamic]]}),names:['wait','forEach','doWhile'],statics:()=>({doWhile:[Future$(),[dart.functionType(dart.dynamic,[])]],forEach:[Future$(),[core.Iterable,dart.functionType(dart.dynamic,[dart.dynamic])]],wait:[Future$(core.List),[core.Iterable$(Future$())],{cleanUp:dart.functionType(dart.void,[dart.dynamic]),eagerError:core.bool}]})});return Future});let Future=Future$();dart.defineLazyProperties(Future,{get _nullFuture(){return new _Future.immediate(null)}});class TimeoutException extends core.Object{TimeoutException(message,duration){if(duration===void 0)duration=null;this.message=message;this.duration=duration}toString(){let result="TimeoutException";if(this.duration!=null)result=`TimeoutException after ${this.duration }`;if(this.message!=null)result=`${result }: ${this.message }`;return result}};TimeoutException[dart.implements]=()=>[core.Exception];dart.setSignature(TimeoutException,{constructors:()=>({TimeoutException:[TimeoutException,[core.String],[core.Duration]]})});let Completer$=dart.generic(function(T){class Completer extends core.Object{static new(){return new(_AsyncCompleter$(T))()}static sync(){return new(_SyncCompleter$(T))()}}dart.setSignature(Completer,{constructors:()=>({new:[Completer$(T),[]],sync:[Completer$(T),[]]})});return Completer});let Completer=Completer$();function _completeWithErrorCallback(result,error,stackTrace){let replacement=Zone.current.errorCallback(error,dart.as(stackTrace,core.StackTrace));if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}result[_completeError](error,dart.as(stackTrace,core.StackTrace))}dart.fn(_completeWithErrorCallback,()=>dart.definiteFunctionType(dart.void,[_Future,dart.dynamic,dart.dynamic]));function _nonNullError(error){return error!=null?error:new core.NullThrownError()}dart.fn(_nonNullError,core.Object,[core.Object]);let __CastType4=dart.typedef('__CastType4',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let _FutureOnValue$=dart.generic(function(T){let _FutureOnValue=dart.typedef('_FutureOnValue',()=>dart.functionType(dart.dynamic,[T]));return _FutureOnValue});let _FutureOnValue=_FutureOnValue$();let _FutureErrorTest=dart.typedef('_FutureErrorTest',()=>dart.functionType(core.bool,[dart.dynamic]));let _FutureAction=dart.typedef('_FutureAction',()=>dart.functionType(dart.dynamic,[]));let _Completer$=dart.generic(function(T){class _Completer extends core.Object{_Completer(){this.future=new(_Future$(T))()}completeError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;error=_nonNullError(error);if(!dart.notNull(this.future[_mayComplete]))dart.throw(new core.StateError("Future already completed"));let replacement=Zone.current.errorCallback(error,stackTrace);if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}this[_completeError](error,stackTrace)}get isCompleted(){return!dart.notNull(this.future[_mayComplete])}}_Completer[dart.implements]=()=>[Completer$(T)];dart.setSignature(_Completer,{methods:()=>({completeError:[dart.void,[core.Object],[core.StackTrace]]})});return _Completer});let _Completer=_Completer$();let _asyncCompleteError=Symbol('_asyncCompleteError');let _AsyncCompleter$=dart.generic(function(T){class _AsyncCompleter extends _Completer$(T){_AsyncCompleter(){super._Completer()}complete(value){if(value===void 0)value=null;if(!dart.notNull(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:()=>({[_completeError]:[dart.void,[core.Object,core.StackTrace]],complete:[dart.void,[],[dart.dynamic]]})});return _AsyncCompleter});let _AsyncCompleter=_AsyncCompleter$();let _SyncCompleter$=dart.generic(function(T){class _SyncCompleter extends _Completer$(T){_SyncCompleter(){super._Completer()}complete(value){if(value===void 0)value=null;if(!dart.notNull(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:()=>({[_completeError]:[dart.void,[core.Object,core.StackTrace]],complete:[dart.void,[],[dart.dynamic]]})});return _SyncCompleter});let _SyncCompleter=_SyncCompleter$();let _nextListener=Symbol('_nextListener');let _onValue=Symbol('_onValue');let _errorTest=Symbol('_errorTest');let _whenCompleteAction=Symbol('_whenCompleteAction');class _FutureListener extends core.Object{then(result,onValue,errorCallback){this.result=result;this.callback=onValue;this.errorCallback=errorCallback;this.state=errorCallback==null?_FutureListener.STATE_THEN:_FutureListener.STATE_THEN_ONERROR;this[_nextListener]=null}catchError(result,errorCallback,test){this.result=result;this.errorCallback=errorCallback;this.callback=test;this.state=test==null?_FutureListener.STATE_CATCHERROR:_FutureListener.STATE_CATCHERROR_TEST;this[_nextListener]=null}whenComplete(result,onComplete){this.result=result;this.callback=onComplete;this.errorCallback=null;this.state=_FutureListener.STATE_WHENCOMPLETE;this[_nextListener]=null}chain(result){this.result=result;this.callback=null;this.errorCallback=null;this.state=_FutureListener.STATE_CHAIN;this[_nextListener]=null}get[_zone](){return this.result[_zone]}get handlesValue(){return(dart.notNull(this.state)&dart.notNull(_FutureListener.MASK_VALUE))!=0}get handlesError(){return(dart.notNull(this.state)&dart.notNull(_FutureListener.MASK_ERROR))!=0}get hasErrorTest(){return this.state==_FutureListener.STATE_CATCHERROR_TEST}get handlesComplete(){return this.state==_FutureListener.STATE_WHENCOMPLETE}get[_onValue](){dart.assert(this.handlesValue);return dart.as(this.callback,_FutureOnValue)}get[_onError](){return this.errorCallback}get[_errorTest](){dart.assert(this.hasErrorTest);return dart.as(this.callback,_FutureErrorTest)}get[_whenCompleteAction](){dart.assert(this.handlesComplete);return dart.as(this.callback,_FutureAction)}};dart.defineNamedConstructor(_FutureListener,'then');dart.defineNamedConstructor(_FutureListener,'catchError');dart.defineNamedConstructor(_FutureListener,'whenComplete');dart.defineNamedConstructor(_FutureListener,'chain');dart.setSignature(_FutureListener,{constructors:()=>({catchError:[_FutureListener,[_Future,core.Function,_FutureErrorTest]],chain:[_FutureListener,[_Future]],then:[_FutureListener,[_Future,_FutureOnValue,core.Function]],whenComplete:[_FutureListener,[_Future,_FutureAction]]})});_FutureListener.MASK_VALUE=1;_FutureListener.MASK_ERROR=2;_FutureListener.MASK_TEST_ERROR=4;_FutureListener.MASK_WHENCOMPLETE=8;_FutureListener.STATE_CHAIN=0;_FutureListener.STATE_THEN=_FutureListener.MASK_VALUE;_FutureListener.STATE_THEN_ONERROR=dart.notNull(_FutureListener.MASK_VALUE)|dart.notNull(_FutureListener.MASK_ERROR);_FutureListener.STATE_CATCHERROR=_FutureListener.MASK_ERROR;_FutureListener.STATE_CATCHERROR_TEST=dart.notNull(_FutureListener.MASK_ERROR)|dart.notNull(_FutureListener.MASK_TEST_ERROR);_FutureListener.STATE_WHENCOMPLETE=_FutureListener.MASK_WHENCOMPLETE;let _resultOrListeners=Symbol('_resultOrListeners');let _isChained=Symbol('_isChained');let _isComplete=Symbol('_isComplete');let _hasValue=Symbol('_hasValue');let _hasError=Symbol('_hasError');let _markPendingCompletion=Symbol('_markPendingCompletion');let _value=Symbol('_value');let _error=Symbol('_error');let _setValue=Symbol('_setValue');let _setErrorObject=Symbol('_setErrorObject');let _setError=Symbol('_setError');let _removeListeners=Symbol('_removeListeners');let _Future$=dart.generic(function(T){class _Future extends core.Object{_Future(){this[_zone]=Zone.current;this[_state]=_Future$()._INCOMPLETE;this[_resultOrListeners]=null}immediate(value){this[_zone]=Zone.current;this[_state]=_Future$()._INCOMPLETE;this[_resultOrListeners]=null;this[_asyncComplete](value)}immediateError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;this[_zone]=Zone.current;this[_state]=_Future$()._INCOMPLETE;this[_resultOrListeners]=null;this[_asyncCompleteError](error,stackTrace)}get[_mayComplete](){return this[_state]==_Future$()._INCOMPLETE}get[_isChained](){return this[_state]==_Future$()._CHAINED}get[_isComplete](){return dart.notNull(this[_state])>=dart.notNull(_Future$()._VALUE)}get[_hasValue](){return this[_state]==_Future$()._VALUE}get[_hasError](){return this[_state]==_Future$()._ERROR}set[_isChained](value){if(dart.notNull(value)){dart.assert(!dart.notNull(this[_isComplete]));this[_state]=_Future$()._CHAINED}else{dart.assert(this[_isChained]);this[_state]=_Future$()._INCOMPLETE}}then(f,opts){dart.as(f,dart.functionType(dart.dynamic,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let result=new(_Future$())();if(!dart.notNull(core.identical(result[_zone],_ROOT_ZONE))){f=dart.as(result[_zone].registerUnaryCallback(f),__CastType6);if(onError!=null){onError=_registerErrorHandler(onError,result[_zone])}}this[_addListener](new _FutureListener.then(result,f,onError));return result}catchError(onError,opts){let test=opts&&'test'in opts?opts.test:null;dart.as(test,dart.functionType(core.bool,[dart.dynamic]));let result=new(_Future$())();if(!dart.notNull(core.identical(result[_zone],_ROOT_ZONE))){onError=_registerErrorHandler(onError,result[_zone]);if(test!=null)test=dart.as(result[_zone].registerUnaryCallback(test),__CastType8);}this[_addListener](new _FutureListener.catchError(result,onError,test));return result}whenComplete(action){dart.as(action,dart.functionType(dart.dynamic,[]));let result=new(_Future$(T))();if(!dart.notNull(core.identical(result[_zone],_ROOT_ZONE))){action=result[_zone].registerCallback(action)}this[_addListener](new _FutureListener.whenComplete(result,action));return dart.as(result,Future$(T))}asStream(){return Stream$(T).fromFuture(this)}[_markPendingCompletion](){if(!dart.notNull(this[_mayComplete]))dart.throw(new core.StateError("Future already completed"));this[_state]=_Future$()._PENDING_COMPLETE}get[_value](){dart.assert(dart.notNull(this[_isComplete])&&dart.notNull(this[_hasValue]));return dart.as(this[_resultOrListeners],T)}get[_error](){dart.assert(dart.notNull(this[_isComplete])&&dart.notNull(this[_hasError]));return dart.as(this[_resultOrListeners],AsyncError)}[_setValue](value){dart.as(value,T);dart.assert(!dart.notNull(this[_isComplete]));this[_state]=_Future$()._VALUE;this[_resultOrListeners]=value}[_setErrorObject](error){dart.assert(!dart.notNull(this[_isComplete]));this[_state]=_Future$()._ERROR;this[_resultOrListeners]=error}[_setError](error,stackTrace){this[_setErrorObject](new AsyncError(error,stackTrace))}[_addListener](listener){dart.assert(listener[_nextListener]==null);if(dart.notNull(this[_isComplete])){this[_zone].scheduleMicrotask(dart.fn(()=>{_Future$()._propagateToListeners(this,listener)}))}else{listener[_nextListener]=dart.as(this[_resultOrListeners],_FutureListener);this[_resultOrListeners]=listener}}[_removeListeners](){dart.assert(!dart.notNull(this[_isComplete]));let current=dart.as(this[_resultOrListeners],_FutureListener);this[_resultOrListeners]=null;let prev=null;while(current!=null){let next=current[_nextListener];current[_nextListener]=prev;prev=current;current=next}return prev}static _chainForeignFuture(source,target){dart.assert(!dart.notNull(target[_isComplete]));dart.assert(!dart.is(source,_Future$()));target[_isChained]=true;source.then(dart.fn(value=>{dart.assert(target[_isChained]);target[_completeWithValue](value)}),{onError:dart.fn((error,stackTrace)=>{if(stackTrace===void 0)stackTrace=null;dart.assert(target[_isChained]);target[_completeError](error,dart.as(stackTrace,core.StackTrace))},dart.dynamic,[dart.dynamic],[dart.dynamic])})}static _chainCoreFuture(source,target){dart.assert(!dart.notNull(target[_isComplete]));dart.assert(dart.is(source,_Future$()));target[_isChained]=true;let listener=new _FutureListener.chain(target);if(dart.notNull(source[_isComplete])){_Future$()._propagateToListeners(source,listener)}else{source[_addListener](listener)}}[_complete](value){dart.assert(!dart.notNull(this[_isComplete]));if(dart.is(value,Future)){if(dart.is(value,_Future$())){_Future$()._chainCoreFuture(dart.as(value,_Future$()),this)}else{_Future$()._chainForeignFuture(dart.as(value,Future),this)}}else{let listeners=this[_removeListeners]();this[_setValue](dart.as(value,T));_Future$()._propagateToListeners(this,listeners)}}[_completeWithValue](value){dart.assert(!dart.notNull(this[_isComplete]));dart.assert(!dart.is(value,Future));let listeners=this[_removeListeners]();this[_setValue](dart.as(value,T));_Future$()._propagateToListeners(this,listeners)}[_completeError](error,stackTrace){if(stackTrace===void 0)stackTrace=null;dart.assert(!dart.notNull(this[_isComplete]));let listeners=this[_removeListeners]();this[_setError](error,stackTrace);_Future$()._propagateToListeners(this,listeners)}[_asyncComplete](value){dart.assert(!dart.notNull(this[_isComplete]));if(value==null){}else if(dart.is(value,Future)){let typedFuture=dart.as(value,Future$(T));if(dart.is(typedFuture,_Future$())){let coreFuture=dart.as(typedFuture,_Future$(T));if(dart.notNull(coreFuture[_isComplete])&&dart.notNull(coreFuture[_hasError])){this[_markPendingCompletion]();this[_zone].scheduleMicrotask(dart.fn(()=>{_Future$()._chainCoreFuture(coreFuture,this)}))}else{_Future$()._chainCoreFuture(coreFuture,this)}}else{_Future$()._chainForeignFuture(typedFuture,this)}return}else{let typedValue=dart.as(value,T)}this[_markPendingCompletion]();this[_zone].scheduleMicrotask(dart.fn(()=>{this[_completeWithValue](value)}))}[_asyncCompleteError](error,stackTrace){dart.assert(!dart.notNull(this[_isComplete]));this[_markPendingCompletion]();this[_zone].scheduleMicrotask(dart.fn(()=>{this[_completeError](error,stackTrace)}))}static _propagateToListeners(source,listeners){while(true){dart.assert(source[_isComplete]);let hasError=source[_hasError];if(listeners==null){if(dart.notNull(hasError)){let asyncError=source[_error];source[_zone].handleUncaughtError(asyncError.error,asyncError.stackTrace)}return}while(listeners[_nextListener]!=null){let listener=listeners;listeners=listener[_nextListener];listener[_nextListener]=null;_Future$()._propagateToListeners(source,listener)}let listener=listeners;let listenerHasValue=true;let sourceValue=dart.notNull(hasError)?null:source[_value];let listenerValueOrError=sourceValue;let isPropagationAborted=false;if(dart.notNull(hasError)||dart.notNull(listener.handlesValue)||dart.notNull(listener.handlesComplete)){let zone=listener[_zone];if(dart.notNull(hasError)&& !dart.notNull(source[_zone].inSameErrorZone(zone))){let asyncError=source[_error];source[_zone].handleUncaughtError(asyncError.error,asyncError.stackTrace);return}let oldZone=null;if(!dart.notNull(core.identical(Zone.current,zone))){oldZone=Zone._enter(zone)}function handleValueCallback(){try{listenerValueOrError=zone.runUnary(listener[_onValue],sourceValue);return true}catch(e){let s=dart.stackTrace(e);listenerValueOrError=new AsyncError(e,s);return false}}dart.fn(handleValueCallback,core.bool,[]);function handleError(){let asyncError=source[_error];let matchesTest=true;if(dart.notNull(listener.hasErrorTest)){let test=listener[_errorTest];try{matchesTest=dart.as(zone.runUnary(test,asyncError.error),core.bool)}catch(e){let s=dart.stackTrace(e);listenerValueOrError=dart.notNull(core.identical(asyncError.error,e))?asyncError:new AsyncError(e,s);listenerHasValue=false;return}}let errorCallback=listener[_onError];if(dart.notNull(matchesTest)&&errorCallback!=null){try{if(dart.is(errorCallback,ZoneBinaryCallback)){listenerValueOrError=zone.runBinary(errorCallback,asyncError.error,asyncError.stackTrace)}else{listenerValueOrError=zone.runUnary(dart.as(errorCallback,__CastType10),asyncError.error)}}catch(e){let s=dart.stackTrace(e);listenerValueOrError=dart.notNull(core.identical(asyncError.error,e))?asyncError:new AsyncError(e,s);listenerHasValue=false;return}listenerHasValue=true}else{listenerValueOrError=asyncError;listenerHasValue=false}}dart.fn(handleError,dart.void,[]);function handleWhenCompleteCallback(){let completeResult=null;try{completeResult=zone.run(listener[_whenCompleteAction])}catch(e){let s=dart.stackTrace(e);if(dart.notNull(hasError)&&dart.notNull(core.identical(source[_error].error,e))){listenerValueOrError=source[_error]}else{listenerValueOrError=new AsyncError(e,s)}listenerHasValue=false;return}if(dart.is(completeResult,Future)){let result=listener.result;result[_isChained]=true;isPropagationAborted=true;dart.dsend(completeResult,'then',dart.fn(ignored=>{_Future$()._propagateToListeners(source,new _FutureListener.chain(result))}),{onError:dart.fn((error,stackTrace)=>{if(stackTrace===void 0)stackTrace=null;if(!dart.is(completeResult,_Future$())){completeResult=new(_Future$())();dart.dsend(completeResult,_setError,error,stackTrace)}_Future$()._propagateToListeners(dart.as(completeResult,_Future$()),new _FutureListener.chain(result))},dart.dynamic,[dart.dynamic],[dart.dynamic])})}}dart.fn(handleWhenCompleteCallback,dart.void,[]);if(!dart.notNull(hasError)){if(dart.notNull(listener.handlesValue)){listenerHasValue=handleValueCallback()}}else{handleError()}if(dart.notNull(listener.handlesComplete)){handleWhenCompleteCallback()}if(oldZone!=null)Zone._leave(oldZone);if(dart.notNull(isPropagationAborted))return;if(dart.notNull(listenerHasValue)&& !dart.notNull(core.identical(sourceValue,listenerValueOrError))&&dart.is(listenerValueOrError,Future)){let chainSource=dart.as(listenerValueOrError,Future);let result=listener.result;if(dart.is(chainSource,_Future$())){if(dart.notNull(chainSource[_isComplete])){result[_isChained]=true;source=chainSource;listeners=new _FutureListener.chain(result);continue}else{_Future$()._chainCoreFuture(chainSource,result)}}else{_Future$()._chainForeignFuture(chainSource,result)}return}}let result=listener.result;listeners=result[_removeListeners]();if(dart.notNull(listenerHasValue)){result[_setValue](listenerValueOrError)}else{let asyncError=dart.as(listenerValueOrError,AsyncError);result[_setErrorObject](asyncError)}source=result}}timeout(timeLimit,opts){let onTimeout=opts&&'onTimeout'in opts?opts.onTimeout:null;dart.as(onTimeout,dart.functionType(dart.dynamic,[]));if(dart.notNull(this[_isComplete]))return new(_Future$()).immediate(this);let result=new(_Future$())();let timer=null;if(onTimeout==null){timer=Timer.new(timeLimit,dart.fn(()=>{result[_completeError](new TimeoutException("Future not completed",timeLimit))}))}else{let zone=Zone.current;onTimeout=zone.registerCallback(onTimeout);timer=Timer.new(timeLimit,dart.fn(()=>{try{result[_complete](zone.run(onTimeout))}catch(e){let s=dart.stackTrace(e);result[_completeError](e,s)}}))}this.then(dart.fn(v=>{dart.as(v,T);if(dart.notNull(timer.isActive)){timer.cancel();result[_completeWithValue](v)}},dart.dynamic,[T]),{onError:dart.fn((e,s)=>{if(dart.notNull(timer.isActive)){timer.cancel();result[_completeError](e,dart.as(s,core.StackTrace))}})});return result}}_Future[dart.implements]=()=>[Future$(T)];dart.defineNamedConstructor(_Future,'immediate');dart.defineNamedConstructor(_Future,'immediateError');dart.setSignature(_Future,{constructors:()=>({_Future:[_Future$(T),[]],immediate:[_Future$(T),[dart.dynamic]],immediateError:[_Future$(T),[dart.dynamic],[core.StackTrace]]}),methods:()=>({[_setError]:[dart.void,[core.Object,core.StackTrace]],[_completeError]:[dart.void,[dart.dynamic],[core.StackTrace]],[_completeWithValue]:[dart.void,[dart.dynamic]],[_complete]:[dart.void,[dart.dynamic]],[_removeListeners]:[_FutureListener,[]],[_asyncComplete]:[dart.void,[dart.dynamic]],[_asyncCompleteError]:[dart.void,[dart.dynamic,core.StackTrace]],[_setErrorObject]:[dart.void,[AsyncError]],[_setValue]:[dart.void,[T]],[_markPendingCompletion]:[dart.void,[]],[_addListener]:[dart.void,[_FutureListener]],asStream:[Stream$(T),[]],catchError:[Future,[core.Function],{test:dart.functionType(core.bool,[dart.dynamic])}],then:[Future,[dart.functionType(dart.dynamic,[T])],{onError:core.Function}],timeout:[Future,[core.Duration],{onTimeout:dart.functionType(dart.dynamic,[])}],whenComplete:[Future$(T),[dart.functionType(dart.dynamic,[])]]}),names:['_chainForeignFuture','_chainCoreFuture','_propagateToListeners'],statics:()=>({_chainCoreFuture:[dart.void,[_Future$(),_Future$()]],_chainForeignFuture:[dart.void,[Future,_Future$()]],_propagateToListeners:[dart.void,[_Future$(),_FutureListener]]})});return _Future});let _Future=_Future$();_Future._INCOMPLETE=0;_Future._PENDING_COMPLETE=1;_Future._CHAINED=2;_Future._VALUE=4;_Future._ERROR=8;let __CastType6$=dart.generic(function(T){let __CastType6=dart.typedef('__CastType6',()=>dart.functionType(dart.dynamic,[T]));return __CastType6});let __CastType6=__CastType6$();let __CastType8=dart.typedef('__CastType8',()=>dart.functionType(core.bool,[dart.dynamic]));let __CastType10=dart.typedef('__CastType10',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let _AsyncCallback=dart.typedef('_AsyncCallback',()=>dart.functionType(dart.void,[]));class _AsyncCallbackEntry extends core.Object{_AsyncCallbackEntry(callback){this.callback=callback;this.next=null}};dart.setSignature(_AsyncCallbackEntry,{constructors:()=>({_AsyncCallbackEntry:[_AsyncCallbackEntry,[_AsyncCallback]]})});exports._nextCallback=null;exports._lastCallback=null;exports._lastPriorityCallback=null;exports._isInCallbackLoop=false;function _asyncRunCallbackLoop(){while(exports._nextCallback!=null){exports._lastPriorityCallback=null;let entry=exports._nextCallback;exports._nextCallback=entry.next;if(exports._nextCallback==null)exports._lastCallback=null;entry.callback()}}dart.fn(_asyncRunCallbackLoop,dart.void,[]);function _asyncRunCallback(){exports._isInCallbackLoop=true;try{_asyncRunCallbackLoop()}finally{exports._lastPriorityCallback=null;exports._isInCallbackLoop=false;if(exports._nextCallback!=null)_AsyncRun._scheduleImmediate(_asyncRunCallback);}}dart.fn(_asyncRunCallback,dart.void,[]);function _scheduleAsyncCallback(callback){if(exports._nextCallback==null){exports._nextCallback=exports._lastCallback=new _AsyncCallbackEntry(dart.as(callback,_AsyncCallback));if(!dart.notNull(exports._isInCallbackLoop)){_AsyncRun._scheduleImmediate(_asyncRunCallback)}}else{let newEntry=new _AsyncCallbackEntry(dart.as(callback,_AsyncCallback));exports._lastCallback.next=newEntry;exports._lastCallback=newEntry}}dart.fn(_scheduleAsyncCallback,dart.void,[dart.dynamic]);function _schedulePriorityAsyncCallback(callback){let entry=new _AsyncCallbackEntry(dart.as(callback,_AsyncCallback));if(exports._nextCallback==null){_scheduleAsyncCallback(callback);exports._lastPriorityCallback=exports._lastCallback}else if(exports._lastPriorityCallback==null){entry.next=exports._nextCallback;exports._nextCallback=exports._lastPriorityCallback=entry}else{entry.next=exports._lastPriorityCallback.next;exports._lastPriorityCallback.next=entry;exports._lastPriorityCallback=entry;if(entry.next==null){exports._lastCallback=entry}}}dart.fn(_schedulePriorityAsyncCallback,dart.void,[dart.dynamic]);function scheduleMicrotask(callback){if(dart.notNull(core.identical(_ROOT_ZONE,Zone.current))){_rootScheduleMicrotask(null,null,_ROOT_ZONE,callback);return}Zone.current.scheduleMicrotask(Zone.current.bindCallback(callback,{runGuarded:true}))}dart.fn(scheduleMicrotask,dart.void,[dart.functionType(dart.void,[])]);class _AsyncRun extends core.Object{static _scheduleImmediate(callback){dart.dcall(_AsyncRun.scheduleImmediateClosure,callback)}static _initializeScheduleImmediate(){if(self.scheduleImmediate!=null){return _AsyncRun._scheduleImmediateJsOverride}if(self.MutationObserver!=null&&self.document!=null){let div=self.document.createElement("div");let span=self.document.createElement("span");let storedCallback=null;function internalCallback(_){_isolate_helper.leaveJsAsync();let f=storedCallback;storedCallback=null;dart.dcall(f)}dart.fn(internalCallback);;let observer=new self.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)},dart.dynamic,[dart.functionType(dart.void,[])])}else if(self.setImmediate!=null){return _AsyncRun._scheduleImmediateWithSetImmediate}return _AsyncRun._scheduleImmediateWithTimer}static _scheduleImmediateJsOverride(callback){function internalCallback(){_isolate_helper.leaveJsAsync();callback()}dart.fn(internalCallback);;_isolate_helper.enterJsAsync();self.scheduleImmediate(internalCallback)}static _scheduleImmediateWithSetImmediate(callback){function internalCallback(){_isolate_helper.leaveJsAsync();callback()}dart.fn(internalCallback);;_isolate_helper.enterJsAsync();self.setImmediate(internalCallback)}static _scheduleImmediateWithTimer(callback){Timer._createTimer(core.Duration.ZERO,callback)}};dart.setSignature(_AsyncRun,{names:['_scheduleImmediate','_initializeScheduleImmediate','_scheduleImmediateJsOverride','_scheduleImmediateWithSetImmediate','_scheduleImmediateWithTimer'],statics:()=>({_initializeScheduleImmediate:[core.Function,[]],_scheduleImmediate:[dart.void,[dart.functionType(dart.void,[])]],_scheduleImmediateJsOverride:[dart.void,[dart.functionType(dart.void,[])]],_scheduleImmediateWithSetImmediate:[dart.void,[dart.functionType(dart.void,[])]],_scheduleImmediateWithTimer:[dart.void,[dart.functionType(dart.void,[])]]})});dart.defineLazyProperties(_AsyncRun,{get scheduleImmediateClosure(){return _AsyncRun._initializeScheduleImmediate()}});let StreamSubscription$=dart.generic(function(T){class StreamSubscription extends core.Object{}return StreamSubscription});let StreamSubscription=StreamSubscription$();let EventSink$=dart.generic(function(T){class EventSink extends core.Object{}EventSink[dart.implements]=()=>[core.Sink$(T)];return EventSink});let EventSink=EventSink$();let _stream=Symbol('_stream');let StreamView$=dart.generic(function(T){class StreamView extends Stream$(T){StreamView(stream){this[_stream]=stream;super.Stream()}get isBroadcast(){return this[_stream].isBroadcast}asBroadcastStream(opts){let onListen=opts&&'onListen'in opts?opts.onListen:null;dart.as(onListen,dart.functionType(dart.void,[StreamSubscription$(T)]));let onCancel=opts&&'onCancel'in opts?opts.onCancel:null;dart.as(onCancel,dart.functionType(dart.void,[StreamSubscription$(T)]));return this[_stream].asBroadcastStream({onCancel:onCancel,onListen:onListen})}listen(onData,opts){dart.as(onData,dart.functionType(dart.void,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;dart.as(onDone,dart.functionType(dart.void,[]));let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:null;return this[_stream].listen(onData,{cancelOnError:cancelOnError,onDone:onDone,onError:onError})}}dart.setSignature(StreamView,{constructors:()=>({StreamView:[StreamView$(T),[Stream$(T)]]}),methods:()=>({asBroadcastStream:[Stream$(T),[],{onCancel:dart.functionType(dart.void,[StreamSubscription$(T)]),onListen:dart.functionType(dart.void,[StreamSubscription$(T)])}],listen:[StreamSubscription$(T),[dart.functionType(dart.void,[T])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});return StreamView});let StreamView=StreamView$();let StreamConsumer$=dart.generic(function(S){class StreamConsumer extends core.Object{}return StreamConsumer});let StreamConsumer=StreamConsumer$();let StreamSink$=dart.generic(function(S){class StreamSink extends core.Object{}StreamSink[dart.implements]=()=>[StreamConsumer$(S),EventSink$(S)];return StreamSink});let StreamSink=StreamSink$();let StreamTransformer$=dart.generic(function(S,T){class StreamTransformer extends core.Object{static new(transformer){return new _StreamSubscriptionTransformer(transformer)}static fromHandlers(opts){return new _StreamHandlerTransformer(opts)}}dart.setSignature(StreamTransformer,{constructors:()=>({fromHandlers:[StreamTransformer$(S,T),[],{handleData:dart.functionType(dart.void,[S,EventSink$(T)]),handleDone:dart.functionType(dart.void,[EventSink$(T)]),handleError:dart.functionType(dart.void,[core.Object,core.StackTrace,EventSink$(T)])}],new:[StreamTransformer$(S,T),[dart.functionType(StreamSubscription$(T),[Stream$(S),core.bool])]]})});return StreamTransformer});let StreamTransformer=StreamTransformer$();let StreamIterator$=dart.generic(function(T){class StreamIterator extends core.Object{static new(stream){return new(_StreamIteratorImpl$(T))(stream)}}dart.setSignature(StreamIterator,{constructors:()=>({new:[StreamIterator$(T),[Stream$(T)]]})});return StreamIterator});let StreamIterator=StreamIterator$();let _ControllerEventSinkWrapper$=dart.generic(function(T){class _ControllerEventSinkWrapper extends core.Object{_ControllerEventSinkWrapper(sink){this[_sink]=sink}add(data){dart.as(data,T);this[_sink].add(data)}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;this[_sink].addError(error,stackTrace)}close(){this[_sink].close()}}_ControllerEventSinkWrapper[dart.implements]=()=>[EventSink$(T)];dart.setSignature(_ControllerEventSinkWrapper,{constructors:()=>({_ControllerEventSinkWrapper:[_ControllerEventSinkWrapper$(T),[EventSink]]}),methods:()=>({add:[dart.void,[T]],addError:[dart.void,[dart.dynamic],[core.StackTrace]],close:[dart.void,[]]})});return _ControllerEventSinkWrapper});let _ControllerEventSinkWrapper=_ControllerEventSinkWrapper$();let __CastType12=dart.typedef('__CastType12',()=>dart.functionType(dart.void,[StreamSubscription]));let __CastType14=dart.typedef('__CastType14',()=>dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace]));let __CastType17=dart.typedef('__CastType17',()=>dart.functionType(dart.void,[]));let __CastType18=dart.typedef('__CastType18',()=>dart.functionType(dart.void,[EventSink]));let StreamController$=dart.generic(function(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;if(onListen==null&&onPause==null&&onResume==null&&onCancel==null){return dart.as(dart.notNull(sync)?new _NoCallbackSyncStreamController():new _NoCallbackAsyncStreamController(),StreamController$(T))}return dart.notNull(sync)?new(_SyncStreamController$(T))(onListen,onPause,onResume,onCancel):new(_AsyncStreamController$(T))(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.notNull(sync)?new(_SyncBroadcastStreamController$(T))(onListen,onCancel):new(_AsyncBroadcastStreamController$(T))(onListen,onCancel)}}StreamController[dart.implements]=()=>[StreamSink$(T)];dart.setSignature(StreamController,{constructors:()=>({broadcast:[StreamController$(T),[],{onCancel:dart.functionType(dart.void,[]),onListen:dart.functionType(dart.void,[]),sync:core.bool}],new:[StreamController$(T),[],{onCancel:dart.functionType(dart.dynamic,[]),onListen:dart.functionType(dart.void,[]),onPause:dart.functionType(dart.void,[]),onResume:dart.functionType(dart.void,[]),sync:core.bool}]})});return StreamController});let StreamController=StreamController$();let _StreamControllerLifecycle$=dart.generic(function(T){class _StreamControllerLifecycle extends core.Object{[_recordPause](subscription){dart.as(subscription,StreamSubscription$(T))}[_recordResume](subscription){dart.as(subscription,StreamSubscription$(T))}[_recordCancel](subscription){dart.as(subscription,StreamSubscription$(T));return null}}dart.setSignature(_StreamControllerLifecycle,{methods:()=>({[_recordCancel]:[Future,[StreamSubscription$(T)]],[_recordResume]:[dart.void,[StreamSubscription$(T)]],[_recordPause]:[dart.void,[StreamSubscription$(T)]]})});return _StreamControllerLifecycle});let _StreamControllerLifecycle=_StreamControllerLifecycle$();let _varData=Symbol('_varData');let _isInitialState=Symbol('_isInitialState');let _subscription=Symbol('_subscription');let _pendingEvents=Symbol('_pendingEvents');let _ensurePendingEvents=Symbol('_ensurePendingEvents');let _badEventState=Symbol('_badEventState');let _StreamController$=dart.generic(function(T){class _StreamController extends core.Object{_StreamController(){this[_varData]=null;this[_state]=_StreamController$()._STATE_INITIAL;this[_doneFuture]=null}get stream(){return new(_ControllerStream$(T))(this)}get sink(){return new(_StreamSinkWrapper$(T))(this)}get[_isCanceled](){return(dart.notNull(this[_state])&dart.notNull(_StreamController$()._STATE_CANCELED))!=0}get hasListener(){return(dart.notNull(this[_state])&dart.notNull(_StreamController$()._STATE_SUBSCRIBED))!=0}get[_isInitialState](){return(dart.notNull(this[_state])&dart.notNull(_StreamController$()._STATE_SUBSCRIPTION_MASK))==_StreamController$()._STATE_INITIAL}get isClosed(){return(dart.notNull(this[_state])&dart.notNull(_StreamController$()._STATE_CLOSED))!=0}get isPaused(){return dart.notNull(this.hasListener)?this[_subscription][_isInputPaused]: !dart.notNull(this[_isCanceled])}get[_isAddingStream](){return(dart.notNull(this[_state])&dart.notNull(_StreamController$()._STATE_ADDSTREAM))!=0}get[_mayAddEvent](){return dart.notNull(this[_state])<dart.notNull(_StreamController$()._STATE_CLOSED)}get[_pendingEvents](){dart.assert(this[_isInitialState]);if(!dart.notNull(this[_isAddingStream])){return dart.as(this[_varData],_PendingEvents)}let state=dart.as(this[_varData],_StreamControllerAddStreamState);return dart.as(state.varData,_PendingEvents)}[_ensurePendingEvents](){dart.assert(this[_isInitialState]);if(!dart.notNull(this[_isAddingStream])){if(this[_varData]==null)this[_varData]=new _StreamImplEvents();return dart.as(this[_varData],_StreamImplEvents)}let state=dart.as(this[_varData],_StreamControllerAddStreamState);if(state.varData==null)state.varData=new _StreamImplEvents();return dart.as(state.varData,_StreamImplEvents)}get[_subscription](){dart.assert(this.hasListener);if(dart.notNull(this[_isAddingStream])){let addState=dart.as(this[_varData],_StreamControllerAddStreamState);return dart.as(addState.varData,_ControllerSubscription)}return dart.as(this[_varData],_ControllerSubscription)}[_badEventState](){if(dart.notNull(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){dart.as(source,Stream$(T));let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:true;if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_badEventState]());if(dart.notNull(this[_isCanceled]))return new _Future.immediate(null);let addState=new _StreamControllerAddStreamState(this,this[_varData],source,cancelOnError);this[_varData]=addState;this[_state]=dart.notNull(this[_state])|dart.notNull(_StreamController$()._STATE_ADDSTREAM);return addState.addStreamFuture}get done(){return this[_ensureDoneFuture]()}[_ensureDoneFuture](){if(this[_doneFuture]==null){this[_doneFuture]=dart.notNull(this[_isCanceled])?Future._nullFuture:new _Future()}return this[_doneFuture]}add(value){dart.as(value,T);if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_badEventState]());this[_add](value)}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;error=_nonNullError(error);if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_badEventState]());let replacement=Zone.current.errorCallback(error,stackTrace);if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}this[_addError](error,stackTrace)}close(){if(dart.notNull(this.isClosed)){return this[_ensureDoneFuture]()}if(!dart.notNull(this[_mayAddEvent]))dart.throw(this[_badEventState]());this[_closeUnchecked]();return this[_ensureDoneFuture]()}[_closeUnchecked](){this[_state]=dart.notNull(this[_state])|dart.notNull(_StreamController$()._STATE_CLOSED);if(dart.notNull(this.hasListener)){this[_sendDone]()}else if(dart.notNull(this[_isInitialState])){this[_ensurePendingEvents]().add(dart.const(new _DelayedDone()))}}[_add](value){dart.as(value,T);if(dart.notNull(this.hasListener)){this[_sendData](value)}else if(dart.notNull(this[_isInitialState])){this[_ensurePendingEvents]().add(new(_DelayedData$(T))(value))}}[_addError](error,stackTrace){if(dart.notNull(this.hasListener)){this[_sendError](error,stackTrace)}else if(dart.notNull(this[_isInitialState])){this[_ensurePendingEvents]().add(new _DelayedError(error,stackTrace))}}[_close](){dart.assert(this[_isAddingStream]);let addState=dart.as(this[_varData],_StreamControllerAddStreamState);this[_varData]=addState.varData;this[_state]=dart.notNull(this[_state])& ~dart.notNull(_StreamController$()._STATE_ADDSTREAM);addState.complete()}[_subscribe](onData,onError,onDone,cancelOnError){dart.as(onData,dart.functionType(dart.void,[T]));dart.as(onDone,dart.functionType(dart.void,[]));if(!dart.notNull(this[_isInitialState])){dart.throw(new core.StateError("Stream has already been listened to."))}let subscription=new _ControllerSubscription(this,onData,onError,onDone,cancelOnError);let pendingEvents=this[_pendingEvents];this[_state]=dart.notNull(this[_state])|dart.notNull(_StreamController$()._STATE_SUBSCRIBED);if(dart.notNull(this[_isAddingStream])){let addState=dart.as(this[_varData],_StreamControllerAddStreamState);addState.varData=subscription;addState.resume()}else{this[_varData]=subscription}subscription[_setPendingEvents](pendingEvents);subscription[_guardCallback](dart.fn(()=>{_runGuarded(this[_onListen])}));return dart.as(subscription,StreamSubscription$(T))}[_recordCancel](subscription){dart.as(subscription,StreamSubscription$(T));let result=null;if(dart.notNull(this[_isAddingStream])){let addState=dart.as(this[_varData],_StreamControllerAddStreamState);result=addState.cancel()}this[_varData]=null;this[_state]=dart.notNull(this[_state])& ~(dart.notNull(_StreamController$()._STATE_SUBSCRIBED)|dart.notNull(_StreamController$()._STATE_ADDSTREAM))|dart.notNull(_StreamController$()._STATE_CANCELED);if(this[_onCancel]!=null){if(result==null){try{result=dart.as(this[_onCancel](),Future)}catch(e){let s=dart.stackTrace(e);result=new _Future();result[_asyncCompleteError](e,s)}}else{result=result.whenComplete(this[_onCancel])}}let complete=(function(){if(this[_doneFuture]!=null&&dart.notNull(this[_doneFuture][_mayComplete])){this[_doneFuture][_asyncComplete](null)}}).bind(this);dart.fn(complete,dart.void,[]);if(result!=null){result=result.whenComplete(complete)}else{complete()}return result}[_recordPause](subscription){dart.as(subscription,StreamSubscription$(T));if(dart.notNull(this[_isAddingStream])){let addState=dart.as(this[_varData],_StreamControllerAddStreamState);addState.pause()}_runGuarded(this[_onPause])}[_recordResume](subscription){dart.as(subscription,StreamSubscription$(T));if(dart.notNull(this[_isAddingStream])){let addState=dart.as(this[_varData],_StreamControllerAddStreamState);addState.resume()}_runGuarded(this[_onResume])}}_StreamController[dart.implements]=()=>[StreamController$(T),_StreamControllerLifecycle$(T),_EventSink$(T),_EventDispatch$(T)];dart.setSignature(_StreamController,{constructors:()=>({_StreamController:[_StreamController$(T),[]]}),methods:()=>({[_recordResume]:[dart.void,[StreamSubscription$(T)]],[_recordCancel]:[Future,[StreamSubscription$(T)]],[_subscribe]:[StreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]],[_close]:[dart.void,[]],[_addError]:[dart.void,[core.Object,core.StackTrace]],[_add]:[dart.void,[T]],[_recordPause]:[dart.void,[StreamSubscription$(T)]],[_badEventState]:[core.Error,[]],[_ensureDoneFuture]:[Future,[]],[_ensurePendingEvents]:[_StreamImplEvents,[]],[_closeUnchecked]:[dart.void,[]],add:[dart.void,[T]],addError:[dart.void,[core.Object],[core.StackTrace]],addStream:[Future,[Stream$(T)],{cancelOnError:core.bool}],close:[Future,[]]})});return _StreamController});let _StreamController=_StreamController$();_StreamController._STATE_INITIAL=0;_StreamController._STATE_SUBSCRIBED=1;_StreamController._STATE_CANCELED=2;_StreamController._STATE_SUBSCRIPTION_MASK=3;_StreamController._STATE_CLOSED=4;_StreamController._STATE_ADDSTREAM=8;let _SyncStreamControllerDispatch$=dart.generic(function(T){class _SyncStreamControllerDispatch extends core.Object{[_sendData](data){dart.as(data,T);this[_subscription][_add](data)}[_sendError](error,stackTrace){this[_subscription][_addError](error,stackTrace)}[_sendDone](){this[_subscription][_close]()}}_SyncStreamControllerDispatch[dart.implements]=()=>[_StreamController$(T)];dart.setSignature(_SyncStreamControllerDispatch,{methods:()=>({[_sendDone]:[dart.void,[]],[_sendError]:[dart.void,[core.Object,core.StackTrace]],[_sendData]:[dart.void,[T]]})});return _SyncStreamControllerDispatch});let _SyncStreamControllerDispatch=_SyncStreamControllerDispatch$();let _AsyncStreamControllerDispatch$=dart.generic(function(T){class _AsyncStreamControllerDispatch extends core.Object{[_sendData](data){dart.as(data,T);this[_subscription][_addPending](new _DelayedData(data))}[_sendError](error,stackTrace){this[_subscription][_addPending](new _DelayedError(error,stackTrace))}[_sendDone](){this[_subscription][_addPending](dart.const(new _DelayedDone()))}}_AsyncStreamControllerDispatch[dart.implements]=()=>[_StreamController$(T)];dart.setSignature(_AsyncStreamControllerDispatch,{methods:()=>({[_sendDone]:[dart.void,[]],[_sendError]:[dart.void,[core.Object,core.StackTrace]],[_sendData]:[dart.void,[T]]})});return _AsyncStreamControllerDispatch});let _AsyncStreamControllerDispatch=_AsyncStreamControllerDispatch$();let _AsyncStreamController$=dart.generic(function(T){class _AsyncStreamController extends dart.mixin(_StreamController$(T),_AsyncStreamControllerDispatch$(T)){_AsyncStreamController(onListen,onPause,onResume,onCancel){this[_onListen]=onListen;this[_onPause]=onPause;this[_onResume]=onResume;this[_onCancel]=onCancel;super._StreamController()}}dart.setSignature(_AsyncStreamController,{constructors:()=>({_AsyncStreamController:[_AsyncStreamController$(T),[dart.functionType(dart.void,[]),dart.functionType(dart.void,[]),dart.functionType(dart.void,[]),dart.functionType(dart.dynamic,[])]]})});return _AsyncStreamController});let _AsyncStreamController=_AsyncStreamController$();let _SyncStreamController$=dart.generic(function(T){class _SyncStreamController extends dart.mixin(_StreamController$(T),_SyncStreamControllerDispatch$(T)){_SyncStreamController(onListen,onPause,onResume,onCancel){this[_onListen]=onListen;this[_onPause]=onPause;this[_onResume]=onResume;this[_onCancel]=onCancel;super._StreamController()}}dart.setSignature(_SyncStreamController,{constructors:()=>({_SyncStreamController:[_SyncStreamController$(T),[dart.functionType(dart.void,[]),dart.functionType(dart.void,[]),dart.functionType(dart.void,[]),dart.functionType(dart.dynamic,[])]]})});return _SyncStreamController});let _SyncStreamController=_SyncStreamController$();class _NoCallbacks extends core.Object{get[_onListen](){return null}get[_onPause](){return null}get[_onResume](){return null}get[_onCancel](){return null}};class _NoCallbackAsyncStreamController extends dart.mixin(_StreamController,_AsyncStreamControllerDispatch,_NoCallbacks){_NoCallbackAsyncStreamController(){super._StreamController(...arguments)}}class _NoCallbackSyncStreamController extends dart.mixin(_StreamController,_SyncStreamControllerDispatch,_NoCallbacks){_NoCallbackSyncStreamController(){super._StreamController(...arguments)}}let _NotificationHandler=dart.typedef('_NotificationHandler',()=>dart.functionType(dart.dynamic,[]));function _runGuarded(notificationHandler){if(notificationHandler==null)return null;try{let result=notificationHandler();if(dart.is(result,Future))return dart.as(result,Future);return null}catch(e){let s=dart.stackTrace(e);Zone.current.handleUncaughtError(e,s)}}dart.fn(_runGuarded,Future,[_NotificationHandler]);let _target=Symbol('_target');let _StreamSinkWrapper$=dart.generic(function(T){class _StreamSinkWrapper extends core.Object{_StreamSinkWrapper(target){this[_target]=target}add(data){dart.as(data,T);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){dart.as(source,Stream$(T));let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:true;return this[_target].addStream(source,{cancelOnError:cancelOnError})}get done(){return this[_target].done}}_StreamSinkWrapper[dart.implements]=()=>[StreamSink$(T)];dart.setSignature(_StreamSinkWrapper,{constructors:()=>({_StreamSinkWrapper:[_StreamSinkWrapper$(T),[StreamController]]}),methods:()=>({add:[dart.void,[T]],addError:[dart.void,[core.Object],[core.StackTrace]],addStream:[Future,[Stream$(T)],{cancelOnError:core.bool}],close:[Future,[]]})});return _StreamSinkWrapper});let _StreamSinkWrapper=_StreamSinkWrapper$();let _AddStreamState$=dart.generic(function(T){class _AddStreamState extends core.Object{_AddStreamState(controller,source,cancelOnError){this.addStreamFuture=new _Future();this.addSubscription=source.listen(dart.bind(controller,_add),{cancelOnError:cancelOnError,onDone:dart.bind(controller,_close),onError:dart.notNull(cancelOnError)?dart.as(_AddStreamState$().makeErrorHandler(controller),core.Function):dart.bind(controller,_addError)})}static makeErrorHandler(controller){return dart.fn((e,s)=>{controller[_addError](e,s);controller[_close]()},dart.dynamic,[dart.dynamic,core.StackTrace])}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)}))}complete(){this.addStreamFuture[_asyncComplete](null)}}dart.setSignature(_AddStreamState,{constructors:()=>({_AddStreamState:[_AddStreamState$(T),[_EventSink$(T),Stream,core.bool]]}),methods:()=>({cancel:[Future,[]],complete:[dart.void,[]],pause:[dart.void,[]],resume:[dart.void,[]]}),names:['makeErrorHandler'],statics:()=>({makeErrorHandler:[dart.dynamic,[_EventSink]]})});return _AddStreamState});let _AddStreamState=_AddStreamState$();let _StreamControllerAddStreamState$=dart.generic(function(T){class _StreamControllerAddStreamState extends _AddStreamState$(T){_StreamControllerAddStreamState(controller,varData,source,cancelOnError){this.varData=varData;super._AddStreamState(dart.as(controller,_EventSink$(T)),source,cancelOnError);if(dart.notNull(controller.isPaused)){this.addSubscription.pause()}}}dart.setSignature(_StreamControllerAddStreamState,{constructors:()=>({_StreamControllerAddStreamState:[_StreamControllerAddStreamState$(T),[_StreamController,dart.dynamic,Stream,core.bool]]})});return _StreamControllerAddStreamState});let _StreamControllerAddStreamState=_StreamControllerAddStreamState$();let _EventSink$=dart.generic(function(T){class _EventSink extends core.Object{}return _EventSink});let _EventSink=_EventSink$();let _EventDispatch$=dart.generic(function(T){class _EventDispatch extends core.Object{}return _EventDispatch});let _EventDispatch=_EventDispatch$();_BufferingStreamSubscription._STATE_CANCEL_ON_ERROR=1;_BufferingStreamSubscription._STATE_CLOSED=2;_BufferingStreamSubscription._STATE_INPUT_PAUSED=4;_BufferingStreamSubscription._STATE_CANCELED=8;_BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL=16;_BufferingStreamSubscription._STATE_IN_CALLBACK=32;_BufferingStreamSubscription._STATE_HAS_PENDING=64;_BufferingStreamSubscription._STATE_PAUSE_COUNT=128;_BufferingStreamSubscription._STATE_PAUSE_COUNT_SHIFT=7;let _EventGenerator=dart.typedef('_EventGenerator',()=>dart.functionType(_PendingEvents,[]));let _isUsed=Symbol('_isUsed');let _GeneratedStreamImpl$=dart.generic(function(T){class _GeneratedStreamImpl extends _StreamImpl$(T){_GeneratedStreamImpl(pending){this[_pending]=pending;this[_isUsed]=false}[_createSubscription](onData,onError,onDone,cancelOnError){dart.as(onData,dart.functionType(dart.void,[T]));dart.as(onDone,dart.functionType(dart.void,[]));if(dart.notNull(this[_isUsed]))dart.throw(new core.StateError("Stream has already been listened to."));this[_isUsed]=true;return dart.as((()=>{let _=new _BufferingStreamSubscription(onData,onError,onDone,cancelOnError);_[_setPendingEvents](this[_pending]());return _})(),StreamSubscription$(T))}}dart.setSignature(_GeneratedStreamImpl,{constructors:()=>({_GeneratedStreamImpl:[_GeneratedStreamImpl$(T),[_EventGenerator]]}),methods:()=>({[_createSubscription]:[StreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]})});return _GeneratedStreamImpl});let _GeneratedStreamImpl=_GeneratedStreamImpl$();let _eventScheduled=Symbol('_eventScheduled');class _PendingEvents extends core.Object{_PendingEvents(){this[_state]=_PendingEvents._STATE_UNSCHEDULED}get isScheduled(){return this[_state]==_PendingEvents._STATE_SCHEDULED}get[_eventScheduled](){return dart.notNull(this[_state])>=dart.notNull(_PendingEvents._STATE_SCHEDULED)}schedule(dispatch){if(dart.notNull(this.isScheduled))return;dart.assert(!dart.notNull(this.isEmpty));if(dart.notNull(this[_eventScheduled])){dart.assert(this[_state]==_PendingEvents._STATE_CANCELED);this[_state]=_PendingEvents._STATE_SCHEDULED;return}scheduleMicrotask(dart.fn(()=>{let oldState=this[_state];this[_state]=_PendingEvents._STATE_UNSCHEDULED;if(oldState==_PendingEvents._STATE_CANCELED)return;this.handleNext(dispatch)}));this[_state]=_PendingEvents._STATE_SCHEDULED}cancelSchedule(){if(dart.notNull(this.isScheduled))this[_state]=_PendingEvents._STATE_CANCELED;}};dart.setSignature(_PendingEvents,{methods:()=>({cancelSchedule:[dart.void,[]],schedule:[dart.void,[_EventDispatch]]})});let _iterator=Symbol('_iterator');let _IterablePendingEvents$=dart.generic(function(T){class _IterablePendingEvents extends _PendingEvents{_IterablePendingEvents(data){this[_iterator]=data[dartx.iterator];super._PendingEvents()}get isEmpty(){return this[_iterator]==null}handleNext(dispatch){if(this[_iterator]==null){dart.throw(new core.StateError("No events pending."))}let isDone=null;try{isDone= !dart.notNull(this[_iterator].moveNext())}catch(e){let s=dart.stackTrace(e);this[_iterator]=null;dispatch[_sendError](e,s);return}if(!dart.notNull(isDone)){dispatch[_sendData](this[_iterator].current)}else{this[_iterator]=null;dispatch[_sendDone]()}}clear(){if(dart.notNull(this.isScheduled))this.cancelSchedule();this[_iterator]=null}}dart.setSignature(_IterablePendingEvents,{constructors:()=>({_IterablePendingEvents:[_IterablePendingEvents$(T),[core.Iterable$(T)]]}),methods:()=>({clear:[dart.void,[]],handleNext:[dart.void,[_EventDispatch]]})});return _IterablePendingEvents});let _IterablePendingEvents=_IterablePendingEvents$();let _DataHandler$=dart.generic(function(T){let _DataHandler=dart.typedef('_DataHandler',()=>dart.functionType(dart.void,[T]));return _DataHandler});let _DataHandler=_DataHandler$();let _DoneHandler=dart.typedef('_DoneHandler',()=>dart.functionType(dart.void,[]));function _nullDataHandler(value){}dart.fn(_nullDataHandler,dart.void,[dart.dynamic]);function _nullErrorHandler(error,stackTrace){if(stackTrace===void 0)stackTrace=null;Zone.current.handleUncaughtError(error,stackTrace)}dart.fn(_nullErrorHandler,dart.void,[dart.dynamic],[core.StackTrace]);function _nullDoneHandler(){}dart.fn(_nullDoneHandler,dart.void,[]);let _DelayedEvent$=dart.generic(function(T){class _DelayedEvent extends core.Object{_DelayedEvent(){this.next=null}}return _DelayedEvent});let _DelayedEvent=_DelayedEvent$();let _DelayedData$=dart.generic(function(T){class _DelayedData extends _DelayedEvent$(T){_DelayedData(value){this.value=value;super._DelayedEvent()}perform(dispatch){dart.as(dispatch,_EventDispatch$(T));dispatch[_sendData](this.value)}}dart.setSignature(_DelayedData,{constructors:()=>({_DelayedData:[_DelayedData$(T),[T]]}),methods:()=>({perform:[dart.void,[_EventDispatch$(T)]]})});return _DelayedData});let _DelayedData=_DelayedData$();class _DelayedError extends _DelayedEvent{_DelayedError(error,stackTrace){this.error=error;this.stackTrace=stackTrace;super._DelayedEvent()}perform(dispatch){dispatch[_sendError](this.error,this.stackTrace)}};dart.setSignature(_DelayedError,{constructors:()=>({_DelayedError:[_DelayedError,[dart.dynamic,core.StackTrace]]}),methods:()=>({perform:[dart.void,[_EventDispatch]]})});class _DelayedDone extends core.Object{_DelayedDone(){}perform(dispatch){dispatch[_sendDone]()}get next(){return null}set next(_){dart.throw(new core.StateError("No events after a done."))}};_DelayedDone[dart.implements]=()=>[_DelayedEvent];dart.setSignature(_DelayedDone,{constructors:()=>({_DelayedDone:[_DelayedDone,[]]}),methods:()=>({perform:[dart.void,[_EventDispatch]]})});_PendingEvents._STATE_UNSCHEDULED=0;_PendingEvents._STATE_SCHEDULED=1;_PendingEvents._STATE_CANCELED=3;class _StreamImplEvents extends _PendingEvents{_StreamImplEvents(){this.firstPendingEvent=null;this.lastPendingEvent=null;super._PendingEvents()}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){dart.assert(!dart.notNull(this.isScheduled));let event=this.firstPendingEvent;this.firstPendingEvent=event.next;if(this.firstPendingEvent==null){this.lastPendingEvent=null}event.perform(dispatch)}clear(){if(dart.notNull(this.isScheduled))this.cancelSchedule();this.firstPendingEvent=this.lastPendingEvent=null}};dart.setSignature(_StreamImplEvents,{methods:()=>({add:[dart.void,[_DelayedEvent]],clear:[dart.void,[]],handleNext:[dart.void,[_EventDispatch]]})});let _unlink=Symbol('_unlink');let _insertBefore=Symbol('_insertBefore');class _BroadcastLinkedList extends core.Object{_BroadcastLinkedList(){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(_BroadcastLinkedList,{methods:()=>({[_insertBefore]:[dart.void,[_BroadcastLinkedList]],[_unlink]:[dart.void,[]]})});let _broadcastCallback=dart.typedef('_broadcastCallback',()=>dart.functionType(dart.void,[StreamSubscription]));let _schedule=Symbol('_schedule');let _isSent=Symbol('_isSent');let _isScheduled=Symbol('_isScheduled');let _DoneStreamSubscription$=dart.generic(function(T){class _DoneStreamSubscription extends core.Object{_DoneStreamSubscription(onDone){this[_onDone]=onDone;this[_zone]=Zone.current;this[_state]=0;this[_schedule]()}get[_isSent](){return(dart.notNull(this[_state])&dart.notNull(_DoneStreamSubscription$()._DONE_SENT))!=0}get[_isScheduled](){return(dart.notNull(this[_state])&dart.notNull(_DoneStreamSubscription$()._SCHEDULED))!=0}get isPaused(){return dart.notNull(this[_state])>=dart.notNull(_DoneStreamSubscription$()._PAUSED)}[_schedule](){if(dart.notNull(this[_isScheduled]))return;this[_zone].scheduleMicrotask(dart.bind(this,_sendDone));this[_state]=dart.notNull(this[_state])|dart.notNull(_DoneStreamSubscription$()._SCHEDULED)}onData(handleData){dart.as(handleData,dart.functionType(dart.void,[T]))}onError(handleError){}onDone(handleDone){dart.as(handleDone,dart.functionType(dart.void,[]));this[_onDone]=handleDone}pause(resumeSignal){if(resumeSignal===void 0)resumeSignal=null;this[_state]=dart.notNull(this[_state])+dart.notNull(_DoneStreamSubscription$()._PAUSED);if(resumeSignal!=null)resumeSignal.whenComplete(dart.bind(this,'resume'));}resume(){if(dart.notNull(this.isPaused)){this[_state]=dart.notNull(this[_state])-dart.notNull(_DoneStreamSubscription$()._PAUSED);if(!dart.notNull(this.isPaused)&& !dart.notNull(this[_isSent])){this[_schedule]()}}}cancel(){return null}asFuture(futureValue){if(futureValue===void 0)futureValue=null;let result=new _Future();this[_onDone]=dart.fn(()=>{result[_completeWithValue](null)});return result}[_sendDone](){this[_state]=dart.notNull(this[_state])& ~dart.notNull(_DoneStreamSubscription$()._SCHEDULED);if(dart.notNull(this.isPaused))return;this[_state]=dart.notNull(this[_state])|dart.notNull(_DoneStreamSubscription$()._DONE_SENT);if(this[_onDone]!=null)this[_zone].runGuarded(this[_onDone]);}}_DoneStreamSubscription[dart.implements]=()=>[StreamSubscription$(T)];dart.setSignature(_DoneStreamSubscription,{constructors:()=>({_DoneStreamSubscription:[_DoneStreamSubscription$(T),[_DoneHandler]]}),methods:()=>({[_sendDone]:[dart.void,[]],[_schedule]:[dart.void,[]],asFuture:[Future,[],[dart.dynamic]],cancel:[Future,[]],onData:[dart.void,[dart.functionType(dart.void,[T])]],onDone:[dart.void,[dart.functionType(dart.void,[])]],onError:[dart.void,[core.Function]],pause:[dart.void,[],[Future]],resume:[dart.void,[]]})});return _DoneStreamSubscription});let _DoneStreamSubscription=_DoneStreamSubscription$();_DoneStreamSubscription._DONE_SENT=1;_DoneStreamSubscription._SCHEDULED=2;_DoneStreamSubscription._PAUSED=4;let _source=Symbol('_source');let _onListenHandler=Symbol('_onListenHandler');let _onCancelHandler=Symbol('_onCancelHandler');let _cancelSubscription=Symbol('_cancelSubscription');let _pauseSubscription=Symbol('_pauseSubscription');let _resumeSubscription=Symbol('_resumeSubscription');let _isSubscriptionPaused=Symbol('_isSubscriptionPaused');let _AsBroadcastStream$=dart.generic(function(T){class _AsBroadcastStream extends Stream$(T){_AsBroadcastStream(source,onListenHandler,onCancelHandler){this[_source]=source;this[_onListenHandler]=dart.as(Zone.current.registerUnaryCallback(onListenHandler),_broadcastCallback);this[_onCancelHandler]=dart.as(Zone.current.registerUnaryCallback(onCancelHandler),_broadcastCallback);this[_zone]=Zone.current;this[_controller]=null;this[_subscription]=null;super.Stream();this[_controller]=new(_AsBroadcastStreamController$(T))(dart.bind(this,_onListen),dart.bind(this,_onCancel))}get isBroadcast(){return true}listen(onData,opts){dart.as(onData,dart.functionType(dart.void,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;dart.as(onDone,dart.functionType(dart.void,[]));let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:null;if(this[_controller]==null||dart.notNull(this[_controller].isClosed)){return new(_DoneStreamSubscription$(T))(onDone)}if(this[_subscription]==null){this[_subscription]=this[_source].listen(dart.bind(this[_controller],'add'),{onDone:dart.bind(this[_controller],'close'),onError:dart.bind(this[_controller],'addError')})}cancelOnError=core.identical(true,cancelOnError);return this[_controller][_subscribe](onData,onError,onDone,cancelOnError)}[_onCancel](){let shutdown=this[_controller]==null||dart.notNull(this[_controller].isClosed);if(this[_onCancelHandler]!=null){this[_zone].runUnary(this[_onCancelHandler],new _BroadcastSubscriptionWrapper(this))}if(dart.notNull(shutdown)){if(this[_subscription]!=null){this[_subscription].cancel();this[_subscription]=null}}}[_onListen](){if(this[_onListenHandler]!=null){this[_zone].runUnary(this[_onListenHandler],new _BroadcastSubscriptionWrapper(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:()=>({_AsBroadcastStream:[_AsBroadcastStream$(T),[Stream$(T),dart.functionType(dart.void,[StreamSubscription]),dart.functionType(dart.void,[StreamSubscription])]]}),methods:()=>({[_resumeSubscription]:[dart.void,[]],[_pauseSubscription]:[dart.void,[Future]],[_cancelSubscription]:[dart.void,[]],[_onListen]:[dart.void,[]],[_onCancel]:[dart.void,[]],listen:[StreamSubscription$(T),[dart.functionType(dart.void,[T])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});return _AsBroadcastStream});let _AsBroadcastStream=_AsBroadcastStream$();let _BroadcastSubscriptionWrapper$=dart.generic(function(T){class _BroadcastSubscriptionWrapper extends core.Object{_BroadcastSubscriptionWrapper(stream){this[_stream]=stream}onData(handleData){dart.as(handleData,dart.functionType(dart.void,[T]));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.as(handleDone,dart.functionType(dart.void,[]));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(futureValue){if(futureValue===void 0)futureValue=null;dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."))}}_BroadcastSubscriptionWrapper[dart.implements]=()=>[StreamSubscription$(T)];dart.setSignature(_BroadcastSubscriptionWrapper,{constructors:()=>({_BroadcastSubscriptionWrapper:[_BroadcastSubscriptionWrapper$(T),[_AsBroadcastStream]]}),methods:()=>({asFuture:[Future,[],[dart.dynamic]],cancel:[Future,[]],onData:[dart.void,[dart.functionType(dart.void,[T])]],onDone:[dart.void,[dart.functionType(dart.void,[])]],onError:[dart.void,[core.Function]],pause:[dart.void,[],[Future]],resume:[dart.void,[]]})});return _BroadcastSubscriptionWrapper});let _BroadcastSubscriptionWrapper=_BroadcastSubscriptionWrapper$();let _current=Symbol('_current');let _futureOrPrefetch=Symbol('_futureOrPrefetch');let _clear=Symbol('_clear');let _StreamIteratorImpl$=dart.generic(function(T){class _StreamIteratorImpl extends core.Object{_StreamIteratorImpl(stream){this[_subscription]=null;this[_current]=null;this[_futureOrPrefetch]=null;this[_state]=_StreamIteratorImpl$()._STATE_FOUND;this[_subscription]=stream.listen(dart.bind(this,_onData),{cancelOnError:true,onDone:dart.bind(this,_onDone),onError:dart.bind(this,_onError)})}get current(){return this[_current]}moveNext(){if(this[_state]==_StreamIteratorImpl$()._STATE_DONE){return new(_Future$(core.bool)).immediate(false)}if(this[_state]==_StreamIteratorImpl$()._STATE_MOVING){dart.throw(new core.StateError("Already waiting for next."))}if(this[_state]==_StreamIteratorImpl$()._STATE_FOUND){this[_state]=_StreamIteratorImpl$()._STATE_MOVING;this[_current]=null;this[_futureOrPrefetch]=new(_Future$(core.bool))();return dart.as(this[_futureOrPrefetch],Future$(core.bool))}else{dart.assert(dart.notNull(this[_state])>=dart.notNull(_StreamIteratorImpl$()._STATE_EXTRA_DATA));switch(this[_state]){case _StreamIteratorImpl$()._STATE_EXTRA_DATA:{this[_state]=_StreamIteratorImpl$()._STATE_FOUND;this[_current]=dart.as(this[_futureOrPrefetch],T);this[_futureOrPrefetch]=null;this[_subscription].resume();return new(_Future$(core.bool)).immediate(true)}case _StreamIteratorImpl$()._STATE_EXTRA_ERROR:{let prefetch=dart.as(this[_futureOrPrefetch],AsyncError);this[_clear]();return new(_Future$(core.bool)).immediateError(prefetch.error,prefetch.stackTrace)}case _StreamIteratorImpl$()._STATE_EXTRA_DONE:{this[_clear]();return new(_Future$(core.bool)).immediate(false)}}}}[_clear](){this[_subscription]=null;this[_futureOrPrefetch]=null;this[_current]=null;this[_state]=_StreamIteratorImpl$()._STATE_DONE}cancel(){let subscription=this[_subscription];if(this[_state]==_StreamIteratorImpl$()._STATE_MOVING){let hasNext=dart.as(this[_futureOrPrefetch],_Future$(core.bool));this[_clear]();hasNext[_complete](false)}else{this[_clear]()}return subscription.cancel()}[_onData](data){dart.as(data,T);if(this[_state]==_StreamIteratorImpl$()._STATE_MOVING){this[_current]=data;let hasNext=dart.as(this[_futureOrPrefetch],_Future$(core.bool));this[_futureOrPrefetch]=null;this[_state]=_StreamIteratorImpl$()._STATE_FOUND;hasNext[_complete](true);return}this[_subscription].pause();dart.assert(this[_futureOrPrefetch]==null);this[_futureOrPrefetch]=data;this[_state]=_StreamIteratorImpl$()._STATE_EXTRA_DATA}[_onError](error,stackTrace){if(stackTrace===void 0)stackTrace=null;if(this[_state]==_StreamIteratorImpl$()._STATE_MOVING){let hasNext=dart.as(this[_futureOrPrefetch],_Future$(core.bool));this[_clear]();hasNext[_completeError](error,stackTrace);return}this[_subscription].pause();dart.assert(this[_futureOrPrefetch]==null);this[_futureOrPrefetch]=new AsyncError(error,stackTrace);this[_state]=_StreamIteratorImpl$()._STATE_EXTRA_ERROR}[_onDone](){if(this[_state]==_StreamIteratorImpl$()._STATE_MOVING){let hasNext=dart.as(this[_futureOrPrefetch],_Future$(core.bool));this[_clear]();hasNext[_complete](false);return}this[_subscription].pause();this[_futureOrPrefetch]=null;this[_state]=_StreamIteratorImpl$()._STATE_EXTRA_DONE}}_StreamIteratorImpl[dart.implements]=()=>[StreamIterator$(T)];dart.setSignature(_StreamIteratorImpl,{constructors:()=>({_StreamIteratorImpl:[_StreamIteratorImpl$(T),[Stream$(T)]]}),methods:()=>({[_onDone]:[dart.void,[]],[_onError]:[dart.void,[core.Object],[core.StackTrace]],[_onData]:[dart.void,[T]],[_clear]:[dart.void,[]],cancel:[Future,[]],moveNext:[Future$(core.bool),[]]})});return _StreamIteratorImpl});let _StreamIteratorImpl=_StreamIteratorImpl$();_StreamIteratorImpl._STATE_FOUND=0;_StreamIteratorImpl._STATE_DONE=1;_StreamIteratorImpl._STATE_MOVING=2;_StreamIteratorImpl._STATE_EXTRA_DATA=3;_StreamIteratorImpl._STATE_EXTRA_ERROR=4;_StreamIteratorImpl._STATE_EXTRA_DONE=5;let __CastType20$=dart.generic(function(T){let __CastType20=dart.typedef('__CastType20',()=>dart.functionType(dart.void,[T]));return __CastType20});let __CastType20=__CastType20$();let __CastType22=dart.typedef('__CastType22',()=>dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));let __CastType25=dart.typedef('__CastType25',()=>dart.functionType(dart.dynamic,[dart.dynamic]));function _runUserCode(userCode,onSuccess,onError){try{dart.dcall(onSuccess,userCode())}catch(e){let s=dart.stackTrace(e);let replacement=Zone.current.errorCallback(e,s);if(replacement==null){dart.dcall(onError,e,s)}else{let error=_nonNullError(replacement.error);let stackTrace=replacement.stackTrace;dart.dcall(onError,error,stackTrace)}}}dart.fn(_runUserCode,dart.dynamic,[dart.functionType(dart.dynamic,[]),dart.functionType(dart.dynamic,[dart.dynamic]),dart.functionType(dart.dynamic,[dart.dynamic,core.StackTrace])]);function _cancelAndError(subscription,future,error,stackTrace){let cancelFuture=subscription.cancel();if(dart.is(cancelFuture,Future)){cancelFuture.whenComplete(dart.fn(()=>future[_completeError](error,stackTrace),dart.void,[]))}else{future[_completeError](error,stackTrace)}}dart.fn(_cancelAndError,dart.void,[StreamSubscription,_Future,dart.dynamic,core.StackTrace]);function _cancelAndErrorWithReplacement(subscription,future,error,stackTrace){let replacement=Zone.current.errorCallback(error,stackTrace);if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}_cancelAndError(subscription,future,error,stackTrace)}dart.fn(_cancelAndErrorWithReplacement,dart.void,[StreamSubscription,_Future,dart.dynamic,core.StackTrace]);function _cancelAndErrorClosure(subscription,future){return dart.fn((error,stackTrace)=>_cancelAndError(subscription,future,error,stackTrace),dart.void,[dart.dynamic,core.StackTrace])}dart.fn(_cancelAndErrorClosure,dart.dynamic,[StreamSubscription,_Future]);function _cancelAndValue(subscription,future,value){let cancelFuture=subscription.cancel();if(dart.is(cancelFuture,Future)){cancelFuture.whenComplete(dart.fn(()=>future[_complete](value),dart.void,[]))}else{future[_complete](value)}}dart.fn(_cancelAndValue,dart.void,[StreamSubscription,_Future,dart.dynamic]);let _handleData=Symbol('_handleData');let _handleError=Symbol('_handleError');let _handleDone=Symbol('_handleDone');let _ForwardingStream$=dart.generic(function(S,T){class _ForwardingStream extends Stream$(T){_ForwardingStream(source){this[_source]=source;super.Stream()}get isBroadcast(){return this[_source].isBroadcast}listen(onData,opts){dart.as(onData,dart.functionType(dart.void,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;dart.as(onDone,dart.functionType(dart.void,[]));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){dart.as(onData,dart.functionType(dart.void,[T]));dart.as(onDone,dart.functionType(dart.void,[]));return new(_ForwardingStreamSubscription$(S,T))(this,onData,onError,onDone,cancelOnError)}[_handleData](data,sink){dart.as(data,S);dart.as(sink,_EventSink$(T));let outputData=data;sink[_add](dart.as(outputData,T))}[_handleError](error,stackTrace,sink){dart.as(sink,_EventSink$(T));sink[_addError](error,stackTrace)}[_handleDone](sink){dart.as(sink,_EventSink$(T));sink[_close]()}}dart.setSignature(_ForwardingStream,{constructors:()=>({_ForwardingStream:[_ForwardingStream$(S,T),[Stream$(S)]]}),methods:()=>({[_handleDone]:[dart.void,[_EventSink$(T)]],[_handleError]:[dart.void,[dart.dynamic,core.StackTrace,_EventSink$(T)]],[_handleData]:[dart.void,[S,_EventSink$(T)]],[_createSubscription]:[StreamSubscription$(T),[dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]],listen:[StreamSubscription$(T),[dart.functionType(dart.void,[T])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});return _ForwardingStream});let _ForwardingStream=_ForwardingStream$();let _ForwardingStreamSubscription$=dart.generic(function(S,T){class _ForwardingStreamSubscription extends _BufferingStreamSubscription$(T){_ForwardingStreamSubscription(stream,onData,onError,onDone,cancelOnError){this[_stream]=stream;this[_subscription]=null;super._BufferingStreamSubscription(onData,onError,onDone,cancelOnError);this[_subscription]=this[_stream][_source].listen(dart.bind(this,_handleData),{onDone:dart.bind(this,_handleDone),onError:dart.bind(this,_handleError)})}[_add](data){dart.as(data,T);if(dart.notNull(this[_isClosed]))return;super[_add](data)}[_addError](error,stackTrace){if(dart.notNull(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;subscription.cancel()}return null}[_handleData](data){dart.as(data,S);this[_stream][_handleData](data,this)}[_handleError](error,stackTrace){this[_stream][_handleError](error,stackTrace,this)}[_handleDone](){this[_stream][_handleDone](this)}}dart.setSignature(_ForwardingStreamSubscription,{constructors:()=>({_ForwardingStreamSubscription:[_ForwardingStreamSubscription$(S,T),[_ForwardingStream$(S,T),dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]}),methods:()=>({[_handleDone]:[dart.void,[]],[_handleError]:[dart.void,[dart.dynamic,core.StackTrace]],[_handleData]:[dart.void,[S]],[_add]:[dart.void,[T]]})});return _ForwardingStreamSubscription});let _ForwardingStreamSubscription=_ForwardingStreamSubscription$();let _Predicate$=dart.generic(function(T){let _Predicate=dart.typedef('_Predicate',()=>dart.functionType(core.bool,[T]));return _Predicate});let _Predicate=_Predicate$();function _addErrorWithReplacement(sink,error,stackTrace){let replacement=Zone.current.errorCallback(error,dart.as(stackTrace,core.StackTrace));if(replacement!=null){error=_nonNullError(replacement.error);stackTrace=replacement.stackTrace}sink[_addError](error,dart.as(stackTrace,core.StackTrace))}dart.fn(_addErrorWithReplacement,dart.void,[_EventSink,dart.dynamic,dart.dynamic]);let _test=Symbol('_test');let _WhereStream$=dart.generic(function(T){class _WhereStream extends _ForwardingStream$(T,T){_WhereStream(source,test){this[_test]=test;super._ForwardingStream(source)}[_handleData](inputEvent,sink){dart.as(inputEvent,T);dart.as(sink,_EventSink$(T));let satisfies=null;try{satisfies=this[_test](inputEvent)}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s);return}if(dart.notNull(satisfies)){sink[_add](inputEvent)}}}dart.setSignature(_WhereStream,{constructors:()=>({_WhereStream:[_WhereStream$(T),[Stream$(T),dart.functionType(core.bool,[T])]]}),methods:()=>({[_handleData]:[dart.void,[T,_EventSink$(T)]]})});return _WhereStream});let _WhereStream=_WhereStream$();let _Transformation$=dart.generic(function(S,T){let _Transformation=dart.typedef('_Transformation',()=>dart.functionType(T,[S]));return _Transformation});let _Transformation=_Transformation$();let _transform=Symbol('_transform');let _MapStream$=dart.generic(function(S,T){class _MapStream extends _ForwardingStream$(S,T){_MapStream(source,transform){this[_transform]=transform;super._ForwardingStream(source)}[_handleData](inputEvent,sink){dart.as(inputEvent,S);dart.as(sink,_EventSink$(T));let outputEvent=null;try{outputEvent=dart.as(dart.dcall(this[_transform],inputEvent),T)}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s);return}sink[_add](outputEvent)}}dart.setSignature(_MapStream,{constructors:()=>({_MapStream:[_MapStream$(S,T),[Stream$(S),dart.functionType(T,[S])]]}),methods:()=>({[_handleData]:[dart.void,[S,_EventSink$(T)]]})});return _MapStream});let _MapStream=_MapStream$();let _expand=Symbol('_expand');let _ExpandStream$=dart.generic(function(S,T){class _ExpandStream extends _ForwardingStream$(S,T){_ExpandStream(source,expand){this[_expand]=expand;super._ForwardingStream(source)}[_handleData](inputEvent,sink){dart.as(inputEvent,S);dart.as(sink,_EventSink$(T));try{for(let value of this[_expand](inputEvent)){sink[_add](value)}}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s)}}}dart.setSignature(_ExpandStream,{constructors:()=>({_ExpandStream:[_ExpandStream$(S,T),[Stream$(S),dart.functionType(core.Iterable$(T),[S])]]}),methods:()=>({[_handleData]:[dart.void,[S,_EventSink$(T)]]})});return _ExpandStream});let _ExpandStream=_ExpandStream$();let _ErrorTest=dart.typedef('_ErrorTest',()=>dart.functionType(core.bool,[dart.dynamic]));let _HandleErrorStream$=dart.generic(function(T){class _HandleErrorStream extends _ForwardingStream$(T,T){_HandleErrorStream(source,onError,test){this[_transform]=onError;this[_test]=test;super._ForwardingStream(source)}[_handleError](error,stackTrace,sink){dart.as(sink,_EventSink$(T));let matches=true;if(this[_test]!=null){try{matches=dart.dcall(this[_test],error)}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s);return}}if(dart.notNull(matches)){try{_invokeErrorHandler(this[_transform],error,stackTrace)}catch(e){let s=dart.stackTrace(e);if(dart.notNull(core.identical(e,error))){sink[_addError](error,stackTrace)}else{_addErrorWithReplacement(sink,e,s)}return}}else{sink[_addError](error,stackTrace)}}}dart.setSignature(_HandleErrorStream,{constructors:()=>({_HandleErrorStream:[_HandleErrorStream$(T),[Stream$(T),core.Function,dart.functionType(core.bool,[dart.dynamic])]]}),methods:()=>({[_handleError]:[dart.void,[core.Object,core.StackTrace,_EventSink$(T)]]})});return _HandleErrorStream});let _HandleErrorStream=_HandleErrorStream$();let _remaining=Symbol('_remaining');let _TakeStream$=dart.generic(function(T){class _TakeStream extends _ForwardingStream$(T,T){_TakeStream(source,count){this[_remaining]=count;super._ForwardingStream(source);if(!(typeof count=='number'))dart.throw(new core.ArgumentError(count));}[_handleData](inputEvent,sink){dart.as(inputEvent,T);dart.as(sink,_EventSink$(T));if(dart.notNull(this[_remaining])>0){sink[_add](inputEvent);this[_remaining]=dart.notNull(this[_remaining])-1;if(this[_remaining]==0){sink[_close]()}}}}dart.setSignature(_TakeStream,{constructors:()=>({_TakeStream:[_TakeStream$(T),[Stream$(T),core.int]]}),methods:()=>({[_handleData]:[dart.void,[T,_EventSink$(T)]]})});return _TakeStream});let _TakeStream=_TakeStream$();let _TakeWhileStream$=dart.generic(function(T){class _TakeWhileStream extends _ForwardingStream$(T,T){_TakeWhileStream(source,test){this[_test]=test;super._ForwardingStream(source)}[_handleData](inputEvent,sink){dart.as(inputEvent,T);dart.as(sink,_EventSink$(T));let satisfies=null;try{satisfies=this[_test](inputEvent)}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s);sink[_close]();return}if(dart.notNull(satisfies)){sink[_add](inputEvent)}else{sink[_close]()}}}dart.setSignature(_TakeWhileStream,{constructors:()=>({_TakeWhileStream:[_TakeWhileStream$(T),[Stream$(T),dart.functionType(core.bool,[T])]]}),methods:()=>({[_handleData]:[dart.void,[T,_EventSink$(T)]]})});return _TakeWhileStream});let _TakeWhileStream=_TakeWhileStream$();let _SkipStream$=dart.generic(function(T){class _SkipStream extends _ForwardingStream$(T,T){_SkipStream(source,count){this[_remaining]=count;super._ForwardingStream(source);if(!(typeof count=='number')||dart.notNull(count)<0)dart.throw(new core.ArgumentError(count));}[_handleData](inputEvent,sink){dart.as(inputEvent,T);dart.as(sink,_EventSink$(T));if(dart.notNull(this[_remaining])>0){this[_remaining]=dart.notNull(this[_remaining])-1;return}sink[_add](inputEvent)}}dart.setSignature(_SkipStream,{constructors:()=>({_SkipStream:[_SkipStream$(T),[Stream$(T),core.int]]}),methods:()=>({[_handleData]:[dart.void,[T,_EventSink$(T)]]})});return _SkipStream});let _SkipStream=_SkipStream$();let _hasFailed=Symbol('_hasFailed');let _SkipWhileStream$=dart.generic(function(T){class _SkipWhileStream extends _ForwardingStream$(T,T){_SkipWhileStream(source,test){this[_test]=test;this[_hasFailed]=false;super._ForwardingStream(source)}[_handleData](inputEvent,sink){dart.as(inputEvent,T);dart.as(sink,_EventSink$(T));if(dart.notNull(this[_hasFailed])){sink[_add](inputEvent);return}let satisfies=null;try{satisfies=this[_test](inputEvent)}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s);this[_hasFailed]=true;return}if(!dart.notNull(satisfies)){this[_hasFailed]=true;sink[_add](inputEvent)}}}dart.setSignature(_SkipWhileStream,{constructors:()=>({_SkipWhileStream:[_SkipWhileStream$(T),[Stream$(T),dart.functionType(core.bool,[T])]]}),methods:()=>({[_handleData]:[dart.void,[T,_EventSink$(T)]]})});return _SkipWhileStream});let _SkipWhileStream=_SkipWhileStream$();let _Equality$=dart.generic(function(T){let _Equality=dart.typedef('_Equality',()=>dart.functionType(core.bool,[T,T]));return _Equality});let _Equality=_Equality$();let _equals=Symbol('_equals');let _DistinctStream$=dart.generic(function(T){class _DistinctStream extends _ForwardingStream$(T,T){_DistinctStream(source,equals){this[_previous]=_DistinctStream$()._SENTINEL;this[_equals]=equals;super._ForwardingStream(source)}[_handleData](inputEvent,sink){dart.as(inputEvent,T);dart.as(sink,_EventSink$(T));if(dart.notNull(core.identical(this[_previous],_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](dart.as(this[_previous],T),inputEvent)}}catch(e){let s=dart.stackTrace(e);_addErrorWithReplacement(sink,e,s);return null}if(!dart.notNull(isEqual)){sink[_add](inputEvent);this[_previous]=inputEvent}}}}dart.setSignature(_DistinctStream,{constructors:()=>({_DistinctStream:[_DistinctStream$(T),[Stream$(T),dart.functionType(core.bool,[T,T])]]}),methods:()=>({[_handleData]:[dart.void,[T,_EventSink$(T)]]})});return _DistinctStream});let _DistinctStream=_DistinctStream$();dart.defineLazyProperties(_DistinctStream,{get _SENTINEL(){return new core.Object()},set _SENTINEL(_){}});let _EventSinkWrapper$=dart.generic(function(T){class _EventSinkWrapper extends core.Object{_EventSinkWrapper(sink){this[_sink]=sink}add(data){dart.as(data,T);this[_sink][_add](data)}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;this[_sink][_addError](error,stackTrace)}close(){this[_sink][_close]()}}_EventSinkWrapper[dart.implements]=()=>[EventSink$(T)];dart.setSignature(_EventSinkWrapper,{constructors:()=>({_EventSinkWrapper:[_EventSinkWrapper$(T),[_EventSink]]}),methods:()=>({add:[dart.void,[T]],addError:[dart.void,[dart.dynamic],[core.StackTrace]],close:[dart.void,[]]})});return _EventSinkWrapper});let _EventSinkWrapper=_EventSinkWrapper$();let _transformerSink=Symbol('_transformerSink');let _isSubscribed=Symbol('_isSubscribed');let _SinkTransformerStreamSubscription$=dart.generic(function(S,T){class _SinkTransformerStreamSubscription extends _BufferingStreamSubscription$(T){_SinkTransformerStreamSubscription(source,mapper,onData,onError,onDone,cancelOnError){this[_transformerSink]=null;this[_subscription]=null;super._BufferingStreamSubscription(onData,onError,onDone,cancelOnError);let eventSink=new(_EventSinkWrapper$(T))(this);this[_transformerSink]=mapper(eventSink);this[_subscription]=source.listen(dart.bind(this,_handleData),{onDone:dart.bind(this,_handleDone),onError:dart.bind(this,_handleError)})}get[_isSubscribed](){return this[_subscription]!=null}[_add](data){dart.as(data,T);if(dart.notNull(this[_isClosed])){dart.throw(new core.StateError("Stream is already closed"))}super[_add](data)}[_addError](error,stackTrace){if(dart.notNull(this[_isClosed])){dart.throw(new core.StateError("Stream is already closed"))}super[_addError](error,stackTrace)}[_close](){if(dart.notNull(this[_isClosed])){dart.throw(new core.StateError("Stream is already closed"))}super[_close]()}[_onPause](){if(dart.notNull(this[_isSubscribed]))this[_subscription].pause();}[_onResume](){if(dart.notNull(this[_isSubscribed]))this[_subscription].resume();}[_onCancel](){if(dart.notNull(this[_isSubscribed])){let subscription=this[_subscription];this[_subscription]=null;subscription.cancel()}return null}[_handleData](data){dart.as(data,S);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,dart.as(stackTrace,core.StackTrace))}catch(e){let s=dart.stackTrace(e);if(dart.notNull(core.identical(e,error))){this[_addError](error,dart.as(stackTrace,core.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:()=>({_SinkTransformerStreamSubscription:[_SinkTransformerStreamSubscription$(S,T),[Stream$(S),_SinkMapper$(S,T),dart.functionType(dart.void,[T]),core.Function,dart.functionType(dart.void,[]),core.bool]]}),methods:()=>({[_handleDone]:[dart.void,[]],[_handleError]:[dart.void,[dart.dynamic],[dart.dynamic]],[_handleData]:[dart.void,[S]],[_add]:[dart.void,[T]]})});return _SinkTransformerStreamSubscription});let _SinkTransformerStreamSubscription=_SinkTransformerStreamSubscription$();let _SinkMapper$=dart.generic(function(S,T){let _SinkMapper=dart.typedef('_SinkMapper',()=>dart.functionType(EventSink$(S),[EventSink$(T)]));return _SinkMapper});let _SinkMapper=_SinkMapper$();let _sinkMapper=Symbol('_sinkMapper');let _StreamSinkTransformer$=dart.generic(function(S,T){class _StreamSinkTransformer extends core.Object{_StreamSinkTransformer(sinkMapper){this[_sinkMapper]=sinkMapper}bind(stream){dart.as(stream,Stream$(S));return new(_BoundSinkStream$(S,T))(stream,this[_sinkMapper])}}_StreamSinkTransformer[dart.implements]=()=>[StreamTransformer$(S,T)];dart.setSignature(_StreamSinkTransformer,{constructors:()=>({_StreamSinkTransformer:[_StreamSinkTransformer$(S,T),[_SinkMapper$(S,T)]]}),methods:()=>({bind:[Stream$(T),[Stream$(S)]]})});return _StreamSinkTransformer});let _StreamSinkTransformer=_StreamSinkTransformer$();let _BoundSinkStream$=dart.generic(function(S,T){class _BoundSinkStream extends Stream$(T){get isBroadcast(){return this[_stream].isBroadcast}_BoundSinkStream(stream,sinkMapper){this[_stream]=stream;this[_sinkMapper]=sinkMapper;super.Stream()}listen(onData,opts){dart.as(onData,dart.functionType(dart.void,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;dart.as(onDone,dart.functionType(dart.void,[]));let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:null;cancelOnError=core.identical(true,cancelOnError);let subscription=new(_SinkTransformerStreamSubscription$(dart.dynamic,T))(this[_stream],dart.as(this[_sinkMapper],_SinkMapper),onData,onError,onDone,cancelOnError);return subscription}}dart.setSignature(_BoundSinkStream,{constructors:()=>({_BoundSinkStream:[_BoundSinkStream$(S,T),[Stream$(S),_SinkMapper$(S,T)]]}),methods:()=>({listen:[StreamSubscription$(T),[dart.functionType(dart.void,[T])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});return _BoundSinkStream});let _BoundSinkStream=_BoundSinkStream$();let _TransformDataHandler$=dart.generic(function(S,T){let _TransformDataHandler=dart.typedef('_TransformDataHandler',()=>dart.functionType(dart.void,[S,EventSink$(T)]));return _TransformDataHandler});let _TransformDataHandler=_TransformDataHandler$();let _TransformErrorHandler$=dart.generic(function(T){let _TransformErrorHandler=dart.typedef('_TransformErrorHandler',()=>dart.functionType(dart.void,[core.Object,core.StackTrace,EventSink$(T)]));return _TransformErrorHandler});let _TransformErrorHandler=_TransformErrorHandler$();let _TransformDoneHandler$=dart.generic(function(T){let _TransformDoneHandler=dart.typedef('_TransformDoneHandler',()=>dart.functionType(dart.void,[EventSink$(T)]));return _TransformDoneHandler});let _TransformDoneHandler=_TransformDoneHandler$();let _HandlerEventSink$=dart.generic(function(S,T){class _HandlerEventSink extends core.Object{_HandlerEventSink(handleData,handleError,handleDone,sink){this[_handleData]=handleData;this[_handleError]=handleError;this[_handleDone]=handleDone;this[_sink]=sink}add(data){dart.as(data,S);return this[_handleData](data,this[_sink])}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;return this[_handleError](error,stackTrace,this[_sink])}close(){return this[_handleDone](this[_sink])}}_HandlerEventSink[dart.implements]=()=>[EventSink$(S)];dart.setSignature(_HandlerEventSink,{constructors:()=>({_HandlerEventSink:[_HandlerEventSink$(S,T),[_TransformDataHandler$(S,T),_TransformErrorHandler$(T),_TransformDoneHandler$(T),EventSink$(T)]]}),methods:()=>({add:[dart.void,[S]],addError:[dart.void,[core.Object],[core.StackTrace]],close:[dart.void,[]]})});return _HandlerEventSink});let _HandlerEventSink=_HandlerEventSink$();let _StreamHandlerTransformer$=dart.generic(function(S,T){class _StreamHandlerTransformer extends _StreamSinkTransformer$(S,T){_StreamHandlerTransformer(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._StreamSinkTransformer(dart.as(dart.fn(outputSink=>{dart.as(outputSink,EventSink$(T));if(handleData==null)handleData=dart.as(_StreamHandlerTransformer$()._defaultHandleData,__CastType27);if(handleError==null)handleError=dart.as(_StreamHandlerTransformer$()._defaultHandleError,__CastType30);if(handleDone==null)handleDone=_StreamHandlerTransformer$()._defaultHandleDone;return new(_HandlerEventSink$(S,T))(handleData,handleError,handleDone,outputSink)},dart.dynamic,[EventSink$(T)]),_SinkMapper$(S,T)))}bind(stream){dart.as(stream,Stream$(S));return super.bind(stream)}static _defaultHandleData(data,sink){sink.add(data)}static _defaultHandleError(error,stackTrace,sink){sink.addError(error)}static _defaultHandleDone(sink){sink.close()}}dart.setSignature(_StreamHandlerTransformer,{constructors:()=>({_StreamHandlerTransformer:[_StreamHandlerTransformer$(S,T),[],{handleData:dart.functionType(dart.void,[S,EventSink$(T)]),handleDone:dart.functionType(dart.void,[EventSink$(T)]),handleError:dart.functionType(dart.void,[core.Object,core.StackTrace,EventSink$(T)])}]}),methods:()=>({bind:[Stream$(T),[Stream$(S)]]}),names:['_defaultHandleData','_defaultHandleError','_defaultHandleDone'],statics:()=>({_defaultHandleData:[dart.void,[dart.dynamic,EventSink]],_defaultHandleDone:[dart.void,[EventSink]],_defaultHandleError:[dart.void,[dart.dynamic,core.StackTrace,EventSink]]})});return _StreamHandlerTransformer});let _StreamHandlerTransformer=_StreamHandlerTransformer$();let _SubscriptionTransformer$=dart.generic(function(S,T){let _SubscriptionTransformer=dart.typedef('_SubscriptionTransformer',()=>dart.functionType(StreamSubscription$(T),[Stream$(S),core.bool]));return _SubscriptionTransformer});let _SubscriptionTransformer=_SubscriptionTransformer$();let _transformer=Symbol('_transformer');let _StreamSubscriptionTransformer$=dart.generic(function(S,T){class _StreamSubscriptionTransformer extends core.Object{_StreamSubscriptionTransformer(transformer){this[_transformer]=transformer}bind(stream){dart.as(stream,Stream$(S));return new(_BoundSubscriptionStream$(S,T))(stream,this[_transformer])}}_StreamSubscriptionTransformer[dart.implements]=()=>[StreamTransformer$(S,T)];dart.setSignature(_StreamSubscriptionTransformer,{constructors:()=>({_StreamSubscriptionTransformer:[_StreamSubscriptionTransformer$(S,T),[_SubscriptionTransformer$(S,T)]]}),methods:()=>({bind:[Stream$(T),[Stream$(S)]]})});return _StreamSubscriptionTransformer});let _StreamSubscriptionTransformer=_StreamSubscriptionTransformer$();let _BoundSubscriptionStream$=dart.generic(function(S,T){class _BoundSubscriptionStream extends Stream$(T){_BoundSubscriptionStream(stream,transformer){this[_stream]=stream;this[_transformer]=transformer;super.Stream()}listen(onData,opts){dart.as(onData,dart.functionType(dart.void,[T]));let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;dart.as(onDone,dart.functionType(dart.void,[]));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:()=>({_BoundSubscriptionStream:[_BoundSubscriptionStream$(S,T),[Stream$(S),_SubscriptionTransformer$(S,T)]]}),methods:()=>({listen:[StreamSubscription$(T),[dart.functionType(dart.void,[T])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:core.Function}]})});return _BoundSubscriptionStream});let _BoundSubscriptionStream=_BoundSubscriptionStream$();let __CastType27$=dart.generic(function(S,T){let __CastType27=dart.typedef('__CastType27',()=>dart.functionType(dart.void,[S,EventSink$(T)]));return __CastType27});let __CastType27=__CastType27$();let __CastType30$=dart.generic(function(T){let __CastType30=dart.typedef('__CastType30',()=>dart.functionType(dart.void,[core.Object,core.StackTrace,EventSink$(T)]));return __CastType30});let __CastType30=__CastType30$();class Timer extends core.Object{static new(duration,callback){if(dart.equals(Zone.current,Zone.ROOT)){return Zone.current.createTimer(duration,callback)}return Zone.current.createTimer(duration,Zone.current.bindCallback(callback,{runGuarded:true}))}static periodic(duration,callback){if(dart.equals(Zone.current,Zone.ROOT)){return Zone.current.createPeriodicTimer(duration,callback)}return Zone.current.createPeriodicTimer(duration,dart.as(Zone.current.bindUnaryCallback(callback,{runGuarded:true}),__CastType34))}static run(callback){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(Timer,{constructors:()=>({new:[Timer,[core.Duration,dart.functionType(dart.void,[])]],periodic:[Timer,[core.Duration,dart.functionType(dart.void,[Timer])]]}),names:['run','_createTimer','_createPeriodicTimer'],statics:()=>({_createPeriodicTimer:[Timer,[core.Duration,dart.functionType(dart.void,[Timer])]],_createTimer:[Timer,[core.Duration,dart.functionType(dart.void,[])]],run:[dart.void,[dart.functionType(dart.void,[])]]})});let __CastType34=dart.typedef('__CastType34',()=>dart.functionType(dart.void,[Timer]));let ZoneCallback=dart.typedef('ZoneCallback',()=>dart.functionType(dart.dynamic,[]));let ZoneUnaryCallback=dart.typedef('ZoneUnaryCallback',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let ZoneBinaryCallback=dart.typedef('ZoneBinaryCallback',()=>dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));let HandleUncaughtErrorHandler=dart.typedef('HandleUncaughtErrorHandler',()=>dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.dynamic,core.StackTrace]));let RunHandler=dart.typedef('RunHandler',()=>dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]));let RunUnaryHandler=dart.typedef('RunUnaryHandler',()=>dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]));let RunBinaryHandler=dart.typedef('RunBinaryHandler',()=>dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]));let RegisterCallbackHandler=dart.typedef('RegisterCallbackHandler',()=>dart.functionType(ZoneCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]));let RegisterUnaryCallbackHandler=dart.typedef('RegisterUnaryCallbackHandler',()=>dart.functionType(ZoneUnaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic])]));let RegisterBinaryCallbackHandler=dart.typedef('RegisterBinaryCallbackHandler',()=>dart.functionType(ZoneBinaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]));let ErrorCallbackHandler=dart.typedef('ErrorCallbackHandler',()=>dart.functionType(AsyncError,[Zone,ZoneDelegate,Zone,core.Object,core.StackTrace]));let ScheduleMicrotaskHandler=dart.typedef('ScheduleMicrotaskHandler',()=>dart.functionType(dart.void,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]));let CreateTimerHandler=dart.typedef('CreateTimerHandler',()=>dart.functionType(Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[])]));let CreatePeriodicTimerHandler=dart.typedef('CreatePeriodicTimerHandler',()=>dart.functionType(Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[Timer])]));let PrintHandler=dart.typedef('PrintHandler',()=>dart.functionType(dart.void,[Zone,ZoneDelegate,Zone,core.String]));let ForkHandler=dart.typedef('ForkHandler',()=>dart.functionType(Zone,[Zone,ZoneDelegate,Zone,ZoneSpecification,core.Map]));class _ZoneFunction extends core.Object{_ZoneFunction(zone,func){this.zone=zone;this.function=func}};dart.setSignature(_ZoneFunction,{constructors:()=>({_ZoneFunction:[_ZoneFunction,[_Zone,core.Function]]})});class ZoneSpecification extends core.Object{static new(opts){return new _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 ZoneSpecification.new({createPeriodicTimer:createPeriodicTimer!=null?createPeriodicTimer:other.createPeriodicTimer,createTimer:createTimer!=null?createTimer:other.createTimer,errorCallback:errorCallback!=null?errorCallback:other.errorCallback,fork:fork!=null?fork:other.fork,handleUncaughtError:handleUncaughtError!=null?handleUncaughtError:other.handleUncaughtError,print:print!=null?print:other.print,registerBinaryCallback:registerBinaryCallback!=null?registerBinaryCallback:other.registerBinaryCallback,registerCallback:registerCallback!=null?registerCallback:other.registerCallback,registerUnaryCallback:registerUnaryCallback!=null?registerUnaryCallback:other.registerUnaryCallback,run:run!=null?run:other.run,runBinary:runBinary!=null?runBinary:other.runBinary,runUnary:runUnary!=null?runUnary:other.runUnary,scheduleMicrotask:scheduleMicrotask!=null?scheduleMicrotask:other.scheduleMicrotask})}};dart.setSignature(ZoneSpecification,{constructors:()=>({from:[ZoneSpecification,[ZoneSpecification],{createPeriodicTimer:dart.functionType(Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[Timer])]),createTimer:dart.functionType(Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[])]),errorCallback:dart.functionType(AsyncError,[Zone,ZoneDelegate,Zone,core.Object,core.StackTrace]),fork:dart.functionType(Zone,[Zone,ZoneDelegate,Zone,ZoneSpecification,core.Map]),handleUncaughtError:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.dynamic,core.StackTrace]),print:dart.functionType(dart.void,[Zone,ZoneDelegate,Zone,core.String]),registerBinaryCallback:dart.functionType(ZoneBinaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]),registerCallback:dart.functionType(ZoneCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]),registerUnaryCallback:dart.functionType(ZoneUnaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic])]),run:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]),runBinary:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]),runUnary:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]),scheduleMicrotask:dart.functionType(dart.void,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])])}],new:[ZoneSpecification,[],{createPeriodicTimer:dart.functionType(Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[Timer])]),createTimer:dart.functionType(Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[])]),errorCallback:dart.functionType(AsyncError,[Zone,ZoneDelegate,Zone,core.Object,core.StackTrace]),fork:dart.functionType(Zone,[Zone,ZoneDelegate,Zone,ZoneSpecification,core.Map]),handleUncaughtError:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.dynamic,core.StackTrace]),print:dart.functionType(dart.void,[Zone,ZoneDelegate,Zone,core.String]),registerBinaryCallback:dart.functionType(ZoneBinaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]),registerCallback:dart.functionType(ZoneCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]),registerUnaryCallback:dart.functionType(ZoneUnaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic])]),run:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]),runBinary:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]),runUnary:dart.functionType(dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]),scheduleMicrotask:dart.functionType(dart.void,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])])}]})});class _ZoneSpecification extends core.Object{_ZoneSpecification(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}};_ZoneSpecification[dart.implements]=()=>[ZoneSpecification];dart.setSignature(_ZoneSpecification,{constructors:()=>({_ZoneSpecification:[_ZoneSpecification,[],{createPeriodicTimer:CreatePeriodicTimerHandler,createTimer:CreateTimerHandler,errorCallback:ErrorCallbackHandler,fork:ForkHandler,handleUncaughtError:HandleUncaughtErrorHandler,print:PrintHandler,registerBinaryCallback:RegisterBinaryCallbackHandler,registerCallback:RegisterCallbackHandler,registerUnaryCallback:RegisterUnaryCallbackHandler,run:RunHandler,runBinary:RunBinaryHandler,runUnary:RunUnaryHandler,scheduleMicrotask:ScheduleMicrotaskHandler}]})});class ZoneDelegate extends core.Object{};class Zone extends core.Object{_(){}static get current(){return Zone._current}static _enter(zone){dart.assert(zone!=null);dart.assert(!dart.notNull(core.identical(zone,Zone._current)));let previous=Zone._current;Zone._current=zone;return previous}static _leave(previous){dart.assert(previous!=null);Zone._current=previous}};dart.defineNamedConstructor(Zone,'_');dart.setSignature(Zone,{constructors:()=>({_:[Zone,[]]}),names:['_enter','_leave'],statics:()=>({_enter:[Zone,[Zone]],_leave:[dart.void,[Zone]]})});class _Zone extends core.Object{_Zone(){}inSameErrorZone(otherZone){return dart.notNull(core.identical(this,otherZone))||dart.notNull(core.identical(this.errorZone,otherZone.errorZone))}};_Zone[dart.implements]=()=>[Zone];dart.setSignature(_Zone,{constructors:()=>({_Zone:[_Zone,[]]}),methods:()=>({inSameErrorZone:[core.bool,[Zone]]})});let _run=Symbol('_run');let _runUnary=Symbol('_runUnary');let _runBinary=Symbol('_runBinary');let _registerCallback=Symbol('_registerCallback');let _registerUnaryCallback=Symbol('_registerUnaryCallback');let _registerBinaryCallback=Symbol('_registerBinaryCallback');let _errorCallback=Symbol('_errorCallback');let _scheduleMicrotask=Symbol('_scheduleMicrotask');let _createTimer=Symbol('_createTimer');let _createPeriodicTimer=Symbol('_createPeriodicTimer');let _print=Symbol('_print');let _fork=Symbol('_fork');let _handleUncaughtError=Symbol('_handleUncaughtError');let _map=Symbol('_map');let _delegate=Symbol('_delegate');class _RootZone extends _Zone{_RootZone(){super._Zone()}get[_run](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootRun))}get[_runUnary](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootRunUnary))}get[_runBinary](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootRunBinary))}get[_registerCallback](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootRegisterCallback))}get[_registerUnaryCallback](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootRegisterUnaryCallback))}get[_registerBinaryCallback](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootRegisterBinaryCallback))}get[_errorCallback](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootErrorCallback))}get[_scheduleMicrotask](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootScheduleMicrotask))}get[_createTimer](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootCreateTimer))}get[_createPeriodicTimer](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootCreatePeriodicTimer))}get[_print](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootPrint))}get[_fork](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootFork))}get[_handleUncaughtError](){return dart.const(new _ZoneFunction(_ROOT_ZONE,_rootHandleUncaughtError))}get parent(){return null}get[_map](){return _RootZone._rootMap}get[_delegate](){if(_RootZone._rootDelegate!=null)return _RootZone._rootDelegate;return _RootZone._rootDelegate=new _ZoneDelegate(this)}get errorZone(){return this}runGuarded(f){try{if(dart.notNull(core.identical(_ROOT_ZONE,Zone._current))){return f()}return _rootRun(null,null,this,f)}catch(e){let s=dart.stackTrace(e);return this.handleUncaughtError(e,s)}}runUnaryGuarded(f,arg){try{if(dart.notNull(core.identical(_ROOT_ZONE,Zone._current))){return dart.dcall(f,arg)}return _rootRunUnary(null,null,this,f,arg)}catch(e){let s=dart.stackTrace(e);return this.handleUncaughtError(e,s)}}runBinaryGuarded(f,arg1,arg2){try{if(dart.notNull(core.identical(_ROOT_ZONE,Zone._current))){return dart.dcall(f,arg1,arg2)}return _rootRunBinary(null,null,this,f,arg1,arg2)}catch(e){let s=dart.stackTrace(e);return this.handleUncaughtError(e,s)}}bindCallback(f,opts){let runGuarded=opts&&'runGuarded'in opts?opts.runGuarded:true;if(dart.notNull(runGuarded)){return dart.fn(()=>this.runGuarded(f))}else{return dart.fn(()=>this.run(f))}}bindUnaryCallback(f,opts){let runGuarded=opts&&'runGuarded'in opts?opts.runGuarded:true;if(dart.notNull(runGuarded)){return dart.fn(arg=>this.runUnaryGuarded(f,arg))}else{return dart.fn(arg=>this.runUnary(f,arg))}}bindBinaryCallback(f,opts){let runGuarded=opts&&'runGuarded'in opts?opts.runGuarded:true;if(dart.notNull(runGuarded)){return dart.fn((arg1,arg2)=>this.runBinaryGuarded(f,arg1,arg2))}else{return dart.fn((arg1,arg2)=>this.runBinary(f,arg1,arg2))}}get(key){return null}handleUncaughtError(error,stackTrace){return _rootHandleUncaughtError(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 _rootFork(null,null,this,specification,zoneValues)}run(f){if(dart.notNull(core.identical(Zone._current,_ROOT_ZONE)))return f();return _rootRun(null,null,this,f)}runUnary(f,arg){if(dart.notNull(core.identical(Zone._current,_ROOT_ZONE)))return dart.dcall(f,arg);return _rootRunUnary(null,null,this,f,arg)}runBinary(f,arg1,arg2){if(dart.notNull(core.identical(Zone._current,_ROOT_ZONE)))return dart.dcall(f,arg1,arg2);return _rootRunBinary(null,null,this,f,arg1,arg2)}registerCallback(f){return f}registerUnaryCallback(f){return f}registerBinaryCallback(f){return f}errorCallback(error,stackTrace){return null}scheduleMicrotask(f){_rootScheduleMicrotask(null,null,this,f)}createTimer(duration,f){return Timer._createTimer(duration,f)}createPeriodicTimer(duration,f){return Timer._createPeriodicTimer(duration,f)}print(line){_internal.printToConsole(line)}};dart.setSignature(_RootZone,{constructors:()=>({_RootZone:[_RootZone,[]]}),methods:()=>({bindBinaryCallback:[ZoneBinaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])],{runGuarded:core.bool}],bindCallback:[ZoneCallback,[dart.functionType(dart.dynamic,[])],{runGuarded:core.bool}],bindUnaryCallback:[ZoneUnaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic])],{runGuarded:core.bool}],createPeriodicTimer:[Timer,[core.Duration,dart.functionType(dart.void,[Timer])]],createTimer:[Timer,[core.Duration,dart.functionType(dart.void,[])]],errorCallback:[AsyncError,[core.Object,core.StackTrace]],fork:[Zone,[],{specification:ZoneSpecification,zoneValues:core.Map}],get:[dart.dynamic,[core.Object]],handleUncaughtError:[dart.dynamic,[dart.dynamic,core.StackTrace]],print:[dart.void,[core.String]],registerBinaryCallback:[ZoneBinaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],registerCallback:[ZoneCallback,[dart.functionType(dart.dynamic,[])]],registerUnaryCallback:[ZoneUnaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic])]],run:[dart.dynamic,[dart.functionType(dart.dynamic,[])]],runBinary:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]],runBinaryGuarded:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]],runGuarded:[dart.dynamic,[dart.functionType(dart.dynamic,[])]],runUnary:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]],runUnaryGuarded:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]],scheduleMicrotask:[dart.void,[dart.functionType(dart.void,[])]]})});let _ROOT_ZONE=dart.const(new _RootZone());Zone.ROOT=_ROOT_ZONE;Zone._current=_ROOT_ZONE;function _parentDelegate(zone){if(zone.parent==null)return null;return zone.parent[_delegate]}dart.fn(_parentDelegate,ZoneDelegate,[_Zone]);let _delegationTarget=Symbol('_delegationTarget');class _ZoneDelegate extends core.Object{_ZoneDelegate(delegationTarget){this[_delegationTarget]=delegationTarget}handleUncaughtError(zone,error,stackTrace){let implementation=this[_delegationTarget][_handleUncaughtError];let implZone=implementation.zone;return dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,error,stackTrace)}run(zone,f){let implementation=this[_delegationTarget][_run];let implZone=implementation.zone;return dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f)}runUnary(zone,f,arg){let implementation=this[_delegationTarget][_runUnary];let implZone=implementation.zone;return dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f,arg)}runBinary(zone,f,arg1,arg2){let implementation=this[_delegationTarget][_runBinary];let implZone=implementation.zone;return dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f,arg1,arg2)}registerCallback(zone,f){let implementation=this[_delegationTarget][_registerCallback];let implZone=implementation.zone;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f),ZoneCallback)}registerUnaryCallback(zone,f){let implementation=this[_delegationTarget][_registerUnaryCallback];let implZone=implementation.zone;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f),ZoneUnaryCallback)}registerBinaryCallback(zone,f){let implementation=this[_delegationTarget][_registerBinaryCallback];let implZone=implementation.zone;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f),ZoneBinaryCallback)}errorCallback(zone,error,stackTrace){let implementation=this[_delegationTarget][_errorCallback];let implZone=implementation.zone;if(dart.notNull(core.identical(implZone,_ROOT_ZONE)))return null;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,error,stackTrace),AsyncError)}scheduleMicrotask(zone,f){let implementation=this[_delegationTarget][_scheduleMicrotask];let implZone=implementation.zone;dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,f)}createTimer(zone,duration,f){let implementation=this[_delegationTarget][_createTimer];let implZone=implementation.zone;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,duration,f),Timer)}createPeriodicTimer(zone,period,f){let implementation=this[_delegationTarget][_createPeriodicTimer];let implZone=implementation.zone;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,period,f),Timer)}print(zone,line){let implementation=this[_delegationTarget][_print];let implZone=implementation.zone;dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,line)}fork(zone,specification,zoneValues){let implementation=this[_delegationTarget][_fork];let implZone=implementation.zone;return dart.as(dart.dcall(implementation.function,implZone,_parentDelegate(implZone),zone,specification,zoneValues),Zone)}};_ZoneDelegate[dart.implements]=()=>[ZoneDelegate];dart.setSignature(_ZoneDelegate,{constructors:()=>({_ZoneDelegate:[_ZoneDelegate,[_Zone]]}),methods:()=>({createPeriodicTimer:[Timer,[Zone,core.Duration,dart.functionType(dart.void,[Timer])]],createTimer:[Timer,[Zone,core.Duration,dart.functionType(dart.void,[])]],errorCallback:[AsyncError,[Zone,core.Object,core.StackTrace]],fork:[Zone,[Zone,ZoneSpecification,core.Map]],handleUncaughtError:[dart.dynamic,[Zone,dart.dynamic,core.StackTrace]],print:[dart.void,[Zone,core.String]],registerBinaryCallback:[ZoneBinaryCallback,[Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],registerCallback:[ZoneCallback,[Zone,dart.functionType(dart.dynamic,[])]],registerUnaryCallback:[ZoneUnaryCallback,[Zone,dart.functionType(dart.dynamic,[dart.dynamic])]],run:[dart.dynamic,[Zone,dart.functionType(dart.dynamic,[])]],runBinary:[dart.dynamic,[Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]],runUnary:[dart.dynamic,[Zone,dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]],scheduleMicrotask:[dart.void,[Zone,dart.functionType(dart.dynamic,[])]]})});let _delegateCache=Symbol('_delegateCache');class _CustomZone extends _Zone{get[_delegate](){if(this[_delegateCache]!=null)return this[_delegateCache];this[_delegateCache]=new _ZoneDelegate(this);return this[_delegateCache]}_CustomZone(parent,specification,map){this.parent=parent;this[_map]=map;this[_runUnary]=null;this[_run]=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._Zone();this[_run]=specification.run!=null?new _ZoneFunction(this,specification.run):this.parent[_run];this[_runUnary]=specification.runUnary!=null?new _ZoneFunction(this,specification.runUnary):this.parent[_runUnary];this[_runBinary]=specification.runBinary!=null?new _ZoneFunction(this,specification.runBinary):this.parent[_runBinary];this[_registerCallback]=specification.registerCallback!=null?new _ZoneFunction(this,specification.registerCallback):this.parent[_registerCallback];this[_registerUnaryCallback]=specification.registerUnaryCallback!=null?new _ZoneFunction(this,specification.registerUnaryCallback):this.parent[_registerUnaryCallback];this[_registerBinaryCallback]=specification.registerBinaryCallback!=null?new _ZoneFunction(this,specification.registerBinaryCallback):this.parent[_registerBinaryCallback];this[_errorCallback]=specification.errorCallback!=null?new _ZoneFunction(this,specification.errorCallback):this.parent[_errorCallback];this[_scheduleMicrotask]=specification.scheduleMicrotask!=null?new _ZoneFunction(this,specification.scheduleMicrotask):this.parent[_scheduleMicrotask];this[_createTimer]=specification.createTimer!=null?new _ZoneFunction(this,specification.createTimer):this.parent[_createTimer];this[_createPeriodicTimer]=specification.createPeriodicTimer!=null?new _ZoneFunction(this,specification.createPeriodicTimer):this.parent[_createPeriodicTimer];this[_print]=specification.print!=null?new _ZoneFunction(this,specification.print):this.parent[_print];this[_fork]=specification.fork!=null?new _ZoneFunction(this,specification.fork):this.parent[_fork];this[_handleUncaughtError]=specification.handleUncaughtError!=null?new _ZoneFunction(this,specification.handleUncaughtError):this.parent[_handleUncaughtError]}get errorZone(){return this[_handleUncaughtError].zone}runGuarded(f){try{return this.run(f)}catch(e){let s=dart.stackTrace(e);return this.handleUncaughtError(e,s)}}runUnaryGuarded(f,arg){try{return this.runUnary(f,arg)}catch(e){let s=dart.stackTrace(e);return this.handleUncaughtError(e,s)}}runBinaryGuarded(f,arg1,arg2){try{return this.runBinary(f,arg1,arg2)}catch(e){let s=dart.stackTrace(e);return this.handleUncaughtError(e,s)}}bindCallback(f,opts){let runGuarded=opts&&'runGuarded'in opts?opts.runGuarded:true;let registered=this.registerCallback(f);if(dart.notNull(runGuarded)){return dart.fn(()=>this.runGuarded(registered))}else{return dart.fn(()=>this.run(registered))}}bindUnaryCallback(f,opts){let runGuarded=opts&&'runGuarded'in opts?opts.runGuarded:true;let registered=this.registerUnaryCallback(f);if(dart.notNull(runGuarded)){return dart.fn(arg=>this.runUnaryGuarded(registered,arg))}else{return dart.fn(arg=>this.runUnary(registered,arg))}}bindBinaryCallback(f,opts){let runGuarded=opts&&'runGuarded'in opts?opts.runGuarded:true;let registered=this.registerBinaryCallback(f);if(dart.notNull(runGuarded)){return dart.fn((arg1,arg2)=>this.runBinaryGuarded(registered,arg1,arg2))}else{return dart.fn((arg1,arg2)=>this.runBinary(registered,arg1,arg2))}}get(key){let result=this[_map].get(key);if(result!=null||dart.notNull(this[_map].containsKey(key)))return result;if(this.parent!=null){let value=this.parent.get(key);if(value!=null){this[_map].set(key,value)}return value}dart.assert(dart.equals(this,_ROOT_ZONE));return null}handleUncaughtError(error,stackTrace){let implementation=this[_handleUncaughtError];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.dcall(implementation.function,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=_parentDelegate(implementation.zone);return dart.as(dart.dcall(implementation.function,implementation.zone,parentDelegate,this,specification,zoneValues),Zone)}run(f){let implementation=this[_run];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f)}runUnary(f,arg){let implementation=this[_runUnary];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f,arg)}runBinary(f,arg1,arg2){let implementation=this[_runBinary];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f,arg1,arg2)}registerCallback(f){let implementation=this[_registerCallback];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.as(dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f),ZoneCallback)}registerUnaryCallback(f){let implementation=this[_registerUnaryCallback];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.as(dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f),ZoneUnaryCallback)}registerBinaryCallback(f){let implementation=this[_registerBinaryCallback];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.as(dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f),ZoneBinaryCallback)}errorCallback(error,stackTrace){let implementation=this[_errorCallback];dart.assert(implementation!=null);let implementationZone=implementation.zone;if(dart.notNull(core.identical(implementationZone,_ROOT_ZONE)))return null;let parentDelegate=_parentDelegate(dart.as(implementationZone,_Zone));return dart.as(dart.dcall(implementation.function,implementationZone,parentDelegate,this,error,stackTrace),AsyncError)}scheduleMicrotask(f){let implementation=this[_scheduleMicrotask];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.dcall(implementation.function,implementation.zone,parentDelegate,this,f)}createTimer(duration,f){let implementation=this[_createTimer];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.as(dart.dcall(implementation.function,implementation.zone,parentDelegate,this,duration,f),Timer)}createPeriodicTimer(duration,f){let implementation=this[_createPeriodicTimer];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.as(dart.dcall(implementation.function,implementation.zone,parentDelegate,this,duration,f),Timer)}print(line){let implementation=this[_print];dart.assert(implementation!=null);let parentDelegate=_parentDelegate(implementation.zone);return dart.dcall(implementation.function,implementation.zone,parentDelegate,this,line)}};dart.setSignature(_CustomZone,{constructors:()=>({_CustomZone:[_CustomZone,[_Zone,ZoneSpecification,core.Map]]}),methods:()=>({bindBinaryCallback:[ZoneBinaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])],{runGuarded:core.bool}],bindCallback:[ZoneCallback,[dart.functionType(dart.dynamic,[])],{runGuarded:core.bool}],bindUnaryCallback:[ZoneUnaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic])],{runGuarded:core.bool}],createPeriodicTimer:[Timer,[core.Duration,dart.functionType(dart.void,[Timer])]],createTimer:[Timer,[core.Duration,dart.functionType(dart.void,[])]],errorCallback:[AsyncError,[core.Object,core.StackTrace]],fork:[Zone,[],{specification:ZoneSpecification,zoneValues:core.Map}],get:[dart.dynamic,[core.Object]],handleUncaughtError:[dart.dynamic,[dart.dynamic,core.StackTrace]],print:[dart.void,[core.String]],registerBinaryCallback:[ZoneBinaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],registerCallback:[ZoneCallback,[dart.functionType(dart.dynamic,[])]],registerUnaryCallback:[ZoneUnaryCallback,[dart.functionType(dart.dynamic,[dart.dynamic])]],run:[dart.dynamic,[dart.functionType(dart.dynamic,[])]],runBinary:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]],runBinaryGuarded:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]],runGuarded:[dart.dynamic,[dart.functionType(dart.dynamic,[])]],runUnary:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]],runUnaryGuarded:[dart.dynamic,[dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]],scheduleMicrotask:[dart.void,[dart.functionType(dart.void,[])]]})});function _rootHandleUncaughtError(self,parent,zone,error,stackTrace){_schedulePriorityAsyncCallback(dart.fn(()=>{dart.throw(new _UncaughtAsyncError(error,stackTrace))}))}dart.fn(_rootHandleUncaughtError,dart.void,[Zone,ZoneDelegate,Zone,dart.dynamic,core.StackTrace]);function _rootRun(self,parent,zone,f){if(dart.equals(Zone._current,zone))return f();let old=Zone._enter(zone);try{return f()}finally{Zone._leave(old)}}dart.fn(_rootRun,dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]);function _rootRunUnary(self,parent,zone,f,arg){if(dart.equals(Zone._current,zone))return dart.dcall(f,arg);let old=Zone._enter(zone);try{return dart.dcall(f,arg)}finally{Zone._leave(old)}}dart.fn(_rootRunUnary,dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]);function _rootRunBinary(self,parent,zone,f,arg1,arg2){if(dart.equals(Zone._current,zone))return dart.dcall(f,arg1,arg2);let old=Zone._enter(zone);try{return dart.dcall(f,arg1,arg2)}finally{Zone._leave(old)}}dart.fn(_rootRunBinary,dart.dynamic,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]);function _rootRegisterCallback(self,parent,zone,f){return f}dart.fn(_rootRegisterCallback,ZoneCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]);function _rootRegisterUnaryCallback(self,parent,zone,f){return f}dart.fn(_rootRegisterUnaryCallback,ZoneUnaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic])]);function _rootRegisterBinaryCallback(self,parent,zone,f){return f}dart.fn(_rootRegisterBinaryCallback,ZoneBinaryCallback,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]);function _rootErrorCallback(self,parent,zone,error,stackTrace){return null}dart.fn(_rootErrorCallback,AsyncError,[Zone,ZoneDelegate,Zone,core.Object,core.StackTrace]);function _rootScheduleMicrotask(self,parent,zone,f){if(!dart.notNull(core.identical(_ROOT_ZONE,zone))){let hasErrorHandler= !dart.notNull(_ROOT_ZONE.inSameErrorZone(zone));f=zone.bindCallback(f,{runGuarded:hasErrorHandler})}_scheduleAsyncCallback(f)}dart.fn(_rootScheduleMicrotask,dart.void,[Zone,ZoneDelegate,Zone,dart.functionType(dart.dynamic,[])]);function _rootCreateTimer(self,parent,zone,duration,callback){if(!dart.notNull(core.identical(_ROOT_ZONE,zone))){callback=zone.bindCallback(callback)}return Timer._createTimer(duration,callback)}dart.fn(_rootCreateTimer,Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[])]);function _rootCreatePeriodicTimer(self,parent,zone,duration,callback){if(!dart.notNull(core.identical(_ROOT_ZONE,zone))){callback=dart.as(zone.bindUnaryCallback(callback),__CastType36)}return Timer._createPeriodicTimer(duration,callback)}dart.fn(_rootCreatePeriodicTimer,Timer,[Zone,ZoneDelegate,Zone,core.Duration,dart.functionType(dart.void,[Timer])]);function _rootPrint(self,parent,zone,line){_internal.printToConsole(line)}dart.fn(_rootPrint,dart.void,[Zone,ZoneDelegate,Zone,core.String]);function _printToZone(line){Zone.current.print(line)}dart.fn(_printToZone,dart.void,[core.String]);function _rootFork(self,parent,zone,specification,zoneValues){_internal.printToZone=_printToZone;if(specification==null){specification=dart.const(ZoneSpecification.new())}else if(!dart.is(specification,_ZoneSpecification)){dart.throw(new core.ArgumentError("ZoneSpecifications must be instantiated with the provided constructor."))}let valueMap=null;if(zoneValues==null){if(dart.is(zone,_Zone)){valueMap=zone[_map]}else{valueMap=collection.HashMap.new()}}else{valueMap=collection.HashMap.from(zoneValues)}return new _CustomZone(dart.as(zone,_Zone),specification,valueMap)}dart.fn(_rootFork,Zone,[Zone,ZoneDelegate,Zone,ZoneSpecification,core.Map]);class _RootZoneSpecification extends core.Object{get handleUncaughtError(){return _rootHandleUncaughtError}get run(){return _rootRun}get runUnary(){return _rootRunUnary}get runBinary(){return _rootRunBinary}get registerCallback(){return _rootRegisterCallback}get registerUnaryCallback(){return _rootRegisterUnaryCallback}get registerBinaryCallback(){return _rootRegisterBinaryCallback}get errorCallback(){return _rootErrorCallback}get scheduleMicrotask(){return _rootScheduleMicrotask}get createTimer(){return _rootCreateTimer}get createPeriodicTimer(){return _rootCreatePeriodicTimer}get print(){return _rootPrint}get fork(){return _rootFork}};_RootZoneSpecification[dart.implements]=()=>[ZoneSpecification];_RootZone._rootDelegate=null;dart.defineLazyProperties(_RootZone,{get _rootMap(){return collection.HashMap.new()},set _rootMap(_){}});function runZoned(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(dart.is(onError,ZoneBinaryCallback)){return self.parent.runBinary(onError,error,stackTrace)}return self.parent.runUnary(dart.as(onError,__CastType38),error)}catch(e){let s=dart.stackTrace(e);if(dart.notNull(core.identical(e,error))){return parent.handleUncaughtError(zone,error,stackTrace)}else{return parent.handleUncaughtError(zone,e,s)}}},dart.dynamic,[Zone,ZoneDelegate,Zone,dart.dynamic,core.StackTrace])}if(zoneSpecification==null){zoneSpecification=ZoneSpecification.new({handleUncaughtError:errorHandler})}else if(errorHandler!=null){zoneSpecification=ZoneSpecification.from(zoneSpecification,{handleUncaughtError:errorHandler})}let zone=Zone.current.fork({specification:zoneSpecification,zoneValues:zoneValues});if(onError!=null){return zone.runGuarded(body)}else{return zone.run(body)}}dart.fn(runZoned,dart.dynamic,[dart.functionType(dart.dynamic,[])],{onError:core.Function,zoneSpecification:ZoneSpecification,zoneValues:core.Map});let __CastType36=dart.typedef('__CastType36',()=>dart.functionType(dart.void,[Timer]));let __CastType38=dart.typedef('__CastType38',()=>dart.functionType(dart.dynamic,[dart.dynamic]));dart.copyProperties(exports,{get _hasDocument(){return typeof document=='object'}});exports.AsyncError=AsyncError;exports.Stream$=Stream$;exports.Stream=Stream;exports.DeferredLibrary=DeferredLibrary;exports.DeferredLoadException=DeferredLoadException;exports.Future$=Future$;exports.Future=Future;exports.TimeoutException=TimeoutException;exports.Completer$=Completer$;exports.Completer=Completer;exports.scheduleMicrotask=scheduleMicrotask;exports.StreamSubscription$=StreamSubscription$;exports.StreamSubscription=StreamSubscription;exports.EventSink$=EventSink$;exports.EventSink=EventSink;exports.StreamView$=StreamView$;exports.StreamView=StreamView;exports.StreamConsumer$=StreamConsumer$;exports.StreamConsumer=StreamConsumer;exports.StreamSink$=StreamSink$;exports.StreamSink=StreamSink;exports.StreamTransformer$=StreamTransformer$;exports.StreamTransformer=StreamTransformer;exports.StreamIterator$=StreamIterator$;exports.StreamIterator=StreamIterator;exports.StreamController$=StreamController$;exports.StreamController=StreamController;exports.Timer=Timer;exports.ZoneCallback=ZoneCallback;exports.ZoneUnaryCallback=ZoneUnaryCallback;exports.ZoneBinaryCallback=ZoneBinaryCallback;exports.HandleUncaughtErrorHandler=HandleUncaughtErrorHandler;exports.RunHandler=RunHandler;exports.RunUnaryHandler=RunUnaryHandler;exports.RunBinaryHandler=RunBinaryHandler;exports.RegisterCallbackHandler=RegisterCallbackHandler;exports.RegisterUnaryCallbackHandler=RegisterUnaryCallbackHandler;exports.RegisterBinaryCallbackHandler=RegisterBinaryCallbackHandler;exports.ErrorCallbackHandler=ErrorCallbackHandler;exports.ScheduleMicrotaskHandler=ScheduleMicrotaskHandler;exports.CreateTimerHandler=CreateTimerHandler;exports.CreatePeriodicTimerHandler=CreatePeriodicTimerHandler;exports.PrintHandler=PrintHandler;exports.ForkHandler=ForkHandler;exports.ZoneSpecification=ZoneSpecification;exports.ZoneDelegate=ZoneDelegate;exports.Zone=Zone;exports.runZoned=runZoned});dart_library.library('dart/collection',null,["dart_runtime/dart",'dart/core'],['dart/_internal','dart/_js_helper','dart/math'],function(exports,dart,core,_internal,_js_helper,math){'use strict';let dartx=dart.dartx;let _source=Symbol('_source');let UnmodifiableListView$=dart.generic(function(E){class UnmodifiableListView extends _internal.UnmodifiableListBase$(E){UnmodifiableListView(source){this[_source]=source}get length(){return this[_source][dartx.length]}get(index){return this[_source][dartx.elementAt](index)}}dart.setSignature(UnmodifiableListView,{constructors:()=>({UnmodifiableListView:[exports.UnmodifiableListView$(E),[core.Iterable$(E)]]}),methods:()=>({get:[E,[core.int]]})});dart.defineExtensionMembers(UnmodifiableListView,['get','length']);return UnmodifiableListView});dart.defineLazyClassGeneric(exports,'UnmodifiableListView',{get:UnmodifiableListView$});function _defaultEquals(a,b){return dart.equals(a,b)}dart.fn(_defaultEquals,core.bool,[core.Object,core.Object]);function _defaultHashCode(a){return dart.hashCode(a)}dart.fn(_defaultHashCode,core.int,[core.Object]);let _Equality$=dart.generic(function(K){let _Equality=dart.typedef('_Equality',()=>dart.functionType(core.bool,[K,K]));return _Equality});let _Equality=_Equality$();let _Hasher$=dart.generic(function(K){let _Hasher=dart.typedef('_Hasher',()=>dart.functionType(core.int,[K]));return _Hasher});let _Hasher=_Hasher$();let HashMap$=dart.generic(function(K,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(_HashMap$(K,V))()}hashCode=_defaultHashCode}else{if(dart.notNull(core.identical(core.identityHashCode,hashCode))&&dart.notNull(core.identical(core.identical,equals))){return new(_IdentityHashMap$(K,V))()}if(equals==null){equals=_defaultEquals}}}else{if(hashCode==null){hashCode=_defaultHashCode}if(equals==null){equals=_defaultEquals}}return new(_CustomHashMap$(K,V))(equals,hashCode,isValidKey)}static identity(){return new(_IdentityHashMap$(K,V))()}static from(other){let result=HashMap$(K,V).new();other.forEach(dart.fn((k,v)=>{result.set(dart.as(k,K),dart.as(v,V))}));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=HashMap$(K,V).new();Maps._fillMapWithMappedIterable(map,iterable,key,value);return map}static fromIterables(keys,values){let map=HashMap$(K,V).new();Maps._fillMapWithIterables(map,keys,values);return map}}HashMap[dart.implements]=()=>[core.Map$(K,V)];dart.setSignature(HashMap,{constructors:()=>({from:[HashMap$(K,V),[core.Map]],fromIterable:[HashMap$(K,V),[core.Iterable],{key:dart.functionType(K,[dart.dynamic]),value:dart.functionType(V,[dart.dynamic])}],fromIterables:[HashMap$(K,V),[core.Iterable$(K),core.Iterable$(V)]],identity:[HashMap$(K,V),[]],new:[HashMap$(K,V),[],{equals:dart.functionType(core.bool,[K,K]),hashCode:dart.functionType(core.int,[K]),isValidKey:dart.functionType(core.bool,[core.Object])}]})});return HashMap});let HashMap=HashMap$();let SetMixin$=dart.generic(function(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){dart.as(elements,core.Iterable$(E));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){dart.as(test,dart.functionType(core.bool,[E]));let toRemove=[];for(let element of this){if(dart.notNull(test(element)))toRemove[dartx.add](element);}this.removeAll(toRemove)}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));let toRemove=[];for(let element of this){if(!dart.notNull(test(element)))toRemove[dartx.add](element);}this.removeAll(toRemove)}containsAll(other){for(let o of other){if(!dart.notNull(this.contains(o)))return false;}return true}union(other){dart.as(other,core.Set$(E));let _=this.toSet();_.addAll(other);return _}intersection(other){let result=this.toSet();for(let element of this){if(!dart.notNull(other.contains(element)))result.remove(element);}return result}difference(other){let result=this.toSet();for(let element of this){if(dart.notNull(other.contains(element)))result.remove(element);}return result}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;let result=dart.notNull(growable)?(()=>{let _=core.List$(E).new();_[dartx.length]=this.length;return _})():core.List$(E).new(this.length);let i=0;for(let element of this)result[dartx.set]((()=>{let x=i;i=dart.notNull(x)+1;return x})(),element);return result}map(f){dart.as(f,dart.functionType(dart.dynamic,[E]));return new(_internal.EfficientLengthMappedIterable$(E,dart.dynamic))(this,f)}get single(){if(dart.notNull(this.length)>1)dart.throw(_internal.IterableElementError.tooMany());let it=this.iterator;if(!dart.notNull(it.moveNext()))dart.throw(_internal.IterableElementError.noElement());let result=it.current;return result}toString(){return IterableBase.iterableToFullString(this,'{','}')}where(f){dart.as(f,dart.functionType(core.bool,[E]));return new(_internal.WhereIterable$(E))(this,f)}expand(f){dart.as(f,dart.functionType(core.Iterable,[E]));return new(_internal.ExpandIterable$(E,dart.dynamic))(this,f)}forEach(f){dart.as(f,dart.functionType(dart.void,[E]));for(let element of this)f(element);}reduce(combine){dart.as(combine,dart.functionType(E,[E,E]));let iterator=this.iterator;if(!dart.notNull(iterator.moveNext())){dart.throw(_internal.IterableElementError.noElement())}let value=iterator.current;while(dart.notNull(iterator.moveNext())){value=combine(value,iterator.current)}return value}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));let value=initialValue;for(let element of this)value=dart.dcall(combine,value,element);return value}every(f){dart.as(f,dart.functionType(core.bool,[E]));for(let element of this){if(!dart.notNull(f(element)))return false;}return true}join(separator){if(separator===void 0)separator="";let iterator=this.iterator;if(!dart.notNull(iterator.moveNext()))return "";let buffer=new core.StringBuffer();if(separator==null||separator==""){do{buffer.write(`${iterator.current }`)}while(dart.notNull(iterator.moveNext()))}else{buffer.write(`${iterator.current }`);while(dart.notNull(iterator.moveNext())){buffer.write(separator);buffer.write(`${iterator.current }`)}}return dart.toString(buffer)}any(test){dart.as(test,dart.functionType(core.bool,[E]));for(let element of this){if(dart.notNull(test(element)))return true;}return false}take(n){return _internal.TakeIterable$(E).new(this,n)}takeWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.TakeWhileIterable$(E))(this,test)}skip(n){return _internal.SkipIterable$(E).new(this,n)}skipWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.SkipWhileIterable$(E))(this,test)}get first(){let it=this.iterator;if(!dart.notNull(it.moveNext())){dart.throw(_internal.IterableElementError.noElement())}return it.current}get last(){let it=this.iterator;if(!dart.notNull(it.moveNext())){dart.throw(_internal.IterableElementError.noElement())}let result=null;do{result=it.current}while(dart.notNull(it.moveNext()));return result}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));for(let element of this){if(dart.notNull(test(element)))return element;}if(orElse!=null)return orElse();dart.throw(_internal.IterableElementError.noElement())}lastWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let result=null;let foundMatching=false;for(let element of this){if(dart.notNull(test(element))){result=element;foundMatching=true}}if(dart.notNull(foundMatching))return result;if(orElse!=null)return orElse();dart.throw(_internal.IterableElementError.noElement())}singleWhere(test){dart.as(test,dart.functionType(core.bool,[E]));let result=null;let foundMatching=false;for(let element of this){if(dart.notNull(test(element))){if(dart.notNull(foundMatching)){dart.throw(_internal.IterableElementError.tooMany())}result=element;foundMatching=true}}if(dart.notNull(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.notNull(elementIndex)+1}dart.throw(core.RangeError.index(index,this,"index",null,elementIndex))}}SetMixin[dart.implements]=()=>[core.Set$(E)];dart.setSignature(SetMixin,{methods:()=>({addAll:[dart.void,[core.Iterable$(E)]],any:[core.bool,[dart.functionType(core.bool,[E])]],clear:[dart.void,[]],containsAll:[core.bool,[core.Iterable$(core.Object)]],difference:[core.Set$(E),[core.Set$(core.Object)]],elementAt:[E,[core.int]],every:[core.bool,[dart.functionType(core.bool,[E])]],expand:[core.Iterable,[dart.functionType(core.Iterable,[E])]],firstWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],fold:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],intersection:[core.Set$(E),[core.Set$(core.Object)]],join:[core.String,[],[core.String]],lastWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],map:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],reduce:[E,[dart.functionType(E,[E,E])]],removeAll:[dart.void,[core.Iterable$(core.Object)]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],retainAll:[dart.void,[core.Iterable$(core.Object)]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]],singleWhere:[E,[dart.functionType(core.bool,[E])]],skip:[core.Iterable$(E),[core.int]],skipWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],take:[core.Iterable$(E),[core.int]],takeWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}],union:[core.Set$(E),[core.Set$(E)]],where:[core.Iterable$(E),[dart.functionType(core.bool,[E])]]})});dart.defineExtensionMembers(SetMixin,['toList','map','where','expand','forEach','reduce','fold','every','join','any','take','takeWhile','skip','skipWhile','firstWhere','lastWhere','singleWhere','elementAt','isEmpty','isNotEmpty','single','first','last']);return SetMixin});let SetMixin=SetMixin$();let SetBase$=dart.generic(function(E){class SetBase extends SetMixin$(E){static setToString(set){return IterableBase.iterableToFullString(set,'{','}')}}dart.setSignature(SetBase,{names:['setToString'],statics:()=>({setToString:[core.String,[core.Set]]})});return SetBase});let SetBase=SetBase$();let _newSet=Symbol('_newSet');let _HashSetBase$=dart.generic(function(E){class _HashSetBase extends SetBase$(E){difference(other){let result=this[_newSet]();for(let element of this){if(!dart.notNull(other.contains(element)))result.add(element);}return result}intersection(other){let result=this[_newSet]();for(let element of this){if(dart.notNull(other.contains(element)))result.add(element);}return result}toSet(){return(()=>{let _=this[_newSet]();_.addAll(this);return _})()}}dart.setSignature(_HashSetBase,{methods:()=>({difference:[core.Set$(E),[core.Set$(core.Object)]],intersection:[core.Set$(E),[core.Set$(core.Object)]],toSet:[core.Set$(E),[]]})});dart.defineExtensionMembers(_HashSetBase,['toSet']);return _HashSetBase});let _HashSetBase=_HashSetBase$();let HashSet$=dart.generic(function(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(_HashSet$(E))()}hashCode=_defaultHashCode}else{if(dart.notNull(core.identical(core.identityHashCode,hashCode))&&dart.notNull(core.identical(core.identical,equals))){return new(_IdentityHashSet$(E))()}if(equals==null){equals=_defaultEquals}}}else{if(hashCode==null){hashCode=_defaultHashCode}if(equals==null){equals=_defaultEquals}}return new(_CustomHashSet$(E))(equals,hashCode,isValidKey)}static identity(){return new(_IdentityHashSet$(E))()}static from(elements){let result=HashSet$(E).new();for(let e of dart.as(elements,core.Iterable$(E)))result.add(e);return result}[Symbol.iterator](){return new dart.JsIterator(this.iterator)}}HashSet[dart.implements]=()=>[core.Set$(E)];dart.setSignature(HashSet,{constructors:()=>({from:[HashSet$(E),[core.Iterable]],identity:[HashSet$(E),[]],new:[HashSet$(E),[],{equals:dart.functionType(core.bool,[E,E]),hashCode:dart.functionType(core.int,[E]),isValidKey:dart.functionType(core.bool,[core.Object])}]})});return HashSet});let HashSet=HashSet$();let IterableMixin$=dart.generic(function(E){class IterableMixin extends core.Object{map(f){dart.as(f,dart.functionType(dart.dynamic,[E]));return _internal.MappedIterable$(E,dart.dynamic).new(this,f)}where(f){dart.as(f,dart.functionType(core.bool,[E]));return new(_internal.WhereIterable$(E))(this,f)}expand(f){dart.as(f,dart.functionType(core.Iterable,[E]));return new(_internal.ExpandIterable$(E,dart.dynamic))(this,f)}contains(element){for(let e of this){if(dart.equals(e,element))return true;}return false}forEach(f){dart.as(f,dart.functionType(dart.void,[E]));for(let element of this)f(element);}reduce(combine){dart.as(combine,dart.functionType(E,[E,E]));let iterator=this.iterator;if(!dart.notNull(iterator.moveNext())){dart.throw(_internal.IterableElementError.noElement())}let value=iterator.current;while(dart.notNull(iterator.moveNext())){value=combine(value,iterator.current)}return value}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));let value=initialValue;for(let element of this)value=dart.dcall(combine,value,element);return value}every(f){dart.as(f,dart.functionType(core.bool,[E]));for(let element of this){if(!dart.notNull(f(element)))return false;}return true}join(separator){if(separator===void 0)separator="";let iterator=this.iterator;if(!dart.notNull(iterator.moveNext()))return "";let buffer=new core.StringBuffer();if(separator==null||separator==""){do{buffer.write(`${iterator.current }`)}while(dart.notNull(iterator.moveNext()))}else{buffer.write(`${iterator.current }`);while(dart.notNull(iterator.moveNext())){buffer.write(separator);buffer.write(`${iterator.current }`)}}return dart.toString(buffer)}any(f){dart.as(f,dart.functionType(core.bool,[E]));for(let element of this){if(dart.notNull(f(element)))return true;}return false}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;return core.List$(E).from(this,{growable:growable})}toSet(){return core.Set$(E).from(this)}get length(){dart.assert(!dart.is(this,_internal.EfficientLength));let count=0;let it=this[dartx.iterator];while(dart.notNull(it.moveNext())){count=dart.notNull(count)+1}return count}get isEmpty(){return!dart.notNull(this[dartx.iterator].moveNext())}get isNotEmpty(){return!dart.notNull(this.isEmpty)}take(n){return _internal.TakeIterable$(E).new(this,n)}takeWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.TakeWhileIterable$(E))(this,test)}skip(n){return _internal.SkipIterable$(E).new(this,n)}skipWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.SkipWhileIterable$(E))(this,test)}get first(){let it=this[dartx.iterator];if(!dart.notNull(it.moveNext())){dart.throw(_internal.IterableElementError.noElement())}return it.current}get last(){let it=this[dartx.iterator];if(!dart.notNull(it.moveNext())){dart.throw(_internal.IterableElementError.noElement())}let result=null;do{result=it.current}while(dart.notNull(it.moveNext()));return result}get single(){let it=this[dartx.iterator];if(!dart.notNull(it.moveNext()))dart.throw(_internal.IterableElementError.noElement());let result=it.current;if(dart.notNull(it.moveNext()))dart.throw(_internal.IterableElementError.tooMany());return result}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));for(let element of this){if(dart.notNull(test(element)))return element;}if(orElse!=null)return orElse();dart.throw(_internal.IterableElementError.noElement())}lastWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let result=null;let foundMatching=false;for(let element of this){if(dart.notNull(test(element))){result=element;foundMatching=true}}if(dart.notNull(foundMatching))return result;if(orElse!=null)return orElse();dart.throw(_internal.IterableElementError.noElement())}singleWhere(test){dart.as(test,dart.functionType(core.bool,[E]));let result=null;let foundMatching=false;for(let element of this){if(dart.notNull(test(element))){if(dart.notNull(foundMatching)){dart.throw(_internal.IterableElementError.tooMany())}result=element;foundMatching=true}}if(dart.notNull(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.notNull(elementIndex)+1}dart.throw(core.RangeError.index(index,this,"index",null,elementIndex))}toString(){return IterableBase.iterableToShortString(this,'(',')')}[Symbol.iterator](){return new dart.JsIterator(this.iterator)}}IterableMixin[dart.implements]=()=>[core.Iterable$(E)];dart.setSignature(IterableMixin,{methods:()=>({any:[core.bool,[dart.functionType(core.bool,[E])]],contains:[core.bool,[core.Object]],elementAt:[E,[core.int]],every:[core.bool,[dart.functionType(core.bool,[E])]],expand:[core.Iterable,[dart.functionType(core.Iterable,[E])]],firstWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],fold:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],join:[core.String,[],[core.String]],lastWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],map:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],reduce:[E,[dart.functionType(E,[E,E])]],singleWhere:[E,[dart.functionType(core.bool,[E])]],skip:[core.Iterable$(E),[core.int]],skipWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],take:[core.Iterable$(E),[core.int]],takeWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}],toSet:[core.Set$(E),[]],where:[core.Iterable$(E),[dart.functionType(core.bool,[E])]]})});dart.defineExtensionMembers(IterableMixin,['map','where','expand','contains','forEach','reduce','fold','every','join','any','toList','toSet','take','takeWhile','skip','skipWhile','firstWhere','lastWhere','singleWhere','elementAt','length','isEmpty','isNotEmpty','first','last','single']);return IterableMixin});let IterableMixin=IterableMixin$();let IterableBase$=dart.generic(function(E){class IterableBase extends core.Object{IterableBase(){}map(f){dart.as(f,dart.functionType(dart.dynamic,[E]));return _internal.MappedIterable$(E,dart.dynamic).new(this,f)}where(f){dart.as(f,dart.functionType(core.bool,[E]));return new(_internal.WhereIterable$(E))(this,f)}expand(f){dart.as(f,dart.functionType(core.Iterable,[E]));return new(_internal.ExpandIterable$(E,dart.dynamic))(this,f)}contains(element){for(let e of this){if(dart.equals(e,element))return true;}return false}forEach(f){dart.as(f,dart.functionType(dart.void,[E]));for(let element of this)f(element);}reduce(combine){dart.as(combine,dart.functionType(E,[E,E]));let iterator=this.iterator;if(!dart.notNull(iterator.moveNext())){dart.throw(_internal.IterableElementError.noElement())}let value=iterator.current;while(dart.notNull(iterator.moveNext())){value=combine(value,iterator.current)}return value}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));let value=initialValue;for(let element of this)value=dart.dcall(combine,value,element);return value}every(f){dart.as(f,dart.functionType(core.bool,[E]));for(let element of this){if(!dart.notNull(f(element)))return false;}return true}join(separator){if(separator===void 0)separator="";let iterator=this.iterator;if(!dart.notNull(iterator.moveNext()))return "";let buffer=new core.StringBuffer();if(separator==null||separator==""){do{buffer.write(`${iterator.current }`)}while(dart.notNull(iterator.moveNext()))}else{buffer.write(`${iterator.current }`);while(dart.notNull(iterator.moveNext())){buffer.write(separator);buffer.write(`${iterator.current }`)}}return dart.toString(buffer)}any(f){dart.as(f,dart.functionType(core.bool,[E]));for(let element of this){if(dart.notNull(f(element)))return true;}return false}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;return core.List$(E).from(this,{growable:growable})}toSet(){return core.Set$(E).from(this)}get length(){dart.assert(!dart.is(this,_internal.EfficientLength));let count=0;let it=this[dartx.iterator];while(dart.notNull(it.moveNext())){count=dart.notNull(count)+1}return count}get isEmpty(){return!dart.notNull(this[dartx.iterator].moveNext())}get isNotEmpty(){return!dart.notNull(this.isEmpty)}take(n){return _internal.TakeIterable$(E).new(this,n)}takeWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.TakeWhileIterable$(E))(this,test)}skip(n){return _internal.SkipIterable$(E).new(this,n)}skipWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.SkipWhileIterable$(E))(this,test)}get first(){let it=this[dartx.iterator];if(!dart.notNull(it.moveNext())){dart.throw(_internal.IterableElementError.noElement())}return it.current}get last(){let it=this[dartx.iterator];if(!dart.notNull(it.moveNext())){dart.throw(_internal.IterableElementError.noElement())}let result=null;do{result=it.current}while(dart.notNull(it.moveNext()));return result}get single(){let it=this[dartx.iterator];if(!dart.notNull(it.moveNext()))dart.throw(_internal.IterableElementError.noElement());let result=it.current;if(dart.notNull(it.moveNext()))dart.throw(_internal.IterableElementError.tooMany());return result}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));for(let element of this){if(dart.notNull(test(element)))return element;}if(orElse!=null)return orElse();dart.throw(_internal.IterableElementError.noElement())}lastWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let result=null;let foundMatching=false;for(let element of this){if(dart.notNull(test(element))){result=element;foundMatching=true}}if(dart.notNull(foundMatching))return result;if(orElse!=null)return orElse();dart.throw(_internal.IterableElementError.noElement())}singleWhere(test){dart.as(test,dart.functionType(core.bool,[E]));let result=null;let foundMatching=false;for(let element of this){if(dart.notNull(test(element))){if(dart.notNull(foundMatching)){dart.throw(_internal.IterableElementError.tooMany())}result=element;foundMatching=true}}if(dart.notNull(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.notNull(elementIndex)+1}dart.throw(core.RangeError.index(index,this,"index",null,elementIndex))}toString(){return IterableBase$().iterableToShortString(this,'(',')')}static iterableToShortString(iterable,leftDelimiter,rightDelimiter){if(leftDelimiter===void 0)leftDelimiter='(';if(rightDelimiter===void 0)rightDelimiter=')';if(dart.notNull(IterableBase$()._isToStringVisiting(iterable))){if(leftDelimiter=="("&&rightDelimiter==")"){return "(...)"}return `${leftDelimiter }...${rightDelimiter }`}let parts=[];IterableBase$()._toStringVisiting[dartx.add](iterable);try{IterableBase$()._iterablePartsToStrings(iterable,parts)}finally{dart.assert(core.identical(IterableBase$()._toStringVisiting[dartx.last],iterable));IterableBase$()._toStringVisiting[dartx.removeLast]()}return dart.toString((()=>{let _=new core.StringBuffer(leftDelimiter);_.writeAll(parts,", ");_.write(rightDelimiter);return _})())}static iterableToFullString(iterable,leftDelimiter,rightDelimiter){if(leftDelimiter===void 0)leftDelimiter='(';if(rightDelimiter===void 0)rightDelimiter=')';if(dart.notNull(IterableBase$()._isToStringVisiting(iterable))){return `${leftDelimiter }...${rightDelimiter }`}let buffer=new core.StringBuffer(leftDelimiter);IterableBase$()._toStringVisiting[dartx.add](iterable);try{buffer.writeAll(iterable,", ")}finally{dart.assert(core.identical(IterableBase$()._toStringVisiting[dartx.last],iterable));IterableBase$()._toStringVisiting[dartx.removeLast]()}buffer.write(rightDelimiter);return dart.toString(buffer)}static _isToStringVisiting(o){for(let i=0;dart.notNull(i)<dart.notNull(IterableBase$()._toStringVisiting[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(core.identical(o,IterableBase$()._toStringVisiting[dartx.get](i))))return true;}return false}static _iterablePartsToStrings(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)<dart.notNull(LENGTH_LIMIT)||dart.notNull(count)<dart.notNull(HEAD_COUNT)){if(!dart.notNull(it.moveNext()))return;let next=`${it.current }`;parts[dartx.add](next);length=dart.notNull(length)+(dart.notNull(next[dartx.length])+dart.notNull(OVERHEAD));count=dart.notNull(count)+1}let penultimateString=null;let ultimateString=null;let penultimate=null;let ultimate=null;if(!dart.notNull(it.moveNext())){if(dart.notNull(count)<=dart.notNull(HEAD_COUNT)+dart.notNull(TAIL_COUNT))return;ultimateString=dart.as(parts[dartx.removeLast](),core.String);penultimateString=dart.as(parts[dartx.removeLast](),core.String)}else{penultimate=it.current;count=dart.notNull(count)+1;if(!dart.notNull(it.moveNext())){if(dart.notNull(count)<=dart.notNull(HEAD_COUNT)+1){parts[dartx.add](`${penultimate }`);return}ultimateString=`${penultimate }`;penultimateString=dart.as(parts[dartx.removeLast](),core.String);length=dart.notNull(length)+(dart.notNull(ultimateString[dartx.length])+dart.notNull(OVERHEAD))}else{ultimate=it.current;count=dart.notNull(count)+1;dart.assert(dart.notNull(count)<dart.notNull(MAX_COUNT));while(dart.notNull(it.moveNext())){penultimate=ultimate;ultimate=it.current;count=dart.notNull(count)+1;if(dart.notNull(count)>dart.notNull(MAX_COUNT)){while(dart.notNull(length)>dart.notNull(LENGTH_LIMIT)-dart.notNull(ELLIPSIS_SIZE)-dart.notNull(OVERHEAD)&&dart.notNull(count)>dart.notNull(HEAD_COUNT)){length=dart.notNull(length)-dart.notNull(dart.as(dart.dsend(dart.dload(parts[dartx.removeLast](),'length'),'+',OVERHEAD),core.int));count=dart.notNull(count)-1}parts[dartx.add]("...");return}}penultimateString=`${penultimate }`;ultimateString=`${ultimate }`;length=dart.notNull(length)+(dart.notNull(ultimateString[dartx.length])+dart.notNull(penultimateString[dartx.length])+2*dart.notNull(OVERHEAD))}}let elision=null;if(dart.notNull(count)>dart.notNull(parts[dartx.length])+dart.notNull(TAIL_COUNT)){elision="...";length=dart.notNull(length)+(dart.notNull(ELLIPSIS_SIZE)+dart.notNull(OVERHEAD))}while(dart.notNull(length)>dart.notNull(LENGTH_LIMIT)&&dart.notNull(parts[dartx.length])>dart.notNull(HEAD_COUNT)){length=dart.notNull(length)-dart.notNull(dart.as(dart.dsend(dart.dload(parts[dartx.removeLast](),'length'),'+',OVERHEAD),core.int));if(elision==null){elision="...";length=dart.notNull(length)+(dart.notNull(ELLIPSIS_SIZE)+dart.notNull(OVERHEAD))}}if(elision!=null){parts[dartx.add](elision)}parts[dartx.add](penultimateString);parts[dartx.add](ultimateString)}[Symbol.iterator](){return new dart.JsIterator(this.iterator)}}IterableBase[dart.implements]=()=>[core.Iterable$(E)];dart.setSignature(IterableBase,{constructors:()=>({IterableBase:[IterableBase$(E),[]]}),methods:()=>({any:[core.bool,[dart.functionType(core.bool,[E])]],contains:[core.bool,[core.Object]],elementAt:[E,[core.int]],every:[core.bool,[dart.functionType(core.bool,[E])]],expand:[core.Iterable,[dart.functionType(core.Iterable,[E])]],firstWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],fold:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],join:[core.String,[],[core.String]],lastWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],map:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],reduce:[E,[dart.functionType(E,[E,E])]],singleWhere:[E,[dart.functionType(core.bool,[E])]],skip:[core.Iterable$(E),[core.int]],skipWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],take:[core.Iterable$(E),[core.int]],takeWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}],toSet:[core.Set$(E),[]],where:[core.Iterable$(E),[dart.functionType(core.bool,[E])]]}),names:['iterableToShortString','iterableToFullString','_isToStringVisiting','_iterablePartsToStrings'],statics:()=>({_isToStringVisiting:[core.bool,[core.Object]],_iterablePartsToStrings:[dart.void,[core.Iterable,core.List]],iterableToFullString:[core.String,[core.Iterable],[core.String,core.String]],iterableToShortString:[core.String,[core.Iterable],[core.String,core.String]]})});dart.defineExtensionMembers(IterableBase,['map','where','expand','contains','forEach','reduce','fold','every','join','any','toList','toSet','take','takeWhile','skip','skipWhile','firstWhere','lastWhere','singleWhere','elementAt','length','isEmpty','isNotEmpty','first','last','single']);return IterableBase});let IterableBase=IterableBase$();dart.defineLazyProperties(IterableBase,{get _toStringVisiting(){return[]}});let _iterator=Symbol('_iterator');let _state=Symbol('_state');let _move=Symbol('_move');let HasNextIterator$=dart.generic(function(E){class HasNextIterator extends core.Object{HasNextIterator(iterator){this[_iterator]=iterator;this[_state]=HasNextIterator$()._NOT_MOVED_YET}get hasNext(){if(this[_state]==HasNextIterator$()._NOT_MOVED_YET)this[_move]();return this[_state]==HasNextIterator$()._HAS_NEXT_AND_NEXT_IN_CURRENT}next(){if(!dart.notNull(this.hasNext))dart.throw(new core.StateError("No more elements"));dart.assert(this[_state]==HasNextIterator$()._HAS_NEXT_AND_NEXT_IN_CURRENT);let result=dart.as(this[_iterator].current,E);this[_move]();return result}[_move](){if(dart.notNull(this[_iterator].moveNext())){this[_state]=HasNextIterator$()._HAS_NEXT_AND_NEXT_IN_CURRENT}else{this[_state]=HasNextIterator$()._NO_NEXT}}}dart.setSignature(HasNextIterator,{constructors:()=>({HasNextIterator:[HasNextIterator$(E),[core.Iterator]]}),methods:()=>({[_move]:[dart.void,[]],next:[E,[]]})});return HasNextIterator});let HasNextIterator=HasNextIterator$();HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT=0;HasNextIterator._NO_NEXT=1;HasNextIterator._NOT_MOVED_YET=2;let LinkedHashMap$=dart.generic(function(K,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 new(_LinkedHashMap$(K,V))()}hashCode=_defaultHashCode}else{if(dart.notNull(core.identical(core.identityHashCode,hashCode))&&dart.notNull(core.identical(core.identical,equals))){return new(_LinkedIdentityHashMap$(K,V))()}if(equals==null){equals=_defaultEquals}}}else{if(hashCode==null){hashCode=_defaultHashCode}if(equals==null){equals=_defaultEquals}}return new(_LinkedCustomHashMap$(K,V))(equals,hashCode,isValidKey)}static identity(){return new(_LinkedIdentityHashMap$(K,V))()}static from(other){let result=LinkedHashMap$(K,V).new();other.forEach(dart.fn((k,v)=>{result.set(dart.as(k,K),dart.as(v,V))}));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=LinkedHashMap$(K,V).new();Maps._fillMapWithMappedIterable(map,iterable,key,value);return map}static fromIterables(keys,values){let map=LinkedHashMap$(K,V).new();Maps._fillMapWithIterables(map,keys,values);return map}static _literal(keyValuePairs){return dart.as(_js_helper.fillLiteralMap(keyValuePairs,new(_LinkedHashMap$(K,V))()),LinkedHashMap$(K,V))}static _empty(){return new(_LinkedHashMap$(K,V))()}}LinkedHashMap[dart.implements]=()=>[HashMap$(K,V)];dart.setSignature(LinkedHashMap,{constructors:()=>({_empty:[LinkedHashMap$(K,V),[]],_literal:[LinkedHashMap$(K,V),[core.List]],from:[LinkedHashMap$(K,V),[core.Map]],fromIterable:[LinkedHashMap$(K,V),[core.Iterable],{key:dart.functionType(K,[dart.dynamic]),value:dart.functionType(V,[dart.dynamic])}],fromIterables:[LinkedHashMap$(K,V),[core.Iterable$(K),core.Iterable$(V)]],identity:[LinkedHashMap$(K,V),[]],new:[LinkedHashMap$(K,V),[],{equals:dart.functionType(core.bool,[K,K]),hashCode:dart.functionType(core.int,[K]),isValidKey:dart.functionType(core.bool,[core.Object])}]})});return LinkedHashMap});let LinkedHashMap=LinkedHashMap$();let LinkedHashSet$=dart.generic(function(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(_LinkedHashSet$(E))()}hashCode=_defaultHashCode}else{if(dart.notNull(core.identical(core.identityHashCode,hashCode))&&dart.notNull(core.identical(core.identical,equals))){return new(_LinkedIdentityHashSet$(E))()}if(equals==null){equals=_defaultEquals}}}else{if(hashCode==null){hashCode=_defaultHashCode}if(equals==null){equals=_defaultEquals}}return new(_LinkedCustomHashSet$(E))(equals,hashCode,isValidKey)}static identity(){return new(_LinkedIdentityHashSet$(E))()}static from(elements){let result=LinkedHashSet$(E).new();for(let element of elements){result.add(element)}return result}[Symbol.iterator](){return new dart.JsIterator(this.iterator)}}LinkedHashSet[dart.implements]=()=>[HashSet$(E)];dart.setSignature(LinkedHashSet,{constructors:()=>({from:[LinkedHashSet$(E),[core.Iterable$(E)]],identity:[LinkedHashSet$(E),[]],new:[LinkedHashSet$(E),[],{equals:dart.functionType(core.bool,[E,E]),hashCode:dart.functionType(core.int,[E]),isValidKey:dart.functionType(core.bool,[core.Object])}]})});return LinkedHashSet});let LinkedHashSet=LinkedHashSet$();let _modificationCount=Symbol('_modificationCount');let _length=Symbol('_length');let _next=Symbol('_next');let _previous=Symbol('_previous');let _insertAfter=Symbol('_insertAfter');let _list=Symbol('_list');let _unlink=Symbol('_unlink');let LinkedList$=dart.generic(function(E){class LinkedList extends IterableBase$(E){LinkedList(){this[_modificationCount]=0;this[_length]=0;this[_next]=null;this[_previous]=null;super.IterableBase();this[_next]=this[_previous]=this}addFirst(entry){dart.as(entry,E);this[_insertAfter](this,entry)}add(entry){dart.as(entry,E);this[_insertAfter](this[_previous],entry)}addAll(entries){dart.as(entries,core.Iterable$(E));entries[dartx.forEach](dart.fn(entry=>this[_insertAfter](this[_previous],dart.as(entry,E)),dart.void,[dart.dynamic]))}remove(entry){dart.as(entry,E);if(!dart.equals(entry[_list],this))return false;this[_unlink](entry);return true}get iterator(){return new(_LinkedListIterator$(E))(this)}get length(){return this[_length]}clear(){this[_modificationCount]=dart.notNull(this[_modificationCount])+1;let next=this[_next];while(!dart.notNull(core.identical(next,this))){let entry=dart.as(next,E);next=entry[_next];entry[_next]=entry[_previous]=entry[_list]=null}this[_next]=this[_previous]=this;this[_length]=0}get first(){if(dart.notNull(core.identical(this[_next],this))){dart.throw(new core.StateError('No such element'))}return dart.as(this[_next],E)}get last(){if(dart.notNull(core.identical(this[_previous],this))){dart.throw(new core.StateError('No such element'))}return dart.as(this[_previous],E)}get single(){if(dart.notNull(core.identical(this[_previous],this))){dart.throw(new core.StateError('No such element'))}if(!dart.notNull(core.identical(this[_previous],this[_next]))){dart.throw(new core.StateError('Too many elements'))}return dart.as(this[_next],E)}forEach(action){dart.as(action,dart.functionType(dart.void,[E]));let modificationCount=this[_modificationCount];let current=this[_next];while(!dart.notNull(core.identical(current,this))){action(dart.as(current,E));if(modificationCount!=this[_modificationCount]){dart.throw(new core.ConcurrentModificationError(this))}current=current[_next]}}get isEmpty(){return this[_length]==0}[_insertAfter](entry,newEntry){dart.as(newEntry,E);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;let predecessor=entry;let successor=entry[_next];successor[_previous]=newEntry;newEntry[_previous]=predecessor;newEntry[_next]=successor;predecessor[_next]=newEntry;this[_length]=dart.notNull(this[_length])+1}[_unlink](entry){dart.as(entry,LinkedListEntry$(E));this[_modificationCount]=dart.notNull(this[_modificationCount])+1;entry[_next][_previous]=entry[_previous];entry[_previous][_next]=entry[_next];this[_length]=dart.notNull(this[_length])-1;entry[_list]=entry[_next]=entry[_previous]=null}}LinkedList[dart.implements]=()=>[_LinkedListLink];dart.setSignature(LinkedList,{constructors:()=>({LinkedList:[LinkedList$(E),[]]}),methods:()=>({[_unlink]:[dart.void,[LinkedListEntry$(E)]],[_insertAfter]:[dart.void,[_LinkedListLink,E]],add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],addFirst:[dart.void,[E]],clear:[dart.void,[]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],remove:[core.bool,[E]]})});dart.defineExtensionMembers(LinkedList,['forEach','iterator','length','first','last','single','isEmpty']);return LinkedList});let LinkedList=LinkedList$();let _current=Symbol('_current');let _LinkedListIterator$=dart.generic(function(E){class _LinkedListIterator extends core.Object{_LinkedListIterator(list){this[_list]=list;this[_modificationCount]=list[_modificationCount];this[_next]=list[_next];this[_current]=null}get current(){return this[_current]}moveNext(){if(dart.notNull(core.identical(this[_next],this[_list]))){this[_current]=null;return false}if(this[_modificationCount]!=this[_list][_modificationCount]){dart.throw(new core.ConcurrentModificationError(this))}this[_current]=dart.as(this[_next],E);this[_next]=this[_next][_next];return true}}_LinkedListIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(_LinkedListIterator,{constructors:()=>({_LinkedListIterator:[_LinkedListIterator$(E),[LinkedList$(E)]]}),methods:()=>({moveNext:[core.bool,[]]})});return _LinkedListIterator});let _LinkedListIterator=_LinkedListIterator$();class _LinkedListLink extends core.Object{_LinkedListLink(){this[_next]=null;this[_previous]=null}};let LinkedListEntry$=dart.generic(function(E){class LinkedListEntry extends core.Object{LinkedListEntry(){this[_list]=null;this[_next]=null;this[_previous]=null}get list(){return this[_list]}unlink(){this[_list][_unlink](this)}get next(){if(dart.notNull(core.identical(this[_next],this[_list])))return null;let result=dart.as(this[_next],E);return result}get previous(){if(dart.notNull(core.identical(this[_previous],this[_list])))return null;return dart.as(this[_previous],E)}insertAfter(entry){dart.as(entry,E);this[_list][_insertAfter](this,entry)}insertBefore(entry){dart.as(entry,E);this[_list][_insertAfter](this[_previous],entry)}}LinkedListEntry[dart.implements]=()=>[_LinkedListLink];dart.setSignature(LinkedListEntry,{methods:()=>({insertAfter:[dart.void,[E]],insertBefore:[dart.void,[E]],unlink:[dart.void,[]]})});return LinkedListEntry});let LinkedListEntry=LinkedListEntry$();let ListMixin$=dart.generic(function(E){class ListMixin extends core.Object{get iterator(){return new(_internal.ListIterator$(E))(this)}[Symbol.iterator](){return new dart.JsIterator(this.iterator)}elementAt(index){return this.get(index)}forEach(action){dart.as(action,dart.functionType(dart.void,[E]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){action(this.get(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}}get isEmpty(){return this[dartx.length]==0}get isNotEmpty(){return!dart.notNull(this.isEmpty)}get first(){if(this[dartx.length]==0)dart.throw(_internal.IterableElementError.noElement());return this.get(0)}get last(){if(this[dartx.length]==0)dart.throw(_internal.IterableElementError.noElement());return this.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.get(0)}contains(element){let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(this.length);i=dart.notNull(i)+1){if(dart.equals(this.get(i),element))return true;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return false}every(test){dart.as(test,dart.functionType(core.bool,[E]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(!dart.notNull(test(this.get(i))))return false;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return true}any(test){dart.as(test,dart.functionType(core.bool,[E]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(dart.notNull(test(this.get(i))))return true;if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return false}firstWhere(test,opts){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let element=this.get(i);if(dart.notNull(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){dart.as(test,dart.functionType(core.bool,[E]));let orElse=opts&&'orElse'in opts?opts.orElse:null;dart.as(orElse,dart.functionType(E,[]));let length=this.length;for(let i=dart.notNull(length)-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){let element=this.get(i);if(dart.notNull(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){dart.as(test,dart.functionType(core.bool,[E]));let length=this.length;let match=null;let matchFound=false;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let element=this.get(i);if(dart.notNull(test(element))){if(dart.notNull(matchFound)){dart.throw(_internal.IterableElementError.tooMany())}matchFound=true;match=element}if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}if(dart.notNull(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 dart.toString(buffer)}where(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.WhereIterable$(E))(this,test)}map(f){dart.as(f,dart.functionType(dart.dynamic,[E]));return new _internal.MappedListIterable(this,f)}expand(f){dart.as(f,dart.functionType(core.Iterable,[E]));return new(_internal.ExpandIterable$(E,dart.dynamic))(this,f)}reduce(combine){dart.as(combine,dart.functionType(E,[E,E]));let length=this.length;if(length==0)dart.throw(_internal.IterableElementError.noElement());let value=this.get(0);for(let i=1;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){value=combine(value,this.get(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return value}fold(initialValue,combine){dart.as(combine,dart.functionType(dart.dynamic,[dart.dynamic,E]));let value=initialValue;let length=this.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){value=dart.dcall(combine,value,this.get(i));if(length!=this.length){dart.throw(new core.ConcurrentModificationError(this))}}return value}skip(count){return new(_internal.SubListIterable$(E))(this,count,null)}skipWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.SkipWhileIterable$(E))(this,test)}take(count){return new(_internal.SubListIterable$(E))(this,0,count)}takeWhile(test){dart.as(test,dart.functionType(core.bool,[E]));return new(_internal.TakeWhileIterable$(E))(this,test)}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;let result=null;if(dart.notNull(growable)){result=core.List$(E).new();result[dartx.length]=this[dartx.length]}else{result=core.List$(E).new(this[dartx.length])}for(let i=0;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){result[dartx.set](i,this.get(i))}return result}toSet(){let result=core.Set$(E).new();for(let i=0;dart.notNull(i)<dart.notNull(this[dartx.length]);i=dart.notNull(i)+1){result.add(this.get(i))}return result}add(element){dart.as(element,E);this.set((()=>{let x=this.length;this.length=dart.notNull(x)+1;return x})(),element)}addAll(iterable){dart.as(iterable,core.Iterable$(E));for(let element of iterable){this.set((()=>{let x=this.length;this.length=dart.notNull(x)+1;return x})(),element)}}remove(element){for(let i=0;dart.notNull(i)<dart.notNull(this.length);i=dart.notNull(i)+1){if(dart.equals(this.get(i),element)){this.setRange(i,dart.notNull(this.length)-1,this,dart.notNull(i)+1);this.length=dart.notNull(this.length)-1;return true}}return false}removeWhere(test){dart.as(test,dart.functionType(core.bool,[E]));ListMixin$()._filter(this,test,false)}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));ListMixin$()._filter(this,test,true)}static _filter(source,test,retainMatching){dart.as(test,dart.functionType(core.bool,[dart.dynamic]));let retained=[];let length=source[dartx.length];for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){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.length=0}removeLast(){if(this[dartx.length]==0){dart.throw(_internal.IterableElementError.noElement())}let result=this.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;dart.as(compare,dart.functionType(core.int,[E,E]));_internal.Sort.sort(this,compare==null?core.Comparable.compare:compare)}shuffle(random){if(random===void 0)random=null;if(random==null)random=math.Random.new();let length=this.length;while(dart.notNull(length)>1){let pos=random.nextInt(length);length=dart.notNull(length)-1;let tmp=this.get(length);this.set(length,this.get(pos));this.set(pos,tmp)}}asMap(){return new(_internal.ListMapView$(E))(this)}sublist(start,end){if(end===void 0)end=null;let listLength=this.length;if(end==null)end=listLength;core.RangeError.checkValidRange(start,end,listLength);let length=dart.notNull(end)-dart.notNull(start);let result=core.List$(E).new();result[dartx.length]=length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){result[dartx.set](i,this.get(dart.notNull(start)+dart.notNull(i)))}return result}getRange(start,end){core.RangeError.checkValidRange(start,end,this.length);return new(_internal.SubListIterable$(E))(this,start,end)}removeRange(start,end){core.RangeError.checkValidRange(start,end,this.length);let length=dart.notNull(end)-dart.notNull(start);this.setRange(start,dart.notNull(this.length)-dart.notNull(length),this,end);this.length=dart.notNull(this.length)-dart.notNull(length)}fillRange(start,end,fill){if(fill===void 0)fill=null;dart.as(fill,E);core.RangeError.checkValidRange(start,end,this.length);for(let i=start;dart.notNull(i)<dart.notNull(end);i=dart.notNull(i)+1){this.set(i,fill)}}setRange(start,end,iterable,skipCount){dart.as(iterable,core.Iterable$(E));if(skipCount===void 0)skipCount=0;core.RangeError.checkValidRange(start,end,this.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(dart.is(iterable,core.List)){otherList=dart.as(iterable,core.List);otherStart=skipCount}else{otherList=iterable[dartx.skip](skipCount)[dartx.toList]({growable:false});otherStart=0}if(dart.notNull(otherStart)+dart.notNull(length)>dart.notNull(otherList[dartx.length])){dart.throw(_internal.IterableElementError.tooFew())}if(dart.notNull(otherStart)<dart.notNull(start)){for(let i=dart.notNull(length)-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){this.set(dart.notNull(start)+dart.notNull(i),dart.as(otherList[dartx.get](dart.notNull(otherStart)+dart.notNull(i)),E))}}else{for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){this.set(dart.notNull(start)+dart.notNull(i),dart.as(otherList[dartx.get](dart.notNull(otherStart)+dart.notNull(i)),E))}}}replaceRange(start,end,newContents){dart.as(newContents,core.Iterable$(E));core.RangeError.checkValidRange(start,end,this.length);if(!dart.is(newContents,_internal.EfficientLength)){newContents=newContents[dartx.toList]()}let removeLength=dart.notNull(end)-dart.notNull(start);let insertLength=newContents[dartx.length];if(dart.notNull(removeLength)>=dart.notNull(insertLength)){let delta=dart.notNull(removeLength)-dart.notNull(insertLength);let insertEnd=dart.notNull(start)+dart.notNull(insertLength);let newLength=dart.notNull(this.length)-dart.notNull(delta);this.setRange(start,insertEnd,newContents);if(delta!=0){this.setRange(insertEnd,newLength,this,end);this.length=newLength}}else{let delta=dart.notNull(insertLength)-dart.notNull(removeLength);let newLength=dart.notNull(this.length)+dart.notNull(delta);let insertEnd=dart.notNull(start)+dart.notNull(insertLength);this.length=newLength;this.setRange(insertEnd,newLength,this,end);this.setRange(start,insertEnd,newContents)}}indexOf(element,startIndex){if(startIndex===void 0)startIndex=0;if(dart.notNull(startIndex)>=dart.notNull(this.length)){return -1}if(dart.notNull(startIndex)<0){startIndex=0}for(let i=startIndex;dart.notNull(i)<dart.notNull(this.length);i=dart.notNull(i)+1){if(dart.equals(this.get(i),element)){return i}}return -1}lastIndexOf(element,startIndex){if(startIndex===void 0)startIndex=null;if(startIndex==null){startIndex=dart.notNull(this.length)-1}else{if(dart.notNull(startIndex)<0){return -1}if(dart.notNull(startIndex)>=dart.notNull(this.length)){startIndex=dart.notNull(this.length)-1}}for(let i=startIndex;dart.notNull(i)>=0;i=dart.notNull(i)-1){if(dart.equals(this.get(i),element)){return i}}return -1}insert(index,element){dart.as(element,E);core.RangeError.checkValueInInterval(index,0,this[dartx.length],"index");if(index==this.length){this.add(element);return}if(!(typeof index=='number'))dart.throw(new core.ArgumentError(index));this.length=dart.notNull(this.length)+1;this.setRange(dart.notNull(index)+1,this.length,this,index);this.set(index,element)}removeAt(index){let result=this.get(index);this.setRange(index,dart.notNull(this.length)-1,this,dart.notNull(index)+1);this[dartx.length]=dart.notNull(this[dartx.length])-1;return result}insertAll(index,iterable){dart.as(iterable,core.Iterable$(E));core.RangeError.checkValueInInterval(index,0,this[dartx.length],"index");if(dart.is(iterable,_internal.EfficientLength)){iterable=iterable[dartx.toList]()}let insertionLength=iterable[dartx.length];this.length=dart.notNull(this.length)+dart.notNull(insertionLength);this.setRange(dart.notNull(index)+dart.notNull(insertionLength),this.length,this,index);this.setAll(index,iterable)}setAll(index,iterable){dart.as(iterable,core.Iterable$(E));if(dart.is(iterable,core.List)){this.setRange(index,dart.notNull(index)+dart.notNull(iterable[dartx.length]),iterable)}else{for(let element of iterable){this.set((()=>{let x=index;index=dart.notNull(x)+1;return x})(),element)}}}get reversed(){return new(_internal.ReversedListIterable$(E))(this)}toString(){return IterableBase.iterableToFullString(this,'[',']')}}ListMixin[dart.implements]=()=>[core.List$(E)];dart.setSignature(ListMixin,{methods:()=>({add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],any:[core.bool,[dart.functionType(core.bool,[E])]],asMap:[core.Map$(core.int,E),[]],clear:[dart.void,[]],contains:[core.bool,[core.Object]],elementAt:[E,[core.int]],every:[core.bool,[dart.functionType(core.bool,[E])]],expand:[core.Iterable,[dart.functionType(core.Iterable,[E])]],fillRange:[dart.void,[core.int,core.int],[E]],firstWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],fold:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,E])]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],getRange:[core.Iterable$(E),[core.int,core.int]],indexOf:[core.int,[core.Object],[core.int]],insert:[dart.void,[core.int,E]],insertAll:[dart.void,[core.int,core.Iterable$(E)]],join:[core.String,[],[core.String]],lastIndexOf:[core.int,[core.Object],[core.int]],lastWhere:[E,[dart.functionType(core.bool,[E])],{orElse:dart.functionType(E,[])}],map:[core.Iterable,[dart.functionType(dart.dynamic,[E])]],reduce:[E,[dart.functionType(E,[E,E])]],remove:[core.bool,[core.Object]],removeAt:[E,[core.int]],removeLast:[E,[]],removeRange:[dart.void,[core.int,core.int]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],replaceRange:[dart.void,[core.int,core.int,core.Iterable$(E)]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]],setAll:[dart.void,[core.int,core.Iterable$(E)]],setRange:[dart.void,[core.int,core.int,core.Iterable$(E)],[core.int]],shuffle:[dart.void,[],[math.Random]],singleWhere:[E,[dart.functionType(core.bool,[E])]],skip:[core.Iterable$(E),[core.int]],skipWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],sort:[dart.void,[],[dart.functionType(core.int,[E,E])]],sublist:[core.List$(E),[core.int],[core.int]],take:[core.Iterable$(E),[core.int]],takeWhile:[core.Iterable$(E),[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}],toSet:[core.Set$(E),[]],where:[core.Iterable$(E),[dart.functionType(core.bool,[E])]]}),names:['_filter'],statics:()=>({_filter:[dart.void,[core.List,dart.functionType(core.bool,[dart.dynamic]),core.bool]]})});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','iterator','isEmpty','isNotEmpty','first','last','single','reversed']);return ListMixin});let ListMixin=ListMixin$();let ListBase$=dart.generic(function(E){class ListBase extends dart.mixin(core.Object,ListMixin$(E)){static listToString(list){return IterableBase.iterableToFullString(list,'[',']')}}dart.setSignature(ListBase,{names:['listToString'],statics:()=>({listToString:[core.String,[core.List]]})});return ListBase});let ListBase=ListBase$();let MapMixin$=dart.generic(function(K,V){class MapMixin extends core.Object{forEach(action){dart.as(action,dart.functionType(dart.void,[K,V]));for(let key of this.keys){action(key,this.get(key))}}addAll(other){dart.as(other,core.Map$(K,V));for(let key of other.keys){this.set(key,other.get(key))}}containsValue(value){for(let key of this.keys){if(dart.equals(this.get(key),value))return true;}return false}putIfAbsent(key,ifAbsent){dart.as(key,K);dart.as(ifAbsent,dart.functionType(V,[]));if(dart.notNull(this.keys[dartx.contains](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(_MapBaseValueIterable$(V))(this)}toString(){return Maps.mapToString(this)}}MapMixin[dart.implements]=()=>[core.Map$(K,V)];dart.setSignature(MapMixin,{methods:()=>({addAll:[dart.void,[core.Map$(K,V)]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[K,V])]],putIfAbsent:[V,[K,dart.functionType(V,[])]]})});return MapMixin});let MapMixin=MapMixin$();let MapBase$=dart.generic(function(K,V){class MapBase extends dart.mixin(core.Object,MapMixin$(K,V)){}return MapBase});let MapBase=MapBase$();let _UnmodifiableMapMixin$=dart.generic(function(K,V){class _UnmodifiableMapMixin extends core.Object{set(key,value){dart.as(key,K);dart.as(value,V);dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"))}addAll(other){dart.as(other,core.Map$(K,V));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){dart.as(key,K);dart.as(ifAbsent,dart.functionType(V,[]));dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"))}}_UnmodifiableMapMixin[dart.implements]=()=>[core.Map$(K,V)];dart.setSignature(_UnmodifiableMapMixin,{methods:()=>({addAll:[dart.void,[core.Map$(K,V)]],clear:[dart.void,[]],putIfAbsent:[V,[K,dart.functionType(V,[])]],remove:[V,[core.Object]],set:[dart.void,[K,V]]})});return _UnmodifiableMapMixin});let _UnmodifiableMapMixin=_UnmodifiableMapMixin$();let UnmodifiableMapBase$=dart.generic(function(K,V){class UnmodifiableMapBase extends dart.mixin(MapBase$(K,V),_UnmodifiableMapMixin$(K,V)){UnmodifiableMapBase(){super.MapBase(...arguments)}}return UnmodifiableMapBase});let UnmodifiableMapBase=UnmodifiableMapBase$();let _map=Symbol('_map');let _MapBaseValueIterable$=dart.generic(function(V){class _MapBaseValueIterable extends IterableBase$(V){_MapBaseValueIterable(map){this[_map]=map;super.IterableBase()}get length(){return this[_map].length}get isEmpty(){return this[_map].isEmpty}get isNotEmpty(){return this[_map].isNotEmpty}get first(){return dart.as(this[_map].get(this[_map].keys[dartx.first]),V)}get single(){return dart.as(this[_map].get(this[_map].keys[dartx.single]),V)}get last(){return dart.as(this[_map].get(this[_map].keys[dartx.last]),V)}get iterator(){return new(_MapBaseValueIterator$(V))(this[_map])}}_MapBaseValueIterable[dart.implements]=()=>[_internal.EfficientLength];dart.setSignature(_MapBaseValueIterable,{constructors:()=>({_MapBaseValueIterable:[_MapBaseValueIterable$(V),[core.Map]]})});dart.defineExtensionMembers(_MapBaseValueIterable,['length','isEmpty','isNotEmpty','first','single','last','iterator']);return _MapBaseValueIterable});let _MapBaseValueIterable=_MapBaseValueIterable$();let _keys=Symbol('_keys');let _MapBaseValueIterator$=dart.generic(function(V){class _MapBaseValueIterator extends core.Object{_MapBaseValueIterator(map){this[_map]=map;this[_keys]=map.keys[dartx.iterator];this[_current]=null}moveNext(){if(dart.notNull(this[_keys].moveNext())){this[_current]=dart.as(this[_map].get(this[_keys].current),V);return true}this[_current]=null;return false}get current(){return this[_current]}}_MapBaseValueIterator[dart.implements]=()=>[core.Iterator$(V)];dart.setSignature(_MapBaseValueIterator,{constructors:()=>({_MapBaseValueIterator:[_MapBaseValueIterator$(V),[core.Map]]}),methods:()=>({moveNext:[core.bool,[]]})});return _MapBaseValueIterator});let _MapBaseValueIterator=_MapBaseValueIterator$();let MapView$=dart.generic(function(K,V){class MapView extends core.Object{MapView(map){this[_map]=map}get(key){return this[_map].get(key)}set(key,value){dart.as(key,K);dart.as(value,V);this[_map].set(key,value)}addAll(other){dart.as(other,core.Map$(K,V));this[_map].addAll(other)}clear(){this[_map].clear()}putIfAbsent(key,ifAbsent){dart.as(key,K);dart.as(ifAbsent,dart.functionType(V,[]));return this[_map].putIfAbsent(key,ifAbsent)}containsKey(key){return this[_map].containsKey(key)}containsValue(value){return this[_map].containsValue(value)}forEach(action){dart.as(action,dart.functionType(dart.void,[K,V]));this[_map].forEach(action)}get isEmpty(){return this[_map].isEmpty}get isNotEmpty(){return this[_map].isNotEmpty}get length(){return this[_map].length}get keys(){return this[_map].keys}remove(key){return this[_map].remove(key)}toString(){return dart.toString(this[_map])}get values(){return this[_map].values}}MapView[dart.implements]=()=>[core.Map$(K,V)];dart.setSignature(MapView,{constructors:()=>({MapView:[MapView$(K,V),[core.Map$(K,V)]]}),methods:()=>({addAll:[dart.void,[core.Map$(K,V)]],clear:[dart.void,[]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[K,V])]],get:[V,[core.Object]],putIfAbsent:[V,[K,dart.functionType(V,[])]],remove:[V,[core.Object]],set:[dart.void,[K,V]]})});return MapView});let MapView=MapView$();let UnmodifiableMapView$=dart.generic(function(K,V){class UnmodifiableMapView extends dart.mixin(MapView$(K,V),_UnmodifiableMapMixin$(K,V)){UnmodifiableMapView(){super.MapView(...arguments)}}return UnmodifiableMapView});let UnmodifiableMapView=UnmodifiableMapView$();class Maps extends core.Object{static containsValue(map,value){for(let v of map.values){if(dart.equals(value,v)){return true}}return false}static containsKey(map,key){for(let k of map.keys){if(dart.equals(key,k)){return true}}return false}static putIfAbsent(map,key,ifAbsent){if(dart.notNull(map.containsKey(key))){return map.get(key)}let v=ifAbsent();map.set(key,v);return v}static clear(map){for(let k of map.keys[dartx.toList]()){map.remove(k)}}static forEach(map,f){for(let k of map.keys){dart.dcall(f,k,map.get(k))}}static getValues(map){return map.keys[dartx.map](dart.fn(key=>map.get(key)))}static length(map){return map.keys[dartx.length]}static isEmpty(map){return map.keys[dartx.isEmpty]}static isNotEmpty(map){return map.keys[dartx.isNotEmpty]}static mapToString(m){if(dart.notNull(IterableBase._isToStringVisiting(m))){return '{...}'}let result=new core.StringBuffer();try{IterableBase._toStringVisiting[dartx.add](m);result.write('{');let first=true;m.forEach(dart.fn((k,v)=>{if(!dart.notNull(first)){result.write(', ')}first=false;result.write(k);result.write(': ');result.write(v)}));result.write('}')}finally{dart.assert(core.identical(IterableBase._toStringVisiting[dartx.last],m));IterableBase._toStringVisiting[dartx.removeLast]()}return dart.toString(result)}static _id(x){return x}static _fillMapWithMappedIterable(map,iterable,key,value){if(key==null)key=Maps._id;if(value==null)value=Maps._id;for(let element of iterable){map.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.notNull(hasNextKey)&&dart.notNull(hasNextValue)){map.set(keyIterator.current,valueIterator.current);hasNextKey=keyIterator.moveNext();hasNextValue=valueIterator.moveNext()}if(dart.notNull(hasNextKey)||dart.notNull(hasNextValue)){dart.throw(new core.ArgumentError("Iterables do not have same length."))}}};dart.setSignature(Maps,{names:['containsValue','containsKey','putIfAbsent','clear','forEach','getValues','length','isEmpty','isNotEmpty','mapToString','_id','_fillMapWithMappedIterable','_fillMapWithIterables'],statics:()=>({_fillMapWithIterables:[dart.void,[core.Map,core.Iterable,core.Iterable]],_fillMapWithMappedIterable:[dart.void,[core.Map,core.Iterable,dart.functionType(dart.dynamic,[dart.dynamic]),dart.functionType(dart.dynamic,[dart.dynamic])]],_id:[dart.dynamic,[dart.dynamic]],clear:[dart.dynamic,[core.Map]],containsKey:[core.bool,[core.Map,dart.dynamic]],containsValue:[core.bool,[core.Map,dart.dynamic]],forEach:[dart.dynamic,[core.Map,dart.functionType(dart.void,[dart.dynamic,dart.dynamic])]],getValues:[core.Iterable,[core.Map]],isEmpty:[core.bool,[core.Map]],isNotEmpty:[core.bool,[core.Map]],length:[core.int,[core.Map]],mapToString:[core.String,[core.Map]],putIfAbsent:[dart.dynamic,[core.Map,dart.dynamic,dart.functionType(dart.dynamic,[])]]})});let Queue$=dart.generic(function(E){class Queue extends core.Object{static new(){return new(ListQueue$(E))()}static from(elements){return ListQueue$(E).from(elements)}[Symbol.iterator](){return new dart.JsIterator(this.iterator)}}Queue[dart.implements]=()=>[core.Iterable$(E),_internal.EfficientLength];dart.setSignature(Queue,{constructors:()=>({from:[Queue$(E),[core.Iterable]],new:[Queue$(E),[]]})});return Queue});let Queue=Queue$();let _element=Symbol('_element');let _link=Symbol('_link');let _asNonSentinelEntry=Symbol('_asNonSentinelEntry');let DoubleLinkedQueueEntry$=dart.generic(function(E){class DoubleLinkedQueueEntry extends core.Object{DoubleLinkedQueueEntry(e){this[_element]=e;this[_previous]=null;this[_next]=null}[_link](previous,next){dart.as(previous,DoubleLinkedQueueEntry$(E));dart.as(next,DoubleLinkedQueueEntry$(E));this[_next]=next;this[_previous]=previous;previous[_next]=this;next[_previous]=this}append(e){dart.as(e,E);new(DoubleLinkedQueueEntry$(E))(e)[_link](this,this[_next])}prepend(e){dart.as(e,E);new(DoubleLinkedQueueEntry$(E))(e)[_link](this[_previous],this)}remove(){this[_previous][_next]=this[_next];this[_next][_previous]=this[_previous];this[_next]=null;this[_previous]=null;return this[_element]}[_asNonSentinelEntry](){return this}previousEntry(){return this[_previous][_asNonSentinelEntry]()}nextEntry(){return this[_next][_asNonSentinelEntry]()}get element(){return this[_element]}set element(e){dart.as(e,E);this[_element]=e}}dart.setSignature(DoubleLinkedQueueEntry,{constructors:()=>({DoubleLinkedQueueEntry:[DoubleLinkedQueueEntry$(E),[E]]}),methods:()=>({[_asNonSentinelEntry]:[DoubleLinkedQueueEntry$(E),[]],[_link]:[dart.void,[DoubleLinkedQueueEntry$(E),DoubleLinkedQueueEntry$(E)]],append:[dart.void,[E]],nextEntry:[DoubleLinkedQueueEntry$(E),[]],prepend:[dart.void,[E]],previousEntry:[DoubleLinkedQueueEntry$(E),[]],remove:[E,[]]})});return DoubleLinkedQueueEntry});let DoubleLinkedQueueEntry=DoubleLinkedQueueEntry$();let _DoubleLinkedQueueEntrySentinel$=dart.generic(function(E){class _DoubleLinkedQueueEntrySentinel extends DoubleLinkedQueueEntry$(E){_DoubleLinkedQueueEntrySentinel(){super.DoubleLinkedQueueEntry(null);this[_link](this,this)}remove(){dart.throw(_internal.IterableElementError.noElement())}[_asNonSentinelEntry](){return null}set element(e){dart.as(e,E);dart.assert(false)}get element(){dart.throw(_internal.IterableElementError.noElement())}}dart.setSignature(_DoubleLinkedQueueEntrySentinel,{constructors:()=>({_DoubleLinkedQueueEntrySentinel:[_DoubleLinkedQueueEntrySentinel$(E),[]]}),methods:()=>({[_asNonSentinelEntry]:[DoubleLinkedQueueEntry$(E),[]],remove:[E,[]]})});return _DoubleLinkedQueueEntrySentinel});let _DoubleLinkedQueueEntrySentinel=_DoubleLinkedQueueEntrySentinel$();let _sentinel=Symbol('_sentinel');let _elementCount=Symbol('_elementCount');let _filter=Symbol('_filter');let DoubleLinkedQueue$=dart.generic(function(E){class DoubleLinkedQueue extends IterableBase$(E){DoubleLinkedQueue(){this[_sentinel]=null;this[_elementCount]=0;super.IterableBase();this[_sentinel]=new(_DoubleLinkedQueueEntrySentinel$(E))()}static from(elements){let list=new(DoubleLinkedQueue$(E))();for(let e of dart.as(elements,core.Iterable$(E))){list.addLast(e)}return dart.as(list,DoubleLinkedQueue$(E))}get length(){return this[_elementCount]}addLast(value){dart.as(value,E);this[_sentinel].prepend(value);this[_elementCount]=dart.notNull(this[_elementCount])+1}addFirst(value){dart.as(value,E);this[_sentinel].append(value);this[_elementCount]=dart.notNull(this[_elementCount])+1}add(value){dart.as(value,E);this[_sentinel].prepend(value);this[_elementCount]=dart.notNull(this[_elementCount])+1}addAll(iterable){dart.as(iterable,core.Iterable$(E));for(let value of iterable){this[_sentinel].prepend(value);this[_elementCount]=dart.notNull(this[_elementCount])+1}}removeLast(){let result=this[_sentinel][_previous].remove();this[_elementCount]=dart.notNull(this[_elementCount])-1;return result}removeFirst(){let result=this[_sentinel][_next].remove();this[_elementCount]=dart.notNull(this[_elementCount])-1;return result}remove(o){let entry=this[_sentinel][_next];while(!dart.notNull(core.identical(entry,this[_sentinel]))){if(dart.equals(entry.element,o)){entry.remove();this[_elementCount]=dart.notNull(this[_elementCount])-1;return true}entry=entry[_next]}return false}[_filter](test,removeMatching){dart.as(test,dart.functionType(core.bool,[E]));let entry=this[_sentinel][_next];while(!dart.notNull(core.identical(entry,this[_sentinel]))){let next=entry[_next];if(dart.notNull(core.identical(removeMatching,test(entry.element)))){entry.remove();this[_elementCount]=dart.notNull(this[_elementCount])-1}entry=next}}removeWhere(test){dart.as(test,dart.functionType(core.bool,[E]));this[_filter](test,true)}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));this[_filter](test,false)}get first(){return this[_sentinel][_next].element}get last(){return this[_sentinel][_previous].element}get single(){if(dart.notNull(core.identical(this[_sentinel][_next],this[_sentinel][_previous]))){return this[_sentinel][_next].element}dart.throw(_internal.IterableElementError.tooMany())}lastEntry(){return this[_sentinel].previousEntry()}firstEntry(){return this[_sentinel].nextEntry()}get isEmpty(){return core.identical(this[_sentinel][_next],this[_sentinel])}clear(){this[_sentinel][_next]=this[_sentinel];this[_sentinel][_previous]=this[_sentinel];this[_elementCount]=0}forEachEntry(f){dart.as(f,dart.functionType(dart.void,[DoubleLinkedQueueEntry$(E)]));let entry=this[_sentinel][_next];while(!dart.notNull(core.identical(entry,this[_sentinel]))){let nextEntry=entry[_next];f(entry);entry=nextEntry}}get iterator(){return new(_DoubleLinkedQueueIterator$(E))(this[_sentinel])}toString(){return IterableBase.iterableToFullString(this,'{','}')}}DoubleLinkedQueue[dart.implements]=()=>[Queue$(E)];dart.setSignature(DoubleLinkedQueue,{constructors:()=>({DoubleLinkedQueue:[DoubleLinkedQueue$(E),[]],from:[DoubleLinkedQueue$(E),[core.Iterable]]}),methods:()=>({[_filter]:[dart.void,[dart.functionType(core.bool,[E]),core.bool]],add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],addFirst:[dart.void,[E]],addLast:[dart.void,[E]],clear:[dart.void,[]],firstEntry:[DoubleLinkedQueueEntry$(E),[]],forEachEntry:[dart.void,[dart.functionType(dart.void,[DoubleLinkedQueueEntry$(E)])]],lastEntry:[DoubleLinkedQueueEntry$(E),[]],remove:[core.bool,[core.Object]],removeFirst:[E,[]],removeLast:[E,[]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]]})});dart.defineExtensionMembers(DoubleLinkedQueue,['length','first','last','single','isEmpty','iterator']);return DoubleLinkedQueue});let DoubleLinkedQueue=DoubleLinkedQueue$();let _nextEntry=Symbol('_nextEntry');let _DoubleLinkedQueueIterator$=dart.generic(function(E){class _DoubleLinkedQueueIterator extends core.Object{_DoubleLinkedQueueIterator(sentinel){this[_sentinel]=sentinel;this[_nextEntry]=sentinel[_next];this[_current]=null}moveNext(){if(!dart.notNull(core.identical(this[_nextEntry],this[_sentinel]))){this[_current]=this[_nextEntry][_element];this[_nextEntry]=this[_nextEntry][_next];return true}this[_current]=null;this[_nextEntry]=this[_sentinel]=null;return false}get current(){return this[_current]}}_DoubleLinkedQueueIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(_DoubleLinkedQueueIterator,{constructors:()=>({_DoubleLinkedQueueIterator:[_DoubleLinkedQueueIterator$(E),[_DoubleLinkedQueueEntrySentinel$(E)]]}),methods:()=>({moveNext:[core.bool,[]]})});return _DoubleLinkedQueueIterator});let _DoubleLinkedQueueIterator=_DoubleLinkedQueueIterator$();let _head=Symbol('_head');let _tail=Symbol('_tail');let _table=Symbol('_table');let _checkModification=Symbol('_checkModification');let _writeToList=Symbol('_writeToList');let _add=Symbol('_add');let _preGrow=Symbol('_preGrow');let _remove=Symbol('_remove');let _filterWhere=Symbol('_filterWhere');let _grow=Symbol('_grow');let ListQueue$=dart.generic(function(E){class ListQueue extends IterableBase$(E){ListQueue(initialCapacity){if(initialCapacity===void 0)initialCapacity=null;this[_head]=0;this[_tail]=0;this[_table]=null;this[_modificationCount]=0;super.IterableBase();if(initialCapacity==null||dart.notNull(initialCapacity)<dart.notNull(ListQueue$()._INITIAL_CAPACITY)){initialCapacity=ListQueue$()._INITIAL_CAPACITY}else if(!dart.notNull(ListQueue$()._isPowerOf2(initialCapacity))){initialCapacity=ListQueue$()._nextPowerOf2(initialCapacity)}dart.assert(ListQueue$()._isPowerOf2(initialCapacity));this[_table]=core.List$(E).new(initialCapacity)}static from(elements){if(dart.is(elements,core.List)){let length=elements[dartx.length];let queue=new(ListQueue$(E))(dart.notNull(length)+1);dart.assert(dart.notNull(queue[_table][dartx.length])>dart.notNull(length));let sourceList=elements;queue[_table][dartx.setRange](0,length,dart.as(sourceList,core.Iterable$(E)),0);queue[_tail]=length;return queue}else{let capacity=ListQueue$()._INITIAL_CAPACITY;if(dart.is(elements,_internal.EfficientLength)){capacity=elements[dartx.length]}let result=new(ListQueue$(E))(capacity);for(let element of dart.as(elements,core.Iterable$(E))){result.addLast(element)}return result}}get iterator(){return new(_ListQueueIterator$(E))(this)}forEach(action){dart.as(action,dart.functionType(dart.void,[E]));let modificationCount=this[_modificationCount];for(let i=this[_head];i!=this[_tail];i=dart.notNull(i)+1&dart.notNull(this[_table][dartx.length])-1){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}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)}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)}toList(opts){let growable=opts&&'growable'in opts?opts.growable:true;let list=null;if(dart.notNull(growable)){list=core.List$(E).new();list[dartx.length]=this.length}else{list=core.List$(E).new(this.length)}this[_writeToList](list);return list}add(element){dart.as(element,E);this[_add](element)}addAll(elements){dart.as(elements,core.Iterable$(E));if(dart.is(elements,core.List)){let list=dart.as(elements,core.List);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),dart.as(list,core.Iterable$(E)),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)<dart.notNull(endSpace)){this[_table][dartx.setRange](this[_tail],dart.notNull(this[_tail])+dart.notNull(addCount),dart.as(list,core.Iterable$(E)),0);this[_tail]=dart.notNull(this[_tail])+dart.notNull(addCount)}else{let preSpace=dart.notNull(addCount)-dart.notNull(endSpace);this[_table][dartx.setRange](this[_tail],dart.notNull(this[_tail])+dart.notNull(endSpace),dart.as(list,core.Iterable$(E)),0);this[_table][dartx.setRange](0,preSpace,dart.as(list,core.Iterable$(E)),endSpace);this[_tail]=preSpace}}this[_modificationCount]=dart.notNull(this[_modificationCount])+1}else{for(let element of elements)this[_add](element);}}remove(object){for(let i=this[_head];i!=this[_tail];i=dart.notNull(i)+1&dart.notNull(this[_table][dartx.length])-1){let element=this[_table][dartx.get](i);if(dart.equals(element,object)){this[_remove](i);this[_modificationCount]=dart.notNull(this[_modificationCount])+1;return true}}return false}[_filterWhere](test,removeMatching){dart.as(test,dart.functionType(core.bool,[E]));let index=this[_head];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(dart.notNull(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}}}removeWhere(test){dart.as(test,dart.functionType(core.bool,[E]));this[_filterWhere](test,true)}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));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){this[_table][dartx.set](i,null)}this[_head]=this[_tail]=0;this[_modificationCount]=dart.notNull(this[_modificationCount])+1}}toString(){return IterableBase.iterableToFullString(this,"{","}")}addLast(element){dart.as(element,E);this[_add](element)}addFirst(element){dart.as(element,E);this[_head]=dart.notNull(this[_head])-1&dart.notNull(this[_table][dartx.length])-1;this[_table][dartx.set](this[_head],element);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;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;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)-1;for(;;){let nextNumber=dart.notNull(number)&dart.notNull(number)-1;if(nextNumber==0)return number;number=nextNumber}}[_checkModification](expectedModificationCount){if(expectedModificationCount!=this[_modificationCount]){dart.throw(new core.ConcurrentModificationError(this))}}[_add](element){dart.as(element,E);this[_table][dartx.set](this[_tail],element);this[_tail]=dart.notNull(this[_tail])+1&dart.notNull(this[_table][dartx.length])-1;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])&dart.notNull(mask);let endDistance=dart.notNull(this[_tail])-dart.notNull(offset)&dart.notNull(mask);if(dart.notNull(startDistance)<dart.notNull(endDistance)){let i=offset;while(i!=this[_head]){let prevOffset=dart.notNull(i)-1&dart.notNull(mask);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&dart.notNull(mask);return dart.notNull(offset)+1&dart.notNull(mask)}else{this[_tail]=dart.notNull(this[_tail])-1&dart.notNull(mask);let i=offset;while(i!=this[_tail]){let nextOffset=dart.notNull(i)+1&dart.notNull(mask);this[_table][dartx.set](i,this[_table][dartx.get](nextOffset));i=nextOffset}this[_table][dartx.set](this[_tail],null);return offset}}[_grow](){let newTable=core.List$(E).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,dart.notNull(split)+dart.notNull(this[_head]),this[_table],0);this[_head]=0;this[_tail]=this[_table][dartx.length];this[_table]=newTable}[_writeToList](target){dart.as(target,core.List$(E));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,dart.notNull(firstPartSize)+dart.notNull(this[_tail]),this[_table],0);return dart.notNull(this[_tail])+dart.notNull(firstPartSize)}}[_preGrow](newElementCount){dart.assert(dart.notNull(newElementCount)>=dart.notNull(this.length));newElementCount=dart.notNull(newElementCount)+(dart.notNull(newElementCount)>>1);let newCapacity=ListQueue$()._nextPowerOf2(newElementCount);let newTable=core.List$(E).new(newCapacity);this[_tail]=this[_writeToList](newTable);this[_table]=newTable;this[_head]=0}}ListQueue[dart.implements]=()=>[Queue$(E)];dart.setSignature(ListQueue,{constructors:()=>({from:[ListQueue$(E),[core.Iterable]],ListQueue:[ListQueue$(E),[],[core.int]]}),methods:()=>({[_preGrow]:[dart.void,[core.int]],[_remove]:[core.int,[core.int]],[_add]:[dart.void,[E]],[_checkModification]:[dart.void,[core.int]],[_grow]:[dart.void,[]],[_writeToList]:[core.int,[core.List$(E)]],[_filterWhere]:[dart.void,[dart.functionType(core.bool,[E]),core.bool]],add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],addFirst:[dart.void,[E]],addLast:[dart.void,[E]],clear:[dart.void,[]],elementAt:[E,[core.int]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],remove:[core.bool,[core.Object]],removeFirst:[E,[]],removeLast:[E,[]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]],toList:[core.List$(E),[],{growable:core.bool}]}),names:['_isPowerOf2','_nextPowerOf2'],statics:()=>({_isPowerOf2:[core.bool,[core.int]],_nextPowerOf2:[core.int,[core.int]]})});dart.defineExtensionMembers(ListQueue,['forEach','elementAt','toList','iterator','isEmpty','length','first','last','single']);return ListQueue});let ListQueue=ListQueue$();ListQueue._INITIAL_CAPACITY=8;let _queue=Symbol('_queue');let _end=Symbol('_end');let _position=Symbol('_position');let _ListQueueIterator$=dart.generic(function(E){class _ListQueueIterator extends core.Object{_ListQueueIterator(queue){this[_queue]=queue;this[_end]=queue[_tail];this[_modificationCount]=queue[_modificationCount];this[_position]=queue[_head];this[_current]=null}get current(){return this[_current]}moveNext(){this[_queue][_checkModification](this[_modificationCount]);if(this[_position]==this[_end]){this[_current]=null;return false}this[_current]=dart.as(this[_queue][_table][dartx.get](this[_position]),E);this[_position]=dart.notNull(this[_position])+1&dart.notNull(this[_queue][_table][dartx.length])-1;return true}}_ListQueueIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(_ListQueueIterator,{constructors:()=>({_ListQueueIterator:[_ListQueueIterator$(E),[ListQueue]]}),methods:()=>({moveNext:[core.bool,[]]})});return _ListQueueIterator});let _ListQueueIterator=_ListQueueIterator$();let _Predicate$=dart.generic(function(T){let _Predicate=dart.typedef('_Predicate',()=>dart.functionType(core.bool,[T]));return _Predicate});let _Predicate=_Predicate$();let _SplayTreeNode$=dart.generic(function(K){class _SplayTreeNode extends core.Object{_SplayTreeNode(key){this.key=key;this.left=null;this.right=null}}dart.setSignature(_SplayTreeNode,{constructors:()=>({_SplayTreeNode:[_SplayTreeNode$(K),[K]]})});return _SplayTreeNode});let _SplayTreeNode=_SplayTreeNode$();let _SplayTreeMapNode$=dart.generic(function(K,V){class _SplayTreeMapNode extends _SplayTreeNode$(K){_SplayTreeMapNode(key,value){this.value=value;super._SplayTreeNode(key)}}dart.setSignature(_SplayTreeMapNode,{constructors:()=>({_SplayTreeMapNode:[_SplayTreeMapNode$(K,V),[K,V]]})});return _SplayTreeMapNode});let _SplayTreeMapNode=_SplayTreeMapNode$();let _dummy=Symbol('_dummy');let _root=Symbol('_root');let _count=Symbol('_count');let _splayCount=Symbol('_splayCount');let _splay=Symbol('_splay');let _compare=Symbol('_compare');let _splayMin=Symbol('_splayMin');let _splayMax=Symbol('_splayMax');let _addNewRoot=Symbol('_addNewRoot');let _first=Symbol('_first');let _last=Symbol('_last');let _clear=Symbol('_clear');let _SplayTree$=dart.generic(function(K){class _SplayTree extends core.Object{_SplayTree(){this[_dummy]=new(_SplayTreeNode$(K))(null);this[_root]=null;this[_count]=0;this[_modificationCount]=0;this[_splayCount]=0}[_splay](key){dart.as(key,K);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=tmp;if(current.left==null)break;}right.left=current;right=current;current=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=current.right;current.right=tmp.left;tmp.left=current;current=tmp;if(current.right==null)break;}left.right=current;left=current;current=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){dart.as(node,_SplayTreeNode$(K));let current=node;while(current.left!=null){let left=current.left;current.left=left.right;left.right=current;current=left}return dart.as(current,_SplayTreeNode$(K))}[_splayMax](node){dart.as(node,_SplayTreeNode$(K));let current=node;while(current.right!=null){let right=current.right;current.right=right.left;right.left=current;current=right}return dart.as(current,_SplayTreeNode$(K))}[_remove](key){dart.as(key,K);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]=this[_root].right}else{let right=this[_root].right;this[_root]=this[_splayMax](this[_root].left);this[_root].right=right}this[_modificationCount]=dart.notNull(this[_modificationCount])+1;return result}[_addNewRoot](node,comp){dart.as(node,_SplayTreeNode$(K));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.setSignature(_SplayTree,{methods:()=>({[_clear]:[dart.void,[]],[_addNewRoot]:[dart.void,[_SplayTreeNode$(K),core.int]],[_remove]:[_SplayTreeNode,[K]],[_splayMax]:[_SplayTreeNode$(K),[_SplayTreeNode$(K)]],[_splayMin]:[_SplayTreeNode$(K),[_SplayTreeNode$(K)]],[_splay]:[core.int,[K]]})});return _SplayTree});let _SplayTree=_SplayTree$();let _comparator=Symbol('_comparator');let _validKey=Symbol('_validKey');let SplayTreeMap$=dart.generic(function(K,V){class SplayTreeMap extends _SplayTree$(K){SplayTreeMap(compare,isValidKey){if(compare===void 0)compare=null;if(isValidKey===void 0)isValidKey=null;this[_comparator]=dart.as(compare==null?core.Comparable.compare:compare,core.Comparator$(K));this[_validKey]=isValidKey!=null?isValidKey:dart.fn(v=>dart.is(v,K),core.bool,[dart.dynamic]);super._SplayTree()}static from(other,compare,isValidKey){if(compare===void 0)compare=null;if(isValidKey===void 0)isValidKey=null;let result=new(SplayTreeMap$(K,V))();other.forEach(dart.fn((k,v)=>{result.set(dart.as(k,K),dart.as(v,V))}));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(SplayTreeMap$(K,V))(compare,isValidKey);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(SplayTreeMap$(K,V))(compare,isValidKey);Maps._fillMapWithIterables(map,keys,values);return map}[_compare](key1,key2){dart.as(key1,K);dart.as(key2,K);return this[_comparator](key1,key2)}_internal(){this[_comparator]=null;this[_validKey]=null;super._SplayTree()}get(key){if(key==null)dart.throw(new core.ArgumentError(key));if(!dart.notNull(this[_validKey](key)))return null;if(this[_root]!=null){let comp=this[_splay](dart.as(key,K));if(comp==0){let mapRoot=dart.as(this[_root],_SplayTreeMapNode);return dart.as(mapRoot.value,V)}}return null}remove(key){if(!dart.notNull(this[_validKey](key)))return null;let mapRoot=dart.as(this[_remove](dart.as(key,K)),_SplayTreeMapNode);if(mapRoot!=null)return dart.as(mapRoot.value,V);return null}set(key,value){dart.as(key,K);dart.as(value,V);if(key==null)dart.throw(new core.ArgumentError(key));let comp=this[_splay](key);if(comp==0){let mapRoot=dart.as(this[_root],_SplayTreeMapNode);mapRoot.value=value;return}this[_addNewRoot](new(_SplayTreeMapNode$(K,dart.dynamic))(key,value),comp)}putIfAbsent(key,ifAbsent){dart.as(key,K);dart.as(ifAbsent,dart.functionType(V,[]));if(key==null)dart.throw(new core.ArgumentError(key));let comp=this[_splay](key);if(comp==0){let mapRoot=dart.as(this[_root],_SplayTreeMapNode);return dart.as(mapRoot.value,V)}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(_SplayTreeMapNode$(K,dart.dynamic))(key,value),comp);return value}addAll(other){dart.as(other,core.Map$(K,V));other.forEach(dart.fn((key,value)=>{dart.as(key,K);dart.as(value,V);this.set(key,value)},dart.dynamic,[K,V]))}get isEmpty(){return this[_root]==null}get isNotEmpty(){return!dart.notNull(this.isEmpty)}forEach(f){dart.as(f,dart.functionType(dart.void,[K,V]));let nodes=new(_SplayTreeNodeIterator$(K))(this);while(dart.notNull(nodes.moveNext())){let node=dart.as(nodes.current,_SplayTreeMapNode$(K,V));f(node.key,node.value)}}get length(){return this[_count]}clear(){this[_clear]()}containsKey(key){return dart.notNull(this[_validKey](key))&&this[_splay](dart.as(key,K))==0}containsValue(value){let found=false;let initialSplayCount=this[_splayCount];let 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.notNull(visit(dart.as(node.right,_SplayTreeMapNode))))return true;node=dart.as(node.left,_SplayTreeMapNode)}return false}).bind(this);dart.fn(visit,core.bool,[_SplayTreeMapNode]);return visit(dart.as(this[_root],_SplayTreeMapNode))}get keys(){return new(_SplayTreeKeyIterable$(K))(this)}get values(){return new(_SplayTreeValueIterable$(K,V))(this)}toString(){return Maps.mapToString(this)}firstKey(){if(this[_root]==null)return null;return dart.as(this[_first].key,K)}lastKey(){if(this[_root]==null)return null;return dart.as(this[_last].key,K)}lastKeyBefore(key){dart.as(key,K);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){dart.as(key,K);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}}SplayTreeMap[dart.implements]=()=>[core.Map$(K,V)];dart.defineNamedConstructor(SplayTreeMap,'_internal');dart.setSignature(SplayTreeMap,{constructors:()=>({_internal:[SplayTreeMap$(K,V),[]],from:[SplayTreeMap$(K,V),[core.Map],[dart.functionType(core.int,[K,K]),dart.functionType(core.bool,[core.Object])]],fromIterable:[SplayTreeMap$(K,V),[core.Iterable],{compare:dart.functionType(core.int,[K,K]),isValidKey:dart.functionType(core.bool,[core.Object]),key:dart.functionType(K,[dart.dynamic]),value:dart.functionType(V,[dart.dynamic])}],fromIterables:[SplayTreeMap$(K,V),[core.Iterable$(K),core.Iterable$(V)],[dart.functionType(core.int,[K,K]),dart.functionType(core.bool,[core.Object])]],SplayTreeMap:[SplayTreeMap$(K,V),[],[dart.functionType(core.int,[K,K]),dart.functionType(core.bool,[core.Object])]]}),methods:()=>({[_compare]:[core.int,[K,K]],addAll:[dart.void,[core.Map$(K,V)]],clear:[dart.void,[]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],firstKey:[K,[]],firstKeyAfter:[K,[K]],forEach:[dart.void,[dart.functionType(dart.void,[K,V])]],get:[V,[core.Object]],lastKey:[K,[]],lastKeyBefore:[K,[K]],putIfAbsent:[V,[K,dart.functionType(V,[])]],remove:[V,[core.Object]],set:[dart.void,[K,V]]})});return SplayTreeMap});let SplayTreeMap=SplayTreeMap$();let _workList=Symbol('_workList');let _tree=Symbol('_tree');let _currentNode=Symbol('_currentNode');let _findLeftMostDescendent=Symbol('_findLeftMostDescendent');let _getValue=Symbol('_getValue');let _rebuildWorkList=Symbol('_rebuildWorkList');let _SplayTreeIterator$=dart.generic(function(T){class _SplayTreeIterator extends core.Object{_SplayTreeIterator(tree){this[_workList]=dart.list([],_SplayTreeNode);this[_tree]=tree;this[_modificationCount]=tree[_modificationCount];this[_splayCount]=tree[_splayCount];this[_currentNode]=null;this[_findLeftMostDescendent](tree[_root])}startAt(tree,startKey){this[_workList]=dart.list([],_SplayTreeNode);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](dart.as(this[_currentNode],_SplayTreeMapNode))}[_findLeftMostDescendent](node){while(node!=null){this[_workList][dartx.add](node);node=node.left}}[_rebuildWorkList](currentNode){dart.assert(!dart.notNull(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.notNull(this[_workList][dartx.isEmpty]))}}moveNext(){if(this[_modificationCount]!=this[_tree][_modificationCount]){dart.throw(new core.ConcurrentModificationError(this[_tree]))}if(dart.notNull(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}}_SplayTreeIterator[dart.implements]=()=>[core.Iterator$(T)];dart.defineNamedConstructor(_SplayTreeIterator,'startAt');dart.setSignature(_SplayTreeIterator,{constructors:()=>({_SplayTreeIterator:[_SplayTreeIterator$(T),[_SplayTree]],startAt:[_SplayTreeIterator$(T),[_SplayTree,dart.dynamic]]}),methods:()=>({[_rebuildWorkList]:[dart.void,[_SplayTreeNode]],[_findLeftMostDescendent]:[dart.void,[_SplayTreeNode]],moveNext:[core.bool,[]]})});return _SplayTreeIterator});let _SplayTreeIterator=_SplayTreeIterator$();let _copyNode=Symbol('_copyNode');let _SplayTreeKeyIterable$=dart.generic(function(K){class _SplayTreeKeyIterable extends IterableBase$(K){_SplayTreeKeyIterable(tree){this[_tree]=tree;super.IterableBase()}get length(){return this[_tree][_count]}get isEmpty(){return this[_tree][_count]==0}get iterator(){return new(_SplayTreeKeyIterator$(K))(this[_tree])}toSet(){let setOrMap=this[_tree];let set=new(SplayTreeSet$(K))(dart.as(setOrMap[_comparator],__CastType0),dart.as(setOrMap[_validKey],__CastType3));set[_count]=this[_tree][_count];set[_root]=set[_copyNode](this[_tree][_root]);return set}}_SplayTreeKeyIterable[dart.implements]=()=>[_internal.EfficientLength];dart.setSignature(_SplayTreeKeyIterable,{constructors:()=>({_SplayTreeKeyIterable:[_SplayTreeKeyIterable$(K),[_SplayTree$(K)]]}),methods:()=>({toSet:[core.Set$(K),[]]})});dart.defineExtensionMembers(_SplayTreeKeyIterable,['toSet','length','isEmpty','iterator']);return _SplayTreeKeyIterable});let _SplayTreeKeyIterable=_SplayTreeKeyIterable$();let _SplayTreeValueIterable$=dart.generic(function(K,V){class _SplayTreeValueIterable extends IterableBase$(V){_SplayTreeValueIterable(map){this[_map]=map;super.IterableBase()}get length(){return this[_map][_count]}get isEmpty(){return this[_map][_count]==0}get iterator(){return new(_SplayTreeValueIterator$(K,V))(this[_map])}}_SplayTreeValueIterable[dart.implements]=()=>[_internal.EfficientLength];dart.setSignature(_SplayTreeValueIterable,{constructors:()=>({_SplayTreeValueIterable:[_SplayTreeValueIterable$(K,V),[SplayTreeMap$(K,V)]]})});dart.defineExtensionMembers(_SplayTreeValueIterable,['length','isEmpty','iterator']);return _SplayTreeValueIterable});let _SplayTreeValueIterable=_SplayTreeValueIterable$();let _SplayTreeKeyIterator$=dart.generic(function(K){class _SplayTreeKeyIterator extends _SplayTreeIterator$(K){_SplayTreeKeyIterator(map){super._SplayTreeIterator(map)}[_getValue](node){return dart.as(node.key,K)}}dart.setSignature(_SplayTreeKeyIterator,{constructors:()=>({_SplayTreeKeyIterator:[_SplayTreeKeyIterator$(K),[_SplayTree$(K)]]}),methods:()=>({[_getValue]:[K,[_SplayTreeNode]]})});return _SplayTreeKeyIterator});let _SplayTreeKeyIterator=_SplayTreeKeyIterator$();let _SplayTreeValueIterator$=dart.generic(function(K,V){class _SplayTreeValueIterator extends _SplayTreeIterator$(V){_SplayTreeValueIterator(map){super._SplayTreeIterator(map)}[_getValue](node){return dart.as(node.value,V)}}dart.setSignature(_SplayTreeValueIterator,{constructors:()=>({_SplayTreeValueIterator:[_SplayTreeValueIterator$(K,V),[SplayTreeMap$(K,V)]]}),methods:()=>({[_getValue]:[V,[_SplayTreeMapNode]]})});return _SplayTreeValueIterator});let _SplayTreeValueIterator=_SplayTreeValueIterator$();let _SplayTreeNodeIterator$=dart.generic(function(K){class _SplayTreeNodeIterator extends _SplayTreeIterator$(_SplayTreeNode$(K)){_SplayTreeNodeIterator(tree){super._SplayTreeIterator(tree)}startAt(tree,startKey){super.startAt(tree,startKey)}[_getValue](node){return dart.as(node,_SplayTreeNode$(K))}}dart.defineNamedConstructor(_SplayTreeNodeIterator,'startAt');dart.setSignature(_SplayTreeNodeIterator,{constructors:()=>({_SplayTreeNodeIterator:[_SplayTreeNodeIterator$(K),[_SplayTree$(K)]],startAt:[_SplayTreeNodeIterator$(K),[_SplayTree$(K),dart.dynamic]]}),methods:()=>({[_getValue]:[_SplayTreeNode$(K),[_SplayTreeNode]]})});return _SplayTreeNodeIterator});let _SplayTreeNodeIterator=_SplayTreeNodeIterator$();let _clone=Symbol('_clone');let SplayTreeSet$=dart.generic(function(E){class SplayTreeSet extends dart.mixin(_SplayTree$(E),IterableMixin$(E),SetMixin$(E)){SplayTreeSet(compare,isValidKey){if(compare===void 0)compare=null;if(isValidKey===void 0)isValidKey=null;this[_comparator]=dart.as(compare==null?core.Comparable.compare:compare,core.Comparator$(E));this[_validKey]=isValidKey!=null?isValidKey:dart.fn(v=>dart.is(v,E),core.bool,[dart.dynamic]);super._SplayTree()}static from(elements,compare,isValidKey){if(compare===void 0)compare=null;if(isValidKey===void 0)isValidKey=null;let result=new(SplayTreeSet$(E))(compare,isValidKey);for(let element of dart.as(elements,core.Iterable$(E))){result.add(element)}return result}[_compare](e1,e2){dart.as(e1,E);dart.as(e2,E);return this[_comparator](e1,e2)}get iterator(){return new(_SplayTreeKeyIterator$(E))(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 dart.as(this[_first].key,E)}get last(){if(this[_count]==0)dart.throw(_internal.IterableElementError.noElement());return dart.as(this[_last].key,E)}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.notNull(this[_validKey](object))&&this[_splay](dart.as(object,E))==0}add(element){dart.as(element,E);let compare=this[_splay](element);if(compare==0)return false;this[_addNewRoot](new(_SplayTreeNode$(E))(element),compare);return true}remove(object){if(!dart.notNull(this[_validKey](object)))return false;return this[_remove](dart.as(object,E))!=null}addAll(elements){dart.as(elements,core.Iterable$(E));for(let element of elements){let compare=this[_splay](element);if(compare!=0){this[_addNewRoot](new(_SplayTreeNode$(E))(element),compare)}}}removeAll(elements){for(let element of elements){if(dart.notNull(this[_validKey](element)))this[_remove](dart.as(element,E));}}retainAll(elements){let retainSet=new(SplayTreeSet$(E))(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.notNull(this[_validKey](object))&&this[_splay](dart.as(object,E))==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.notNull(this[_validKey](object)))return null;let comp=this[_splay](dart.as(object,E));if(comp!=0)return null;return this[_root].key}intersection(other){let result=new(SplayTreeSet$(E))(this[_comparator],this[_validKey]);for(let element of this){if(dart.notNull(other.contains(element)))result.add(element);}return result}difference(other){let result=new(SplayTreeSet$(E))(this[_comparator],this[_validKey]);for(let element of this){if(!dart.notNull(other.contains(element)))result.add(element);}return result}union(other){dart.as(other,core.Set$(E));let _=this[_clone]();_.addAll(other);return _}[_clone](){let set=new(SplayTreeSet$(E))(this[_comparator],this[_validKey]);set[_count]=this[_count];set[_root]=this[_copyNode](this[_root]);return set}[_copyNode](node){dart.as(node,_SplayTreeNode$(E));if(node==null)return null;let _=new(_SplayTreeNode$(E))(node.key);_.left=this[_copyNode](node.left);_.right=this[_copyNode](node.right);return _}clear(){this[_clear]()}toSet(){return this[_clone]()}toString(){return IterableBase.iterableToFullString(this,'{','}')}}dart.setSignature(SplayTreeSet,{constructors:()=>({from:[SplayTreeSet$(E),[core.Iterable],[dart.functionType(core.int,[E,E]),dart.functionType(core.bool,[core.Object])]],SplayTreeSet:[SplayTreeSet$(E),[],[dart.functionType(core.int,[E,E]),dart.functionType(core.bool,[core.Object])]]}),methods:()=>({[_compare]:[core.int,[E,E]],[_clone]:[SplayTreeSet$(E),[]],[_copyNode]:[_SplayTreeNode$(E),[_SplayTreeNode$(E)]],add:[core.bool,[E]],addAll:[dart.void,[core.Iterable$(E)]],contains:[core.bool,[core.Object]],difference:[core.Set$(E),[core.Set$(core.Object)]],intersection:[core.Set$(E),[core.Set$(core.Object)]],lookup:[E,[core.Object]],remove:[core.bool,[core.Object]],toSet:[core.Set$(E),[]],union:[core.Set$(E),[core.Set$(E)]]})});dart.defineExtensionMembers(SplayTreeSet,['contains','toSet','iterator','length','isEmpty','isNotEmpty','first','last','single']);return SplayTreeSet});let SplayTreeSet=SplayTreeSet$();let __CastType0$=dart.generic(function(K){let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.int,[K,K]));return __CastType0});let __CastType0=__CastType0$();let __CastType3=dart.typedef('__CastType3',()=>dart.functionType(core.bool,[core.Object]));let _strings=Symbol('_strings');let _nums=Symbol('_nums');let _rest=Symbol('_rest');let _containsKey=Symbol('_containsKey');let _getBucket=Symbol('_getBucket');let _findBucketIndex=Symbol('_findBucketIndex');let _computeKeys=Symbol('_computeKeys');let _get=Symbol('_get');let _addHashTableEntry=Symbol('_addHashTableEntry');let _set=Symbol('_set');let _computeHashCode=Symbol('_computeHashCode');let _removeHashTableEntry=Symbol('_removeHashTableEntry');let _HashMap$=dart.generic(function(K,V){class _HashMap extends core.Object{_HashMap(){this[_length]=0;this[_strings]=null;this[_nums]=null;this[_rest]=null;this[_keys]=null}get length(){return this[_length]}get isEmpty(){return this[_length]==0}get isNotEmpty(){return!dart.notNull(this.isEmpty)}get keys(){return new(HashMapKeyIterable$(K))(this)}get values(){return _internal.MappedIterable$(K,V).new(this.keys,dart.fn(each=>this.get(each),V,[dart.dynamic]))}containsKey(key){if(dart.notNull(_HashMap$()._isStringKey(key))){let strings=this[_strings];return strings==null?false:_HashMap$()._hasTableEntry(strings,key)}else if(dart.notNull(_HashMap$()._isNumericKey(key))){let nums=this[_nums];return nums==null?false:_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),core.bool,[dart.dynamic]))}addAll(other){dart.as(other,core.Map$(K,V));other.forEach(dart.fn((key,value)=>{dart.as(key,K);dart.as(value,V);this.set(key,value)},dart.dynamic,[K,V]))}get(key){if(dart.notNull(_HashMap$()._isStringKey(key))){let strings=this[_strings];return strings==null?null:dart.as(_HashMap$()._getTableEntry(strings,key),V)}else if(dart.notNull(_HashMap$()._isNumericKey(key))){let nums=this[_nums];return nums==null?null:dart.as(_HashMap$()._getTableEntry(nums,key),V)}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 dart.notNull(index)<0?null:dart.as(bucket[dart.notNull(index)+1],V)}set(key,value){dart.as(key,K);dart.as(value,V);if(dart.notNull(_HashMap$()._isStringKey(key))){let strings=this[_strings];if(strings==null)this[_strings]=strings=_HashMap$()._newHashTable();this[_addHashTableEntry](strings,key,value)}else if(dart.notNull(_HashMap$()._isNumericKey(key))){let nums=this[_nums];if(nums==null)this[_nums]=nums=_HashMap$()._newHashTable();this[_addHashTableEntry](nums,key,value)}else{this[_set](key,value)}}[_set](key,value){dart.as(key,K);dart.as(value,V);let rest=this[_rest];if(rest==null)this[_rest]=rest=_HashMap$()._newHashTable();let hash=this[_computeHashCode](key);let bucket=rest[hash];if(bucket==null){_HashMap$()._setTableEntry(rest,hash,[key,value]);this[_length]=dart.notNull(this[_length])+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]=dart.notNull(this[_length])+1;this[_keys]=null}}}putIfAbsent(key,ifAbsent){dart.as(key,K);dart.as(ifAbsent,dart.functionType(V,[]));if(dart.notNull(this.containsKey(key)))return this.get(key);let value=ifAbsent();this.set(key,value);return value}remove(key){if(dart.notNull(_HashMap$()._isStringKey(key))){return this[_removeHashTableEntry](this[_strings],key)}else if(dart.notNull(_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]=dart.notNull(this[_length])-1;this[_keys]=null;return dart.as(bucket.splice(index,2)[1],V)}clear(){if(dart.notNull(this[_length])>0){this[_strings]=this[_nums]=this[_rest]=this[_keys]=null;this[_length]=0}}forEach(action){dart.as(action,dart.functionType(dart.void,[K,V]));let keys=this[_computeKeys]();for(let i=0,length=keys[dartx.length];dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let key=keys[i];action(dart.as(key,K),this.get(key));if(keys!==this[_keys]){dart.throw(new core.ConcurrentModificationError(this))}}}[_computeKeys](){if(this[_keys]!=null)return this[_keys];let result=core.List.new(this[_length]);let index=0;let strings=this[_strings];if(strings!=null){let names=Object.getOwnPropertyNames(strings);let entries=names.length;for(let i=0;dart.notNull(i)<dart.notNull(entries);i=dart.notNull(i)+1){let key=names[i];result[index]=key;index=dart.notNull(index)+1}}let nums=this[_nums];if(nums!=null){let names=Object.getOwnPropertyNames(nums);let entries=names.length;for(let i=0;dart.notNull(i)<dart.notNull(entries);i=dart.notNull(i)+1){let key= +names[i];result[index]=key;index=dart.notNull(index)+1}}let rest=this[_rest];if(rest!=null){let names=Object.getOwnPropertyNames(rest);let entries=names.length;for(let i=0;dart.notNull(i)<dart.notNull(entries);i=dart.notNull(i)+1){let key=names[i];let bucket=rest[key];let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+2){let key=bucket[i];result[index]=key;index=dart.notNull(index)+1}}}dart.assert(index==this[_length]);return this[_keys]=result}[_addHashTableEntry](table,key,value){dart.as(key,K);dart.as(value,V);if(!dart.notNull(_HashMap$()._hasTableEntry(table,key))){this[_length]=dart.notNull(this[_length])+1;this[_keys]=null}_HashMap$()._setTableEntry(table,key,value)}[_removeHashTableEntry](table,key){if(table!=null&&dart.notNull(_HashMap$()._hasTableEntry(table,key))){let value=dart.as(_HashMap$()._getTableEntry(table,key),V);_HashMap$()._deleteTableEntry(table,key);this[_length]=dart.notNull(this[_length])-1;this[_keys]=null;return value}else{return null}}static _isStringKey(key){return typeof key=='string'&& !dart.equals(key,'__proto__')}static _isNumericKey(key){return dart.is(key,core.num)&&(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 dart.as(table[hash],core.List)}[_findBucketIndex](bucket,key){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+2){if(dart.equals(bucket[i],key))return i;}return -1}static _newHashTable(){let table=Object.create(null);let temporaryKey='<non-identifier-key>';_HashMap$()._setTableEntry(table,temporaryKey,table);_HashMap$()._deleteTableEntry(table,temporaryKey);return table}}_HashMap[dart.implements]=()=>[HashMap$(K,V)];dart.setSignature(_HashMap,{constructors:()=>({_HashMap:[_HashMap$(K,V),[]]}),methods:()=>({[_findBucketIndex]:[core.int,[dart.dynamic,dart.dynamic]],[_removeHashTableEntry]:[V,[dart.dynamic,core.Object]],[_addHashTableEntry]:[dart.void,[dart.dynamic,K,V]],[_computeKeys]:[core.List,[]],[_containsKey]:[core.bool,[core.Object]],[_computeHashCode]:[core.int,[dart.dynamic]],[_remove]:[V,[core.Object]],[_getBucket]:[core.List,[dart.dynamic,dart.dynamic]],[_set]:[dart.void,[K,V]],[_get]:[V,[core.Object]],addAll:[dart.void,[core.Map$(K,V)]],clear:[dart.void,[]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[K,V])]],get:[V,[core.Object]],putIfAbsent:[V,[K,dart.functionType(V,[])]],remove:[V,[core.Object]],set:[dart.void,[K,V]]}),names:['_isStringKey','_isNumericKey','_hasTableEntry','_getTableEntry','_setTableEntry','_deleteTableEntry','_newHashTable'],statics:()=>({_deleteTableEntry:[dart.void,[dart.dynamic,dart.dynamic]],_getTableEntry:[dart.dynamic,[dart.dynamic,dart.dynamic]],_hasTableEntry:[core.bool,[dart.dynamic,dart.dynamic]],_isNumericKey:[core.bool,[dart.dynamic]],_isStringKey:[core.bool,[dart.dynamic]],_newHashTable:[dart.dynamic,[]],_setTableEntry:[dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]]})});return _HashMap});let _HashMap=_HashMap$();let _IdentityHashMap$=dart.generic(function(K,V){class _IdentityHashMap extends _HashMap$(K,V){_IdentityHashMap(){super._HashMap()}[_computeHashCode](key){return core.identityHashCode(key)&0x3ffffff}[_findBucketIndex](bucket,key){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+2){if(dart.notNull(core.identical(bucket[i],key)))return i;}return -1}}return _IdentityHashMap});let _IdentityHashMap=_IdentityHashMap$();let _equals=Symbol('_equals');let _hashCode=Symbol('_hashCode');let _CustomHashMap$=dart.generic(function(K,V){class _CustomHashMap extends _HashMap$(K,V){_CustomHashMap(equals,hashCode,validKey){this[_equals]=equals;this[_hashCode]=hashCode;this[_validKey]=validKey!=null?validKey:dart.fn(v=>dart.is(v,K),core.bool,[dart.dynamic]);super._HashMap()}get(key){if(!dart.notNull(this[_validKey](key)))return null;return super[_get](key)}set(key,value){dart.as(key,K);dart.as(value,V);super[_set](key,value)}containsKey(key){if(!dart.notNull(this[_validKey](key)))return false;return super[_containsKey](key)}remove(key){if(!dart.notNull(this[_validKey](key)))return null;return super[_remove](key)}[_computeHashCode](key){return this[_hashCode](dart.as(key,K))&0x3ffffff}[_findBucketIndex](bucket,key){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+2){if(dart.notNull(this[_equals](dart.as(bucket[i],K),dart.as(key,K))))return i;}return -1}toString(){return Maps.mapToString(this)}}dart.setSignature(_CustomHashMap,{constructors:()=>({_CustomHashMap:[_CustomHashMap$(K,V),[_Equality$(K),_Hasher$(K),dart.functionType(core.bool,[core.Object])]]}),methods:()=>({get:[V,[core.Object]],remove:[V,[core.Object]],set:[dart.void,[K,V]]})});return _CustomHashMap});let _CustomHashMap=_CustomHashMap$();let HashMapKeyIterable$=dart.generic(function(E){class HashMapKeyIterable extends IterableBase$(E){HashMapKeyIterable(map){this[_map]=map;super.IterableBase()}get length(){return dart.as(dart.dload(this[_map],_length),core.int)}get isEmpty(){return dart.equals(dart.dload(this[_map],_length),0)}get iterator(){return new(HashMapKeyIterator$(E))(this[_map],dart.as(dart.dsend(this[_map],_computeKeys),core.List))}contains(element){return dart.as(dart.dsend(this[_map],'containsKey',element),core.bool)}forEach(f){dart.as(f,dart.functionType(dart.void,[E]));let keys=dart.as(dart.dsend(this[_map],_computeKeys),core.List);for(let i=0,length=keys.length;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){f(dart.as(keys[i],E));if(keys!==dart.dload(this[_map],_keys)){dart.throw(new core.ConcurrentModificationError(this[_map]))}}}}HashMapKeyIterable[dart.implements]=()=>[_internal.EfficientLength];dart.setSignature(HashMapKeyIterable,{constructors:()=>({HashMapKeyIterable:[HashMapKeyIterable$(E),[dart.dynamic]]}),methods:()=>({forEach:[dart.void,[dart.functionType(dart.void,[E])]]})});dart.defineExtensionMembers(HashMapKeyIterable,['contains','forEach','length','isEmpty','iterator']);return HashMapKeyIterable});let HashMapKeyIterable=HashMapKeyIterable$();let _offset=Symbol('_offset');let HashMapKeyIterator$=dart.generic(function(E){class HashMapKeyIterator extends core.Object{HashMapKeyIterator(map,keys){this[_map]=map;this[_keys]=keys;this[_offset]=0;this[_current]=null}get current(){return this[_current]}moveNext(){let keys=this[_keys];let offset=this[_offset];if(keys!==dart.dload(this[_map],_keys)){dart.throw(new core.ConcurrentModificationError(this[_map]))}else if(dart.notNull(offset)>=keys.length){this[_current]=null;return false}else{this[_current]=dart.as(keys[offset],E);this[_offset]=dart.notNull(offset)+1;return true}}}HashMapKeyIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(HashMapKeyIterator,{constructors:()=>({HashMapKeyIterator:[HashMapKeyIterator$(E),[dart.dynamic,core.List]]}),methods:()=>({moveNext:[core.bool,[]]})});return HashMapKeyIterator});let HashMapKeyIterator=HashMapKeyIterator$();let _modifications=Symbol('_modifications');let _value=Symbol('_value');let _newLinkedCell=Symbol('_newLinkedCell');let _unlinkCell=Symbol('_unlinkCell');let _modified=Symbol('_modified');let _key=Symbol('_key');let _LinkedHashMap$=dart.generic(function(K,V){class _LinkedHashMap extends core.Object{_LinkedHashMap(){this[_length]=0;this[_strings]=null;this[_nums]=null;this[_rest]=null;this[_first]=null;this[_last]=null;this[_modifications]=0}get length(){return this[_length]}get isEmpty(){return this[_length]==0}get isNotEmpty(){return!dart.notNull(this.isEmpty)}get keys(){return new(LinkedHashMapKeyIterable$(K))(this)}get values(){return _internal.MappedIterable$(K,V).new(this.keys,dart.fn(each=>this.get(each),V,[dart.dynamic]))}containsKey(key){if(dart.notNull(_LinkedHashMap$()._isStringKey(key))){let strings=this[_strings];if(strings==null)return false;let cell=dart.as(_LinkedHashMap$()._getTableEntry(strings,key),LinkedHashMapCell);return cell!=null}else if(dart.notNull(_LinkedHashMap$()._isNumericKey(key))){let nums=this[_nums];if(nums==null)return false;let cell=dart.as(_LinkedHashMap$()._getTableEntry(nums,key),LinkedHashMapCell);return cell!=null}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.keys[dartx.any](dart.fn(each=>dart.equals(this.get(each),value),core.bool,[dart.dynamic]))}addAll(other){dart.as(other,core.Map$(K,V));other.forEach(dart.fn((key,value)=>{dart.as(key,K);dart.as(value,V);this.set(key,value)},dart.dynamic,[K,V]))}get(key){if(dart.notNull(_LinkedHashMap$()._isStringKey(key))){let strings=this[_strings];if(strings==null)return null;let cell=dart.as(_LinkedHashMap$()._getTableEntry(strings,key),LinkedHashMapCell);return cell==null?null:dart.as(cell[_value],V)}else if(dart.notNull(_LinkedHashMap$()._isNumericKey(key))){let nums=this[_nums];if(nums==null)return null;let cell=dart.as(_LinkedHashMap$()._getTableEntry(nums,key),LinkedHashMapCell);return cell==null?null:dart.as(cell[_value],V)}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);if(dart.notNull(index)<0)return null;let cell=dart.as(bucket[index],LinkedHashMapCell);return dart.as(cell[_value],V)}set(key,value){dart.as(key,K);dart.as(value,V);if(dart.notNull(_LinkedHashMap$()._isStringKey(key))){let strings=this[_strings];if(strings==null)this[_strings]=strings=_LinkedHashMap$()._newHashTable();this[_addHashTableEntry](strings,key,value)}else if(dart.notNull(_LinkedHashMap$()._isNumericKey(key))){let nums=this[_nums];if(nums==null)this[_nums]=nums=_LinkedHashMap$()._newHashTable();this[_addHashTableEntry](nums,key,value)}else{this[_set](key,value)}}[_set](key,value){dart.as(key,K);dart.as(value,V);let rest=this[_rest];if(rest==null)this[_rest]=rest=_LinkedHashMap$()._newHashTable();let hash=this[_computeHashCode](key);let bucket=rest[hash];if(bucket==null){let cell=this[_newLinkedCell](key,value);_LinkedHashMap$()._setTableEntry(rest,hash,[cell])}else{let index=this[_findBucketIndex](bucket,key);if(dart.notNull(index)>=0){let cell=dart.as(bucket[index],LinkedHashMapCell);cell[_value]=value}else{let cell=this[_newLinkedCell](key,value);bucket.push(cell)}}}putIfAbsent(key,ifAbsent){dart.as(key,K);dart.as(ifAbsent,dart.functionType(V,[]));if(dart.notNull(this.containsKey(key)))return this.get(key);let value=ifAbsent();this.set(key,value);return value}remove(key){if(dart.notNull(_LinkedHashMap$()._isStringKey(key))){return this[_removeHashTableEntry](this[_strings],key)}else if(dart.notNull(_LinkedHashMap$()._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;let cell=dart.as(bucket.splice(index,1)[0],LinkedHashMapCell);this[_unlinkCell](cell);return dart.as(cell[_value],V)}clear(){if(dart.notNull(this[_length])>0){this[_strings]=this[_nums]=this[_rest]=this[_first]=this[_last]=null;this[_length]=0;this[_modified]()}}forEach(action){dart.as(action,dart.functionType(dart.void,[K,V]));let cell=this[_first];let modifications=this[_modifications];while(cell!=null){action(dart.as(cell[_key],K),dart.as(cell[_value],V));if(modifications!=this[_modifications]){dart.throw(new core.ConcurrentModificationError(this))}cell=cell[_next]}}[_addHashTableEntry](table,key,value){dart.as(key,K);dart.as(value,V);let cell=dart.as(_LinkedHashMap$()._getTableEntry(table,key),LinkedHashMapCell);if(cell==null){_LinkedHashMap$()._setTableEntry(table,key,this[_newLinkedCell](key,value))}else{cell[_value]=value}}[_removeHashTableEntry](table,key){if(table==null)return null;let cell=dart.as(_LinkedHashMap$()._getTableEntry(table,key),LinkedHashMapCell);if(cell==null)return null;this[_unlinkCell](cell);_LinkedHashMap$()._deleteTableEntry(table,key);return dart.as(cell[_value],V)}[_modified](){this[_modifications]=dart.notNull(this[_modifications])+1&67108863}[_newLinkedCell](key,value){dart.as(key,K);dart.as(value,V);let cell=new LinkedHashMapCell(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]=dart.notNull(this[_length])+1;this[_modified]();return cell}[_unlinkCell](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]=dart.notNull(this[_length])-1;this[_modified]()}static _isStringKey(key){return typeof key=='string'&& !dart.equals(key,'__proto__')}static _isNumericKey(key){return dart.is(key,core.num)&&(key&0x3ffffff)===key}[_computeHashCode](key){return dart.hashCode(key)&0x3ffffff}static _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,key){let hash=this[_computeHashCode](key);return dart.as(table[hash],core.List)}[_findBucketIndex](bucket,key){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let cell=dart.as(bucket[i],LinkedHashMapCell);if(dart.equals(cell[_key],key))return i;}return -1}static _newHashTable(){let table=Object.create(null);let temporaryKey='<non-identifier-key>';_LinkedHashMap$()._setTableEntry(table,temporaryKey,table);_LinkedHashMap$()._deleteTableEntry(table,temporaryKey);return table}toString(){return Maps.mapToString(this)}}_LinkedHashMap[dart.implements]=()=>[LinkedHashMap$(K,V),_js_helper.InternalMap];dart.setSignature(_LinkedHashMap,{constructors:()=>({_LinkedHashMap:[_LinkedHashMap$(K,V),[]]}),methods:()=>({[_findBucketIndex]:[core.int,[dart.dynamic,dart.dynamic]],[_unlinkCell]:[dart.void,[LinkedHashMapCell]],[_newLinkedCell]:[LinkedHashMapCell,[K,V]],[_modified]:[dart.void,[]],[_computeHashCode]:[core.int,[dart.dynamic]],[_addHashTableEntry]:[dart.void,[dart.dynamic,K,V]],[_containsKey]:[core.bool,[core.Object]],[_get]:[V,[core.Object]],[_getBucket]:[core.List,[dart.dynamic,dart.dynamic]],[_set]:[dart.void,[K,V]],[_removeHashTableEntry]:[V,[dart.dynamic,core.Object]],[_remove]:[V,[core.Object]],addAll:[dart.void,[core.Map$(K,V)]],clear:[dart.void,[]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[K,V])]],get:[V,[core.Object]],putIfAbsent:[V,[K,dart.functionType(V,[])]],remove:[V,[core.Object]],set:[dart.void,[K,V]]}),names:['_isStringKey','_isNumericKey','_getTableEntry','_setTableEntry','_deleteTableEntry','_newHashTable'],statics:()=>({_deleteTableEntry:[dart.void,[dart.dynamic,dart.dynamic]],_getTableEntry:[dart.dynamic,[dart.dynamic,dart.dynamic]],_isNumericKey:[core.bool,[dart.dynamic]],_isStringKey:[core.bool,[dart.dynamic]],_newHashTable:[dart.dynamic,[]],_setTableEntry:[dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]]})});return _LinkedHashMap});let _LinkedHashMap=_LinkedHashMap$();let _LinkedIdentityHashMap$=dart.generic(function(K,V){class _LinkedIdentityHashMap extends _LinkedHashMap$(K,V){_LinkedIdentityHashMap(){super._LinkedHashMap()}[_computeHashCode](key){return core.identityHashCode(key)&0x3ffffff}[_findBucketIndex](bucket,key){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let cell=dart.as(bucket[i],LinkedHashMapCell);if(dart.notNull(core.identical(cell[_key],key)))return i;}return -1}}return _LinkedIdentityHashMap});let _LinkedIdentityHashMap=_LinkedIdentityHashMap$();let _LinkedCustomHashMap$=dart.generic(function(K,V){class _LinkedCustomHashMap extends _LinkedHashMap$(K,V){_LinkedCustomHashMap(equals,hashCode,validKey){this[_equals]=equals;this[_hashCode]=hashCode;this[_validKey]=validKey!=null?validKey:dart.fn(v=>dart.is(v,K),core.bool,[dart.dynamic]);super._LinkedHashMap()}get(key){if(!dart.notNull(this[_validKey](key)))return null;return super[_get](key)}set(key,value){dart.as(key,K);dart.as(value,V);super[_set](key,value)}containsKey(key){if(!dart.notNull(this[_validKey](key)))return false;return super[_containsKey](key)}remove(key){if(!dart.notNull(this[_validKey](key)))return null;return super[_remove](key)}[_computeHashCode](key){return this[_hashCode](dart.as(key,K))&0x3ffffff}[_findBucketIndex](bucket,key){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let cell=dart.as(bucket[i],LinkedHashMapCell);if(dart.notNull(this[_equals](dart.as(cell[_key],K),dart.as(key,K))))return i;}return -1}}dart.setSignature(_LinkedCustomHashMap,{constructors:()=>({_LinkedCustomHashMap:[_LinkedCustomHashMap$(K,V),[_Equality$(K),_Hasher$(K),dart.functionType(core.bool,[core.Object])]]}),methods:()=>({get:[V,[core.Object]],remove:[V,[core.Object]],set:[dart.void,[K,V]]})});return _LinkedCustomHashMap});let _LinkedCustomHashMap=_LinkedCustomHashMap$();class LinkedHashMapCell extends core.Object{LinkedHashMapCell(key,value){this[_key]=key;this[_value]=value;this[_next]=null;this[_previous]=null}};dart.setSignature(LinkedHashMapCell,{constructors:()=>({LinkedHashMapCell:[LinkedHashMapCell,[dart.dynamic,dart.dynamic]]})});let LinkedHashMapKeyIterable$=dart.generic(function(E){class LinkedHashMapKeyIterable extends IterableBase$(E){LinkedHashMapKeyIterable(map){this[_map]=map;super.IterableBase()}get length(){return dart.as(dart.dload(this[_map],_length),core.int)}get isEmpty(){return dart.equals(dart.dload(this[_map],_length),0)}get iterator(){return new(LinkedHashMapKeyIterator$(E))(this[_map],dart.as(dart.dload(this[_map],_modifications),core.int))}contains(element){return dart.as(dart.dsend(this[_map],'containsKey',element),core.bool)}forEach(f){dart.as(f,dart.functionType(dart.void,[E]));let cell=dart.as(dart.dload(this[_map],_first),LinkedHashMapCell);let modifications=dart.as(dart.dload(this[_map],_modifications),core.int);while(cell!=null){f(dart.as(cell[_key],E));if(!dart.equals(modifications,dart.dload(this[_map],_modifications))){dart.throw(new core.ConcurrentModificationError(this[_map]))}cell=cell[_next]}}}LinkedHashMapKeyIterable[dart.implements]=()=>[_internal.EfficientLength];dart.setSignature(LinkedHashMapKeyIterable,{constructors:()=>({LinkedHashMapKeyIterable:[LinkedHashMapKeyIterable$(E),[dart.dynamic]]}),methods:()=>({forEach:[dart.void,[dart.functionType(dart.void,[E])]]})});dart.defineExtensionMembers(LinkedHashMapKeyIterable,['contains','forEach','length','isEmpty','iterator']);return LinkedHashMapKeyIterable});let LinkedHashMapKeyIterable=LinkedHashMapKeyIterable$();let _cell=Symbol('_cell');let LinkedHashMapKeyIterator$=dart.generic(function(E){class LinkedHashMapKeyIterator extends core.Object{LinkedHashMapKeyIterator(map,modifications){this[_map]=map;this[_modifications]=modifications;this[_cell]=null;this[_current]=null;this[_cell]=dart.as(dart.dload(this[_map],_first),LinkedHashMapCell)}get current(){return this[_current]}moveNext(){if(!dart.equals(this[_modifications],dart.dload(this[_map],_modifications))){dart.throw(new core.ConcurrentModificationError(this[_map]))}else if(this[_cell]==null){this[_current]=null;return false}else{this[_current]=dart.as(this[_cell][_key],E);this[_cell]=this[_cell][_next];return true}}}LinkedHashMapKeyIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(LinkedHashMapKeyIterator,{constructors:()=>({LinkedHashMapKeyIterator:[LinkedHashMapKeyIterator$(E),[dart.dynamic,core.int]]}),methods:()=>({moveNext:[core.bool,[]]})});return LinkedHashMapKeyIterator});let LinkedHashMapKeyIterator=LinkedHashMapKeyIterator$();let _elements=Symbol('_elements');let _computeElements=Symbol('_computeElements');let _contains=Symbol('_contains');let _lookup=Symbol('_lookup');let _HashSet$=dart.generic(function(E){class _HashSet extends _HashSetBase$(E){_HashSet(){this[_length]=0;this[_strings]=null;this[_nums]=null;this[_rest]=null;this[_elements]=null}[_newSet](){return new(_HashSet$(E))()}get iterator(){return new(HashSetIterator$(E))(this,this[_computeElements]())}get length(){return this[_length]}get isEmpty(){return this[_length]==0}get isNotEmpty(){return!dart.notNull(this.isEmpty)}contains(object){if(dart.notNull(_HashSet$()._isStringElement(object))){let strings=this[_strings];return strings==null?false:_HashSet$()._hasTableEntry(strings,object)}else if(dart.notNull(_HashSet$()._isNumericElement(object))){let nums=this[_nums];return nums==null?false:_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.notNull(_HashSet$()._isStringElement(object))||dart.notNull(_HashSet$()._isNumericElement(object))){return dart.as(dart.notNull(this.contains(object))?object:null,E)}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 dart.as(bucket[dartx.get](index),E)}add(element){dart.as(element,E);if(dart.notNull(_HashSet$()._isStringElement(element))){let strings=this[_strings];if(strings==null)this[_strings]=strings=_HashSet$()._newHashTable();return this[_addHashTableEntry](strings,element)}else if(dart.notNull(_HashSet$()._isNumericElement(element))){let nums=this[_nums];if(nums==null)this[_nums]=nums=_HashSet$()._newHashTable();return this[_addHashTableEntry](nums,element)}else{return this[_add](element)}}[_add](element){dart.as(element,E);let rest=this[_rest];if(rest==null)this[_rest]=rest=_HashSet$()._newHashTable();let hash=this[_computeHashCode](element);let bucket=rest[hash];if(bucket==null){_HashSet$()._setTableEntry(rest,hash,[element])}else{let index=this[_findBucketIndex](bucket,element);if(dart.notNull(index)>=0)return false;bucket.push(element)}this[_length]=dart.notNull(this[_length])+1;this[_elements]=null;return true}addAll(objects){dart.as(objects,core.Iterable$(E));for(let each of objects){this.add(each)}}remove(object){if(dart.notNull(_HashSet$()._isStringElement(object))){return this[_removeHashTableEntry](this[_strings],object)}else if(dart.notNull(_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]=dart.notNull(this[_length])-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}}[_computeElements](){if(this[_elements]!=null)return this[_elements];let result=core.List.new(this[_length]);let index=0;let strings=this[_strings];if(strings!=null){let names=Object.getOwnPropertyNames(strings);let entries=names.length;for(let i=0;dart.notNull(i)<dart.notNull(entries);i=dart.notNull(i)+1){let element=names[i];result[index]=element;index=dart.notNull(index)+1}}let nums=this[_nums];if(nums!=null){let names=Object.getOwnPropertyNames(nums);let entries=names.length;for(let i=0;dart.notNull(i)<dart.notNull(entries);i=dart.notNull(i)+1){let element= +names[i];result[index]=element;index=dart.notNull(index)+1}}let rest=this[_rest];if(rest!=null){let names=Object.getOwnPropertyNames(rest);let entries=names.length;for(let i=0;dart.notNull(i)<dart.notNull(entries);i=dart.notNull(i)+1){let entry=names[i];let bucket=rest[entry];let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){result[index]=bucket[i];index=dart.notNull(index)+1}}}dart.assert(index==this[_length]);return this[_elements]=result}[_addHashTableEntry](table,element){dart.as(element,E);if(dart.notNull(_HashSet$()._hasTableEntry(table,element)))return false;_HashSet$()._setTableEntry(table,element,0);this[_length]=dart.notNull(this[_length])+1;this[_elements]=null;return true}[_removeHashTableEntry](table,element){if(table!=null&&dart.notNull(_HashSet$()._hasTableEntry(table,element))){_HashSet$()._deleteTableEntry(table,element);this[_length]=dart.notNull(this[_length])-1;this[_elements]=null;return true}else{return false}}static _isStringElement(element){return typeof element=='string'&& !dart.equals(element,'__proto__')}static _isNumericElement(element){return dart.is(element,core.num)&&(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 dart.as(table[hash],core.List)}[_findBucketIndex](bucket,element){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(dart.equals(bucket[i],element))return i;}return -1}static _newHashTable(){let table=Object.create(null);let temporaryKey='<non-identifier-key>';_HashSet$()._setTableEntry(table,temporaryKey,table);_HashSet$()._deleteTableEntry(table,temporaryKey);return table}}_HashSet[dart.implements]=()=>[HashSet$(E)];dart.setSignature(_HashSet,{constructors:()=>({_HashSet:[_HashSet$(E),[]]}),methods:()=>({[_findBucketIndex]:[core.int,[dart.dynamic,dart.dynamic]],[_computeHashCode]:[core.int,[dart.dynamic]],[_removeHashTableEntry]:[core.bool,[dart.dynamic,core.Object]],[_addHashTableEntry]:[core.bool,[dart.dynamic,E]],[_computeElements]:[core.List,[]],[_remove]:[core.bool,[core.Object]],[_contains]:[core.bool,[core.Object]],[_getBucket]:[core.List,[dart.dynamic,dart.dynamic]],[_add]:[core.bool,[E]],[_lookup]:[E,[core.Object]],[_newSet]:[core.Set$(E),[]],add:[core.bool,[E]],addAll:[dart.void,[core.Iterable$(E)]],contains:[core.bool,[core.Object]],lookup:[E,[core.Object]],remove:[core.bool,[core.Object]]}),names:['_isStringElement','_isNumericElement','_hasTableEntry','_setTableEntry','_deleteTableEntry','_newHashTable'],statics:()=>({_deleteTableEntry:[dart.void,[dart.dynamic,dart.dynamic]],_hasTableEntry:[core.bool,[dart.dynamic,dart.dynamic]],_isNumericElement:[core.bool,[dart.dynamic]],_isStringElement:[core.bool,[dart.dynamic]],_newHashTable:[dart.dynamic,[]],_setTableEntry:[dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(_HashSet,['contains','iterator','length','isEmpty','isNotEmpty']);return _HashSet});let _HashSet=_HashSet$();let _IdentityHashSet$=dart.generic(function(E){class _IdentityHashSet extends _HashSet$(E){_IdentityHashSet(){super._HashSet()}[_newSet](){return new(_IdentityHashSet$(E))()}[_computeHashCode](key){return core.identityHashCode(key)&0x3ffffff}[_findBucketIndex](bucket,element){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(dart.notNull(core.identical(bucket[i],element)))return i;}return -1}}dart.setSignature(_IdentityHashSet,{methods:()=>({[_newSet]:[core.Set$(E),[]]})});return _IdentityHashSet});let _IdentityHashSet=_IdentityHashSet$();let _equality=Symbol('_equality');let _hasher=Symbol('_hasher');let _CustomHashSet$=dart.generic(function(E){class _CustomHashSet extends _HashSet$(E){_CustomHashSet(equality,hasher,validKey){this[_equality]=equality;this[_hasher]=hasher;this[_validKey]=validKey!=null?validKey:dart.fn(x=>dart.is(x,E),core.bool,[dart.dynamic]);super._HashSet()}[_newSet](){return new(_CustomHashSet$(E))(this[_equality],this[_hasher],this[_validKey])}[_findBucketIndex](bucket,element){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){if(dart.notNull(this[_equality](dart.as(bucket[i],E),dart.as(element,E))))return i;}return -1}[_computeHashCode](element){return this[_hasher](dart.as(element,E))&0x3ffffff}add(object){dart.as(object,E);return super[_add](object)}contains(object){if(!dart.notNull(this[_validKey](object)))return false;return super[_contains](object)}lookup(object){if(!dart.notNull(this[_validKey](object)))return null;return super[_lookup](object)}remove(object){if(!dart.notNull(this[_validKey](object)))return false;return super[_remove](object)}}dart.setSignature(_CustomHashSet,{constructors:()=>({_CustomHashSet:[_CustomHashSet$(E),[_Equality$(E),_Hasher$(E),dart.functionType(core.bool,[core.Object])]]}),methods:()=>({[_newSet]:[core.Set$(E),[]],add:[core.bool,[E]],lookup:[E,[core.Object]]})});dart.defineExtensionMembers(_CustomHashSet,['contains']);return _CustomHashSet});let _CustomHashSet=_CustomHashSet$();let HashSetIterator$=dart.generic(function(E){class HashSetIterator extends core.Object{HashSetIterator(set,elements){this[_set]=set;this[_elements]=elements;this[_offset]=0;this[_current]=null}get current(){return this[_current]}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]=null;return false}else{this[_current]=dart.as(elements[offset],E);this[_offset]=dart.notNull(offset)+1;return true}}}HashSetIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(HashSetIterator,{constructors:()=>({HashSetIterator:[HashSetIterator$(E),[dart.dynamic,core.List]]}),methods:()=>({moveNext:[core.bool,[]]})});return HashSetIterator});let HashSetIterator=HashSetIterator$();let _unsupported=Symbol('_unsupported');let _LinkedHashSet$=dart.generic(function(E){class _LinkedHashSet extends _HashSetBase$(E){_LinkedHashSet(){this[_length]=0;this[_strings]=null;this[_nums]=null;this[_rest]=null;this[_first]=null;this[_last]=null;this[_modifications]=0}[_newSet](){return new(_LinkedHashSet$(E))()}[_unsupported](operation){dart.throw(`LinkedHashSet: unsupported ${operation }`)}get iterator(){return new(LinkedHashSetIterator$(E))(this,this[_modifications])}get length(){return this[_length]}get isEmpty(){return this[_length]==0}get isNotEmpty(){return!dart.notNull(this.isEmpty)}contains(object){if(dart.notNull(_LinkedHashSet$()._isStringElement(object))){let strings=this[_strings];if(strings==null)return false;let cell=dart.as(_LinkedHashSet$()._getTableEntry(strings,object),LinkedHashSetCell);return cell!=null}else if(dart.notNull(_LinkedHashSet$()._isNumericElement(object))){let nums=this[_nums];if(nums==null)return false;let cell=dart.as(_LinkedHashSet$()._getTableEntry(nums,object),LinkedHashSetCell);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.notNull(_LinkedHashSet$()._isStringElement(object))||dart.notNull(_LinkedHashSet$()._isNumericElement(object))){return dart.as(dart.notNull(this.contains(object))?object:null,E)}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 dart.as(dart.dload(bucket[dartx.get](index),_element),E)}forEach(action){dart.as(action,dart.functionType(dart.void,[E]));let cell=this[_first];let modifications=this[_modifications];while(cell!=null){action(dart.as(cell[_element],E));if(modifications!=this[_modifications]){dart.throw(new core.ConcurrentModificationError(this))}cell=cell[_next]}}get first(){if(this[_first]==null)dart.throw(new core.StateError("No elements"));return dart.as(this[_first][_element],E)}get last(){if(this[_last]==null)dart.throw(new core.StateError("No elements"));return dart.as(this[_last][_element],E)}add(element){dart.as(element,E);if(dart.notNull(_LinkedHashSet$()._isStringElement(element))){let strings=this[_strings];if(strings==null)this[_strings]=strings=_LinkedHashSet$()._newHashTable();return this[_addHashTableEntry](strings,element)}else if(dart.notNull(_LinkedHashSet$()._isNumericElement(element))){let nums=this[_nums];if(nums==null)this[_nums]=nums=_LinkedHashSet$()._newHashTable();return this[_addHashTableEntry](nums,element)}else{return this[_add](element)}}[_add](element){dart.as(element,E);let rest=this[_rest];if(rest==null)this[_rest]=rest=_LinkedHashSet$()._newHashTable();let hash=this[_computeHashCode](element);let bucket=rest[hash];if(bucket==null){let cell=this[_newLinkedCell](element);_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.notNull(_LinkedHashSet$()._isStringElement(object))){return this[_removeHashTableEntry](this[_strings],object)}else if(dart.notNull(_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=dart.as(bucket.splice(index,1)[0],LinkedHashSetCell);this[_unlinkCell](cell);return true}removeWhere(test){dart.as(test,dart.functionType(core.bool,[E]));this[_filterWhere](test,true)}retainWhere(test){dart.as(test,dart.functionType(core.bool,[E]));this[_filterWhere](test,false)}[_filterWhere](test,removeMatching){dart.as(test,dart.functionType(core.bool,[E]));let cell=this[_first];while(cell!=null){let element=dart.as(cell[_element],E);let next=cell[_next];let modifications=this[_modifications];let shouldRemove=removeMatching==test(element);if(modifications!=this[_modifications]){dart.throw(new core.ConcurrentModificationError(this))}if(dart.notNull(shouldRemove))this.remove(element);cell=next}}clear(){if(dart.notNull(this[_length])>0){this[_strings]=this[_nums]=this[_rest]=this[_first]=this[_last]=null;this[_length]=0;this[_modified]()}}[_addHashTableEntry](table,element){dart.as(element,E);let cell=dart.as(_LinkedHashSet$()._getTableEntry(table,element),LinkedHashSetCell);if(cell!=null)return false;_LinkedHashSet$()._setTableEntry(table,element,this[_newLinkedCell](element));return true}[_removeHashTableEntry](table,element){if(table==null)return false;let cell=dart.as(_LinkedHashSet$()._getTableEntry(table,element),LinkedHashSetCell);if(cell==null)return false;this[_unlinkCell](cell);_LinkedHashSet$()._deleteTableEntry(table,element);return true}[_modified](){this[_modifications]=dart.notNull(this[_modifications])+1&67108863}[_newLinkedCell](element){dart.as(element,E);let cell=new LinkedHashSetCell(element);if(this[_first]==null){this[_first]=this[_last]=cell}else{let last=this[_last];cell[_previous]=last;this[_last]=last[_next]=cell}this[_length]=dart.notNull(this[_length])+1;this[_modified]();return cell}[_unlinkCell](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]=dart.notNull(this[_length])-1;this[_modified]()}static _isStringElement(element){return typeof element=='string'&& !dart.equals(element,'__proto__')}static _isNumericElement(element){return dart.is(element,core.num)&&(element&0x3ffffff)===element}[_computeHashCode](element){return dart.hashCode(element)&0x3ffffff}static _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 dart.as(table[hash],core.List)}[_findBucketIndex](bucket,element){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let cell=dart.as(bucket[i],LinkedHashSetCell);if(dart.equals(cell[_element],element))return i;}return -1}static _newHashTable(){let table=Object.create(null);let temporaryKey='<non-identifier-key>';_LinkedHashSet$()._setTableEntry(table,temporaryKey,table);_LinkedHashSet$()._deleteTableEntry(table,temporaryKey);return table}}_LinkedHashSet[dart.implements]=()=>[LinkedHashSet$(E)];dart.setSignature(_LinkedHashSet,{constructors:()=>({_LinkedHashSet:[_LinkedHashSet$(E),[]]}),methods:()=>({[_findBucketIndex]:[core.int,[dart.dynamic,dart.dynamic]],[_newLinkedCell]:[LinkedHashSetCell,[E]],[_modified]:[dart.void,[]],[_removeHashTableEntry]:[core.bool,[dart.dynamic,core.Object]],[_unlinkCell]:[dart.void,[LinkedHashSetCell]],[_filterWhere]:[dart.void,[dart.functionType(core.bool,[E]),core.bool]],[_unsupported]:[dart.void,[core.String]],[_contains]:[core.bool,[core.Object]],[_getBucket]:[core.List,[dart.dynamic,dart.dynamic]],[_lookup]:[E,[core.Object]],[_computeHashCode]:[core.int,[dart.dynamic]],[_add]:[core.bool,[E]],[_addHashTableEntry]:[core.bool,[dart.dynamic,E]],[_newSet]:[core.Set$(E),[]],[_remove]:[core.bool,[core.Object]],add:[core.bool,[E]],contains:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[E])]],lookup:[E,[core.Object]],remove:[core.bool,[core.Object]],removeWhere:[dart.void,[dart.functionType(core.bool,[E])]],retainWhere:[dart.void,[dart.functionType(core.bool,[E])]]}),names:['_isStringElement','_isNumericElement','_getTableEntry','_setTableEntry','_deleteTableEntry','_newHashTable'],statics:()=>({_deleteTableEntry:[dart.void,[dart.dynamic,dart.dynamic]],_getTableEntry:[dart.dynamic,[dart.dynamic,dart.dynamic]],_isNumericElement:[core.bool,[dart.dynamic]],_isStringElement:[core.bool,[dart.dynamic]],_newHashTable:[dart.dynamic,[]],_setTableEntry:[dart.void,[dart.dynamic,dart.dynamic,dart.dynamic]]})});dart.defineExtensionMembers(_LinkedHashSet,['contains','forEach','iterator','length','isEmpty','isNotEmpty','first','last']);return _LinkedHashSet});let _LinkedHashSet=_LinkedHashSet$();let _LinkedIdentityHashSet$=dart.generic(function(E){class _LinkedIdentityHashSet extends _LinkedHashSet$(E){_LinkedIdentityHashSet(){super._LinkedHashSet()}[_newSet](){return new(_LinkedIdentityHashSet$(E))()}[_computeHashCode](key){return core.identityHashCode(key)&0x3ffffff}[_findBucketIndex](bucket,element){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let cell=dart.as(bucket[i],LinkedHashSetCell);if(dart.notNull(core.identical(cell[_element],element)))return i;}return -1}}dart.setSignature(_LinkedIdentityHashSet,{methods:()=>({[_newSet]:[core.Set$(E),[]]})});return _LinkedIdentityHashSet});let _LinkedIdentityHashSet=_LinkedIdentityHashSet$();let _LinkedCustomHashSet$=dart.generic(function(E){class _LinkedCustomHashSet extends _LinkedHashSet$(E){_LinkedCustomHashSet(equality,hasher,validKey){this[_equality]=equality;this[_hasher]=hasher;this[_validKey]=validKey!=null?validKey:dart.fn(x=>dart.is(x,E),core.bool,[dart.dynamic]);super._LinkedHashSet()}[_newSet](){return new(_LinkedCustomHashSet$(E))(this[_equality],this[_hasher],this[_validKey])}[_findBucketIndex](bucket,element){if(bucket==null)return -1;let length=bucket.length;for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let cell=dart.as(bucket[i],LinkedHashSetCell);if(dart.notNull(this[_equality](dart.as(cell[_element],E),dart.as(element,E))))return i;}return -1}[_computeHashCode](element){return this[_hasher](dart.as(element,E))&0x3ffffff}add(element){dart.as(element,E);return super[_add](element)}contains(object){if(!dart.notNull(this[_validKey](object)))return false;return super[_contains](object)}lookup(object){if(!dart.notNull(this[_validKey](object)))return null;return super[_lookup](object)}remove(object){if(!dart.notNull(this[_validKey](object)))return false;return super[_remove](object)}containsAll(elements){for(let element of elements){if(!dart.notNull(this[_validKey](element))|| !dart.notNull(this.contains(element)))return false;}return true}removeAll(elements){for(let element of elements){if(dart.notNull(this[_validKey](element))){super[_remove](element)}}}}dart.setSignature(_LinkedCustomHashSet,{constructors:()=>({_LinkedCustomHashSet:[_LinkedCustomHashSet$(E),[_Equality$(E),_Hasher$(E),dart.functionType(core.bool,[core.Object])]]}),methods:()=>({[_newSet]:[core.Set$(E),[]],add:[core.bool,[E]],lookup:[E,[core.Object]]})});dart.defineExtensionMembers(_LinkedCustomHashSet,['contains']);return _LinkedCustomHashSet});let _LinkedCustomHashSet=_LinkedCustomHashSet$();class LinkedHashSetCell extends core.Object{LinkedHashSetCell(element){this[_element]=element;this[_next]=null;this[_previous]=null}};dart.setSignature(LinkedHashSetCell,{constructors:()=>({LinkedHashSetCell:[LinkedHashSetCell,[dart.dynamic]]})});let LinkedHashSetIterator$=dart.generic(function(E){class LinkedHashSetIterator extends core.Object{LinkedHashSetIterator(set,modifications){this[_set]=set;this[_modifications]=modifications;this[_cell]=null;this[_current]=null;this[_cell]=dart.as(dart.dload(this[_set],_first),LinkedHashSetCell)}get current(){return this[_current]}moveNext(){if(!dart.equals(this[_modifications],dart.dload(this[_set],_modifications))){dart.throw(new core.ConcurrentModificationError(this[_set]))}else if(this[_cell]==null){this[_current]=null;return false}else{this[_current]=dart.as(this[_cell][_element],E);this[_cell]=this[_cell][_next];return true}}}LinkedHashSetIterator[dart.implements]=()=>[core.Iterator$(E)];dart.setSignature(LinkedHashSetIterator,{constructors:()=>({LinkedHashSetIterator:[LinkedHashSetIterator$(E),[dart.dynamic,core.int]]}),methods:()=>({moveNext:[core.bool,[]]})});return LinkedHashSetIterator});let LinkedHashSetIterator=LinkedHashSetIterator$();exports.UnmodifiableListView$=UnmodifiableListView$;exports.HashMap$=HashMap$;exports.HashMap=HashMap;exports.SetMixin$=SetMixin$;exports.SetMixin=SetMixin;exports.SetBase$=SetBase$;exports.SetBase=SetBase;exports.HashSet$=HashSet$;exports.HashSet=HashSet;exports.IterableMixin$=IterableMixin$;exports.IterableMixin=IterableMixin;exports.IterableBase$=IterableBase$;exports.IterableBase=IterableBase;exports.HasNextIterator$=HasNextIterator$;exports.HasNextIterator=HasNextIterator;exports.LinkedHashMap$=LinkedHashMap$;exports.LinkedHashMap=LinkedHashMap;exports.LinkedHashSet$=LinkedHashSet$;exports.LinkedHashSet=LinkedHashSet;exports.LinkedList$=LinkedList$;exports.LinkedList=LinkedList;exports.LinkedListEntry$=LinkedListEntry$;exports.LinkedListEntry=LinkedListEntry;exports.ListMixin$=ListMixin$;exports.ListMixin=ListMixin;exports.ListBase$=ListBase$;exports.ListBase=ListBase;exports.MapMixin$=MapMixin$;exports.MapMixin=MapMixin;exports.MapBase$=MapBase$;exports.MapBase=MapBase;exports.UnmodifiableMapBase$=UnmodifiableMapBase$;exports.UnmodifiableMapBase=UnmodifiableMapBase;exports.MapView$=MapView$;exports.MapView=MapView;exports.UnmodifiableMapView$=UnmodifiableMapView$;exports.UnmodifiableMapView=UnmodifiableMapView;exports.Maps=Maps;exports.Queue$=Queue$;exports.Queue=Queue;exports.DoubleLinkedQueueEntry$=DoubleLinkedQueueEntry$;exports.DoubleLinkedQueueEntry=DoubleLinkedQueueEntry;exports.DoubleLinkedQueue$=DoubleLinkedQueue$;exports.DoubleLinkedQueue=DoubleLinkedQueue;exports.ListQueue$=ListQueue$;exports.ListQueue=ListQueue;exports.SplayTreeMap$=SplayTreeMap$;exports.SplayTreeMap=SplayTreeMap;exports.SplayTreeSet$=SplayTreeSet$;exports.SplayTreeSet=SplayTreeSet;exports.HashMapKeyIterable$=HashMapKeyIterable$;exports.HashMapKeyIterable=HashMapKeyIterable;exports.HashMapKeyIterator$=HashMapKeyIterator$;exports.HashMapKeyIterator=HashMapKeyIterator;exports.LinkedHashMapCell=LinkedHashMapCell;exports.LinkedHashMapKeyIterable$=LinkedHashMapKeyIterable$;exports.LinkedHashMapKeyIterable=LinkedHashMapKeyIterable;exports.LinkedHashMapKeyIterator$=LinkedHashMapKeyIterator$;exports.LinkedHashMapKeyIterator=LinkedHashMapKeyIterator;exports.HashSetIterator$=HashSetIterator$;exports.HashSetIterator=HashSetIterator;exports.LinkedHashSetCell=LinkedHashSetCell;exports.LinkedHashSetIterator$=LinkedHashSetIterator$;exports.LinkedHashSetIterator=LinkedHashSetIterator});dart_library.library('dart/convert',null,["dart_runtime/dart",'dart/core','dart/async','dart/typed_data','dart/_internal','dart/collection'],[],function(exports,dart,core,async,typed_data,_internal,collection){'use strict';let dartx=dart.dartx;let Codec$=dart.generic(function(S,T){class Codec extends core.Object{Codec(){}encode(input){dart.as(input,S);return this.encoder.convert(input)}decode(encoded){dart.as(encoded,T);return this.decoder.convert(encoded)}fuse(other){dart.as(other,Codec$(T,dart.dynamic));return new(_FusedCodec$(S,T,dart.dynamic))(this,other)}get inverted(){return new(_InvertedCodec$(T,S))(this)}}dart.setSignature(Codec,{constructors:()=>({Codec:[Codec$(S,T),[]]}),methods:()=>({decode:[S,[T]],encode:[T,[S]],fuse:[Codec$(S,dart.dynamic),[Codec$(T,dart.dynamic)]]})});return Codec});let Codec=Codec$();class Encoding extends Codec$(core.String,core.List$(core.int)){Encoding(){super.Codec()}decodeStream(byteStream){return dart.as(byteStream.transform(this.decoder).fold(new core.StringBuffer(),dart.fn((buffer,string)=>((()=>{dart.dsend(buffer,'write',string);return buffer})()))).then(dart.fn(buffer=>dart.toString(buffer),core.String,[dart.dynamic])),async.Future$(core.String))}static getByName(name){if(name==null)return null;name=name[dartx.toLowerCase]();return Encoding._nameToEncoding.get(name)}}dart.setSignature(Encoding,{constructors:()=>({Encoding:[Encoding,[]]}),methods:()=>({decodeStream:[async.Future$(core.String),[async.Stream$(core.List$(core.int))]]}),names:['getByName'],statics:()=>({getByName:[Encoding,[core.String]]})});let _allowInvalid=Symbol('_allowInvalid');class AsciiCodec extends Encoding{AsciiCodec(opts){let allowInvalid=opts&&'allowInvalid'in opts?opts.allowInvalid:false;this[_allowInvalid]=allowInvalid;super.Encoding()}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.notNull(allowInvalid)){return dart.const(new AsciiDecoder({allowInvalid:true})).convert(bytes)}else{return dart.const(new AsciiDecoder({allowInvalid:false})).convert(bytes)}}get encoder(){return dart.const(new AsciiEncoder())}get decoder(){return dart.notNull(this[_allowInvalid])?dart.const(new AsciiDecoder({allowInvalid:true})):dart.const(new AsciiDecoder({allowInvalid:false}))}};dart.setSignature(AsciiCodec,{constructors:()=>({AsciiCodec:[AsciiCodec,[],{allowInvalid:core.bool}]}),methods:()=>({decode:[core.String,[core.List$(core.int)],{allowInvalid:core.bool}]})});let ASCII=dart.const(new AsciiCodec());let _ASCII_MASK=127;let Converter$=dart.generic(function(S,T){class Converter extends core.Object{Converter(){}fuse(other){dart.as(other,Converter$(T,dart.dynamic));return new(_FusedConverter$(S,T,dart.dynamic))(this,other)}startChunkedConversion(sink){dart.as(sink,core.Sink$(T));dart.throw(new core.UnsupportedError(`This converter does not support chunked conversions: ${this }`))}bind(source){dart.as(source,async.Stream$(S));return async.Stream$(T).eventTransformed(source,dart.fn(sink=>new _ConverterStreamEventSink(this,sink),_ConverterStreamEventSink,[async.EventSink]))}}Converter[dart.implements]=()=>[async.StreamTransformer$(S,T)];dart.setSignature(Converter,{constructors:()=>({Converter:[Converter$(S,T),[]]}),methods:()=>({bind:[async.Stream$(T),[async.Stream$(S)]],fuse:[Converter$(S,dart.dynamic),[Converter$(T,dart.dynamic)]],startChunkedConversion:[ChunkedConversionSink,[core.Sink$(T)]]})});return Converter});let Converter=Converter$();let _subsetMask=Symbol('_subsetMask');class _UnicodeSubsetEncoder extends Converter$(core.String,core.List$(core.int)){_UnicodeSubsetEncoder(subsetMask){this[_subsetMask]=subsetMask;super.Converter()}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;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let codeUnit=string[dartx.codeUnitAt](dart.notNull(start)+dart.notNull(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 dart.as(result,core.List$(core.int))}startChunkedConversion(sink){if(!dart.is(sink,ByteConversionSink)){sink=ByteConversionSink.from(sink)}return new _UnicodeSubsetEncoderSink(this[_subsetMask],dart.as(sink,ByteConversionSink))}bind(stream){return super.bind(stream)}}dart.setSignature(_UnicodeSubsetEncoder,{constructors:()=>({_UnicodeSubsetEncoder:[_UnicodeSubsetEncoder,[core.int]]}),methods:()=>({bind:[async.Stream$(core.List$(core.int)),[async.Stream$(core.String)]],convert:[core.List$(core.int),[core.String],[core.int,core.int]],startChunkedConversion:[StringConversionSink,[core.Sink$(core.List$(core.int))]]})});class AsciiEncoder extends _UnicodeSubsetEncoder{AsciiEncoder(){super._UnicodeSubsetEncoder(_ASCII_MASK)}};dart.setSignature(AsciiEncoder,{constructors:()=>({AsciiEncoder:[AsciiEncoder,[]]})});class StringConversionSinkMixin extends core.Object{add(str){return this.addSlice(str,0,str[dartx.length],false)}asUtf8Sink(allowMalformed){return new _Utf8ConversionSink(this,allowMalformed)}asStringSink(){return new _StringConversionSinkAsStringSinkAdapter(this)}};StringConversionSinkMixin[dart.implements]=()=>[StringConversionSink];dart.setSignature(StringConversionSinkMixin,{methods:()=>({add:[dart.void,[core.String]],asStringSink:[ClosableStringSink,[]],asUtf8Sink:[ByteConversionSink,[core.bool]]})});class StringConversionSinkBase extends StringConversionSinkMixin{};let _sink=Symbol('_sink');class _UnicodeSubsetEncoderSink extends StringConversionSinkBase{_UnicodeSubsetEncoderSink(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(`Source contains invalid character with code point: ${codeUnit }.`))}}this[_sink].add(source[dartx.codeUnits][dartx.sublist](start,end));if(dart.notNull(isLast)){this.close()}}};dart.setSignature(_UnicodeSubsetEncoderSink,{constructors:()=>({_UnicodeSubsetEncoderSink:[_UnicodeSubsetEncoderSink,[core.int,ByteConversionSink]]}),methods:()=>({addSlice:[dart.void,[core.String,core.int,core.int,core.bool]],close:[dart.void,[]]})});let _convertInvalid=Symbol('_convertInvalid');class _UnicodeSubsetDecoder extends Converter$(core.List$(core.int),core.String){_UnicodeSubsetDecoder(allowInvalid,subsetMask){this[_allowInvalid]=allowInvalid;this[_subsetMask]=subsetMask;super.Converter()}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;let length=dart.notNull(end)-dart.notNull(start);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.notNull(this[_allowInvalid])){dart.throw(new core.FormatException(`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 dart.toString(buffer)}bind(stream){return super.bind(stream)}}dart.setSignature(_UnicodeSubsetDecoder,{constructors:()=>({_UnicodeSubsetDecoder:[_UnicodeSubsetDecoder,[core.bool,core.int]]}),methods:()=>({[_convertInvalid]:[core.String,[core.List$(core.int),core.int,core.int]],bind:[async.Stream$(core.String),[async.Stream$(core.List$(core.int))]],convert:[core.String,[core.List$(core.int)],[core.int,core.int]]})});class AsciiDecoder extends _UnicodeSubsetDecoder{AsciiDecoder(opts){let allowInvalid=opts&&'allowInvalid'in opts?opts.allowInvalid:false;super._UnicodeSubsetDecoder(allowInvalid,_ASCII_MASK)}startChunkedConversion(sink){let stringSink=null;if(dart.is(sink,StringConversionSink)){stringSink=sink}else{stringSink=StringConversionSink.from(sink)}if(dart.notNull(this[_allowInvalid])){return new _ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false))}else{return new _SimpleAsciiDecoderSink(stringSink)}}};dart.setSignature(AsciiDecoder,{constructors:()=>({AsciiDecoder:[AsciiDecoder,[],{allowInvalid:core.bool}]}),methods:()=>({startChunkedConversion:[ByteConversionSink,[core.Sink$(core.String)]]})});let ChunkedConversionSink$=dart.generic(function(T){class ChunkedConversionSink extends core.Object{ChunkedConversionSink(){}static withCallback(callback){return new _SimpleCallbackSink(callback)}}ChunkedConversionSink[dart.implements]=()=>[core.Sink$(T)];dart.setSignature(ChunkedConversionSink,{constructors:()=>({ChunkedConversionSink:[ChunkedConversionSink$(T),[]],withCallback:[ChunkedConversionSink$(T),[dart.functionType(dart.void,[core.List$(T)])]]})});return ChunkedConversionSink});let ChunkedConversionSink=ChunkedConversionSink$();class ByteConversionSink extends ChunkedConversionSink$(core.List$(core.int)){ByteConversionSink(){super.ChunkedConversionSink()}static withCallback(callback){return new _ByteCallbackSink(callback)}static from(sink){return new _ByteAdapterSink(sink)}}dart.setSignature(ByteConversionSink,{constructors:()=>({ByteConversionSink:[ByteConversionSink,[]],from:[ByteConversionSink,[core.Sink$(core.List$(core.int))]],withCallback:[ByteConversionSink,[dart.functionType(dart.void,[core.List$(core.int)])]]})});class ByteConversionSinkBase extends ByteConversionSink{ByteConversionSinkBase(){super.ByteConversionSink()}addSlice(chunk,start,end,isLast){this.add(chunk[dartx.sublist](start,end));if(dart.notNull(isLast))this.close();}};dart.setSignature(ByteConversionSinkBase,{methods:()=>({addSlice:[dart.void,[core.List$(core.int),core.int,core.int,core.bool]]})});let _utf8Sink=Symbol('_utf8Sink');class _ErrorHandlingAsciiDecoderSink extends ByteConversionSinkBase{_ErrorHandlingAsciiDecoderSink(utf8Sink){this[_utf8Sink]=utf8Sink}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))& ~dart.notNull(_ASCII_MASK))!=0){if(dart.notNull(i)>dart.notNull(start))this[_utf8Sink].addSlice(source,start,i,false);this[_utf8Sink].add(dart.const(dart.list([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.notNull(isLast)){this.close()}}};dart.setSignature(_ErrorHandlingAsciiDecoderSink,{constructors:()=>({_ErrorHandlingAsciiDecoderSink:[_ErrorHandlingAsciiDecoderSink,[ByteConversionSink]]}),methods:()=>({add:[dart.void,[core.List$(core.int)]],close:[dart.void,[]]})});class _SimpleAsciiDecoderSink extends ByteConversionSinkBase{_SimpleAsciiDecoderSink(sink){this[_sink]=sink}close(){this[_sink].close()}add(source){for(let i=0;dart.notNull(i)<dart.notNull(source[dartx.length]);i=dart.notNull(i)+1){if((dart.notNull(source[dartx.get](i))& ~dart.notNull(_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.notNull(isLast))this.close();}};dart.setSignature(_SimpleAsciiDecoderSink,{constructors:()=>({_SimpleAsciiDecoderSink:[_SimpleAsciiDecoderSink,[core.Sink]]}),methods:()=>({add:[dart.void,[core.List$(core.int)]],close:[dart.void,[]]})});class _ByteAdapterSink extends ByteConversionSinkBase{_ByteAdapterSink(sink){this[_sink]=sink}add(chunk){return this[_sink].add(chunk)}close(){return this[_sink].close()}};dart.setSignature(_ByteAdapterSink,{constructors:()=>({_ByteAdapterSink:[_ByteAdapterSink,[core.Sink$(core.List$(core.int))]]}),methods:()=>({add:[dart.void,[core.List$(core.int)]],close:[dart.void,[]]})});let _buffer=Symbol('_buffer');let _callback=Symbol('_callback');let _bufferIndex=Symbol('_bufferIndex');class _ByteCallbackSink extends ByteConversionSinkBase{_ByteCallbackSink(callback){this[_buffer]=typed_data.Uint8List.new(_ByteCallbackSink._INITIAL_BUFFER_SIZE);this[_callback]=callback;this[_bufferIndex]=0}add(chunk){let freeCount=dart.notNull(this[_buffer][dartx.length])-dart.notNull(this[_bufferIndex]);if(dart.notNull(chunk[dartx.length])>dart.notNull(freeCount)){let oldLength=this[_buffer][dartx.length];let newLength=dart.notNull(_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)|dart.notNull(v)>>1;v=dart.notNull(v)|dart.notNull(v)>>2;v=dart.notNull(v)|dart.notNull(v)>>4;v=dart.notNull(v)|dart.notNull(v)>>8;v=dart.notNull(v)|dart.notNull(v)>>16;v=dart.notNull(v)+1;return v}close(){this[_callback](this[_buffer][dartx.sublist](0,this[_bufferIndex]))}};dart.setSignature(_ByteCallbackSink,{constructors:()=>({_ByteCallbackSink:[_ByteCallbackSink,[dart.functionType(dart.void,[core.List$(core.int)])]]}),methods:()=>({add:[dart.void,[core.Iterable$(core.int)]],close:[dart.void,[]]}),names:['_roundToPowerOf2'],statics:()=>({_roundToPowerOf2:[core.int,[core.int]]})});_ByteCallbackSink._INITIAL_BUFFER_SIZE=1024;let _ChunkedConversionCallback$=dart.generic(function(T){let _ChunkedConversionCallback=dart.typedef('_ChunkedConversionCallback',()=>dart.functionType(dart.void,[T]));return _ChunkedConversionCallback});let _ChunkedConversionCallback=_ChunkedConversionCallback$();let _accumulated=Symbol('_accumulated');let _SimpleCallbackSink$=dart.generic(function(T){class _SimpleCallbackSink extends ChunkedConversionSink$(T){_SimpleCallbackSink(callback){this[_accumulated]=dart.list([],T);this[_callback]=callback;super.ChunkedConversionSink()}add(chunk){dart.as(chunk,T);this[_accumulated][dartx.add](chunk)}close(){this[_callback](this[_accumulated])}}dart.setSignature(_SimpleCallbackSink,{constructors:()=>({_SimpleCallbackSink:[_SimpleCallbackSink$(T),[_ChunkedConversionCallback$(core.List$(T))]]}),methods:()=>({add:[dart.void,[T]],close:[dart.void,[]]})});return _SimpleCallbackSink});let _SimpleCallbackSink=_SimpleCallbackSink$();let _EventSinkAdapter$=dart.generic(function(T){class _EventSinkAdapter extends core.Object{_EventSinkAdapter(sink){this[_sink]=sink}add(data){dart.as(data,T);return this[_sink].add(data)}close(){return this[_sink].close()}}_EventSinkAdapter[dart.implements]=()=>[ChunkedConversionSink$(T)];dart.setSignature(_EventSinkAdapter,{constructors:()=>({_EventSinkAdapter:[_EventSinkAdapter$(T),[async.EventSink$(T)]]}),methods:()=>({add:[dart.void,[T]],close:[dart.void,[]]})});return _EventSinkAdapter});let _EventSinkAdapter=_EventSinkAdapter$();let _eventSink=Symbol('_eventSink');let _chunkedSink=Symbol('_chunkedSink');let _ConverterStreamEventSink$=dart.generic(function(S,T){class _ConverterStreamEventSink extends core.Object{_ConverterStreamEventSink(converter,sink){this[_eventSink]=sink;this[_chunkedSink]=converter.startChunkedConversion(sink)}add(o){dart.as(o,S);return this[_chunkedSink].add(o)}addError(error,stackTrace){if(stackTrace===void 0)stackTrace=null;this[_eventSink].addError(error,stackTrace)}close(){return this[_chunkedSink].close()}}_ConverterStreamEventSink[dart.implements]=()=>[async.EventSink$(S)];dart.setSignature(_ConverterStreamEventSink,{constructors:()=>({_ConverterStreamEventSink:[_ConverterStreamEventSink$(S,T),[Converter,async.EventSink$(T)]]}),methods:()=>({add:[dart.void,[S]],addError:[dart.void,[core.Object],[core.StackTrace]],close:[dart.void,[]]})});return _ConverterStreamEventSink});let _ConverterStreamEventSink=_ConverterStreamEventSink$();let _first=Symbol('_first');let _second=Symbol('_second');let _FusedCodec$=dart.generic(function(S,M,T){class _FusedCodec extends Codec$(S,T){get encoder(){return dart.as(this[_first].encoder.fuse(this[_second].encoder),Converter$(S,T))}get decoder(){return dart.as(this[_second].decoder.fuse(this[_first].decoder),Converter$(T,S))}_FusedCodec(first,second){this[_first]=first;this[_second]=second;super.Codec()}}dart.setSignature(_FusedCodec,{constructors:()=>({_FusedCodec:[_FusedCodec$(S,M,T),[Codec$(S,M),Codec$(M,T)]]})});return _FusedCodec});let _FusedCodec=_FusedCodec$();let _codec=Symbol('_codec');let _InvertedCodec$=dart.generic(function(T,S){class _InvertedCodec extends Codec$(T,S){_InvertedCodec(codec){this[_codec]=codec;super.Codec()}get encoder(){return this[_codec].decoder}get decoder(){return this[_codec].encoder}get inverted(){return this[_codec]}}dart.setSignature(_InvertedCodec,{constructors:()=>({_InvertedCodec:[_InvertedCodec$(T,S),[Codec$(S,T)]]})});return _InvertedCodec});let _InvertedCodec=_InvertedCodec$();let _FusedConverter$=dart.generic(function(S,M,T){class _FusedConverter extends Converter$(S,T){_FusedConverter(first,second){this[_first]=first;this[_second]=second;super.Converter()}convert(input){dart.as(input,S);return dart.as(this[_second].convert(this[_first].convert(input)),T)}startChunkedConversion(sink){dart.as(sink,core.Sink$(T));return this[_first].startChunkedConversion(this[_second].startChunkedConversion(sink))}}dart.setSignature(_FusedConverter,{constructors:()=>({_FusedConverter:[_FusedConverter$(S,M,T),[Converter,Converter]]}),methods:()=>({convert:[T,[S]],startChunkedConversion:[ChunkedConversionSink,[core.Sink$(T)]]})});return _FusedConverter});let _FusedConverter=_FusedConverter$();dart.defineLazyProperties(Encoding,{get _nameToEncoding(){return dart.map({"ansi_x3.4-1968":ASCII,"ansi_x3.4-1986":ASCII,"iso-8859-1":LATIN1,"iso-ir-100":LATIN1,"iso-ir-6":ASCII,"iso646-us":ASCII,"iso_646.irv:1991":ASCII,"iso_8859-1":LATIN1,"iso_8859-1:1987":LATIN1,"us-ascii":ASCII,"utf-8":UTF8,ascii:ASCII,cp367:ASCII,cp819:LATIN1,csascii:ASCII,csisolatin1:LATIN1,csutf8:UTF8,ibm367:ASCII,ibm819:LATIN1,l1:LATIN1,latin1:LATIN1,us:ASCII})},set _nameToEncoding(_){}});let _name=Symbol('_name');class HtmlEscapeMode extends core.Object{_(name,escapeLtGt,escapeQuot,escapeApos,escapeSlash){this[_name]=name;this.escapeLtGt=escapeLtGt;this.escapeQuot=escapeQuot;this.escapeApos=escapeApos;this.escapeSlash=escapeSlash}toString(){return this[_name]}};dart.defineNamedConstructor(HtmlEscapeMode,'_');dart.setSignature(HtmlEscapeMode,{constructors:()=>({_:[HtmlEscapeMode,[core.String,core.bool,core.bool,core.bool,core.bool]]})});HtmlEscapeMode.UNKNOWN=dart.const(new HtmlEscapeMode._('unknown',true,true,true,true));let _convert=Symbol('_convert');class HtmlEscape extends Converter$(core.String,core.String){HtmlEscape(mode){if(mode===void 0)mode=HtmlEscapeMode.UNKNOWN;this.mode=mode;super.Converter()}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 replace=null;switch(ch){case '&':{replace='&';break}case ' ':{replace=' ';break}case '"':{if(dart.notNull(this.mode.escapeQuot))replace='"';break}case "'":{if(dart.notNull(this.mode.escapeApos))replace=''';break}case '<':{if(dart.notNull(this.mode.escapeLtGt))replace='<';break}case '>':{if(dart.notNull(this.mode.escapeLtGt))replace='>';break}case '/':{if(dart.notNull(this.mode.escapeSlash))replace='/';break}}if(replace!=null){if(result==null)result=new core.StringBuffer(text[dartx.substring](start,i));result.write(replace)}else if(result!=null){result.write(ch)}}return result!=null?dart.toString(result):null}startChunkedConversion(sink){if(!dart.is(sink,StringConversionSink)){sink=StringConversionSink.from(sink)}return new _HtmlEscapeSink(this,dart.as(sink,StringConversionSink))}}dart.setSignature(HtmlEscape,{constructors:()=>({HtmlEscape:[HtmlEscape,[],[HtmlEscapeMode]]}),methods:()=>({[_convert]:[core.String,[core.String,core.int,core.int]],convert:[core.String,[core.String]],startChunkedConversion:[StringConversionSink,[core.Sink$(core.String)]]})});let HTML_ESCAPE=dart.const(new HtmlEscape());HtmlEscapeMode.ATTRIBUTE=dart.const(new HtmlEscapeMode._('attribute',false,true,false,false));HtmlEscapeMode.ELEMENT=dart.const(new HtmlEscapeMode._('element',true,false,false,true));let _escape=Symbol('_escape');class _HtmlEscapeSink extends StringConversionSinkBase{_HtmlEscapeSink(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.notNull(isLast))this[_sink].close();}}close(){return this[_sink].close()}};dart.setSignature(_HtmlEscapeSink,{constructors:()=>({_HtmlEscapeSink:[_HtmlEscapeSink,[HtmlEscape,StringConversionSink]]}),methods:()=>({addSlice:[dart.void,[core.String,core.int,core.int,core.bool]],close:[dart.void,[]]})});class JsonUnsupportedObjectError extends core.Error{JsonUnsupportedObjectError(unsupportedObject,opts){let cause=opts&&'cause'in opts?opts.cause:null;this.unsupportedObject=unsupportedObject;this.cause=cause;super.Error()}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(JsonUnsupportedObjectError,{constructors:()=>({JsonUnsupportedObjectError:[JsonUnsupportedObjectError,[dart.dynamic],{cause:dart.dynamic}]})});class JsonCyclicError extends JsonUnsupportedObjectError{JsonCyclicError(object){super.JsonUnsupportedObjectError(object)}toString(){return "Cyclic error in JSON stringify"}};dart.setSignature(JsonCyclicError,{constructors:()=>({JsonCyclicError:[JsonCyclicError,[core.Object]]})});let _reviver=Symbol('_reviver');let _toEncodable$=Symbol('_toEncodable');class JsonCodec extends Codec$(core.Object,core.String){JsonCodec(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.Codec()}withReviver(reviver){this.JsonCodec({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 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 JsonEncoder(dart.as(toEncodable,__CastType0)).convert(value)}get encoder(){if(this[_toEncodable$]==null)return dart.const(new JsonEncoder());return new JsonEncoder(dart.as(this[_toEncodable$],dart.functionType(core.Object,[core.Object])))}get decoder(){if(this[_reviver]==null)return dart.const(new JsonDecoder());return new JsonDecoder(this[_reviver])}}dart.defineNamedConstructor(JsonCodec,'withReviver');dart.setSignature(JsonCodec,{constructors:()=>({JsonCodec:[JsonCodec,[],{reviver:dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),toEncodable:dart.functionType(dart.dynamic,[dart.dynamic])}],withReviver:[JsonCodec,[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]]}),methods:()=>({decode:[dart.dynamic,[core.String],{reviver:dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])}],encode:[core.String,[core.Object],{toEncodable:dart.functionType(dart.dynamic,[dart.dynamic])}]})});let JSON=dart.const(new JsonCodec());let _Reviver=dart.typedef('_Reviver',()=>dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));let _ToEncodable=dart.typedef('_ToEncodable',()=>dart.functionType(dart.dynamic,[dart.dynamic]));class JsonEncoder extends Converter$(core.Object,core.String){JsonEncoder(toEncodable){if(toEncodable===void 0)toEncodable=null;this.indent=null;this[_toEncodable$]=toEncodable;super.Converter()}withIndent(indent,toEncodable){if(toEncodable===void 0)toEncodable=null;this.indent=indent;this[_toEncodable$]=toEncodable;super.Converter()}convert(object){return _JsonStringStringifier.stringify(object,dart.as(this[_toEncodable$],__CastType2),this.indent)}startChunkedConversion(sink){if(!dart.is(sink,StringConversionSink)){sink=StringConversionSink.from(sink)}else if(dart.is(sink,_Utf8EncoderSink)){return new _JsonUtf8EncoderSink(sink[_sink],this[_toEncodable$],JsonUtf8Encoder._utf8Encode(this.indent),JsonUtf8Encoder.DEFAULT_BUFFER_SIZE)}return new _JsonEncoderSink(dart.as(sink,StringConversionSink),this[_toEncodable$],this.indent)}bind(stream){return super.bind(stream)}fuse(other){if(dart.is(other,Utf8Encoder)){return new JsonUtf8Encoder(this.indent,dart.as(this[_toEncodable$],__CastType4))}return super.fuse(other)}}dart.defineNamedConstructor(JsonEncoder,'withIndent');dart.setSignature(JsonEncoder,{constructors:()=>({JsonEncoder:[JsonEncoder,[],[dart.functionType(core.Object,[core.Object])]],withIndent:[JsonEncoder,[core.String],[dart.functionType(core.Object,[core.Object])]]}),methods:()=>({bind:[async.Stream$(core.String),[async.Stream$(core.Object)]],convert:[core.String,[core.Object]],fuse:[Converter$(core.Object,dart.dynamic),[Converter$(core.String,dart.dynamic)]],startChunkedConversion:[ChunkedConversionSink$(core.Object),[core.Sink$(core.String)]]})});let _indent=Symbol('_indent');let _bufferSize=Symbol('_bufferSize');class JsonUtf8Encoder extends Converter$(core.Object,core.List$(core.int)){JsonUtf8Encoder(indent,toEncodable,bufferSize){if(indent===void 0)indent=null;if(toEncodable===void 0)toEncodable=null;if(bufferSize===void 0)bufferSize=JsonUtf8Encoder.DEFAULT_BUFFER_SIZE;this[_indent]=JsonUtf8Encoder._utf8Encode(indent);this[_toEncodable$]=toEncodable;this[_bufferSize]=bufferSize;super.Converter()}static _utf8Encode(string){if(string==null)return null;if(dart.notNull(string[dartx.isEmpty]))return typed_data.Uint8List.new(0);checkAscii:{for(let i=0;dart.notNull(i)<dart.notNull(string[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(string[dartx.codeUnitAt](i))>=128)break checkAscii;}return string[dartx.codeUnits]};return UTF8.encode(string)}convert(object){let bytes=dart.list([],core.List$(core.int));function addChunk(chunk,start,end){if(dart.notNull(start)>0||dart.notNull(end)<dart.notNull(chunk.length)){let length=dart.notNull(end)-dart.notNull(start);chunk=typed_data.Uint8List.view(chunk.buffer,dart.notNull(chunk.offsetInBytes)+dart.notNull(start),length)}bytes[dartx.add](chunk)}dart.fn(addChunk,dart.void,[typed_data.Uint8List,core.int,core.int]);_JsonUtf8Stringifier.stringify(object,this[_indent],dart.as(this[_toEncodable$],dart.functionType(dart.dynamic,[core.Object])),this[_bufferSize],addChunk);if(bytes[dartx.length]==1)return bytes[dartx.get](0);let length=0;for(let i=0;dart.notNull(i)<dart.notNull(bytes[dartx.length]);i=dart.notNull(i)+1){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;dart.notNull(i)<dart.notNull(bytes[dartx.length]);i=dart.notNull(i)+1){let byteList=bytes[dartx.get](i);let end=dart.notNull(offset)+dart.notNull(byteList[dartx.length]);result.setRange(offset,end,byteList);offset=end}return result}startChunkedConversion(sink){let byteSink=null;if(dart.is(sink,ByteConversionSink)){byteSink=sink}else{byteSink=ByteConversionSink.from(sink)}return new _JsonUtf8EncoderSink(byteSink,this[_toEncodable$],this[_indent],this[_bufferSize])}bind(stream){return super.bind(stream)}fuse(other){return super.fuse(other)}}dart.setSignature(JsonUtf8Encoder,{constructors:()=>({JsonUtf8Encoder:[JsonUtf8Encoder,[],[core.String,dart.functionType(dart.dynamic,[core.Object]),core.int]]}),methods:()=>({bind:[async.Stream$(core.List$(core.int)),[async.Stream$(core.Object)]],convert:[core.List$(core.int),[core.Object]],fuse:[Converter$(core.Object,dart.dynamic),[Converter$(core.List$(core.int),dart.dynamic)]],startChunkedConversion:[ChunkedConversionSink$(core.Object),[core.Sink$(core.List$(core.int))]]}),names:['_utf8Encode'],statics:()=>({_utf8Encode:[core.List$(core.int),[core.String]]})});JsonUtf8Encoder.DEFAULT_BUFFER_SIZE=256;let _isDone=Symbol('_isDone');class _JsonEncoderSink extends ChunkedConversionSink$(core.Object){_JsonEncoderSink(sink,toEncodable,indent){this[_sink]=sink;this[_toEncodable$]=toEncodable;this[_indent]=indent;this[_isDone]=false;super.ChunkedConversionSink()}add(o){if(dart.notNull(this[_isDone])){dart.throw(new core.StateError("Only one call to add allowed"))}this[_isDone]=true;let stringSink=this[_sink].asStringSink();_JsonStringStringifier.printOn(o,stringSink,dart.as(this[_toEncodable$],dart.functionType(dart.dynamic,[dart.dynamic])),this[_indent]);stringSink.close()}close(){}}dart.setSignature(_JsonEncoderSink,{constructors:()=>({_JsonEncoderSink:[_JsonEncoderSink,[StringConversionSink,core.Function,core.String]]}),methods:()=>({add:[dart.void,[core.Object]],close:[dart.void,[]]})});let _addChunk=Symbol('_addChunk');class _JsonUtf8EncoderSink extends ChunkedConversionSink$(core.Object){_JsonUtf8EncoderSink(sink,toEncodable,indent,bufferSize){this[_sink]=sink;this[_toEncodable$]=toEncodable;this[_indent]=indent;this[_bufferSize]=bufferSize;this[_isDone]=false;super.ChunkedConversionSink()}[_addChunk](chunk,start,end){this[_sink].addSlice(chunk,start,end,false)}add(object){if(dart.notNull(this[_isDone])){dart.throw(new core.StateError("Only one call to add allowed"))}this[_isDone]=true;_JsonUtf8Stringifier.stringify(object,this[_indent],dart.as(this[_toEncodable$],dart.functionType(dart.dynamic,[core.Object])),this[_bufferSize],dart.bind(this,_addChunk));this[_sink].close()}close(){if(!dart.notNull(this[_isDone])){this[_isDone]=true;this[_sink].close()}}}dart.setSignature(_JsonUtf8EncoderSink,{constructors:()=>({_JsonUtf8EncoderSink:[_JsonUtf8EncoderSink,[ByteConversionSink,core.Function,core.List$(core.int),core.int]]}),methods:()=>({[_addChunk]:[dart.void,[typed_data.Uint8List,core.int,core.int]],add:[dart.void,[core.Object]],close:[dart.void,[]]})});class JsonDecoder extends Converter$(core.String,core.Object){JsonDecoder(reviver){if(reviver===void 0)reviver=null;this[_reviver]=reviver;super.Converter()}convert(input){return _parseJson(input,this[_reviver])}startChunkedConversion(sink){return new _JsonDecoderSink(this[_reviver],sink)}bind(stream){return super.bind(stream)}}dart.setSignature(JsonDecoder,{constructors:()=>({JsonDecoder:[JsonDecoder,[],[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]]}),methods:()=>({bind:[async.Stream$(core.Object),[async.Stream$(core.String)]],convert:[dart.dynamic,[core.String]],startChunkedConversion:[StringConversionSink,[core.Sink$(core.Object)]]})});function _parseJson(source,reviver){if(!(typeof source=='string'))dart.throw(new core.ArgumentError(source));let parsed=null;try{parsed=JSON.parse(source)}catch(e){dart.throw(new core.FormatException(String(e)))}if(reviver==null){return _convertJsonToDartLazy(parsed)}else{return _convertJsonToDart(parsed,reviver)}}dart.fn(_parseJson,dart.dynamic,[core.String,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]);function _defaultToEncodable(object){return dart.dsend(object,'toJson')}dart.fn(_defaultToEncodable,core.Object,[dart.dynamic]);let _seen=Symbol('_seen');let _checkCycle=Symbol('_checkCycle');let _removeSeen=Symbol('_removeSeen');class _JsonStringifier extends core.Object{_JsonStringifier(_toEncodable){this[_seen]=core.List.new();this[_toEncodable$]=_toEncodable!=null?_toEncodable:_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;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){let charCode=s[dartx.codeUnitAt](i);if(dart.notNull(charCode)>dart.notNull(_JsonStringifier.BACKSLASH))continue;if(dart.notNull(charCode)<32){if(dart.notNull(i)>dart.notNull(offset))this.writeStringSlice(s,offset,i);offset=dart.notNull(i)+1;this.writeCharCode(_JsonStringifier.BACKSLASH);switch(charCode){case _JsonStringifier.BACKSPACE:{this.writeCharCode(_JsonStringifier.CHAR_b);break}case _JsonStringifier.TAB:{this.writeCharCode(_JsonStringifier.CHAR_t);break}case _JsonStringifier.NEWLINE:{this.writeCharCode(_JsonStringifier.CHAR_n);break}case _JsonStringifier.FORM_FEED:{this.writeCharCode(_JsonStringifier.CHAR_f);break}case _JsonStringifier.CARRIAGE_RETURN:{this.writeCharCode(_JsonStringifier.CHAR_r);break}default:{this.writeCharCode(_JsonStringifier.CHAR_u);this.writeCharCode(_JsonStringifier.CHAR_0);this.writeCharCode(_JsonStringifier.CHAR_0);this.writeCharCode(_JsonStringifier.hexDigit(dart.notNull(charCode)>>4&15));this.writeCharCode(_JsonStringifier.hexDigit(dart.notNull(charCode)&15));break}}}else if(charCode==_JsonStringifier.QUOTE||charCode==_JsonStringifier.BACKSLASH){if(dart.notNull(i)>dart.notNull(offset))this.writeStringSlice(s,offset,i);offset=dart.notNull(i)+1;this.writeCharCode(_JsonStringifier.BACKSLASH);this.writeCharCode(charCode)}}if(offset==0){this.writeString(s)}else if(dart.notNull(offset)<dart.notNull(length)){this.writeStringSlice(s,offset,length)}}[_checkCycle](object){for(let i=0;dart.notNull(i)<dart.notNull(this[_seen][dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(core.identical(object,this[_seen][dartx.get](i)))){dart.throw(new JsonCyclicError(object))}}this[_seen][dartx.add](object)}[_removeSeen](object){dart.assert(!dart.notNull(this[_seen][dartx.isEmpty]));dart.assert(core.identical(this[_seen][dartx.last],object));this[_seen][dartx.removeLast]()}writeObject(object){if(dart.notNull(this.writeJsonValue(object)))return;this[_checkCycle](object);try{let customJson=dart.dcall(this[_toEncodable$],object);if(!dart.notNull(this.writeJsonValue(customJson))){dart.throw(new JsonUnsupportedObjectError(object))}this[_removeSeen](object)}catch(e){dart.throw(new JsonUnsupportedObjectError(object,{cause:e}))}}writeJsonValue(object){if(dart.is(object,core.num)){if(!dart.notNull(dart.as(dart.dload(object,'isFinite'),core.bool)))return false;this.writeNumber(dart.as(object,core.num));return true}else if(dart.notNull(core.identical(object,true))){this.writeString('true');return true}else if(dart.notNull(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(dart.as(object,core.String));this.writeString('"');return true}else if(dart.is(object,core.List)){this[_checkCycle](object);this.writeList(dart.as(object,core.List));this[_removeSeen](object);return true}else if(dart.is(object,core.Map)){this[_checkCycle](object);this.writeMap(dart.as(object,core.Map$(core.String,core.Object)));this[_removeSeen](object);return true}else{return false}}writeList(list){this.writeString('[');if(dart.notNull(list[dartx.length])>0){this.writeObject(list[dartx.get](0));for(let i=1;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){this.writeString(',');this.writeObject(list[dartx.get](i))}}this.writeString(']')}writeMap(map){this.writeString('{');let separator='"';map.forEach(dart.fn((key,value)=>{this.writeString(separator);separator=',"';this.writeStringContent(key);this.writeString('":');this.writeObject(value)},dart.dynamic,[core.String,dart.dynamic]));this.writeString('}')}};dart.setSignature(_JsonStringifier,{constructors:()=>({_JsonStringifier:[_JsonStringifier,[dart.functionType(core.Object,[core.Object])]]}),methods:()=>({[_removeSeen]:[dart.void,[dart.dynamic]],[_checkCycle]:[dart.void,[dart.dynamic]],writeJsonValue:[core.bool,[dart.dynamic]],writeList:[dart.void,[core.List]],writeMap:[dart.void,[core.Map$(core.String,core.Object)]],writeObject:[dart.void,[dart.dynamic]],writeStringContent:[dart.void,[core.String]]}),names:['hexDigit'],statics:()=>({hexDigit:[core.int,[core.int]]})});_JsonStringifier.BACKSPACE=8;_JsonStringifier.TAB=9;_JsonStringifier.NEWLINE=10;_JsonStringifier.CARRIAGE_RETURN=13;_JsonStringifier.FORM_FEED=12;_JsonStringifier.QUOTE=34;_JsonStringifier.CHAR_0=48;_JsonStringifier.BACKSLASH=92;_JsonStringifier.CHAR_b=98;_JsonStringifier.CHAR_f=102;_JsonStringifier.CHAR_n=110;_JsonStringifier.CHAR_r=114;_JsonStringifier.CHAR_t=116;_JsonStringifier.CHAR_u=117;let _indentLevel=Symbol('_indentLevel');class _JsonPrettyPrintMixin extends core.Object{_JsonPrettyPrintMixin(){this[_indentLevel]=0}writeList(list){if(dart.notNull(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;dart.notNull(i)<dart.notNull(list[dartx.length]);i=dart.notNull(i)+1){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(']')}}writeMap(map){if(dart.notNull(map.isEmpty)){this.writeString('{}')}else{this.writeString('{\n');this[_indentLevel]=dart.notNull(this[_indentLevel])+1;let first=true;map.forEach(dart.fn((key,value)=>{if(!dart.notNull(first)){this.writeString(",\n")}this.writeIndentation(this[_indentLevel]);this.writeString('"');this.writeStringContent(key);this.writeString('": ');this.writeObject(value);first=false},dart.dynamic,[core.String,core.Object]));this.writeString('\n');this[_indentLevel]=dart.notNull(this[_indentLevel])-1;this.writeIndentation(this[_indentLevel]);this.writeString('}')}}};_JsonPrettyPrintMixin[dart.implements]=()=>[_JsonStringifier];dart.setSignature(_JsonPrettyPrintMixin,{methods:()=>({writeList:[dart.void,[core.List]],writeMap:[dart.void,[core.Map]]})});class _JsonStringStringifier extends _JsonStringifier{_JsonStringStringifier(sink,_toEncodable){this[_sink]=sink;super._JsonStringifier(dart.as(_toEncodable,dart.functionType(core.Object,[core.Object])))}static stringify(object,toEncodable,indent){let output=new core.StringBuffer();_JsonStringStringifier.printOn(object,output,toEncodable,indent);return dart.toString(output)}static printOn(object,output,toEncodable,indent){let stringifier=null;if(indent==null){stringifier=new _JsonStringStringifier(output,toEncodable)}else{stringifier=new _JsonStringStringifierPretty(output,toEncodable,indent)}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(_JsonStringStringifier,{constructors:()=>({_JsonStringStringifier:[_JsonStringStringifier,[core.StringSink,dart.dynamic]]}),methods:()=>({writeCharCode:[dart.void,[core.int]],writeNumber:[dart.void,[core.num]],writeString:[dart.void,[core.String]],writeStringSlice:[dart.void,[core.String,core.int,core.int]]}),names:['stringify','printOn'],statics:()=>({printOn:[dart.void,[dart.dynamic,core.StringSink,dart.functionType(dart.dynamic,[dart.dynamic]),core.String]],stringify:[core.String,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic]),core.String]]})});class _JsonStringStringifierPretty extends dart.mixin(_JsonStringStringifier,_JsonPrettyPrintMixin){_JsonStringStringifierPretty(sink,toEncodable,indent){this[_indent]=indent;super._JsonStringStringifier(sink,toEncodable)}writeIndentation(count){for(let i=0;dart.notNull(i)<dart.notNull(count);i=dart.notNull(i)+1)this.writeString(this[_indent]);}}dart.setSignature(_JsonStringStringifierPretty,{constructors:()=>({_JsonStringStringifierPretty:[_JsonStringStringifierPretty,[core.StringSink,core.Function,core.String]]}),methods:()=>({writeIndentation:[dart.void,[core.int]]})});class _JsonUtf8Stringifier extends _JsonStringifier{_JsonUtf8Stringifier(toEncodable,bufferSize,addChunk){this.addChunk=addChunk;this.bufferSize=bufferSize;this.buffer=typed_data.Uint8List.new(bufferSize);this.index=0;super._JsonStringifier(dart.as(toEncodable,dart.functionType(core.Object,[core.Object])))}static stringify(object,indent,toEncodableFunction,bufferSize,addChunk){let stringifier=null;if(indent!=null){stringifier=new _JsonUtf8StringifierPretty(toEncodableFunction,indent,bufferSize,addChunk)}else{stringifier=new _JsonUtf8Stringifier(toEncodableFunction,bufferSize,addChunk)}stringifier.writeObject(object);stringifier.flush()}flush(){if(dart.notNull(this.index)>0){dart.dcall(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;dart.notNull(i)<dart.notNull(string[dartx.length]);i=dart.notNull(i)+1){let char=string[dartx.codeUnitAt](i);dart.assert(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|dart.notNull(charCode)>>6);this.writeByte(128|dart.notNull(charCode)&63);return}if(dart.notNull(charCode)<=65535){this.writeByte(224|dart.notNull(charCode)>>12);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|dart.notNull(charCode)>>18);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.length){dart.dcall(this.addChunk,this.buffer,0,this.index);this.buffer=typed_data.Uint8List.new(this.bufferSize);this.index=0}this.buffer.set((()=>{let x=this.index;this.index=dart.notNull(x)+1;return x})(),byte)}};dart.setSignature(_JsonUtf8Stringifier,{constructors:()=>({_JsonUtf8Stringifier:[_JsonUtf8Stringifier,[dart.dynamic,core.int,core.Function]]}),methods:()=>({flush:[dart.void,[]],writeAsciiString:[dart.void,[core.String]],writeByte:[dart.void,[core.int]],writeCharCode:[dart.void,[core.int]],writeFourByteCharCode:[dart.void,[core.int]],writeMultiByteCharCode:[dart.void,[core.int]],writeNumber:[dart.void,[core.num]],writeString:[dart.void,[core.String]],writeStringSlice:[dart.void,[core.String,core.int,core.int]]}),names:['stringify'],statics:()=>({stringify:[dart.void,[core.Object,core.List$(core.int),dart.functionType(dart.dynamic,[core.Object]),core.int,dart.functionType(dart.void,[typed_data.Uint8List,core.int,core.int])]]})});class _JsonUtf8StringifierPretty extends dart.mixin(_JsonUtf8Stringifier,_JsonPrettyPrintMixin){_JsonUtf8StringifierPretty(toEncodableFunction,indent,bufferSize,addChunk){this.indent=indent;super._JsonUtf8Stringifier(toEncodableFunction,dart.as(bufferSize,core.int),dart.as(addChunk,core.Function))}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(dart.notNull(end)<=dart.notNull(this.buffer.length)){this.buffer.setRange(this.index,end,indent);this.index=end}else{for(let i=0;dart.notNull(i)<dart.notNull(indentLength);i=dart.notNull(i)+1){this.writeByte(indent[dartx.get](i))}}}}}dart.setSignature(_JsonUtf8StringifierPretty,{constructors:()=>({_JsonUtf8StringifierPretty:[_JsonUtf8StringifierPretty,[dart.dynamic,core.List$(core.int),dart.dynamic,dart.dynamic]]}),methods:()=>({writeIndentation:[dart.void,[core.int]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.Object,[core.Object]));let __CastType2=dart.typedef('__CastType2',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let __CastType4=dart.typedef('__CastType4',()=>dart.functionType(dart.dynamic,[core.Object]));class Latin1Codec extends Encoding{Latin1Codec(opts){let allowInvalid=opts&&'allowInvalid'in opts?opts.allowInvalid:false;this[_allowInvalid]=allowInvalid;super.Encoding()}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.notNull(allowInvalid)){return dart.const(new Latin1Decoder({allowInvalid:true})).convert(bytes)}else{return dart.const(new Latin1Decoder({allowInvalid:false})).convert(bytes)}}get encoder(){return dart.const(new Latin1Encoder())}get decoder(){return dart.notNull(this[_allowInvalid])?dart.const(new Latin1Decoder({allowInvalid:true})):dart.const(new Latin1Decoder({allowInvalid:false}))}};dart.setSignature(Latin1Codec,{constructors:()=>({Latin1Codec:[Latin1Codec,[],{allowInvalid:core.bool}]}),methods:()=>({decode:[core.String,[core.List$(core.int)],{allowInvalid:core.bool}]})});let LATIN1=dart.const(new Latin1Codec());let _LATIN1_MASK=255;class Latin1Encoder extends _UnicodeSubsetEncoder{Latin1Encoder(){super._UnicodeSubsetEncoder(_LATIN1_MASK)}};dart.setSignature(Latin1Encoder,{constructors:()=>({Latin1Encoder:[Latin1Encoder,[]]})});class Latin1Decoder extends _UnicodeSubsetDecoder{Latin1Decoder(opts){let allowInvalid=opts&&'allowInvalid'in opts?opts.allowInvalid:false;super._UnicodeSubsetDecoder(allowInvalid,_LATIN1_MASK)}startChunkedConversion(sink){let stringSink=null;if(dart.is(sink,StringConversionSink)){stringSink=sink}else{stringSink=StringConversionSink.from(sink)}if(!dart.notNull(this[_allowInvalid]))return new _Latin1DecoderSink(stringSink);return new _Latin1AllowInvalidDecoderSink(stringSink)}};dart.setSignature(Latin1Decoder,{constructors:()=>({Latin1Decoder:[Latin1Decoder,[],{allowInvalid:core.bool}]}),methods:()=>({startChunkedConversion:[ByteConversionSink,[core.Sink$(core.String)]]})});let _addSliceToSink=Symbol('_addSliceToSink');class _Latin1DecoderSink extends ByteConversionSinkBase{_Latin1DecoderSink(sink){this[_sink]=sink}close(){this[_sink].close()}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.notNull(isLast))this.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 char=source[dartx.get](i);if(dart.notNull(char)>dart.notNull(_LATIN1_MASK)||dart.notNull(char)<0){dart.throw(new core.FormatException("Source contains non-Latin-1 characters."))}}if(dart.notNull(start)<dart.notNull(end)){this[_addSliceToSink](source,start,end,isLast)}if(dart.notNull(isLast)){this.close()}}};dart.setSignature(_Latin1DecoderSink,{constructors:()=>({_Latin1DecoderSink:[_Latin1DecoderSink,[StringConversionSink]]}),methods:()=>({[_addSliceToSink]:[dart.void,[core.List$(core.int),core.int,core.int,core.bool]],add:[dart.void,[core.List$(core.int)]],close:[dart.void,[]]})});class _Latin1AllowInvalidDecoderSink extends _Latin1DecoderSink{_Latin1AllowInvalidDecoderSink(sink){super._Latin1DecoderSink(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)>dart.notNull(_LATIN1_MASK)||dart.notNull(char)<0){if(dart.notNull(i)>dart.notNull(start))this[_addSliceToSink](source,start,i,false);this[_addSliceToSink](dart.const(dart.list([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.notNull(isLast)){this.close()}}};dart.setSignature(_Latin1AllowInvalidDecoderSink,{constructors:()=>({_Latin1AllowInvalidDecoderSink:[_Latin1AllowInvalidDecoderSink,[StringConversionSink]]})});class LineSplitter extends Converter$(core.String,core.List$(core.String)){LineSplitter(){super.Converter()}convert(data){let lines=core.List$(core.String).new();_LineSplitterSink._addSlice(data,0,data[dartx.length],true,dart.bind(lines,dartx.add));return lines}startChunkedConversion(sink){if(!dart.is(sink,StringConversionSink)){sink=StringConversionSink.from(dart.as(sink,core.Sink$(core.String)))}return new _LineSplitterSink(dart.as(sink,StringConversionSink))}}dart.setSignature(LineSplitter,{constructors:()=>({LineSplitter:[LineSplitter,[]]}),methods:()=>({convert:[core.List$(core.String),[core.String]],startChunkedConversion:[StringConversionSink,[core.Sink]]})});let _carry=Symbol('_carry');class _LineSplitterSink extends StringConversionSinkBase{_LineSplitterSink(sink){this[_sink]=sink;this[_carry]=null}addSlice(chunk,start,end,isLast){if(this[_carry]!=null){chunk=dart.notNull(this[_carry])+dart.notNull(chunk[dartx.substring](start,end));start=0;end=chunk[dartx.length];this[_carry]=null}this[_carry]=_LineSplitterSink._addSlice(chunk,start,end,isLast,dart.bind(this[_sink],'add'));if(dart.notNull(isLast))this[_sink].close();}close(){this.addSlice('',0,0,true)}static _addSlice(chunk,start,end,isLast,adder){let pos=start;while(dart.notNull(pos)<dart.notNull(end)){let skip=0;let char=chunk[dartx.codeUnitAt](pos);if(char==_LineSplitterSink._LF){skip=1}else if(char==_LineSplitterSink._CR){skip=1;if(dart.notNull(pos)+1<dart.notNull(end)){if(chunk[dartx.codeUnitAt](dart.notNull(pos)+1)==_LineSplitterSink._LF){skip=2}}else if(!dart.notNull(isLast)){return chunk[dartx.substring](start,end)}}if(dart.notNull(skip)>0){adder(chunk[dartx.substring](start,pos));start=pos=dart.notNull(pos)+dart.notNull(skip)}else{pos=dart.notNull(pos)+1}}if(pos!=start){let carry=chunk[dartx.substring](start,pos);if(dart.notNull(isLast)){adder(carry)}else{return carry}}return null}};dart.setSignature(_LineSplitterSink,{constructors:()=>({_LineSplitterSink:[_LineSplitterSink,[StringConversionSink]]}),methods:()=>({addSlice:[dart.void,[core.String,core.int,core.int,core.bool]],close:[dart.void,[]]}),names:['_addSlice'],statics:()=>({_addSlice:[core.String,[core.String,core.int,core.int,core.bool,dart.functionType(dart.void,[core.String])]]})});_LineSplitterSink._LF=10;_LineSplitterSink._CR=13;class StringConversionSink extends ChunkedConversionSink$(core.String){StringConversionSink(){super.ChunkedConversionSink()}static withCallback(callback){return new _StringCallbackSink(callback)}static from(sink){return new _StringAdapterSink(sink)}static fromStringSink(sink){return new _StringSinkConversionSink(sink)}}dart.setSignature(StringConversionSink,{constructors:()=>({from:[StringConversionSink,[core.Sink$(core.String)]],fromStringSink:[StringConversionSink,[core.StringSink]],StringConversionSink:[StringConversionSink,[]],withCallback:[StringConversionSink,[dart.functionType(dart.void,[core.String])]]})});class ClosableStringSink extends core.StringSink{static fromStringSink(sink,onClose){return new _ClosableStringSink(sink,onClose)}};dart.setSignature(ClosableStringSink,{constructors:()=>({fromStringSink:[ClosableStringSink,[core.StringSink,dart.functionType(dart.void,[])]]})});let _StringSinkCloseCallback=dart.typedef('_StringSinkCloseCallback',()=>dart.functionType(dart.void,[]));class _ClosableStringSink extends core.Object{_ClosableStringSink(sink,callback){this[_sink]=sink;this[_callback]=callback}close(){return this[_callback]()}writeCharCode(charCode){return this[_sink].writeCharCode(charCode)}write(o){return this[_sink].write(o)}writeln(o){if(o===void 0)o="";return this[_sink].writeln(o)}writeAll(objects,separator){if(separator===void 0)separator="";return this[_sink].writeAll(objects,separator)}};_ClosableStringSink[dart.implements]=()=>[ClosableStringSink];dart.setSignature(_ClosableStringSink,{constructors:()=>({_ClosableStringSink:[_ClosableStringSink,[core.StringSink,_StringSinkCloseCallback]]}),methods:()=>({close:[dart.void,[]],write:[dart.void,[core.Object]],writeAll:[dart.void,[core.Iterable],[core.String]],writeCharCode:[dart.void,[core.int]],writeln:[dart.void,[],[core.Object]]})});let _flush=Symbol('_flush');class _StringConversionSinkAsStringSinkAdapter extends core.Object{_StringConversionSinkAsStringSinkAdapter(chunkedSink){this[_chunkedSink]=chunkedSink;this[_buffer]=new core.StringBuffer()}close(){if(dart.notNull(this[_buffer].isNotEmpty))this[_flush]();this[_chunkedSink].close()}writeCharCode(charCode){this[_buffer].writeCharCode(charCode);if(dart.notNull(this[_buffer].length)>dart.notNull(_StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE))this[_flush]();}write(o){if(dart.notNull(this[_buffer].isNotEmpty))this[_flush]();let str=dart.toString(o);this[_chunkedSink].add(dart.toString(o))}writeln(o){if(o===void 0)o="";this[_buffer].writeln(o);if(dart.notNull(this[_buffer].length)>dart.notNull(_StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE))this[_flush]();}writeAll(objects,separator){if(separator===void 0)separator="";if(dart.notNull(this[_buffer].isNotEmpty))this[_flush]();let iterator=objects[dartx.iterator];if(!dart.notNull(iterator.moveNext()))return;if(dart.notNull(separator[dartx.isEmpty])){do{this[_chunkedSink].add(dart.toString(iterator.current))}while(dart.notNull(iterator.moveNext()))}else{this[_chunkedSink].add(dart.toString(iterator.current));while(dart.notNull(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)}};_StringConversionSinkAsStringSinkAdapter[dart.implements]=()=>[ClosableStringSink];dart.setSignature(_StringConversionSinkAsStringSinkAdapter,{constructors:()=>({_StringConversionSinkAsStringSinkAdapter:[_StringConversionSinkAsStringSinkAdapter,[StringConversionSink]]}),methods:()=>({[_flush]:[dart.void,[]],close:[dart.void,[]],write:[dart.void,[core.Object]],writeAll:[dart.void,[core.Iterable],[core.String]],writeCharCode:[dart.void,[core.int]],writeln:[dart.void,[],[core.Object]]})});_StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE=16;let _stringSink=Symbol('_stringSink');class _StringSinkConversionSink extends StringConversionSinkBase{_StringSinkConversionSink(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.notNull(isLast))this.close();}add(str){return this[_stringSink].write(str)}asUtf8Sink(allowMalformed){return new _Utf8StringSinkAdapter(this,this[_stringSink],allowMalformed)}asStringSink(){return ClosableStringSink.fromStringSink(this[_stringSink],dart.bind(this,'close'))}};dart.setSignature(_StringSinkConversionSink,{constructors:()=>({_StringSinkConversionSink:[_StringSinkConversionSink,[core.StringSink]]}),methods:()=>({addSlice:[dart.void,[core.String,core.int,core.int,core.bool]],close:[dart.void,[]]})});class _StringCallbackSink extends _StringSinkConversionSink{_StringCallbackSink(callback){this[_callback]=callback;super._StringSinkConversionSink(new core.StringBuffer())}close(){let buffer=dart.as(this[_stringSink],core.StringBuffer);let accumulated=dart.toString(buffer);buffer.clear();this[_callback](accumulated)}asUtf8Sink(allowMalformed){return new _Utf8StringSinkAdapter(this,this[_stringSink],allowMalformed)}};dart.setSignature(_StringCallbackSink,{constructors:()=>({_StringCallbackSink:[_StringCallbackSink,[_ChunkedConversionCallback$(core.String)]]})});class _StringAdapterSink extends StringConversionSinkBase{_StringAdapterSink(sink){this[_sink]=sink}add(str){return 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.notNull(isLast))this.close();}close(){return this[_sink].close()}};dart.setSignature(_StringAdapterSink,{constructors:()=>({_StringAdapterSink:[_StringAdapterSink,[core.Sink$(core.String)]]}),methods:()=>({addSlice:[dart.void,[core.String,core.int,core.int,core.bool]],close:[dart.void,[]]})});let _decoder=Symbol('_decoder');class _Utf8StringSinkAdapter extends ByteConversionSink{_Utf8StringSinkAdapter(sink,stringSink,allowMalformed){this[_sink]=sink;this[_decoder]=new _Utf8Decoder(stringSink,allowMalformed);super.ByteConversionSink()}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.notNull(isLast))this.close();}};dart.setSignature(_Utf8StringSinkAdapter,{constructors:()=>({_Utf8StringSinkAdapter:[_Utf8StringSinkAdapter,[core.Sink,core.StringSink,core.bool]]}),methods:()=>({add:[dart.void,[core.List$(core.int)]],addSlice:[dart.void,[core.List$(core.int),core.int,core.int,core.bool]],close:[dart.void,[]]})});class _Utf8ConversionSink extends ByteConversionSink{_Utf8ConversionSink(sink,allowMalformed){this._(sink,new core.StringBuffer(),allowMalformed)}_(chunkedSink,stringBuffer,allowMalformed){this[_chunkedSink]=chunkedSink;this[_decoder]=new _Utf8Decoder(stringBuffer,allowMalformed);this[_buffer]=stringBuffer;super.ByteConversionSink()}close(){this[_decoder].close();if(dart.notNull(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.notNull(this[_buffer].isNotEmpty)){let accumulated=dart.toString(this[_buffer]);this[_chunkedSink].addSlice(accumulated,0,accumulated[dartx.length],isLast);this[_buffer].clear();return}if(dart.notNull(isLast))this.close();}};dart.defineNamedConstructor(_Utf8ConversionSink,'_');dart.setSignature(_Utf8ConversionSink,{constructors:()=>({_:[_Utf8ConversionSink,[StringConversionSink,core.StringBuffer,core.bool]],_Utf8ConversionSink:[_Utf8ConversionSink,[StringConversionSink,core.bool]]}),methods:()=>({add:[dart.void,[core.List$(core.int)]],addSlice:[dart.void,[core.List$(core.int),core.int,core.int,core.bool]],close:[dart.void,[]]})});let UNICODE_REPLACEMENT_CHARACTER_RUNE=65533;let UNICODE_BOM_CHARACTER_RUNE=65279;let _allowMalformed=Symbol('_allowMalformed');class Utf8Codec extends Encoding{Utf8Codec(opts){let allowMalformed=opts&&'allowMalformed'in opts?opts.allowMalformed:false;this[_allowMalformed]=allowMalformed;super.Encoding()}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 Utf8Decoder({allowMalformed:allowMalformed}).convert(codeUnits)}get encoder(){return new Utf8Encoder()}get decoder(){return new Utf8Decoder({allowMalformed:this[_allowMalformed]})}};dart.setSignature(Utf8Codec,{constructors:()=>({Utf8Codec:[Utf8Codec,[],{allowMalformed:core.bool}]}),methods:()=>({decode:[core.String,[core.List$(core.int)],{allowMalformed:core.bool}]})});let UTF8=dart.const(new Utf8Codec());let _fillBuffer=Symbol('_fillBuffer');let _writeSurrogate=Symbol('_writeSurrogate');class Utf8Encoder extends Converter$(core.String,core.List$(core.int)){Utf8Encoder(){super.Converter()}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 _Utf8Encoder.withBufferSize(dart.notNull(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(_isLeadSurrogate(lastCodeUnit));let wasCombined=encoder[_writeSurrogate](lastCodeUnit,0);dart.assert(!dart.notNull(wasCombined))}return encoder[_buffer][dartx.sublist](0,encoder[_bufferIndex])}startChunkedConversion(sink){if(!dart.is(sink,ByteConversionSink)){sink=ByteConversionSink.from(sink)}return new _Utf8EncoderSink(dart.as(sink,ByteConversionSink))}bind(stream){return super.bind(stream)}}dart.setSignature(Utf8Encoder,{constructors:()=>({Utf8Encoder:[Utf8Encoder,[]]}),methods:()=>({bind:[async.Stream$(core.List$(core.int)),[async.Stream$(core.String)]],convert:[core.List$(core.int),[core.String],[core.int,core.int]],startChunkedConversion:[StringConversionSink,[core.Sink$(core.List$(core.int))]]})});class _Utf8Encoder extends core.Object{_Utf8Encoder(){this.withBufferSize(_Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE)}withBufferSize(bufferSize){this[_buffer]=_Utf8Encoder._createBuffer(bufferSize);this[_carry]=0;this[_bufferIndex]=0}static _createBuffer(size){return typed_data.Uint8List.new(size)}[_writeSurrogate](leadingSurrogate,nextCodeUnit){if(dart.notNull(_isTailSurrogate(nextCodeUnit))){let rune=_combineSurrogatePair(leadingSurrogate,nextCodeUnit);dart.assert(dart.notNull(rune)>dart.notNull(_THREE_BYTE_LIMIT));dart.assert(dart.notNull(rune)<=dart.notNull(_FOUR_BYTE_LIMIT));this[_buffer][dartx.set]((()=>{let x=this[_bufferIndex];this[_bufferIndex]=dart.notNull(x)+1;return x})(),240|dart.notNull(rune)>>18);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|dart.notNull(leadingSurrogate)>>12);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.notNull(_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)<=dart.notNull(_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.notNull(_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.notNull(wasCombined)){stringIndex=dart.notNull(stringIndex)+1}}else{let rune=codeUnit;if(dart.notNull(rune)<=dart.notNull(_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|dart.notNull(rune)>>6);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)<=dart.notNull(_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|dart.notNull(rune)>>12);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(_Utf8Encoder,'withBufferSize');dart.setSignature(_Utf8Encoder,{constructors:()=>({_Utf8Encoder:[_Utf8Encoder,[]],withBufferSize:[_Utf8Encoder,[core.int]]}),methods:()=>({[_fillBuffer]:[core.int,[core.String,core.int,core.int]],[_writeSurrogate]:[core.bool,[core.int,core.int]]}),names:['_createBuffer'],statics:()=>({_createBuffer:[core.List$(core.int),[core.int]]})});_Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE=1024;class _Utf8EncoderSink extends dart.mixin(_Utf8Encoder,StringConversionSinkMixin){_Utf8EncoderSink(sink){this[_sink]=sink;super._Utf8Encoder()}close(){if(this[_carry]!=0){this.addSlice("",0,0,true);return}this[_sink].close()}addSlice(str,start,end,isLast){this[_bufferIndex]=0;if(start==end&& !dart.notNull(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.notNull(wasCombined)||start!=end);if(dart.notNull(wasCombined)){start=dart.notNull(start)+1}this[_carry]=0}do{start=this[_fillBuffer](str,start,end);let isLastSlice=dart.notNull(isLast)&&start==end;if(start==dart.notNull(end)-1&&dart.notNull(_isLeadSurrogate(str[dartx.codeUnitAt](start)))){if(dart.notNull(isLast)&&dart.notNull(this[_bufferIndex])<dart.notNull(this[_buffer][dartx.length])-3){let hasBeenCombined=this[_writeSurrogate](str[dartx.codeUnitAt](start),0);dart.assert(!dart.notNull(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.notNull(isLast))this.close();}}dart.setSignature(_Utf8EncoderSink,{constructors:()=>({_Utf8EncoderSink:[_Utf8EncoderSink,[ByteConversionSink]]}),methods:()=>({addSlice:[dart.void,[core.String,core.int,core.int,core.bool]],close:[dart.void,[]]})});class Utf8Decoder extends Converter$(core.List$(core.int),core.String){Utf8Decoder(opts){let allowMalformed=opts&&'allowMalformed'in opts?opts.allowMalformed:false;this[_allowMalformed]=allowMalformed;super.Converter()}convert(codeUnits,start,end){if(start===void 0)start=0;if(end===void 0)end=null;let length=codeUnits[dartx.length];core.RangeError.checkValidRange(start,end,length);if(end==null)end=length;let buffer=new core.StringBuffer();let decoder=new _Utf8Decoder(buffer,this[_allowMalformed]);decoder.convert(codeUnits,start,end);decoder.close();return dart.toString(buffer)}startChunkedConversion(sink){let stringSink=null;if(dart.is(sink,StringConversionSink)){stringSink=sink}else{stringSink=StringConversionSink.from(sink)}return stringSink.asUtf8Sink(this[_allowMalformed])}bind(stream){return super.bind(stream)}fuse(next){return super.fuse(next)}}dart.setSignature(Utf8Decoder,{constructors:()=>({Utf8Decoder:[Utf8Decoder,[],{allowMalformed:core.bool}]}),methods:()=>({bind:[async.Stream$(core.String),[async.Stream$(core.List$(core.int))]],convert:[core.String,[core.List$(core.int)],[core.int,core.int]],fuse:[Converter$(core.List$(core.int),dart.dynamic),[Converter$(core.String,dart.dynamic)]],startChunkedConversion:[ByteConversionSink,[core.Sink$(core.String)]]})});let _ONE_BYTE_LIMIT=127;let _TWO_BYTE_LIMIT=2047;let _THREE_BYTE_LIMIT=65535;let _FOUR_BYTE_LIMIT=1114111;let _SURROGATE_MASK=63488;let _SURROGATE_TAG_MASK=64512;let _SURROGATE_VALUE_MASK=1023;let _LEAD_SURROGATE_MIN=55296;let _TAIL_SURROGATE_MIN=56320;function _isSurrogate(codeUnit){return(dart.notNull(codeUnit)&dart.notNull(_SURROGATE_MASK))==_LEAD_SURROGATE_MIN}dart.fn(_isSurrogate,core.bool,[core.int]);function _isLeadSurrogate(codeUnit){return(dart.notNull(codeUnit)&dart.notNull(_SURROGATE_TAG_MASK))==_LEAD_SURROGATE_MIN}dart.fn(_isLeadSurrogate,core.bool,[core.int]);function _isTailSurrogate(codeUnit){return(dart.notNull(codeUnit)&dart.notNull(_SURROGATE_TAG_MASK))==_TAIL_SURROGATE_MIN}dart.fn(_isTailSurrogate,core.bool,[core.int]);function _combineSurrogatePair(lead,tail){return 65536+((dart.notNull(lead)&dart.notNull(_SURROGATE_VALUE_MASK))<<10)|dart.notNull(tail)&dart.notNull(_SURROGATE_VALUE_MASK)}dart.fn(_combineSurrogatePair,core.int,[core.int,core.int]);let _isFirstCharacter=Symbol('_isFirstCharacter');let _value=Symbol('_value');let _expectedUnits=Symbol('_expectedUnits');let _extraUnits=Symbol('_extraUnits');class _Utf8Decoder extends core.Object{_Utf8Decoder(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.notNull(this.hasPartialInput)){if(!dart.notNull(this[_allowMalformed])){dart.throw(new core.FormatException("Unfinished UTF-8 octet sequence"))}this[_stringSink].writeCharCode(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=_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,core.int,[dart.dynamic,core.int]);let 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,dart.void,[core.int,core.int]);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.notNull(this[_allowMalformed])){dart.throw(new core.FormatException(`Bad UTF-8 encoding 0x${unit[dartx.toRadixString](16)}`))}this[_isFirstCharacter]=false;this[_stringSink].writeCharCode(UNICODE_REPLACEMENT_CHARACTER_RUNE);break multibyte}else{value=dart.notNull(value)<<6|dart.notNull(unit)&63;expectedUnits=dart.notNull(expectedUnits)-1;i=dart.notNull(i)+1}}while(dart.notNull(expectedUnits)>0);if(dart.notNull(value)<=dart.notNull(_Utf8Decoder._LIMITS[dartx.get](dart.notNull(extraUnits)-1))){if(!dart.notNull(this[_allowMalformed])){dart.throw(new core.FormatException(`Overlong encoding of 0x${value[dartx.toRadixString](16)}`))}expectedUnits=extraUnits=0;value=UNICODE_REPLACEMENT_CHARACTER_RUNE}if(dart.notNull(value)>dart.notNull(_FOUR_BYTE_LIMIT)){if(!dart.notNull(this[_allowMalformed])){dart.throw(new core.FormatException("Character outside valid Unicode range: "+`0x${value[dartx.toRadixString](16)}`))}value=UNICODE_REPLACEMENT_CHARACTER_RUNE}if(!dart.notNull(this[_isFirstCharacter])||value!=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){if(!dart.notNull(this[_allowMalformed])){dart.throw(new core.FormatException(`Negative UTF-8 code unit: -0x${(-dart.notNull(unit))[dartx.toRadixString](16)}`))}this[_stringSink].writeCharCode(UNICODE_REPLACEMENT_CHARACTER_RUNE)}else{dart.assert(dart.notNull(unit)>dart.notNull(_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.notNull(this[_allowMalformed])){dart.throw(new core.FormatException(`Bad UTF-8 encoding 0x${unit[dartx.toRadixString](16)}`))}value=UNICODE_REPLACEMENT_CHARACTER_RUNE;expectedUnits=extraUnits=0;this[_isFirstCharacter]=false;this[_stringSink].writeCharCode(value)}}break loop}if(dart.notNull(expectedUnits)>0){this[_value]=value;this[_expectedUnits]=expectedUnits;this[_extraUnits]=extraUnits}}};dart.setSignature(_Utf8Decoder,{constructors:()=>({_Utf8Decoder:[_Utf8Decoder,[core.StringSink,core.bool]]}),methods:()=>({close:[dart.void,[]],convert:[dart.void,[core.List$(core.int),core.int,core.int]],flush:[dart.void,[]]})});_Utf8Decoder._LIMITS=dart.const(dart.list([_ONE_BYTE_LIMIT,_TWO_BYTE_LIMIT,_THREE_BYTE_LIMIT,_FOUR_BYTE_LIMIT],core.int));let _processed=Symbol('_processed');let _computeKeys=Symbol('_computeKeys');let _original=Symbol('_original');function _convertJsonToDart(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;dart.notNull(i)<e.length;i=dart.notNull(i)+1){let item=e[i];e[i]=dart.dcall(reviver,i,walk(item))}return e}let map=new _JsonMap(e);let processed=map[_processed];let keys=map[_computeKeys]();for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){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);return dart.dcall(reviver,null,walk(json))}dart.fn(_convertJsonToDart,dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]);function _convertJsonToDartLazy(object){if(object==null)return null;if(typeof object!="object"){return object}if(Object.getPrototypeOf(object)!==Array.prototype){return new _JsonMap(object)}for(let i=0;dart.notNull(i)<object.length;i=dart.notNull(i)+1){let item=object[i];object[i]=_convertJsonToDartLazy(item)}return object}dart.fn(_convertJsonToDartLazy);let _data=Symbol('_data');let _isUpgraded=Symbol('_isUpgraded');let _upgradedMap=Symbol('_upgradedMap');let _process=Symbol('_process');let _upgrade=Symbol('_upgrade');class _JsonMap extends core.Object{_JsonMap(original){this[_processed]=_JsonMap._newJavaScriptObject();this[_original]=original;this[_data]=null}get(key){if(dart.notNull(this[_isUpgraded])){return this[_upgradedMap].get(key)}else if(!(typeof key=='string')){return null}else{let result=_JsonMap._getProperty(this[_processed],dart.as(key,core.String));if(dart.notNull(_JsonMap._isUnprocessed(result)))result=this[_process](dart.as(key,core.String));return result}}get length(){return dart.notNull(this[_isUpgraded])?this[_upgradedMap].length:this[_computeKeys]()[dartx.length]}get isEmpty(){return this.length==0}get isNotEmpty(){return dart.notNull(this.length)>0}get keys(){if(dart.notNull(this[_isUpgraded]))return this[_upgradedMap].keys;return new _JsonMapKeyIterable(this)}get values(){if(dart.notNull(this[_isUpgraded]))return this[_upgradedMap].values;return _internal.MappedIterable.new(this[_computeKeys](),dart.fn(each=>this.get(each)))}set(key,value){if(dart.notNull(this[_isUpgraded])){this[_upgradedMap].set(key,value)}else if(dart.notNull(this.containsKey(key))){let processed=this[_processed];_JsonMap._setProperty(processed,dart.as(key,core.String),value);let original=this[_original];if(!dart.notNull(core.identical(original,processed))){_JsonMap._setProperty(original,dart.as(key,core.String),null)}}else{this[_upgrade]().set(key,value)}}addAll(other){other.forEach(dart.fn((key,value)=>{this.set(key,value)}))}containsValue(value){if(dart.notNull(this[_isUpgraded]))return this[_upgradedMap].containsValue(value);let keys=this[_computeKeys]();for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){let key=keys[dartx.get](i);if(dart.equals(this.get(key),value))return true;}return false}containsKey(key){if(dart.notNull(this[_isUpgraded]))return this[_upgradedMap].containsKey(key);if(!(typeof key=='string'))return false;return _JsonMap._hasProperty(this[_original],dart.as(key,core.String))}putIfAbsent(key,ifAbsent){if(dart.notNull(this.containsKey(key)))return this.get(key);let value=ifAbsent();this.set(key,value);return value}remove(key){if(!dart.notNull(this[_isUpgraded])&& !dart.notNull(this.containsKey(key)))return null;return this[_upgrade]().remove(key)}clear(){if(dart.notNull(this[_isUpgraded])){this[_upgradedMap].clear()}else{if(this[_data]!=null){dart.dsend(this[_data],'clear')}this[_original]=this[_processed]=null;this[_data]=dart.map()}}forEach(f){if(dart.notNull(this[_isUpgraded]))return this[_upgradedMap].forEach(f);let keys=this[_computeKeys]();for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){let key=keys[dartx.get](i);let value=_JsonMap._getProperty(this[_processed],key);if(dart.notNull(_JsonMap._isUnprocessed(value))){value=_convertJsonToDartLazy(_JsonMap._getProperty(this[_original],key));_JsonMap._setProperty(this[_processed],key,value)}dart.dcall(f,key,value);if(!dart.notNull(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 dart.as(this[_data],core.Map)}[_computeKeys](){dart.assert(!dart.notNull(this[_isUpgraded]));let keys=dart.as(this[_data],core.List);if(keys==null){keys=this[_data]=_JsonMap._getPropertyNames(this[_original])}return dart.as(keys,core.List$(core.String))}[_upgrade](){if(dart.notNull(this[_isUpgraded]))return this[_upgradedMap];let result=dart.map();let keys=this[_computeKeys]();for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){let key=keys[dartx.get](i);result.set(key,this.get(key))}if(dart.notNull(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.notNull(_JsonMap._hasProperty(this[_original],key)))return null;let result=_convertJsonToDartLazy(_JsonMap._getProperty(this[_original],key));return _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 dart.as(Object.keys(object),core.List)}static _isUnprocessed(object){return typeof object=="undefined"}static _newJavaScriptObject(){return Object.create(null)}};_JsonMap[dart.implements]=()=>[collection.LinkedHashMap];dart.setSignature(_JsonMap,{constructors:()=>({_JsonMap:[_JsonMap,[dart.dynamic]]}),methods:()=>({[_process]:[dart.dynamic,[core.String]],[_computeKeys]:[core.List$(core.String),[]],[_upgrade]:[core.Map,[]],addAll:[dart.void,[core.Map]],clear:[dart.void,[]],containsKey:[core.bool,[core.Object]],containsValue:[core.bool,[core.Object]],forEach:[dart.void,[dart.functionType(dart.void,[dart.dynamic,dart.dynamic])]],get:[dart.dynamic,[core.Object]],putIfAbsent:[dart.dynamic,[dart.dynamic,dart.functionType(dart.dynamic,[])]],remove:[dart.dynamic,[core.Object]],set:[dart.void,[dart.dynamic,dart.dynamic]]}),names:['_hasProperty','_getProperty','_setProperty','_getPropertyNames','_isUnprocessed','_newJavaScriptObject'],statics:()=>({_getProperty:[dart.dynamic,[dart.dynamic,core.String]],_getPropertyNames:[core.List,[dart.dynamic]],_hasProperty:[core.bool,[dart.dynamic,core.String]],_isUnprocessed:[core.bool,[dart.dynamic]],_newJavaScriptObject:[dart.dynamic,[]],_setProperty:[dart.dynamic,[dart.dynamic,core.String,dart.dynamic]]})});let _parent=Symbol('_parent');class _JsonMapKeyIterable extends _internal.ListIterable{_JsonMapKeyIterable(parent){this[_parent]=parent;super.ListIterable()}get length(){return this[_parent].length}elementAt(index){return dart.notNull(this[_parent][_isUpgraded])?dart.as(this[_parent].keys[dartx.elementAt](index),core.String):this[_parent][_computeKeys]()[dartx.get](index)}get iterator(){return dart.notNull(this[_parent][_isUpgraded])?this[_parent].keys[dartx.iterator]:this[_parent][_computeKeys]()[dartx.iterator]}contains(key){return this[_parent].containsKey(key)}};dart.setSignature(_JsonMapKeyIterable,{constructors:()=>({_JsonMapKeyIterable:[_JsonMapKeyIterable,[_JsonMap]]}),methods:()=>({elementAt:[core.String,[core.int]]})});dart.defineExtensionMembers(_JsonMapKeyIterable,['elementAt','contains','length','iterator']);class _JsonDecoderSink extends _StringSinkConversionSink{_JsonDecoderSink(reviver,sink){this[_reviver]=reviver;this[_sink]=sink;super._StringSinkConversionSink(new core.StringBuffer())}close(){super.close();let buffer=dart.as(this[_stringSink],core.StringBuffer);let accumulated=dart.toString(buffer);buffer.clear();let decoded=_parseJson(accumulated,this[_reviver]);this[_sink].add(decoded);this[_sink].close()}};dart.setSignature(_JsonDecoderSink,{constructors:()=>({_JsonDecoderSink:[_JsonDecoderSink,[_Reviver,core.Sink$(core.Object)]]})});exports.Codec$=Codec$;exports.Codec=Codec;exports.Encoding=Encoding;exports.AsciiCodec=AsciiCodec;exports.ASCII=ASCII;exports.Converter$=Converter$;exports.Converter=Converter;exports.AsciiEncoder=AsciiEncoder;exports.StringConversionSinkMixin=StringConversionSinkMixin;exports.StringConversionSinkBase=StringConversionSinkBase;exports.AsciiDecoder=AsciiDecoder;exports.ChunkedConversionSink$=ChunkedConversionSink$;exports.ChunkedConversionSink=ChunkedConversionSink;exports.ByteConversionSink=ByteConversionSink;exports.ByteConversionSinkBase=ByteConversionSinkBase;exports.HtmlEscapeMode=HtmlEscapeMode;exports.HtmlEscape=HtmlEscape;exports.HTML_ESCAPE=HTML_ESCAPE;exports.JsonUnsupportedObjectError=JsonUnsupportedObjectError;exports.JsonCyclicError=JsonCyclicError;exports.JsonCodec=JsonCodec;exports.JSON=JSON;exports.JsonEncoder=JsonEncoder;exports.JsonUtf8Encoder=JsonUtf8Encoder;exports.JsonDecoder=JsonDecoder;exports.Latin1Codec=Latin1Codec;exports.LATIN1=LATIN1;exports.Latin1Encoder=Latin1Encoder;exports.Latin1Decoder=Latin1Decoder;exports.LineSplitter=LineSplitter;exports.StringConversionSink=StringConversionSink;exports.ClosableStringSink=ClosableStringSink;exports.UNICODE_REPLACEMENT_CHARACTER_RUNE=UNICODE_REPLACEMENT_CHARACTER_RUNE;exports.UNICODE_BOM_CHARACTER_RUNE=UNICODE_BOM_CHARACTER_RUNE;exports.Utf8Codec=Utf8Codec;exports.UTF8=UTF8;exports.Utf8Encoder=Utf8Encoder;exports.Utf8Decoder=Utf8Decoder});dart_library.library('dart/core',null,["dart_runtime/dart"],['dart/_js_helper','dart/_internal','dart/collection','dart/_interceptors','dart/convert'],function(exports,dart,_js_helper,_internal,collection,_interceptors,convert){'use strict';let dartx=dart.dartx;class Object{constructor(){let name=this.constructor.name;let result=void 0;if(name in this)result=this[name](...arguments);return result===void 0?this:result}['=='](other){return identical(this,other)}get hashCode(){return _js_helper.Primitives.objectHashCode(this)}toString(){return _js_helper.Primitives.objectToString(this)}noSuchMethod(invocation){dart.throw(new NoSuchMethodError(this,invocation.memberName,invocation.positionalArguments,invocation.namedArguments))}get runtimeType(){return dart.realRuntimeType(this)}};dart.setSignature(Object,{constructors:()=>({Object:[Object,[]]}),methods:()=>({'==':[bool,[dart.dynamic]],noSuchMethod:[dart.dynamic,[Invocation]],toString:[String,[]]})});class Deprecated extends Object{Deprecated(expires){this.expires=expires}toString(){return `Deprecated feature. Will be removed ${this.expires }`}};dart.setSignature(Deprecated,{constructors:()=>({Deprecated:[Deprecated,[String]]})});class _Override extends Object{_Override(){}};dart.setSignature(_Override,{constructors:()=>({_Override:[_Override,[]]})});let deprecated=dart.const(new Deprecated("next release"));let override=dart.const(new _Override());class _Proxy extends Object{_Proxy(){}};dart.setSignature(_Proxy,{constructors:()=>({_Proxy:[_Proxy,[]]})});let proxy=dart.const(new _Proxy());dart.defineExtensionNames(['toString']);class bool extends Object{static fromEnvironment(name,opts){let defaultValue=opts&&'defaultValue'in opts?opts.defaultValue:false;dart.throw(new UnsupportedError('bool.fromEnvironment can only be used as a const constructor'))}toString(){return this?"true":"false"}};dart.setSignature(bool,{constructors:()=>({fromEnvironment:[bool,[String],{defaultValue:bool}]})});let Comparator$=dart.generic(function(T){let Comparator=dart.typedef('Comparator',()=>dart.functionType(int,[T,T]));return Comparator});let Comparator=Comparator$();let Comparable$=dart.generic(function(T){class Comparable extends Object{static compare(a,b){return a[dartx.compareTo](b)}}dart.setSignature(Comparable,{names:['compare'],statics:()=>({compare:[int,[Comparable$(),Comparable$()]]})});return Comparable});let Comparable=Comparable$();class DateTime extends Object{DateTime(year,month,day,hour,minute,second,millisecond){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;this._internal(year,month,day,hour,minute,second,millisecond,false)}utc(year,month,day,hour,minute,second,millisecond){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;this._internal(year,month,day,hour,minute,second,millisecond,true)}now(){this._now()}static parse(formattedString){let re=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 int.parse(matched)}dart.fn(parseIntOrZero,int,[String]);function parseDoubleOrZero(matched){if(matched==null)return 0.0;return double.parse(matched)}dart.fn(parseDoubleOrZero,double,[String]);let years=int.parse(match.get(1));let month=int.parse(match.get(2));let day=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 millisecond=(dart.notNull(parseDoubleOrZero(match.get(7)))*1000)[dartx.round]();if(millisecond==1000){addOneMillisecond=true;millisecond=999}let isUtc=false;if(match.get(8)!=null){isUtc=true;if(match.get(9)!=null){let sign=match.get(9)=='-'?-1:1;let hourDifference=int.parse(match.get(10));let minuteDifference=parseIntOrZero(match.get(11));minuteDifference=dart.notNull(minuteDifference)+60*dart.notNull(hourDifference);minute=dart.notNull(minute)-dart.notNull(sign)*dart.notNull(minuteDifference)}}let millisecondsSinceEpoch=DateTime._brokenDownDateToMillisecondsSinceEpoch(years,month,day,hour,minute,second,millisecond,isUtc);if(millisecondsSinceEpoch==null){dart.throw(new FormatException("Time out of range",formattedString))}if(dart.notNull(addOneMillisecond)){millisecondsSinceEpoch=dart.notNull(millisecondsSinceEpoch)+1}return new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch,{isUtc:isUtc})}else{dart.throw(new FormatException("Invalid date format",formattedString))}}fromMillisecondsSinceEpoch(millisecondsSinceEpoch,opts){let isUtc=opts&&'isUtc'in opts?opts.isUtc:false;this.millisecondsSinceEpoch=millisecondsSinceEpoch;this.isUtc=isUtc;if(dart.notNull(millisecondsSinceEpoch[dartx.abs]())>dart.notNull(DateTime._MAX_MILLISECONDS_SINCE_EPOCH)){dart.throw(new ArgumentError(millisecondsSinceEpoch))}if(isUtc==null)dart.throw(new ArgumentError(isUtc));}['=='](other){if(!dart.is(other,DateTime))return false;return dart.equals(this.millisecondsSinceEpoch,dart.dload(other,'millisecondsSinceEpoch'))&&dart.equals(this.isUtc,dart.dload(other,'isUtc'))}isBefore(other){return dart.notNull(this.millisecondsSinceEpoch)<dart.notNull(other.millisecondsSinceEpoch)}isAfter(other){return dart.notNull(this.millisecondsSinceEpoch)>dart.notNull(other.millisecondsSinceEpoch)}isAtSameMomentAs(other){return this.millisecondsSinceEpoch==other.millisecondsSinceEpoch}compareTo(other){return this.millisecondsSinceEpoch[dartx.compareTo](other.millisecondsSinceEpoch)}get hashCode(){return this.millisecondsSinceEpoch}toLocal(){if(dart.notNull(this.isUtc)){return new DateTime.fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch,{isUtc:false})}return this}toUtc(){if(dart.notNull(this.isUtc))return this;return new DateTime.fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch,{isUtc:true})}static _fourDigits(n){let absN=n[dartx.abs]();let sign=dart.notNull(n)<0?"-":"";if(dart.notNull(absN)>=1000)return `${n }`;if(dart.notNull(absN)>=100)return `${sign }0${absN }`;if(dart.notNull(absN)>=10)return `${sign }00${absN }`;return `${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 `${sign }${absN }`;return `${sign }0${absN }`}static _threeDigits(n){if(dart.notNull(n)>=100)return `${n }`;if(dart.notNull(n)>=10)return `0${n }`;return `00${n }`}static _twoDigits(n){if(dart.notNull(n)>=10)return `${n }`;return `0${n }`}toString(){let y=DateTime._fourDigits(this.year);let m=DateTime._twoDigits(this.month);let d=DateTime._twoDigits(this.day);let h=DateTime._twoDigits(this.hour);let min=DateTime._twoDigits(this.minute);let sec=DateTime._twoDigits(this.second);let ms=DateTime._threeDigits(this.millisecond);if(dart.notNull(this.isUtc)){return `${y }-${m }-${d } ${h }:${min }:${sec }.${ms }Z`}else{return `${y }-${m }-${d } ${h }:${min }:${sec }.${ms }`}}toIso8601String(){let y=dart.notNull(this.year)>=-9999&&dart.notNull(this.year)<=9999?DateTime._fourDigits(this.year):DateTime._sixDigits(this.year);let m=DateTime._twoDigits(this.month);let d=DateTime._twoDigits(this.day);let h=DateTime._twoDigits(this.hour);let min=DateTime._twoDigits(this.minute);let sec=DateTime._twoDigits(this.second);let ms=DateTime._threeDigits(this.millisecond);if(dart.notNull(this.isUtc)){return `${y }-${m }-${d }T${h }:${min }:${sec }.${ms }Z`}else{return `${y }-${m }-${d }T${h }:${min }:${sec }.${ms }`}}add(duration){let ms=this.millisecondsSinceEpoch;return new DateTime.fromMillisecondsSinceEpoch(dart.notNull(ms)+dart.notNull(duration.inMilliseconds),{isUtc:this.isUtc})}subtract(duration){let ms=this.millisecondsSinceEpoch;return new DateTime.fromMillisecondsSinceEpoch(dart.notNull(ms)-dart.notNull(duration.inMilliseconds),{isUtc:this.isUtc})}difference(other){let ms=this.millisecondsSinceEpoch;let otherMs=other.millisecondsSinceEpoch;return new Duration({milliseconds:dart.notNull(ms)-dart.notNull(otherMs)})}_internal(year,month,day,hour,minute,second,millisecond,isUtc){this.isUtc=typeof isUtc=='boolean'?isUtc:dart.throw(new ArgumentError(isUtc));this.millisecondsSinceEpoch=dart.as(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year,month,day,hour,minute,second,millisecond,isUtc)),int)}_now(){this.isUtc=false;this.millisecondsSinceEpoch=_js_helper.Primitives.dateNow()}static _brokenDownDateToMillisecondsSinceEpoch(year,month,day,hour,minute,second,millisecond,isUtc){return dart.as(_js_helper.Primitives.valueFromDecomposedDate(year,month,day,hour,minute,second,millisecond,isUtc),int)}get timeZoneName(){if(dart.notNull(this.isUtc))return "UTC";return _js_helper.Primitives.getTimeZoneName(this)}get timeZoneOffset(){if(dart.notNull(this.isUtc))return new Duration();return new Duration({minutes:_js_helper.Primitives.getTimeZoneOffsetInMinutes(this)})}get year(){return dart.as(_js_helper.Primitives.getYear(this),int)}get month(){return dart.as(_js_helper.Primitives.getMonth(this),int)}get day(){return dart.as(_js_helper.Primitives.getDay(this),int)}get hour(){return dart.as(_js_helper.Primitives.getHours(this),int)}get minute(){return dart.as(_js_helper.Primitives.getMinutes(this),int)}get second(){return dart.as(_js_helper.Primitives.getSeconds(this),int)}get millisecond(){return dart.as(_js_helper.Primitives.getMilliseconds(this),int)}get weekday(){return dart.as(_js_helper.Primitives.getWeekday(this),int)}};DateTime[dart.implements]=()=>[Comparable];dart.defineNamedConstructor(DateTime,'utc');dart.defineNamedConstructor(DateTime,'now');dart.defineNamedConstructor(DateTime,'fromMillisecondsSinceEpoch');dart.defineNamedConstructor(DateTime,'_internal');dart.defineNamedConstructor(DateTime,'_now');dart.setSignature(DateTime,{constructors:()=>({_internal:[DateTime,[int,int,int,int,int,int,int,bool]],_now:[DateTime,[]],DateTime:[DateTime,[int],[int,int,int,int,int,int]],fromMillisecondsSinceEpoch:[DateTime,[int],{isUtc:bool}],now:[DateTime,[]],utc:[DateTime,[int],[int,int,int,int,int,int]]}),methods:()=>({add:[DateTime,[Duration]],compareTo:[int,[DateTime]],difference:[Duration,[DateTime]],isAfter:[bool,[DateTime]],isAtSameMomentAs:[bool,[DateTime]],isBefore:[bool,[DateTime]],subtract:[DateTime,[Duration]],toIso8601String:[String,[]],toLocal:[DateTime,[]],toUtc:[DateTime,[]]}),names:['parse','_fourDigits','_sixDigits','_threeDigits','_twoDigits','_brokenDownDateToMillisecondsSinceEpoch'],statics:()=>({_brokenDownDateToMillisecondsSinceEpoch:[int,[int,int,int,int,int,int,int,bool]],_fourDigits:[String,[int]],_sixDigits:[String,[int]],_threeDigits:[String,[int]],_twoDigits:[String,[int]],parse:[DateTime,[String]]})});dart.defineExtensionMembers(DateTime,['compareTo']);DateTime.MONDAY=1;DateTime.TUESDAY=2;DateTime.WEDNESDAY=3;DateTime.THURSDAY=4;DateTime.FRIDAY=5;DateTime.SATURDAY=6;DateTime.SUNDAY=7;DateTime.DAYS_PER_WEEK=7;DateTime.JANUARY=1;DateTime.FEBRUARY=2;DateTime.MARCH=3;DateTime.APRIL=4;DateTime.MAY=5;DateTime.JUNE=6;DateTime.JULY=7;DateTime.AUGUST=8;DateTime.SEPTEMBER=9;DateTime.OCTOBER=10;DateTime.NOVEMBER=11;DateTime.DECEMBER=12;DateTime.MONTHS_PER_YEAR=12;DateTime._MAX_MILLISECONDS_SINCE_EPOCH=8640000000000000;class num extends Object{static parse(input,onError){if(onError===void 0)onError=null;let source=input[dartx.trim]();num._parseError=false;let result=int.parse(source,{onError:num._onParseErrorInt});if(!dart.notNull(num._parseError))return result;num._parseError=false;result=double.parse(source,num._onParseErrorDouble);if(!dart.notNull(num._parseError))return result;if(onError==null)dart.throw(new FormatException(input));return onError(input)}static _onParseErrorInt(_){num._parseError=true;return 0}static _onParseErrorDouble(_){num._parseError=true;return 0.0}};num[dart.implements]=()=>[Comparable$(num)];dart.setSignature(num,{names:['parse','_onParseErrorInt','_onParseErrorDouble'],statics:()=>({_onParseErrorDouble:[double,[String]],_onParseErrorInt:[int,[String]],parse:[num,[String],[dart.functionType(num,[String])]]})});class double extends num{static parse(source,onError){if(onError===void 0)onError=null;return _js_helper.Primitives.parseDouble(source,onError)}};dart.setSignature(double,{names:['parse'],statics:()=>({parse:[double,[String],[dart.functionType(double,[String])]]})});double.NAN=0.0/0.0;double.INFINITY=1.0/0.0;double.NEGATIVE_INFINITY= -dart.notNull(double.INFINITY);double.MIN_POSITIVE=5e-324;double.MAX_FINITE=1.7976931348623157e+308;let _duration=dart.JsSymbol('_duration');class Duration extends Object{Duration(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;this._microseconds(dart.notNull(days)*dart.notNull(Duration.MICROSECONDS_PER_DAY)+dart.notNull(hours)*dart.notNull(Duration.MICROSECONDS_PER_HOUR)+dart.notNull(minutes)*dart.notNull(Duration.MICROSECONDS_PER_MINUTE)+dart.notNull(seconds)*dart.notNull(Duration.MICROSECONDS_PER_SECOND)+dart.notNull(milliseconds)*dart.notNull(Duration.MICROSECONDS_PER_MILLISECOND)+dart.notNull(microseconds))}_microseconds(duration){this[_duration]=duration}['+'](other){return new Duration._microseconds(dart.notNull(this[_duration])+dart.notNull(other[_duration]))}['-'](other){return new Duration._microseconds(dart.notNull(this[_duration])-dart.notNull(other[_duration]))}['*'](factor){return new Duration._microseconds((dart.notNull(this[_duration])*dart.notNull(factor))[dartx.round]())}['~/'](quotient){if(quotient==0)dart.throw(new IntegerDivisionByZeroException());return new 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])/dart.notNull(Duration.MICROSECONDS_PER_DAY))[dartx.truncate]()}get inHours(){return(dart.notNull(this[_duration])/dart.notNull(Duration.MICROSECONDS_PER_HOUR))[dartx.truncate]()}get inMinutes(){return(dart.notNull(this[_duration])/dart.notNull(Duration.MICROSECONDS_PER_MINUTE))[dartx.truncate]()}get inSeconds(){return(dart.notNull(this[_duration])/dart.notNull(Duration.MICROSECONDS_PER_SECOND))[dartx.truncate]()}get inMilliseconds(){return(dart.notNull(this[_duration])/dart.notNull(Duration.MICROSECONDS_PER_MILLISECOND))[dartx.truncate]()}get inMicroseconds(){return this[_duration]}['=='](other){if(!dart.is(other,Duration))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 `${n }`;if(dart.notNull(n)>=10000)return `0${n }`;if(dart.notNull(n)>=1000)return `00${n }`;if(dart.notNull(n)>=100)return `000${n }`;if(dart.notNull(n)>=10)return `0000${n }`;return `00000${n }`}dart.fn(sixDigits,String,[int]);function twoDigits(n){if(dart.notNull(n)>=10)return `${n }`;return `0${n }`}dart.fn(twoDigits,String,[int]);if(dart.notNull(this.inMicroseconds)<0){return `-${this['unary-']()}`}let twoDigitMinutes=twoDigits(this.inMinutes[dartx.remainder](Duration.MINUTES_PER_HOUR));let twoDigitSeconds=twoDigits(this.inSeconds[dartx.remainder](Duration.SECONDS_PER_MINUTE));let sixDigitUs=sixDigits(this.inMicroseconds[dartx.remainder](Duration.MICROSECONDS_PER_SECOND));return `${this.inHours }:${twoDigitMinutes }:${twoDigitSeconds }.${sixDigitUs }`}get isNegative(){return dart.notNull(this[_duration])<0}abs(){return new Duration._microseconds(this[_duration][dartx.abs]())}['unary-'](){return new Duration._microseconds(-dart.notNull(this[_duration]))}};Duration[dart.implements]=()=>[Comparable$(Duration)];dart.defineNamedConstructor(Duration,'_microseconds');dart.setSignature(Duration,{constructors:()=>({_microseconds:[Duration,[int]],Duration:[Duration,[],{days:int,hours:int,microseconds:int,milliseconds:int,minutes:int,seconds:int}]}),methods:()=>({'*':[Duration,[num]],'+':[Duration,[Duration]],'-':[Duration,[Duration]],'<':[bool,[Duration]],'<=':[bool,[Duration]],'>':[bool,[Duration]],'>=':[bool,[Duration]],'unary-':[Duration,[]],'~/':[Duration,[int]],abs:[Duration,[]],compareTo:[int,[Duration]]})});dart.defineExtensionMembers(Duration,['compareTo']);Duration.MICROSECONDS_PER_MILLISECOND=1000;Duration.MILLISECONDS_PER_SECOND=1000;Duration.SECONDS_PER_MINUTE=60;Duration.MINUTES_PER_HOUR=60;Duration.HOURS_PER_DAY=24;Duration.MICROSECONDS_PER_SECOND=dart.notNull(Duration.MICROSECONDS_PER_MILLISECOND)*dart.notNull(Duration.MILLISECONDS_PER_SECOND);Duration.MICROSECONDS_PER_MINUTE=dart.notNull(Duration.MICROSECONDS_PER_SECOND)*dart.notNull(Duration.SECONDS_PER_MINUTE);Duration.MICROSECONDS_PER_HOUR=dart.notNull(Duration.MICROSECONDS_PER_MINUTE)*dart.notNull(Duration.MINUTES_PER_HOUR);Duration.MICROSECONDS_PER_DAY=dart.notNull(Duration.MICROSECONDS_PER_HOUR)*dart.notNull(Duration.HOURS_PER_DAY);Duration.MILLISECONDS_PER_MINUTE=dart.notNull(Duration.MILLISECONDS_PER_SECOND)*dart.notNull(Duration.SECONDS_PER_MINUTE);Duration.MILLISECONDS_PER_HOUR=dart.notNull(Duration.MILLISECONDS_PER_MINUTE)*dart.notNull(Duration.MINUTES_PER_HOUR);Duration.MILLISECONDS_PER_DAY=dart.notNull(Duration.MILLISECONDS_PER_HOUR)*dart.notNull(Duration.HOURS_PER_DAY);Duration.SECONDS_PER_HOUR=dart.notNull(Duration.SECONDS_PER_MINUTE)*dart.notNull(Duration.MINUTES_PER_HOUR);Duration.SECONDS_PER_DAY=dart.notNull(Duration.SECONDS_PER_HOUR)*dart.notNull(Duration.HOURS_PER_DAY);Duration.MINUTES_PER_DAY=dart.notNull(Duration.MINUTES_PER_HOUR)*dart.notNull(Duration.HOURS_PER_DAY);Duration.ZERO=dart.const(new Duration({seconds:0}));class Error extends Object{Error(){}static safeToString(object){if(dart.is(object,num)||typeof object=='boolean'||null==object){return dart.toString(object)}if(typeof object=='string'){return Error._stringToSafeString(object)}return 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(Error,{constructors:()=>({Error:[Error,[]]}),names:['safeToString','_stringToSafeString','_objectToString'],statics:()=>({_objectToString:[String,[Object]],_stringToSafeString:[String,[String]],safeToString:[String,[Object]]})});class AssertionError extends Error{AssertionError(){super.Error()}};class TypeError extends AssertionError{};class CastError extends Error{CastError(){super.Error()}};class NullThrownError extends Error{NullThrownError(){super.Error()}toString(){return "Throw of null."}};let _hasValue=dart.JsSymbol('_hasValue');class ArgumentError extends Error{ArgumentError(message){if(message===void 0)message=null;this.message=message;this.invalidValue=null;this[_hasValue]=false;this.name=null;super.Error()}value(value,name,message){if(name===void 0)name=null;if(message===void 0)message="Invalid argument";this.name=name;this.message=message;this.invalidValue=value;this[_hasValue]=true;super.Error()}notNull(name){if(name===void 0)name=null;this.value(null,name,"Must not be null")}toString(){if(!dart.notNull(this[_hasValue])){let result="Invalid arguments(s)";if(this.message!=null){result=`${result }: ${this.message }`}return result}let nameString="";if(this.name!=null){nameString=` (${this.name })`}return `${this.message }${nameString }: ${Error.safeToString(this.invalidValue)}`}};dart.defineNamedConstructor(ArgumentError,'value');dart.defineNamedConstructor(ArgumentError,'notNull');dart.setSignature(ArgumentError,{constructors:()=>({ArgumentError:[ArgumentError,[],[dart.dynamic]],notNull:[ArgumentError,[],[String]],value:[ArgumentError,[dart.dynamic],[String,String]]})});class RangeError extends ArgumentError{RangeError(message){this.start=null;this.end=null;super.ArgumentError(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 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 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=dart.as(dart.dload(indexable,'length'),int);if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(length)){if(name==null)name="index";dart.throw(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(dart.notNull(start)<0||dart.notNull(start)>dart.notNull(length)){if(startName==null)startName="start";dart.throw(new RangeError.range(start,0,length,startName,message))}if(end!=null&&(dart.notNull(end)<dart.notNull(start)||dart.notNull(end)>dart.notNull(length))){if(endName==null)endName="end";dart.throw(new RangeError.range(end,start,length,endName,message))}}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 RangeError.range(value,0,null,name,message));}toString(){if(!dart.notNull(this[_hasValue]))return `RangeError: ${this.message }`;let value=Error.safeToString(this.invalidValue);let explanation="";if(this.start==null){if(this.end!=null){explanation=`: Not less than or equal to ${this.end }`}}else if(this.end==null){explanation=`: Not greater than or equal to ${this.start }`}else if(dart.notNull(this.end)>dart.notNull(this.start)){explanation=`: 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=`: Only valid value is ${this.start }`}return `RangeError: ${this.message } (${value })${explanation }`}};dart.defineNamedConstructor(RangeError,'value');dart.defineNamedConstructor(RangeError,'range');dart.setSignature(RangeError,{constructors:()=>({index:[RangeError,[int,dart.dynamic],[String,String,int]],range:[RangeError,[num,int,int],[String,String]],RangeError:[RangeError,[dart.dynamic]],value:[RangeError,[num],[String,String]]}),names:['checkValueInInterval','checkValidIndex','checkValidRange','checkNotNegative'],statics:()=>({checkNotNegative:[dart.void,[int],[String,String]],checkValidIndex:[dart.void,[int,dart.dynamic],[String,int,String]],checkValidRange:[dart.void,[int,int,int],[String,String,String]],checkValueInInterval:[dart.void,[int,int,int],[String,String]]})});class IndexError extends ArgumentError{IndexError(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=length!=null?length:dart.as(dart.dload(indexable,'length'),int);super.value(invalidValue,name,message!=null?message:"Index out of range")}get start(){return 0}get end(){return dart.notNull(this.length)-1}toString(){dart.assert(this[_hasValue]);let target=Error.safeToString(this.indexable);let explanation=`index should be less than ${this.length }`;if(dart.notNull(dart.as(dart.dsend(this.invalidValue,'<',0),bool))){explanation="index must not be negative"}return `RangeError: ${this.message } (${target }[${this.invalidValue }]): ${explanation }`}};IndexError[dart.implements]=()=>[RangeError];dart.setSignature(IndexError,{constructors:()=>({IndexError:[IndexError,[int,dart.dynamic],[String,String,int]]})});class FallThroughError extends Error{FallThroughError(){super.Error()}};dart.setSignature(FallThroughError,{constructors:()=>({FallThroughError:[FallThroughError,[]]})});let _className=dart.JsSymbol('_className');class AbstractClassInstantiationError extends Error{AbstractClassInstantiationError(className){this[_className]=className;super.Error()}toString(){return `Cannot instantiate abstract class: '${this[_className]}'`}};dart.setSignature(AbstractClassInstantiationError,{constructors:()=>({AbstractClassInstantiationError:[AbstractClassInstantiationError,[String]]})});let _receiver=dart.JsSymbol('_receiver');let _memberName=dart.JsSymbol('_memberName');let _arguments=dart.JsSymbol('_arguments');let _namedArguments=dart.JsSymbol('_namedArguments');let _existingArgumentNames=dart.JsSymbol('_existingArgumentNames');class NoSuchMethodError extends Error{NoSuchMethodError(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.Error()}toString(){let sb=new StringBuffer();let i=0;if(this[_arguments]!=null){for(;dart.notNull(i)<dart.notNull(this[_arguments][dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(i)>0){sb.write(", ")}sb.write(Error.safeToString(this[_arguments][dartx.get](i)))}}if(this[_namedArguments]!=null){this[_namedArguments].forEach(dart.fn((key,value)=>{if(dart.notNull(i)>0){sb.write(", ")}sb.write(_symbolToString(key));sb.write(": ");sb.write(Error.safeToString(value));i=dart.notNull(i)+1},dart.dynamic,[Symbol,dart.dynamic]))}if(this[_existingArgumentNames]==null){return `NoSuchMethodError : method not found: '${this[_memberName]}'\n`+`Receiver: ${Error.safeToString(this[_receiver])}\n`+`Arguments: [${sb }]`}else{let actualParameters=dart.toString(sb);sb=new StringBuffer();for(let i=0;dart.notNull(i)<dart.notNull(this[_existingArgumentNames][dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(i)>0){sb.write(", ")}sb.write(this[_existingArgumentNames][dartx.get](i))}let formalParameters=dart.toString(sb);return "NoSuchMethodError: incorrect number of arguments passed to "+`method named '${this[_memberName]}'\n`+`Receiver: ${Error.safeToString(this[_receiver])}\n`+`Tried calling: ${this[_memberName]}(${actualParameters })\n`+`Found: ${this[_memberName]}(${formalParameters })`}}};dart.setSignature(NoSuchMethodError,{constructors:()=>({NoSuchMethodError:[NoSuchMethodError,[Object,Symbol,List,Map$(Symbol,dart.dynamic)],[List]]})});class UnsupportedError extends Error{UnsupportedError(message){this.message=message;super.Error()}toString(){return `Unsupported operation: ${this.message }`}};dart.setSignature(UnsupportedError,{constructors:()=>({UnsupportedError:[UnsupportedError,[String]]})});class UnimplementedError extends Error{UnimplementedError(message){if(message===void 0)message=null;this.message=message;super.Error()}toString(){return this.message!=null?`UnimplementedError: ${this.message }`:"UnimplementedError"}};UnimplementedError[dart.implements]=()=>[UnsupportedError];dart.setSignature(UnimplementedError,{constructors:()=>({UnimplementedError:[UnimplementedError,[],[String]]})});class StateError extends Error{StateError(message){this.message=message;super.Error()}toString(){return `Bad state: ${this.message }`}};dart.setSignature(StateError,{constructors:()=>({StateError:[StateError,[String]]})});class ConcurrentModificationError extends Error{ConcurrentModificationError(modifiedObject){if(modifiedObject===void 0)modifiedObject=null;this.modifiedObject=modifiedObject;super.Error()}toString(){if(this.modifiedObject==null){return "Concurrent modification during iteration."}return "Concurrent modification during iteration: "+`${Error.safeToString(this.modifiedObject)}.`}};dart.setSignature(ConcurrentModificationError,{constructors:()=>({ConcurrentModificationError:[ConcurrentModificationError,[],[Object]]})});class OutOfMemoryError extends Object{OutOfMemoryError(){}toString(){return "Out of Memory"}get stackTrace(){return null}};OutOfMemoryError[dart.implements]=()=>[Error];dart.setSignature(OutOfMemoryError,{constructors:()=>({OutOfMemoryError:[OutOfMemoryError,[]]})});class StackOverflowError extends Object{StackOverflowError(){}toString(){return "Stack Overflow"}get stackTrace(){return null}};StackOverflowError[dart.implements]=()=>[Error];dart.setSignature(StackOverflowError,{constructors:()=>({StackOverflowError:[StackOverflowError,[]]})});class CyclicInitializationError extends Error{CyclicInitializationError(variableName){if(variableName===void 0)variableName=null;this.variableName=variableName;super.Error()}toString(){return this.variableName==null?"Reading static variable during its initialization":`Reading static variable '${this.variableName }' during its initialization`}};dart.setSignature(CyclicInitializationError,{constructors:()=>({CyclicInitializationError:[CyclicInitializationError,[],[String]]})});class Exception extends Object{static new(message){if(message===void 0)message=null;return new _ExceptionImplementation(message)}};dart.setSignature(Exception,{constructors:()=>({new:[Exception,[],[dart.dynamic]]})});class _ExceptionImplementation extends Object{_ExceptionImplementation(message){if(message===void 0)message=null;this.message=message}toString(){if(this.message==null)return "Exception";return `Exception: ${this.message }`}};_ExceptionImplementation[dart.implements]=()=>[Exception];dart.setSignature(_ExceptionImplementation,{constructors:()=>({_ExceptionImplementation:[_ExceptionImplementation,[],[dart.dynamic]]})});class FormatException extends Object{FormatException(message,source,offset){if(message===void 0)message="";if(source===void 0)source=null;if(offset===void 0)offset=-1;this.message=message;this.source=source;this.offset=offset}toString(){let report="FormatException";if(this.message!=null&&""!=this.message){report=`${report }: ${this.message }`}let offset=this.offset;if(!(typeof this.source=='string')){if(offset!=-1){report=dart.notNull(report)+` (at offset ${offset })`}return report}if(offset!=-1&&(dart.notNull(offset)<0||dart.notNull(offset)>dart.notNull(dart.as(dart.dload(this.source,'length'),num)))){offset=-1}if(offset==-1){let source=dart.as(this.source,String);if(dart.notNull(source[dartx.length])>78){source=dart.notNull(source[dartx.substring](0,75))+"..."}return `${report }\n${source }`}let lineNum=1;let lineStart=0;let lastWasCR=null;for(let i=0;dart.notNull(i)<dart.notNull(offset);i=dart.notNull(i)+1){let char=dart.as(dart.dsend(this.source,'codeUnitAt',i),int);if(char==10){if(lineStart!=i|| !dart.notNull(lastWasCR)){lineNum=dart.notNull(lineNum)+1}lineStart=dart.notNull(i)+1;lastWasCR=false}else if(char==13){lineNum=dart.notNull(lineNum)+1;lineStart=dart.notNull(i)+1;lastWasCR=true}}if(dart.notNull(lineNum)>1){report=dart.notNull(report)+` (at line ${lineNum }, character ${dart.notNull(offset)-dart.notNull(lineStart)+1})\n`}else{report=dart.notNull(report)+` (at character ${dart.notNull(offset)+1})\n`}let lineEnd=dart.as(dart.dload(this.source,'length'),int);for(let i=offset;dart.notNull(i)<dart.notNull(dart.as(dart.dload(this.source,'length'),num));i=dart.notNull(i)+1){let char=dart.as(dart.dsend(this.source,'codeUnitAt',i),int);if(char==10||char==13){lineEnd=i;break}}let length=dart.notNull(lineEnd)-dart.notNull(lineStart);let start=lineStart;let end=lineEnd;let prefix="";let postfix="";if(dart.notNull(length)>78){let index=dart.notNull(offset)-dart.notNull(lineStart);if(dart.notNull(index)<75){end=dart.notNull(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=dart.as(dart.dsend(this.source,'substring',start,end),String);let markOffset=dart.notNull(offset)-dart.notNull(start)+dart.notNull(prefix[dartx.length]);return `${report }${prefix }${slice }${postfix }\n${" "[dartx['*']](markOffset)}^\n`}};FormatException[dart.implements]=()=>[Exception];dart.setSignature(FormatException,{constructors:()=>({FormatException:[FormatException,[],[String,dart.dynamic,int]]})});class IntegerDivisionByZeroException extends Object{IntegerDivisionByZeroException(){}toString(){return "IntegerDivisionByZeroException"}};IntegerDivisionByZeroException[dart.implements]=()=>[Exception];dart.setSignature(IntegerDivisionByZeroException,{constructors:()=>({IntegerDivisionByZeroException:[IntegerDivisionByZeroException,[]]})});let _getKey=dart.JsSymbol('_getKey');let Expando$=dart.generic(function(T){class Expando extends Object{Expando(name){if(name===void 0)name=null;this.name=name}toString(){return `Expando:${this.name }`}get(object){let values=_js_helper.Primitives.getProperty(object,Expando$()._EXPANDO_PROPERTY_NAME);return values==null?null:dart.as(_js_helper.Primitives.getProperty(values,this[_getKey]()),T)}set(object,value){dart.as(value,T);let values=_js_helper.Primitives.getProperty(object,Expando$()._EXPANDO_PROPERTY_NAME);if(values==null){values=new Object();_js_helper.Primitives.setProperty(object,Expando$()._EXPANDO_PROPERTY_NAME,values)}_js_helper.Primitives.setProperty(values,this[_getKey](),value)}[_getKey](){let key=dart.as(_js_helper.Primitives.getProperty(this,Expando$()._KEY_PROPERTY_NAME),String);if(key==null){key=`expando$key$${(()=>{let x=Expando$()._keyCount;Expando$()._keyCount=dart.notNull(x)+1;return x;})()}`;_js_helper.Primitives.setProperty(this,Expando$()._KEY_PROPERTY_NAME,key)};return key}}dart.setSignature(Expando,{constructors:()=>({Expando:[Expando$(T),[],[String]]}),methods:()=>({[_getKey]:[String,[]],get:[T,[Object]],set:[dart.void,[Object,T]]})});return Expando});let Expando=Expando$();Expando._KEY_PROPERTY_NAME='expando$key';Expando._EXPANDO_PROPERTY_NAME='expando$values';Expando._keyCount=0;class Function extends 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();namedArguments.forEach(dart.fn((symbol,value)=>{result.set(_symbolToString(dart.as(symbol,Symbol)),value)}));return result}};dart.setSignature(Function,{names:['apply','_toMangledNames'],statics:()=>({_toMangledNames:[Map$(String,dart.dynamic),[Map$(Symbol,dart.dynamic)]],apply:[dart.dynamic,[Function,List],[Map$(Symbol,dart.dynamic)]]})});function identical(a,b){return _js_helper.Primitives.identicalImplementation(a,b)}dart.fn(identical,bool,[Object,Object]);function identityHashCode(object){return _js_helper.objectHashCode(object)}dart.fn(identityHashCode,()=>dart.definiteFunctionType(int,[Object]));class int extends num{static fromEnvironment(name,opts){let defaultValue=opts&&'defaultValue'in opts?opts.defaultValue:null;dart.throw(new 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)}};dart.setSignature(int,{constructors:()=>({fromEnvironment:[int,[String],{defaultValue:int}]}),names:['parse'],statics:()=>({parse:[int,[String],{onError:dart.functionType(int,[String]),radix:int}]})});class Invocation extends Object{get isAccessor(){return dart.notNull(this.isGetter)||dart.notNull(this.isSetter)}};let Iterable$=dart.generic(function(E){dart.defineExtensionNames(['join']);class Iterable extends Object{Iterable(){}static generate(count,generator){if(generator===void 0)generator=null;if(dart.notNull(count)<=0)return new(_internal.EmptyIterable$(E))();return new(exports._GeneratorIterable$(E))(count,generator)}[dart.JsSymbol.iterator](){return new dart.JsIterator(this[dartx.iterator])}[dartx.join](separator){if(separator===void 0)separator="";let buffer=new StringBuffer();buffer.writeAll(this,separator);return dart.toString(buffer)}};dart.setSignature(Iterable,{constructors:()=>({generate:[Iterable$(E),[int],[dart.functionType(E,[int])]],Iterable:[Iterable$(E),[]]}),methods:()=>({[dartx.join]:[String,[],[String]]})});return Iterable});let Iterable=Iterable$();let _Generator$=dart.generic(function(E){let _Generator=dart.typedef('_Generator',()=>dart.functionType(E,[int]));return _Generator});let _Generator=_Generator$();let _end=dart.JsSymbol('_end');let _start=dart.JsSymbol('_start');let _generator=dart.JsSymbol('_generator');let _GeneratorIterable$=dart.generic(function(E){class _GeneratorIterable extends collection.IterableBase$(E){_GeneratorIterable(end,generator){this[_end]=end;this[_start]=0;this[_generator]=dart.as(generator!=null?generator:exports._GeneratorIterable$()._id,_Generator$(E));super.IterableBase()}slice(start,end,generator){this[_start]=start;this[_end]=end;this[_generator]=generator;super.IterableBase()}get iterator(){return new(_GeneratorIterator$(E))(this[_start],this[_end],this[_generator])}get length(){return dart.notNull(this[_end])-dart.notNull(this[_start])}skip(count){RangeError.checkNotNegative(count,"count");if(count==0)return this;let newStart=dart.notNull(this[_start])+dart.notNull(count);if(dart.notNull(newStart)>=dart.notNull(this[_end]))return new(_internal.EmptyIterable$(E))();return new(exports._GeneratorIterable$(E)).slice(newStart,this[_end],this[_generator])}take(count){RangeError.checkNotNegative(count,"count");if(count==0)return new(_internal.EmptyIterable$(E))();let newEnd=dart.notNull(this[_start])+dart.notNull(count);if(dart.notNull(newEnd)>=dart.notNull(this[_end]))return this;return new(exports._GeneratorIterable$(E)).slice(this[_start],newEnd,this[_generator])}static _id(n){return n}}_GeneratorIterable[dart.implements]=()=>[_internal.EfficientLength];dart.defineNamedConstructor(_GeneratorIterable,'slice');dart.setSignature(_GeneratorIterable,{constructors:()=>({_GeneratorIterable:[exports._GeneratorIterable$(E),[int,dart.functionType(E,[int])]],slice:[exports._GeneratorIterable$(E),[int,int,_Generator$(E)]]}),methods:()=>({skip:[Iterable$(E),[int]],take:[Iterable$(E),[int]]}),names:['_id'],statics:()=>({_id:[int,[int]]})});dart.defineExtensionMembers(_GeneratorIterable,['skip','take','iterator','length']);return _GeneratorIterable});dart.defineLazyClassGeneric(exports,'_GeneratorIterable',{get:_GeneratorIterable$});let _index=dart.JsSymbol('_index');let _current=dart.JsSymbol('_current');let _GeneratorIterator$=dart.generic(function(E){class _GeneratorIterator extends Object{_GeneratorIterator(index,end,generator){this[_index]=index;this[_end]=end;this[_generator]=generator;this[_current]=null}moveNext(){if(dart.notNull(this[_index])<dart.notNull(this[_end])){this[_current]=this[_generator](this[_index]);this[_index]=dart.notNull(this[_index])+1;return true}else{this[_current]=null;return false}}get current(){return this[_current]}}_GeneratorIterator[dart.implements]=()=>[Iterator$(E)];dart.setSignature(_GeneratorIterator,{constructors:()=>({_GeneratorIterator:[_GeneratorIterator$(E),[int,int,_Generator$(E)]]}),methods:()=>({moveNext:[bool,[]]})});return _GeneratorIterator});let _GeneratorIterator=_GeneratorIterator$();let BidirectionalIterator$=dart.generic(function(E){class BidirectionalIterator extends Object{}BidirectionalIterator[dart.implements]=()=>[Iterator$(E)];return BidirectionalIterator});let BidirectionalIterator=BidirectionalIterator$();let Iterator$=dart.generic(function(E){class Iterator extends Object{}return Iterator});let Iterator=Iterator$();let List$=dart.generic(function(E){class List extends 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 ArgumentError(`Length must be a non-negative integer: ${length }`))}list=_interceptors.JSArray.markFixedList(dart.as(new Array(length),List$()))}return _interceptors.JSArray$(E).typed(list)}static filled(length,fill){let result=List$(E).new(length);if(length!=0&&fill!=null){for(let i=0;dart.notNull(i)<dart.notNull(result[dartx.length]);i=dart.notNull(i)+1){result[dartx.set](i,fill)}}return result}static from(elements,opts){let growable=opts&&'growable'in opts?opts.growable:true;let list=List$(E).new();for(let e of elements){list[dartx.add](dart.as(e,E))}if(dart.notNull(growable))return list;return dart.as(_internal.makeListFixedLength(list),List$(E))}static generate(length,generator,opts){let growable=opts&&'growable'in opts?opts.growable:true;let result=null;if(dart.notNull(growable)){result=dart.list([],E);result[dartx.length]=length}else{result=List$(E).new(length)}for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){result[dartx.set](i,generator(i))}return result}[dart.JsSymbol.iterator](){return new dart.JsIterator(this[dartx.iterator])}}List[dart.implements]=()=>[Iterable$(E)];dart.setSignature(List,{constructors:()=>({filled:[List$(E),[int,E]],from:[List$(E),[Iterable],{growable:bool}],generate:[List$(E),[int,dart.functionType(E,[int])],{growable:bool}],new:[List$(E),[],[int]]})});return List});let List=List$();let Map$=dart.generic(function(K,V){class Map extends Object{static new(){return collection.LinkedHashMap$(K,V).new()}static from(other){return collection.LinkedHashMap$(K,V).from(other)}static identity(){return collection.LinkedHashMap$(K,V).identity()}static fromIterable(iterable,opts){return collection.LinkedHashMap$(K,V).fromIterable(iterable,opts)}static fromIterables(keys,values){return collection.LinkedHashMap$(K,V).fromIterables(keys,values)}}dart.setSignature(Map,{constructors:()=>({from:[Map$(K,V),[Map$()]],fromIterable:[Map$(K,V),[Iterable],{key:dart.functionType(K,[dart.dynamic]),value:dart.functionType(V,[dart.dynamic])}],fromIterables:[Map$(K,V),[Iterable$(K),Iterable$(V)]],identity:[Map$(K,V),[]],new:[Map$(K,V),[]]})});return Map});let Map=Map$();class Null extends Object{static _uninstantiable(){dart.throw(new UnsupportedError('class Null cannot be instantiated'))}toString(){return "null"}};dart.setSignature(Null,{constructors:()=>({_uninstantiable:[Null,[]]})});num._parseError=false;class Pattern extends Object{};function print(object){let line=`${object }`;if(_internal.printToZone==null){_internal.printToConsole(line)}else{dart.dcall(_internal.printToZone,line)}}dart.fn(print,dart.void,[Object]);class Match extends Object{};class RegExp extends 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,{caseSensitive:caseSensitive,multiLine:multiLine})}};RegExp[dart.implements]=()=>[Pattern];dart.setSignature(RegExp,{constructors:()=>({new:[RegExp,[String],{caseSensitive:bool,multiLine:bool}]})});let Set$=dart.generic(function(E){class Set extends collection.IterableBase$(E){static new(){return collection.LinkedHashSet$(E).new()}static identity(){return collection.LinkedHashSet$(E).identity()}static from(elements){return collection.LinkedHashSet$(E).from(elements)}}Set[dart.implements]=()=>[_internal.EfficientLength];dart.setSignature(Set,{constructors:()=>({from:[exports.Set$(E),[Iterable]],identity:[exports.Set$(E),[]],new:[exports.Set$(E),[]]})});return Set});dart.defineLazyClassGeneric(exports,'Set',{get:Set$});let Sink$=dart.generic(function(T){class Sink extends Object{}return Sink});let Sink=Sink$();class StackTrace extends Object{};let _stop=dart.JsSymbol('_stop');class Stopwatch extends Object{get frequency(){return Stopwatch._frequency}Stopwatch(){this[_start]=null;this[_stop]=null;Stopwatch._initTicker()}start(){if(dart.notNull(this.isRunning))return;if(this[_start]==null){this[_start]=Stopwatch._now()}else{this[_start]=dart.notNull(Stopwatch._now())-(dart.notNull(this[_stop])-dart.notNull(this[_start]));this[_stop]=null}}stop(){if(!dart.notNull(this.isRunning))return;this[_stop]=Stopwatch._now()}reset(){if(this[_start]==null)return;this[_start]=Stopwatch._now();if(this[_stop]!=null){this[_stop]=this[_start]}}get elapsedTicks(){if(this[_start]==null){return 0}return this[_stop]==null?dart.notNull(Stopwatch._now())-dart.notNull(this[_start]):dart.notNull(this[_stop])-dart.notNull(this[_start])}get elapsed(){return new 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]!=null&&this[_stop]==null}static _initTicker(){_js_helper.Primitives.initTicker();Stopwatch._frequency=_js_helper.Primitives.timerFrequency}static _now(){return dart.as(dart.dcall(_js_helper.Primitives.timerTicks),int)}};dart.setSignature(Stopwatch,{constructors:()=>({Stopwatch:[Stopwatch,[]]}),methods:()=>({reset:[dart.void,[]],start:[dart.void,[]],stop:[dart.void,[]]}),names:['_initTicker','_now'],statics:()=>({_initTicker:[dart.void,[]],_now:[int,[]]})});Stopwatch._frequency=null;class String extends Object{static fromCharCodes(charCodes,start,end){if(start===void 0)start=0;if(end===void 0)end=null;if(!dart.is(charCodes,_interceptors.JSArray)){return String._stringFromIterable(charCodes,start,end)}let list=dart.as(charCodes,List);let len=list[dartx.length];if(dart.notNull(start)<0||dart.notNull(start)>dart.notNull(len)){dart.throw(new RangeError.range(start,0,len))}if(end==null){end=len}else if(dart.notNull(end)<dart.notNull(start)||dart.notNull(end)>dart.notNull(len)){dart.throw(new RangeError.range(end,start,len))}if(dart.notNull(start)>0||dart.notNull(end)<dart.notNull(len)){list=list[dartx.sublist](start,end)}return _js_helper.Primitives.stringFromCharCodes(list)}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 UnsupportedError('String.fromEnvironment can only be used as a const constructor'))}static _stringFromIterable(charCodes,start,end){if(dart.notNull(start)<0)dart.throw(new RangeError.range(start,0,charCodes[dartx.length]));if(end!=null&&dart.notNull(end)<dart.notNull(start)){dart.throw(new RangeError.range(end,start,charCodes[dartx.length]))}let it=charCodes[dartx.iterator];for(let i=0;dart.notNull(i)<dart.notNull(start);i=dart.notNull(i)+1){if(!dart.notNull(it.moveNext())){dart.throw(new RangeError.range(start,0,i))}}let list=[];if(end==null){while(dart.notNull(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.notNull(it.moveNext())){dart.throw(new RangeError.range(end,start,i))}list[dartx.add](it.current)}}return _js_helper.Primitives.stringFromCharCodes(list)}};String[dart.implements]=()=>[Comparable$(String),Pattern];dart.setSignature(String,{constructors:()=>({fromCharCode:[String,[int]],fromCharCodes:[String,[Iterable$(int)],[int,int]],fromEnvironment:[String,[String],{defaultValue:String}]}),names:['_stringFromIterable'],statics:()=>({_stringFromIterable:[String,[Iterable$(int),int,int]]})});dart.defineLazyClass(exports,{get Runes(){class Runes extends collection.IterableBase$(int){Runes(string){this.string=string;super.IterableBase()}get iterator(){return new RuneIterator(this.string)}get last(){if(this.string[dartx.length]==0){dart.throw(new StateError('No elements.'))}let length=this.string[dartx.length];let code=this.string[dartx.codeUnitAt](dart.notNull(length)-1);if(dart.notNull(_isTrailSurrogate(code))&&dart.notNull(this.string[dartx.length])>1){let previousCode=this.string[dartx.codeUnitAt](dart.notNull(length)-2);if(dart.notNull(_isLeadSurrogate(previousCode))){return _combineSurrogatePair(previousCode,code)}}return code}}dart.setSignature(Runes,{constructors:()=>({Runes:[exports.Runes,[String]]})});dart.defineExtensionMembers(Runes,['iterator','last']);return Runes}});function _isLeadSurrogate(code){return(dart.notNull(code)&64512)==55296}dart.fn(_isLeadSurrogate,bool,[int]);function _isTrailSurrogate(code){return(dart.notNull(code)&64512)==56320}dart.fn(_isTrailSurrogate,bool,[int]);function _combineSurrogatePair(start,end){return 65536+((dart.notNull(start)&1023)<<10)+(dart.notNull(end)&1023)}dart.fn(_combineSurrogatePair,int,[int,int]);let _position=dart.JsSymbol('_position');let _nextPosition=dart.JsSymbol('_nextPosition');let _currentCodePoint=dart.JsSymbol('_currentCodePoint');let _checkSplitSurrogate=dart.JsSymbol('_checkSplitSurrogate');class RuneIterator extends Object{RuneIterator(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;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.notNull(_isLeadSurrogate(this.string[dartx.codeUnitAt](dart.notNull(index)-1)))&&dart.notNull(_isTrailSurrogate(this.string[dartx.codeUnitAt](index)))){dart.throw(new ArgumentError(`Index inside surrogate pair: ${index }`))}}get rawIndex(){return this[_position]!=this[_nextPosition]?this[_position]:null}set rawIndex(rawIndex){RangeError.checkValidIndex(rawIndex,this.string,"rawIndex");this.reset(rawIndex);this.moveNext()}reset(rawIndex){if(rawIndex===void 0)rawIndex=0;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.notNull(_isLeadSurrogate(codeUnit))&&dart.notNull(nextPosition)<dart.notNull(this.string[dartx.length])){let nextCodeUnit=this.string[dartx.codeUnitAt](nextPosition);if(dart.notNull(_isTrailSurrogate(nextCodeUnit))){this[_nextPosition]=dart.notNull(nextPosition)+1;this[_currentCodePoint]=_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.notNull(_isTrailSurrogate(codeUnit))&&dart.notNull(position)>0){let prevCodeUnit=this.string[dartx.codeUnitAt](dart.notNull(position)-1);if(dart.notNull(_isLeadSurrogate(prevCodeUnit))){this[_position]=dart.notNull(position)-1;this[_currentCodePoint]=_combineSurrogatePair(prevCodeUnit,codeUnit);return true}}this[_position]=position;this[_currentCodePoint]=codeUnit;return true}};RuneIterator[dart.implements]=()=>[BidirectionalIterator$(int)];dart.defineNamedConstructor(RuneIterator,'at');dart.setSignature(RuneIterator,{constructors:()=>({at:[RuneIterator,[String,int]],RuneIterator:[RuneIterator,[String]]}),methods:()=>({[_checkSplitSurrogate]:[dart.void,[int]],moveNext:[bool,[]],movePrevious:[bool,[]],reset:[dart.void,[],[int]]})});let _contents=dart.JsSymbol('_contents');let _writeString=dart.JsSymbol('_writeString');class StringBuffer extends Object{StringBuffer(content){if(content===void 0)content="";this[_contents]=`${content }`}get length(){return this[_contents][dartx.length]}get isEmpty(){return this.length==0}get isNotEmpty(){return!dart.notNull(this.isEmpty)}write(obj){this[_writeString](`${obj }`)}writeCharCode(charCode){this[_writeString](String.fromCharCode(charCode))}writeAll(objects,separator){if(separator===void 0)separator="";let iterator=objects[dartx.iterator];if(!dart.notNull(iterator.moveNext()))return;if(dart.notNull(separator[dartx.isEmpty])){do{this.write(iterator.current)}while(dart.notNull(iterator.moveNext()))}else{this.write(iterator.current);while(dart.notNull(iterator.moveNext())){this.write(separator);this.write(iterator.current)}}}writeln(obj){if(obj===void 0)obj="";this.write(obj);this.write("\n")}clear(){this[_contents]=""}toString(){return _js_helper.Primitives.flattenString(this[_contents])}[_writeString](str){this[_contents]=_js_helper.Primitives.stringConcatUnchecked(this[_contents],dart.as(str,String))}};StringBuffer[dart.implements]=()=>[StringSink];dart.setSignature(StringBuffer,{constructors:()=>({StringBuffer:[StringBuffer,[],[Object]]}),methods:()=>({[_writeString]:[dart.void,[dart.dynamic]],clear:[dart.void,[]],write:[dart.void,[Object]],writeAll:[dart.void,[Iterable],[String]],writeCharCode:[dart.void,[int]],writeln:[dart.void,[],[Object]]})});class StringSink extends Object{};class Symbol extends Object{static new(name){return new _internal.Symbol(name)}};dart.setSignature(Symbol,{constructors:()=>({new:[Symbol,[String]]})});class Type extends Object{};let _writeAuthority=dart.JsSymbol('_writeAuthority');let _userInfo=dart.JsSymbol('_userInfo');let _host=dart.JsSymbol('_host');let _port=dart.JsSymbol('_port');let _path=dart.JsSymbol('_path');let _query=dart.JsSymbol('_query');let _fragment=dart.JsSymbol('_fragment');let _pathSegments=dart.JsSymbol('_pathSegments');let _queryParameters=dart.JsSymbol('_queryParameters');let _merge=dart.JsSymbol('_merge');let _hasDotSegments=dart.JsSymbol('_hasDotSegments');let _removeDotSegments=dart.JsSymbol('_removeDotSegments');let _toWindowsFilePath=dart.JsSymbol('_toWindowsFilePath');let _toFilePath=dart.JsSymbol('_toFilePath');let _isPathAbsolute=dart.JsSymbol('_isPathAbsolute');class Uri extends Object{get authority(){if(!dart.notNull(this.hasAuthority))return "";let sb=new StringBuffer();this[_writeAuthority](sb);return dart.toString(sb)}get userInfo(){return this[_userInfo]}get host(){if(this[_host]==null)return "";if(dart.notNull(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 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){function isRegName(ch){return dart.notNull(ch)<128&& !dart.equals(dart.dsend(Uri._regNameTable[dartx.get](dart.notNull(ch)>>4),'&',1<<(dart.notNull(ch)&15)),0)}dart.fn(isRegName,bool,[int]);let EOI=-1;let scheme="";let userinfo="";let host=null;let port=null;let path=null;let query=null;let fragment=null;let index=0;let pathStart=0;let char=EOI;function parseAuth(){if(index==uri[dartx.length]){char=EOI;return}let authStart=index;let lastColon=-1;let lastAt=-1;char=uri[dartx.codeUnitAt](index);while(dart.notNull(index)<dart.notNull(uri[dartx.length])){char=uri[dartx.codeUnitAt](index);if(char==Uri._SLASH||char==Uri._QUESTION||char==Uri._NUMBER_SIGN){break}if(char==Uri._AT_SIGN){lastAt=index;lastColon=-1}else if(char==Uri._COLON){lastColon=index}else if(char==Uri._LEFT_BRACKET){lastColon=-1;let endBracket=uri[dartx.indexOf](']',dart.notNull(index)+1);if(endBracket==-1){index=uri[dartx.length];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=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;dart.notNull(i)<dart.notNull(index);i=dart.notNull(i)+1){let digit=uri[dartx.codeUnitAt](i);if(dart.notNull(Uri._ZERO)>dart.notNull(digit)||dart.notNull(Uri._NINE)<dart.notNull(digit)){Uri._fail(uri,i,"Invalid port number")}portNumber=dart.notNull(portNumber)*10+(dart.notNull(digit)-dart.notNull(Uri._ZERO))}}port=Uri._makePort(portNumber,scheme);hostEnd=lastColon}host=Uri._makeHost(uri,hostStart,hostEnd,true);if(dart.notNull(index)<dart.notNull(uri[dartx.length])){char=uri[dartx.codeUnitAt](index)}}dart.fn(parseAuth,dart.void,[]);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(uri[dartx.length])){char=uri[dartx.codeUnitAt](i);if(char==Uri._QUESTION||char==Uri._NUMBER_SIGN){state=NOT_IN_PATH;break}if(char==Uri._SLASH){state=i==0?ALLOW_AUTH:IN_PATH;break}if(char==Uri._COLON){if(i==0)Uri._fail(uri,0,"Invalid empty scheme");scheme=Uri._makeScheme(uri,i);i=dart.notNull(i)+1;pathStart=i;if(i==uri[dartx.length]){char=EOI;state=NOT_IN_PATH}else{char=uri[dartx.codeUnitAt](i);if(char==Uri._QUESTION||char==Uri._NUMBER_SIGN){state=NOT_IN_PATH}else if(char==Uri._SLASH){state=ALLOW_AUTH}else{state=IN_PATH}}break}i=dart.notNull(i)+1;char=EOI}index=i;if(state==ALLOW_AUTH){dart.assert(char==Uri._SLASH);index=dart.notNull(index)+1;if(index==uri[dartx.length]){char=EOI;state=NOT_IN_PATH}else{char=uri[dartx.codeUnitAt](index);if(char==Uri._SLASH){index=dart.notNull(index)+1;parseAuth();pathStart=index}if(char==Uri._QUESTION||char==Uri._NUMBER_SIGN||char==EOI){state=NOT_IN_PATH}else{state=IN_PATH}}}dart.assert(state==IN_PATH||state==NOT_IN_PATH);if(state==IN_PATH){while((index=dart.notNull(index)+1)<dart.notNull(uri[dartx.length])){char=uri[dartx.codeUnitAt](index);if(char==Uri._QUESTION||char==Uri._NUMBER_SIGN){break}char=EOI}state=NOT_IN_PATH}dart.assert(state==NOT_IN_PATH);let isFile=scheme=="file";let ensureLeadingSlash=host!=null;path=Uri._makePath(uri,pathStart,index,null,ensureLeadingSlash,isFile);if(char==Uri._QUESTION){let numberSignIndex=uri[dartx.indexOf]('#',dart.notNull(index)+1);if(dart.notNull(numberSignIndex)<0){query=Uri._makeQuery(uri,dart.notNull(index)+1,uri[dartx.length],null)}else{query=Uri._makeQuery(uri,dart.notNull(index)+1,numberSignIndex,null);fragment=Uri._makeFragment(uri,dart.notNull(numberSignIndex)+1,uri[dartx.length])}}else if(char==Uri._NUMBER_SIGN){fragment=Uri._makeFragment(uri,dart.notNull(index)+1,uri[dartx.length])}return new Uri._internal(scheme,userinfo,host,port,path,query,fragment)}static _fail(uri,index,message){dart.throw(new FormatException(message,uri,index))}_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}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=Uri._makeScheme(scheme,Uri._stringOrNullLength(scheme));userInfo=Uri._makeUserInfo(userInfo,0,Uri._stringOrNullLength(userInfo));host=Uri._makeHost(host,0,Uri._stringOrNullLength(host),false);if(query=="")query=null;query=Uri._makeQuery(query,0,Uri._stringOrNullLength(query),queryParameters);fragment=Uri._makeFragment(fragment,0,Uri._stringOrNullLength(fragment));port=Uri._makePort(port,scheme);let isFile=scheme=="file";if(host==null&&(dart.notNull(userInfo[dartx.isNotEmpty])||port!=null||dart.notNull(isFile))){host=""}let ensureLeadingSlash=host!=null;path=Uri._makePath(path,0,Uri._stringOrNullLength(path),pathSegments,ensureLeadingSlash,isFile);return new Uri._internal(scheme,userInfo,host,port,path,query,fragment)}static http(authority,unencodedPath,queryParameters){if(queryParameters===void 0)queryParameters=null;return Uri._makeHttpUri("http",authority,unencodedPath,queryParameters)}static https(authority,unencodedPath,queryParameters){if(queryParameters===void 0)queryParameters=null;return Uri._makeHttpUri("https",authority,unencodedPath,queryParameters)}static _makeHttpUri(scheme,authority,unencodedPath,queryParameters){let userInfo="";let host=null;let port=null;if(authority!=null&&dart.notNull(authority[dartx.isNotEmpty])){let hostStart=0;let hasUserInfo=false;for(let i=0;dart.notNull(i)<dart.notNull(authority[dartx.length]);i=dart.notNull(i)+1){if(authority[dartx.codeUnitAt](i)==Uri._AT_SIGN){hasUserInfo=true;userInfo=authority[dartx.substring](0,i);hostStart=dart.notNull(i)+1;break}}let hostEnd=hostStart;if(dart.notNull(hostStart)<dart.notNull(authority[dartx.length])&&authority[dartx.codeUnitAt](hostStart)==Uri._LEFT_BRACKET){for(;dart.notNull(hostEnd)<dart.notNull(authority[dartx.length]);hostEnd=dart.notNull(hostEnd)+1){if(authority[dartx.codeUnitAt](hostEnd)==Uri._RIGHT_BRACKET)break;}if(hostEnd==authority[dartx.length]){dart.throw(new FormatException("Invalid IPv6 host entry.",authority,hostStart))}Uri.parseIPv6Address(authority,dart.notNull(hostStart)+1,hostEnd);hostEnd=dart.notNull(hostEnd)+1;if(hostEnd!=authority[dartx.length]&&authority[dartx.codeUnitAt](hostEnd)!=Uri._COLON){dart.throw(new FormatException("Invalid end of authority",authority,hostEnd))}}let hasPort=false;for(;dart.notNull(hostEnd)<dart.notNull(authority[dartx.length]);hostEnd=dart.notNull(hostEnd)+1){if(authority[dartx.codeUnitAt](hostEnd)==Uri._COLON){let portString=authority[dartx.substring](dart.notNull(hostEnd)+1);if(dart.notNull(portString[dartx.isNotEmpty]))port=int.parse(portString);break}}host=authority[dartx.substring](hostStart,hostEnd)}return Uri.new({host:dart.as(host,String),pathSegments:unencodedPath[dartx.split]("/"),port:dart.as(port,int),queryParameters:queryParameters,scheme:scheme,userInfo:userInfo})}static file(path,opts){let windows=opts&&'windows'in opts?opts.windows:null;windows=windows==null?Uri._isWindows:windows;return dart.notNull(windows)?dart.as(Uri._makeWindowsFileUrl(path),Uri):dart.as(Uri._makeFileUri(path),Uri)}static get base(){let uri=_js_helper.Primitives.currentUri();if(uri!=null)return Uri.parse(uri);dart.throw(new UnsupportedError("'Uri.base' is not supported"))}static get _isWindows(){return false}static _checkNonWindowsPathReservedCharacters(segments,argumentError){segments[dartx.forEach](dart.fn(segment=>{if(dart.notNull(dart.as(dart.dsend(segment,'contains',"/"),bool))){if(dart.notNull(argumentError)){dart.throw(new ArgumentError(`Illegal path character ${segment }`))}else{dart.throw(new UnsupportedError(`Illegal path character ${segment }`))}}}))}static _checkWindowsPathReservedCharacters(segments,argumentError,firstSegment){if(firstSegment===void 0)firstSegment=0;segments[dartx.skip](firstSegment)[dartx.forEach](dart.fn(segment=>{if(dart.notNull(dart.as(dart.dsend(segment,'contains',RegExp.new('["*/:<>?\\\\|]')),bool))){if(dart.notNull(argumentError)){dart.throw(new ArgumentError("Illegal character in path"))}else{dart.throw(new UnsupportedError("Illegal character in path"))}}}))}static _checkWindowsDriveLetter(charCode,argumentError){if(dart.notNull(Uri._UPPER_CASE_A)<=dart.notNull(charCode)&&dart.notNull(charCode)<=dart.notNull(Uri._UPPER_CASE_Z)||dart.notNull(Uri._LOWER_CASE_A)<=dart.notNull(charCode)&&dart.notNull(charCode)<=dart.notNull(Uri._LOWER_CASE_Z)){return}if(dart.notNull(argumentError)){dart.throw(new ArgumentError("Illegal drive letter "+dart.notNull(String.fromCharCode(charCode))))}else{dart.throw(new UnsupportedError("Illegal drive letter "+dart.notNull(String.fromCharCode(charCode))))}}static _makeFileUri(path){let sep="/";if(dart.notNull(path[dartx.startsWith](sep))){return Uri.new({pathSegments:path[dartx.split](sep),scheme:"file"})}else{return Uri.new({pathSegments:path[dartx.split](sep)})}}static _makeWindowsFileUrl(path){if(dart.notNull(path[dartx.startsWith]("\\\\?\\"))){if(dart.notNull(path[dartx.startsWith]("\\\\?\\UNC\\"))){path=`\\${path[dartx.substring](7)}`}else{path=path[dartx.substring](4);if(dart.notNull(path[dartx.length])<3||path[dartx.codeUnitAt](1)!=Uri._COLON||path[dartx.codeUnitAt](2)!=Uri._BACKSLASH){dart.throw(new ArgumentError("Windows paths with \\\\?\\ prefix must be absolute"))}}}else{path=path[dartx.replaceAll]("/","\\")}let sep="\\";if(dart.notNull(path[dartx.length])>1&&path[dartx.get](1)==":"){Uri._checkWindowsDriveLetter(path[dartx.codeUnitAt](0),true);if(path[dartx.length]==2||path[dartx.codeUnitAt](2)!=Uri._BACKSLASH){dart.throw(new ArgumentError("Windows paths with drive letter must be absolute"))}let pathSegments=path[dartx.split](sep);Uri._checkWindowsPathReservedCharacters(pathSegments,true,1);return Uri.new({pathSegments:pathSegments,scheme:"file"})}if(dart.notNull(path[dartx.length])>0&&path[dartx.get](0)==sep){if(dart.notNull(path[dartx.length])>1&&path[dartx.get](1)==sep){let pathStart=path[dartx.indexOf]("\\",2);let hostPart=pathStart==-1?path[dartx.substring](2):path[dartx.substring](2,pathStart);let pathPart=pathStart==-1?"":path[dartx.substring](dart.notNull(pathStart)+1);let pathSegments=pathPart[dartx.split](sep);Uri._checkWindowsPathReservedCharacters(pathSegments,true);return Uri.new({host:hostPart,pathSegments:pathSegments,scheme:"file"})}else{let pathSegments=path[dartx.split](sep);Uri._checkWindowsPathReservedCharacters(pathSegments,true);return Uri.new({pathSegments:pathSegments,scheme:"file"})}}else{let pathSegments=path[dartx.split](sep);Uri._checkWindowsPathReservedCharacters(pathSegments,true);return 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=Uri._makeScheme(scheme,scheme[dartx.length]);schemeChanged=true}else{scheme=this.scheme}let isFile=scheme=="file";if(userInfo!=null){userInfo=Uri._makeUserInfo(userInfo,0,userInfo[dartx.length])}else{userInfo=this.userInfo}if(port!=null){port=Uri._makePort(port,scheme)}else{port=this[_port];if(dart.notNull(schemeChanged)){port=Uri._makePort(port,scheme)}}if(host!=null){host=Uri._makeHost(host,0,host[dartx.length],false)}else if(dart.notNull(this.hasAuthority)){host=this.host}else if(dart.notNull(userInfo[dartx.isNotEmpty])||port!=null||dart.notNull(isFile)){host=""}let ensureLeadingSlash=host!=null;if(path!=null||pathSegments!=null){path=Uri._makePath(path,0,Uri._stringOrNullLength(path),pathSegments,ensureLeadingSlash,isFile)}else{path=this.path;if((dart.notNull(isFile)||dart.notNull(ensureLeadingSlash)&& !dart.notNull(path[dartx.isEmpty]))&& !dart.notNull(path[dartx.startsWith]('/'))){path=`/${path }`}}if(query!=null||queryParameters!=null){query=Uri._makeQuery(query,0,Uri._stringOrNullLength(query),queryParameters)}else if(dart.notNull(this.hasQuery)){query=this.query}if(fragment!=null){fragment=Uri._makeFragment(fragment,0,fragment[dartx.length])}else if(dart.notNull(this.hasFragment)){fragment=this.fragment}return new Uri._internal(scheme,userInfo,host,port,path,query,fragment)}get pathSegments(){if(this[_pathSegments]==null){let pathToSplit= !dart.notNull(this.path[dartx.isEmpty])&&this.path[dartx.codeUnitAt](0)==Uri._SLASH?this.path[dartx.substring](1):this.path;this[_pathSegments]=new(collection.UnmodifiableListView$(String))(pathToSplit==""?dart.const(dart.list([],String)):List$(String).from(pathToSplit[dartx.split]("/")[dartx.map](Uri.decodeComponent),{growable:false}))}return this[_pathSegments]}get queryParameters(){if(this[_queryParameters]==null){this[_queryParameters]=new(collection.UnmodifiableMapView$(String,String))(Uri.splitQueryString(this.query))}return this[_queryParameters]}static _makePort(port,scheme){if(port!=null&&port==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)==Uri._LEFT_BRACKET){if(host[dartx.codeUnitAt](dart.notNull(end)-1)!=Uri._RIGHT_BRACKET){Uri._fail(host,start,'Missing end `]` to match `[` in host')}Uri.parseIPv6Address(host,dart.notNull(start)+1,dart.notNull(end)-1);return host[dartx.substring](start,end)[dartx.toLowerCase]()}if(!dart.notNull(strictIPv6)){for(let i=start;dart.notNull(i)<dart.notNull(end);i=dart.notNull(i)+1){if(host[dartx.codeUnitAt](i)==Uri._COLON){Uri.parseIPv6Address(host,start,end);return `[${host }]`}}}return Uri._normalizeRegName(host,start,end)}static _isRegNameChar(char){return dart.notNull(char)<127&& !dart.equals(dart.dsend(Uri._regNameTable[dartx.get](dart.notNull(char)>>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==Uri._PERCENT){let replacement=Uri._normalizeEscape(host,index,true);if(replacement==null&&dart.notNull(isNormalized)){index=dart.notNull(index)+3;continue}if(buffer==null)buffer=new StringBuffer();let slice=host[dartx.substring](sectionStart,index);if(!dart.notNull(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}buffer.write(replacement);index=dart.notNull(index)+dart.notNull(sourceLength);sectionStart=index;isNormalized=true}else if(dart.notNull(Uri._isRegNameChar(char))){if(dart.notNull(isNormalized)&&dart.notNull(Uri._UPPER_CASE_A)<=dart.notNull(char)&&dart.notNull(Uri._UPPER_CASE_Z)>=dart.notNull(char)){if(buffer==null)buffer=new 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.notNull(Uri._isGeneralDelimiter(char))){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 StringBuffer();let slice=host[dartx.substring](sectionStart,index);if(!dart.notNull(isNormalized))slice=slice[dartx.toLowerCase]();buffer.write(slice);buffer.write(Uri._escapeChar(char));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(!dart.notNull(isNormalized))slice=slice[dartx.toLowerCase]();buffer.write(slice)}return dart.toString(buffer)}static _makeScheme(scheme,end){if(end==0)return "";let firstCodeUnit=scheme[dartx.codeUnitAt](0);if(!dart.notNull(Uri._isAlphabeticCharacter(firstCodeUnit))){Uri._fail(scheme,0,"Scheme not starting with alphabetic character")}let allLowercase=dart.notNull(firstCodeUnit)>=dart.notNull(Uri._LOWER_CASE_A);for(let i=0;dart.notNull(i)<dart.notNull(end);i=dart.notNull(i)+1){let codeUnit=scheme[dartx.codeUnitAt](i);if(!dart.notNull(Uri._isSchemeCharacter(codeUnit))){Uri._fail(scheme,i,"Illegal scheme character")}if(dart.notNull(codeUnit)<dart.notNull(Uri._LOWER_CASE_A)||dart.notNull(codeUnit)>dart.notNull(Uri._LOWER_CASE_Z)){allLowercase=false}}scheme=scheme[dartx.substring](0,end);if(!dart.notNull(allLowercase))scheme=scheme[dartx.toLowerCase]();return scheme}static _makeUserInfo(userInfo,start,end){if(userInfo==null)return "";return Uri._normalize(userInfo,start,end,dart.as(Uri._userinfoTable,List$(int)))}static _makePath(path,start,end,pathSegments,ensureLeadingSlash,isFile){if(path==null&&pathSegments==null)return dart.notNull(isFile)?"/":"";if(path!=null&&pathSegments!=null){dart.throw(new ArgumentError('Both path and pathSegments specified'))}let result=null;if(path!=null){result=Uri._normalize(path,start,end,dart.as(Uri._pathCharOrSlashTable,List$(int)))}else{result=pathSegments[dartx.map](dart.fn(s=>Uri._uriEncode(dart.as(Uri._pathCharTable,List$(int)),dart.as(s,String)),String,[dart.dynamic]))[dartx.join]("/")}if(dart.notNull(dart.as(dart.dload(result,'isEmpty'),bool))){if(dart.notNull(isFile))return "/";}else if((dart.notNull(isFile)||dart.notNull(ensureLeadingSlash))&& !dart.equals(dart.dsend(result,'codeUnitAt',0),Uri._SLASH)){return `/${result }`}return dart.as(result,String)}static _makeQuery(query,start,end,queryParameters){if(query==null&&queryParameters==null)return null;if(query!=null&&queryParameters!=null){dart.throw(new ArgumentError('Both query and queryParameters specified'))}if(query!=null)return Uri._normalize(query,start,end,dart.as(Uri._queryCharTable,List$(int)));let result=new StringBuffer();let first=true;queryParameters.forEach(dart.fn((key,value)=>{if(!dart.notNull(first)){result.write("&")}first=false;result.write(Uri.encodeQueryComponent(dart.as(key,String)));if(value!=null&& !dart.notNull(dart.as(dart.dload(value,'isEmpty'),bool))){result.write("=");result.write(Uri.encodeQueryComponent(dart.as(value,String)))}}));return dart.toString(result)}static _makeFragment(fragment,start,end){if(fragment==null)return null;return Uri._normalize(fragment,start,end,dart.as(Uri._queryCharTable,List$(int)))}static _stringOrNullLength(s){return s==null?0:s[dartx.length]}static _isHexDigit(char){if(dart.notNull(Uri._NINE)>=dart.notNull(char))return dart.notNull(Uri._ZERO)<=dart.notNull(char);char=dart.notNull(char)|32;return dart.notNull(Uri._LOWER_CASE_A)<=dart.notNull(char)&&dart.notNull(Uri._LOWER_CASE_F)>=dart.notNull(char)}static _hexValue(char){dart.assert(Uri._isHexDigit(char));if(dart.notNull(Uri._NINE)>=dart.notNull(char))return dart.notNull(char)-dart.notNull(Uri._ZERO);char=dart.notNull(char)|32;return dart.notNull(char)-(dart.notNull(Uri._LOWER_CASE_A)-10)}static _normalizeEscape(source,index,lowerCase){dart.assert(source[dartx.codeUnitAt](index)==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);if(!dart.notNull(Uri._isHexDigit(firstDigit))|| !dart.notNull(Uri._isHexDigit(secondDigit))){return "%"}let value=dart.notNull(Uri._hexValue(firstDigit))*16+dart.notNull(Uri._hexValue(secondDigit));if(dart.notNull(Uri._isUnreservedChar(value))){if(dart.notNull(lowerCase)&&dart.notNull(Uri._UPPER_CASE_A)<=dart.notNull(value)&&dart.notNull(Uri._UPPER_CASE_Z)>=dart.notNull(value)){value=dart.notNull(value)|32}return String.fromCharCode(value)}if(dart.notNull(firstDigit)>=dart.notNull(Uri._LOWER_CASE_A)||dart.notNull(secondDigit)>=dart.notNull(Uri._LOWER_CASE_A)){return source[dartx.substring](index,dart.notNull(index)+3)[dartx.toUpperCase]()}return null}static _isUnreservedChar(ch){return dart.notNull(ch)<127&& !dart.equals(dart.dsend(Uri._unreservedTable[dartx.get](dart.notNull(ch)>>4),'&',1<<(dart.notNull(ch)&15)),0)}static _escapeChar(char){dart.assert(dart.dsend(char,'<=',1114111));let hexDigits="0123456789ABCDEF";let codeUnits=null;if(dart.notNull(dart.as(dart.dsend(char,'<',128),bool))){codeUnits=List.new(3);codeUnits[dartx.set](0,Uri._PERCENT);codeUnits[dartx.set](1,hexDigits[dartx.codeUnitAt](dart.as(dart.dsend(char,'>>',4),int)));codeUnits[dartx.set](2,hexDigits[dartx.codeUnitAt](dart.as(dart.dsend(char,'&',15),int)))}else{let flag=192;let encodedBytes=2;if(dart.notNull(dart.as(dart.dsend(char,'>',2047),bool))){flag=224;encodedBytes=3;if(dart.notNull(dart.as(dart.dsend(char,'>',65535),bool))){encodedBytes=4;flag=240}}codeUnits=List.new(3*dart.notNull(encodedBytes));let index=0;while((encodedBytes=dart.notNull(encodedBytes)-1)>=0){let byte=dart.as(dart.dsend(dart.dsend(dart.dsend(char,'>>',6*dart.notNull(encodedBytes)),'&',63),'|',flag),int);codeUnits[dartx.set](index,Uri._PERCENT);codeUnits[dartx.set](dart.notNull(index)+1,hexDigits[dartx.codeUnitAt](dart.notNull(byte)>>4));codeUnits[dartx.set](dart.notNull(index)+2,hexDigits[dartx.codeUnitAt](dart.notNull(byte)&15));index=dart.notNull(index)+3;flag=128}}return String.fromCharCodes(dart.as(codeUnits,Iterable$(int)))}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](dart.notNull(char)>>4))&1<<(dart.notNull(char)&15))!=0){index=dart.notNull(index)+1}else{let replacement=null;let sourceLength=null;if(char==Uri._PERCENT){replacement=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.notNull(Uri._isGeneralDelimiter(char))){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=Uri._escapeChar(char)}if(buffer==null)buffer=new 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)}static _isSchemeCharacter(ch){return dart.notNull(ch)<128&& !dart.equals(dart.dsend(Uri._schemeTable[dartx.get](dart.notNull(ch)>>4),'&',1<<(dart.notNull(ch)&15)),0)}static _isGeneralDelimiter(ch){return dart.notNull(ch)<=dart.notNull(Uri._RIGHT_BRACKET)&& !dart.equals(dart.dsend(Uri._genDelimitersTable[dartx.get](dart.notNull(ch)>>4),'&',1<<(dart.notNull(ch)&15)),0)}get isAbsolute(){return this.scheme!=""&&this.fragment==""}[_merge](base,reference){if(dart.notNull(base[dartx.isEmpty]))return `/${reference }`;let backCount=0;let refStart=0;while(dart.notNull(reference[dartx.startsWith]("../",refStart))){refStart=dart.notNull(refStart)+3;backCount=dart.notNull(backCount)+1}let baseEnd=base[dartx.lastIndexOf]('/');while(dart.notNull(baseEnd)>0&&dart.notNull(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)==Uri._DOT&&(delta==2||base[dartx.codeUnitAt](dart.notNull(newEnd)+2)==Uri._DOT)){break}baseEnd=newEnd;backCount=dart.notNull(backCount)-1}return dart.notNull(base[dartx.substring](0,dart.notNull(baseEnd)+1))+dart.notNull(reference[dartx.substring](dart.notNull(refStart)-3*dart.notNull(backCount)))}[_hasDotSegments](path){if(dart.notNull(path[dartx.length])>0&&path[dartx.codeUnitAt](0)==Uri._DOT)return true;let index=path[dartx.indexOf]("/.");return index!=-1}[_removeDotSegments](path){if(!dart.notNull(this[_hasDotSegments](path)))return path;let output=dart.list([],String);let appendSlash=false;for(let segment of path[dartx.split]("/")){appendSlash=false;if(segment==".."){if(!dart.notNull(output[dartx.isEmpty])&&(output[dartx.length]!=1||output[dartx.get](0)!=""))output[dartx.removeLast]();appendSlash=true}else if("."==segment){appendSlash=true}else{output[dartx.add](segment)}}if(dart.notNull(appendSlash))output[dartx.add]("");return output[dartx.join]("/")}resolve(reference){return this.resolveUri(Uri.parse(reference))}resolveUri(reference){let targetScheme=null;let targetUserInfo="";let targetHost=null;let targetPort=null;let targetPath=null;let targetQuery=null;if(dart.notNull(reference.scheme[dartx.isNotEmpty])){targetScheme=reference.scheme;if(dart.notNull(reference.hasAuthority)){targetUserInfo=reference.userInfo;targetHost=reference.host;targetPort=dart.notNull(reference.hasPort)?reference.port:null}targetPath=this[_removeDotSegments](reference.path);if(dart.notNull(reference.hasQuery)){targetQuery=reference.query}}else{targetScheme=this.scheme;if(dart.notNull(reference.hasAuthority)){targetUserInfo=reference.userInfo;targetHost=reference.host;targetPort=Uri._makePort(dart.notNull(reference.hasPort)?reference.port:null,targetScheme);targetPath=this[_removeDotSegments](reference.path);if(dart.notNull(reference.hasQuery))targetQuery=reference.query;}else{if(reference.path==""){targetPath=this[_path];if(dart.notNull(reference.hasQuery)){targetQuery=reference.query}else{targetQuery=this[_query]}}else{if(dart.notNull(reference.path[dartx.startsWith]("/"))){targetPath=this[_removeDotSegments](reference.path)}else{targetPath=this[_removeDotSegments](this[_merge](this[_path],reference.path))}if(dart.notNull(reference.hasQuery))targetQuery=reference.query;}targetUserInfo=this[_userInfo];targetHost=this[_host];targetPort=this[_port]}}let fragment=dart.notNull(reference.hasFragment)?reference.fragment:null;return new Uri._internal(targetScheme,targetUserInfo,targetHost,targetPort,targetPath,targetQuery,fragment)}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 origin(){if(this.scheme==""||this[_host]==null||this[_host]==""){dart.throw(new StateError(`Cannot use origin without a scheme: ${this }`))}if(this.scheme!="http"&&this.scheme!="https"){dart.throw(new StateError(`Origin is only applicable schemes http and https: ${this }`))}if(this[_port]==null)return `${this.scheme }://${this[_host]}`;return `${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 UnsupportedError(`Cannot extract a file path from a ${this.scheme } URI`))}if(this.query!=""){dart.throw(new UnsupportedError("Cannot extract a file path from a URI with a query component"))}if(this.fragment!=""){dart.throw(new UnsupportedError("Cannot extract a file path from a URI with a fragment component"))}if(windows==null)windows=Uri._isWindows;return dart.notNull(windows)?this[_toWindowsFilePath]():this[_toFilePath]()}[_toFilePath](){if(this.host!=""){dart.throw(new UnsupportedError("Cannot extract a non-Windows file path from a file URI with an authority"))}Uri._checkNonWindowsPathReservedCharacters(this.pathSegments,false);let result=new StringBuffer();if(dart.notNull(this[_isPathAbsolute]))result.write("/");result.writeAll(this.pathSegments,"/");return dart.toString(result)}[_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)==Uri._COLON){Uri._checkWindowsDriveLetter(segments[dartx.get](0)[dartx.codeUnitAt](0),false);Uri._checkWindowsPathReservedCharacters(segments,false,1);hasDriveLetter=true}else{Uri._checkWindowsPathReservedCharacters(segments,false)}let result=new StringBuffer();if(dart.notNull(this[_isPathAbsolute])&& !dart.notNull(hasDriveLetter))result.write("\\");if(this.host!=""){result.write("\\");result.write(this.host);result.write("\\")}result.writeAll(segments,"\\");if(dart.notNull(hasDriveLetter)&&segments[dartx.length]==1)result.write("\\");return dart.toString(result)}get[_isPathAbsolute](){if(this.path==null||dart.notNull(this.path[dartx.isEmpty]))return false;return this.path[dartx.startsWith]('/')}[_writeAuthority](ss){if(dart.notNull(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])}}toString(){let sb=new StringBuffer();Uri._addIfNonEmpty(sb,this.scheme,this.scheme,':');if(dart.notNull(this.hasAuthority)||dart.notNull(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 dart.toString(sb)}['=='](other){if(!dart.is(other,Uri))return false;let uri=dart.as(other,Uri);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 dart.as(dart.dsend(dart.dsend(dart.dsend(current,'*',31),'+',dart.hashCode(part)),'&',1073741823),int)}dart.fn(combine,int,[dart.dynamic,dart.dynamic]);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 Uri._uriEncode(dart.as(Uri._unreserved2396Table,List$(int)),component)}static encodeQueryComponent(component,opts){let encoding=opts&&'encoding'in opts?opts.encoding:convert.UTF8;return Uri._uriEncode(dart.as(Uri._unreservedTable,List$(int)),component,{encoding:encoding,spaceToPlus:true})}static decodeComponent(encodedComponent){return Uri._uriDecode(encodedComponent)}static decodeQueryComponent(encodedComponent,opts){let encoding=opts&&'encoding'in opts?opts.encoding:convert.UTF8;return Uri._uriDecode(encodedComponent,{encoding:encoding,plusToSpace:true})}static encodeFull(uri){return Uri._uriEncode(dart.as(Uri._encodeFullTable,List$(int)),uri)}static decodeFull(uri){return Uri._uriDecode(uri)}static splitQueryString(query,opts){let encoding=opts&&'encoding'in opts?opts.encoding:convert.UTF8;return dart.as(query[dartx.split]("&")[dartx.fold](dart.map(),dart.fn((map,element)=>{let index=dart.as(dart.dsend(element,'indexOf',"="),int);if(index==-1){if(!dart.equals(element,"")){dart.dsetindex(map,Uri.decodeQueryComponent(dart.as(element,String),{encoding:encoding}),"")}}else if(index!=0){let key=dart.dsend(element,'substring',0,index);let value=dart.dsend(element,'substring',dart.notNull(index)+1);dart.dsetindex(map,Uri.decodeQueryComponent(dart.as(key,String),{encoding:encoding}),Uri.decodeQueryComponent(dart.as(value,String),{encoding:encoding}))}return map})),Map$(String,String))}static parseIPv4Address(host){function error(msg){dart.throw(new FormatException(`Illegal IPv4 address, ${msg }`))}dart.fn(error,dart.void,[String]);let bytes=host[dartx.split]('.');if(bytes[dartx.length]!=4){error('IPv4 address should contain exactly 4 parts')}return dart.as(bytes[dartx.map](dart.fn(byteString=>{let byte=int.parse(dart.as(byteString,String));if(dart.notNull(byte)<0||dart.notNull(byte)>255){error('each part must be in the range of `0..255`')}return byte}))[dartx.toList](),List$(int))}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 FormatException(`Illegal IPv6 address, ${msg }`,host,dart.as(position,int)))}dart.fn(error,dart.void,[String],[dart.dynamic]);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=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,int,[int,int]);if(dart.notNull(host[dartx.length])<2)error('address is too short');let parts=dart.list([],int);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)==Uri._COLON){if(i==start){i=dart.notNull(i)+1;if(host[dartx.codeUnitAt](i)!=Uri._COLON){error('invalid start colon.',i)}partStart=i}if(i==partStart){if(dart.notNull(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(dart.notNull(atEnd)&& !dart.notNull(isLastWildcard)){error('expected a part after last `:`',end)}if(!dart.notNull(atEnd)){try{parts[dartx.add](parseHex(partStart,end))}catch(e){try{let last=Uri.parseIPv4Address(host[dartx.substring](partStart,end));parts[dartx.add](dart.notNull(last[dartx.get](0))<<8|dart.notNull(last[dartx.get](1)));parts[dartx.add](dart.notNull(last[dartx.get](2))<<8|dart.notNull(last[dartx.get](3)))}catch(e){error('invalid end of IPv6 address.',partStart)}}}if(dart.notNull(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=List$(int).new(16);for(let i=0,index=0;dart.notNull(i)<dart.notNull(parts[dartx.length]);i=dart.notNull(i)+1){let value=parts[dartx.get](i);if(value==-1){let wildCardLength=9-dart.notNull(parts[dartx.length]);for(let j=0;dart.notNull(j)<dart.notNull(wildCardLength);j=dart.notNull(j)+1){bytes[dartx.set](index,0);bytes[dartx.set](dart.notNull(index)+1,0);index=dart.notNull(index)+2}}else{bytes[dartx.set](index,dart.notNull(value)>>8);bytes[dartx.set](dart.notNull(index)+1,dart.notNull(value)&255);index=dart.notNull(index)+2}}return dart.as(bytes,List$(int))}static _uriEncode(canonicalTable,text,opts){let encoding=opts&&'encoding'in opts?opts.encoding:convert.UTF8;let spaceToPlus=opts&&'spaceToPlus'in opts?opts.spaceToPlus:false;function byteToHex(byte,buffer){let hex='0123456789ABCDEF';dart.dsend(buffer,'writeCharCode',hex[dartx.codeUnitAt](dart.as(dart.dsend(byte,'>>',4),int)));dart.dsend(buffer,'writeCharCode',hex[dartx.codeUnitAt](dart.as(dart.dsend(byte,'&',15),int)))}dart.fn(byteToHex);let result=new StringBuffer();let bytes=encoding.encode(text);for(let i=0;dart.notNull(i)<dart.notNull(bytes[dartx.length]);i=dart.notNull(i)+1){let byte=bytes[dartx.get](i);if(dart.notNull(byte)<128&&(dart.notNull(canonicalTable[dartx.get](dart.notNull(byte)>>4))&1<<(dart.notNull(byte)&15))!=0){result.writeCharCode(byte)}else if(dart.notNull(spaceToPlus)&&byte==Uri._SPACE){result.writeCharCode(Uri._PLUS)}else{result.writeCharCode(Uri._PERCENT);byteToHex(byte,result)}}return dart.toString(result)}static _hexCharPairToByte(s,pos){let byte=0;for(let i=0;dart.notNull(i)<2;i=dart.notNull(i)+1){let charCode=s[dartx.codeUnitAt](dart.notNull(pos)+dart.notNull(i));if(48<=dart.notNull(charCode)&&dart.notNull(charCode)<=57){byte=dart.notNull(byte)*16+dart.notNull(charCode)-48}else{charCode=dart.notNull(charCode)|32;if(97<=dart.notNull(charCode)&&dart.notNull(charCode)<=102){byte=dart.notNull(byte)*16+dart.notNull(charCode)-87}else{dart.throw(new ArgumentError("Invalid URL encoding"))}}}return byte}static _uriDecode(text,opts){let plusToSpace=opts&&'plusToSpace'in opts?opts.plusToSpace:false;let encoding=opts&&'encoding'in opts?opts.encoding:convert.UTF8;let simple=true;for(let i=0;dart.notNull(i)<dart.notNull(text[dartx.length])&&dart.notNull(simple);i=dart.notNull(i)+1){let codeUnit=text[dartx.codeUnitAt](i);simple=codeUnit!=Uri._PERCENT&&codeUnit!=Uri._PLUS}let bytes=null;if(dart.notNull(simple)){if(dart.equals(encoding,convert.UTF8)||dart.equals(encoding,convert.LATIN1)){return text}else{bytes=text[dartx.codeUnits]}}else{bytes=List$(int).new();for(let i=0;dart.notNull(i)<dart.notNull(text[dartx.length]);i=dart.notNull(i)+1){let codeUnit=text[dartx.codeUnitAt](i);if(dart.notNull(codeUnit)>127){dart.throw(new ArgumentError("Illegal percent encoding in URI"))}if(codeUnit==Uri._PERCENT){if(dart.notNull(i)+3>dart.notNull(text[dartx.length])){dart.throw(new ArgumentError('Truncated URI'))}bytes[dartx.add](Uri._hexCharPairToByte(text,dart.notNull(i)+1));i=dart.notNull(i)+2}else if(dart.notNull(plusToSpace)&&codeUnit==Uri._PLUS){bytes[dartx.add](Uri._SPACE)}else{bytes[dartx.add](codeUnit)}}}return encoding.decode(bytes)}static _isAlphabeticCharacter(codeUnit){return dart.notNull(codeUnit)>=dart.notNull(Uri._LOWER_CASE_A)&&dart.notNull(codeUnit)<=dart.notNull(Uri._LOWER_CASE_Z)||dart.notNull(codeUnit)>=dart.notNull(Uri._UPPER_CASE_A)&&dart.notNull(codeUnit)<=dart.notNull(Uri._UPPER_CASE_Z)}};dart.defineNamedConstructor(Uri,'_internal');dart.setSignature(Uri,{constructors:()=>({_internal:[Uri,[String,String,String,num,String,String,String]],file:[Uri,[String],{windows:bool}],http:[Uri,[String,String],[Map$(String,String)]],https:[Uri,[String,String],[Map$(String,String)]],new:[Uri,[],{fragment:String,host:String,path:String,pathSegments:Iterable$(String),port:int,query:String,queryParameters:Map$(String,String),scheme:String,userInfo:String}]}),methods:()=>({[_writeAuthority]:[dart.void,[StringSink]],[_toWindowsFilePath]:[String,[]],[_toFilePath]:[String,[]],[_removeDotSegments]:[String,[String]],[_hasDotSegments]:[bool,[String]],[_merge]:[String,[String,String]],replace:[Uri,[],{fragment:String,host:String,path:String,pathSegments:Iterable$(String),port:int,query:String,queryParameters:Map$(String,String),scheme:String,userInfo:String}],resolve:[Uri,[String]],resolveUri:[Uri,[Uri]],toFilePath:[String,[],{windows:bool}]}),names:['_defaultPort','parse','_fail','_makeHttpUri','_checkNonWindowsPathReservedCharacters','_checkWindowsPathReservedCharacters','_checkWindowsDriveLetter','_makeFileUri','_makeWindowsFileUrl','_makePort','_makeHost','_isRegNameChar','_normalizeRegName','_makeScheme','_makeUserInfo','_makePath','_makeQuery','_makeFragment','_stringOrNullLength','_isHexDigit','_hexValue','_normalizeEscape','_isUnreservedChar','_escapeChar','_normalize','_isSchemeCharacter','_isGeneralDelimiter','_addIfNonEmpty','encodeComponent','encodeQueryComponent','decodeComponent','decodeQueryComponent','encodeFull','decodeFull','splitQueryString','parseIPv4Address','parseIPv6Address','_uriEncode','_hexCharPairToByte','_uriDecode','_isAlphabeticCharacter'],statics:()=>({_addIfNonEmpty:[dart.void,[StringBuffer,String,String,String]],_checkNonWindowsPathReservedCharacters:[dart.dynamic,[List$(String),bool]],_checkWindowsDriveLetter:[dart.dynamic,[int,bool]],_checkWindowsPathReservedCharacters:[dart.dynamic,[List$(String),bool],[int]],_defaultPort:[int,[String]],_escapeChar:[String,[dart.dynamic]],_fail:[dart.void,[String,int,String]],_hexCharPairToByte:[int,[String,int]],_hexValue:[int,[int]],_isAlphabeticCharacter:[bool,[int]],_isGeneralDelimiter:[bool,[int]],_isHexDigit:[bool,[int]],_isRegNameChar:[bool,[int]],_isSchemeCharacter:[bool,[int]],_isUnreservedChar:[bool,[int]],_makeFileUri:[dart.dynamic,[String]],_makeFragment:[String,[String,int,int]],_makeHost:[String,[String,int,int,bool]],_makeHttpUri:[Uri,[String,String,String,Map$(String,String)]],_makePath:[String,[String,int,int,Iterable$(String),bool,bool]],_makePort:[int,[int,String]],_makeQuery:[String,[String,int,int,Map$(String,String)]],_makeScheme:[String,[String,int]],_makeUserInfo:[String,[String,int,int]],_makeWindowsFileUrl:[dart.dynamic,[String]],_normalize:[String,[String,int,int,List$(int)]],_normalizeEscape:[String,[String,int,bool]],_normalizeRegName:[String,[String,int,int]],_stringOrNullLength:[int,[String]],_uriDecode:[String,[String],{encoding:convert.Encoding,plusToSpace:bool}],_uriEncode:[String,[List$(int),String],{encoding:convert.Encoding,spaceToPlus:bool}],decodeComponent:[String,[String]],decodeFull:[String,[String]],decodeQueryComponent:[String,[String],{encoding:convert.Encoding}],encodeComponent:[String,[String]],encodeFull:[String,[String]],encodeQueryComponent:[String,[String],{encoding:convert.Encoding}],parse:[Uri,[String]],parseIPv4Address:[List$(int),[String]],parseIPv6Address:[List$(int),[String],[int,int]],splitQueryString:[Map$(String,String),[String],{encoding:convert.Encoding}]})});Uri._SPACE=32;Uri._DOUBLE_QUOTE=34;Uri._NUMBER_SIGN=35;Uri._PERCENT=37;Uri._ASTERISK=42;Uri._PLUS=43;Uri._DOT=46;Uri._SLASH=47;Uri._ZERO=48;Uri._NINE=57;Uri._COLON=58;Uri._LESS=60;Uri._GREATER=62;Uri._QUESTION=63;Uri._AT_SIGN=64;Uri._UPPER_CASE_A=65;Uri._UPPER_CASE_F=70;Uri._UPPER_CASE_Z=90;Uri._LEFT_BRACKET=91;Uri._BACKSLASH=92;Uri._RIGHT_BRACKET=93;Uri._LOWER_CASE_A=97;Uri._LOWER_CASE_F=102;Uri._LOWER_CASE_Z=122;Uri._BAR=124;Uri._unreservedTable=dart.const([0,0,24576,1023,65534,34815,65534,18431]);Uri._unreserved2396Table=dart.const([0,0,26498,1023,65534,34815,65534,18431]);Uri._encodeFullTable=dart.const([0,0,65498,45055,65535,34815,65534,18431]);Uri._schemeTable=dart.const([0,0,26624,1023,65534,2047,65534,2047]);Uri._schemeLowerTable=dart.const([0,0,26624,1023,0,0,65534,2047]);Uri._subDelimitersTable=dart.const([0,0,32722,11263,65534,34815,65534,18431]);Uri._genDelimitersTable=dart.const([0,0,32776,33792,1,10240,0,0]);Uri._userinfoTable=dart.const([0,0,32722,12287,65534,34815,65534,18431]);Uri._regNameTable=dart.const([0,0,32754,11263,65534,34815,65534,18431]);Uri._pathCharTable=dart.const([0,0,32722,12287,65535,34815,65534,18431]);Uri._pathCharOrSlashTable=dart.const([0,0,65490,12287,65535,34815,65534,18431]);Uri._queryCharTable=dart.const([0,0,65490,45055,65535,34815,65534,18431]);function _symbolToString(symbol){return _internal.Symbol.getName(dart.as(symbol,_internal.Symbol))}dart.fn(_symbolToString,String,[Symbol]);exports.Object=Object;exports.Deprecated=Deprecated;exports.deprecated=deprecated;exports.override=override;exports.proxy=proxy;exports.bool=bool;exports.Comparator$=Comparator$;exports.Comparator=Comparator;exports.Comparable$=Comparable$;exports.Comparable=Comparable;exports.DateTime=DateTime;exports.num=num;exports.double=double;exports.Duration=Duration;exports.Error=Error;exports.AssertionError=AssertionError;exports.TypeError=TypeError;exports.CastError=CastError;exports.NullThrownError=NullThrownError;exports.ArgumentError=ArgumentError;exports.RangeError=RangeError;exports.IndexError=IndexError;exports.FallThroughError=FallThroughError;exports.AbstractClassInstantiationError=AbstractClassInstantiationError;exports.NoSuchMethodError=NoSuchMethodError;exports.UnsupportedError=UnsupportedError;exports.UnimplementedError=UnimplementedError;exports.StateError=StateError;exports.ConcurrentModificationError=ConcurrentModificationError;exports.OutOfMemoryError=OutOfMemoryError;exports.StackOverflowError=StackOverflowError;exports.CyclicInitializationError=CyclicInitializationError;exports.Exception=Exception;exports.FormatException=FormatException;exports.IntegerDivisionByZeroException=IntegerDivisionByZeroException;exports.Expando$=Expando$;exports.Expando=Expando;exports.Function=Function;exports.identical=identical;exports.identityHashCode=identityHashCode;exports.int=int;exports.Invocation=Invocation;exports.Iterable$=Iterable$;exports.Iterable=Iterable;exports.BidirectionalIterator$=BidirectionalIterator$;exports.BidirectionalIterator=BidirectionalIterator;exports.Iterator$=Iterator$;exports.Iterator=Iterator;exports.List$=List$;exports.List=List;exports.Map$=Map$;exports.Map=Map;exports.Null=Null;exports.Pattern=Pattern;exports.print=print;exports.Match=Match;exports.RegExp=RegExp;exports.Set$=Set$;exports.Sink$=Sink$;exports.Sink=Sink;exports.StackTrace=StackTrace;exports.Stopwatch=Stopwatch;exports.String=String;exports.RuneIterator=RuneIterator;exports.StringBuffer=StringBuffer;exports.StringSink=StringSink;exports.Symbol=Symbol;exports.Type=Type;exports.Uri=Uri});dart_library.library('dart/isolate',null,["dart_runtime/dart",'dart/core','dart/async'],['dart/_isolate_helper'],function(exports,dart,core,async,_isolate_helper){'use strict';let dartx=dart.dartx;class Capability extends core.Object{static new(){return new _isolate_helper.CapabilityImpl()}};dart.setSignature(Capability,{constructors:()=>({new:[Capability,[]]})});class IsolateSpawnException extends core.Object{IsolateSpawnException(message){this.message=message}toString(){return `IsolateSpawnException: ${this.message }`}};IsolateSpawnException[dart.implements]=()=>[core.Exception];dart.setSignature(IsolateSpawnException,{constructors:()=>({IsolateSpawnException:[IsolateSpawnException,[core.String]]})});let _pause=Symbol('_pause');class Isolate extends core.Object{Isolate(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._currentIsolateCache}static spawn(entryPoint,message,opts){let paused=opts&&'paused'in opts?opts.paused:false;try{return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint,message,paused).then(dart.fn(msg=>new Isolate(dart.as(dart.dindex(msg,1),SendPort),{pauseCapability:dart.as(dart.dindex(msg,2),Capability),terminateCapability:dart.as(dart.dindex(msg,3),Capability)}),Isolate,[dart.dynamic])),async.Future$(Isolate))}catch(e){let st=dart.stackTrace(e);return async.Future$(Isolate).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(dart.is(args,core.List)){for(let i=0;dart.notNull(i)<dart.notNull(args[dartx.length]);i=dart.notNull(i)+1){if(!(typeof args[dartx.get](i)=='string')){dart.throw(new core.ArgumentError(`Args must be a list of Strings ${args }`))}}}else if(args!=null){dart.throw(new core.ArgumentError(`Args must be a list of Strings ${args }`))}return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri,args,message,paused).then(dart.fn(msg=>new Isolate(dart.as(dart.dindex(msg,1),SendPort),{pauseCapability:dart.as(dart.dindex(msg,2),Capability),terminateCapability:dart.as(dart.dindex(msg,3),Capability)}),Isolate,[dart.dynamic])),async.Future$(Isolate))}catch(e){let st=dart.stackTrace(e);return async.Future$(Isolate).error(e,st)}}pause(resumeCapability){if(resumeCapability===void 0)resumeCapability=null;if(resumeCapability==null)resumeCapability=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.BEFORE_NEXT_EVENT;this.controlPort.send(["kill",this.terminateCapability,priority])}ping(responsePort,pingType){if(pingType===void 0)pingType=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=dart.as(dart.dindex(message,0),core.String);let stackDescription=dart.as(dart.dindex(message,1),core.String);let error=new RemoteError(errorDescription,stackDescription);controller.addError(error,error.stackTrace)}dart.fn(handleError,dart.void,[dart.dynamic]);controller=async.StreamController.broadcast({onCancel:dart.fn(()=>{this.removeErrorListener(port.sendPort);port.close();port=null}),onListen:dart.fn(()=>{port=RawReceivePort.new(handleError);this.addErrorListener(port.sendPort)}),sync:true});return controller.stream}};dart.setSignature(Isolate,{constructors:()=>({Isolate:[Isolate,[SendPort],{pauseCapability:Capability,terminateCapability:Capability}]}),methods:()=>({[_pause]:[dart.void,[Capability]],addErrorListener:[dart.void,[SendPort]],addOnExitListener:[dart.void,[SendPort]],kill:[dart.void,[],[core.int]],pause:[Capability,[],[Capability]],ping:[dart.void,[SendPort],[core.int]],removeErrorListener:[dart.void,[SendPort]],removeOnExitListener:[dart.void,[SendPort]],resume:[dart.void,[Capability]],setErrorsFatal:[dart.void,[core.bool]]}),names:['spawn','spawnUri'],statics:()=>({spawn:[async.Future$(Isolate),[dart.functionType(dart.void,[dart.dynamic]),dart.dynamic],{paused:core.bool}],spawnUri:[async.Future$(Isolate),[core.Uri,core.List$(core.String),dart.dynamic],{packageRoot:core.Uri,paused:core.bool}]})});Isolate.IMMEDIATE=0;Isolate.BEFORE_NEXT_EVENT=1;Isolate.AS_EVENT=2;dart.defineLazyProperties(Isolate,{get _currentIsolateCache(){return _isolate_helper.IsolateNatives.currentIsolate}});class SendPort extends core.Object{};SendPort[dart.implements]=()=>[Capability];class ReceivePort extends core.Object{static new(){return new _isolate_helper.ReceivePortImpl()}static fromRawReceivePort(rawPort){return new _isolate_helper.ReceivePortImpl.fromRawReceivePort(rawPort)}};ReceivePort[dart.implements]=()=>[async.Stream];dart.setSignature(ReceivePort,{constructors:()=>({fromRawReceivePort:[ReceivePort,[RawReceivePort]],new:[ReceivePort,[]]})});class RawReceivePort extends core.Object{static new(handler){if(handler===void 0)handler=null;return new _isolate_helper.RawReceivePortImpl(handler)}};dart.setSignature(RawReceivePort,{constructors:()=>({new:[RawReceivePort,[],[dart.functionType(dart.void,[dart.dynamic])]]})});class _IsolateUnhandledException extends core.Object{_IsolateUnhandledException(message,source,stackTrace){this.message=message;this.source=source;this.stackTrace=stackTrace}toString(){return 'IsolateUnhandledException: exception while handling message: '+`${this.message } \n `+`${dart.toString(this.source)[dartx.replaceAll]("\n","\n ")}\n`+'original stack trace:\n '+`${dart.toString(this.stackTrace)[dartx.replaceAll]("\n","\n ")}`}};_IsolateUnhandledException[dart.implements]=()=>[core.Exception];dart.setSignature(_IsolateUnhandledException,{constructors:()=>({_IsolateUnhandledException:[_IsolateUnhandledException,[dart.dynamic,dart.dynamic,core.StackTrace]]})});let _description=Symbol('_description');class RemoteError extends core.Object{RemoteError(description,stackDescription){this[_description]=description;this.stackTrace=new _RemoteStackTrace(stackDescription)}toString(){return this[_description]}};RemoteError[dart.implements]=()=>[core.Error];dart.setSignature(RemoteError,{constructors:()=>({RemoteError:[RemoteError,[core.String,core.String]]})});let _trace=Symbol('_trace');class _RemoteStackTrace extends core.Object{_RemoteStackTrace(trace){this[_trace]=trace}toString(){return this[_trace]}};_RemoteStackTrace[dart.implements]=()=>[core.StackTrace];dart.setSignature(_RemoteStackTrace,{constructors:()=>({_RemoteStackTrace:[_RemoteStackTrace,[core.String]]})});exports.Capability=Capability;exports.IsolateSpawnException=IsolateSpawnException;exports.Isolate=Isolate;exports.SendPort=SendPort;exports.ReceivePort=ReceivePort;exports.RawReceivePort=RawReceivePort;exports.RemoteError=RemoteError});dart_library.library('dart/js',null,["dart_runtime/dart",'dart/core','dart/collection','dart/_js_helper'],[],function(exports,dart,core,collection,_js_helper){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get context(){return dart.as(_wrapToDart(dart.global),JsObject)}});let _jsObject=Symbol('_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 dart.as(_wrapToDart(new ctor()),JsObject)}return dart.as(_wrapToDart(new ctor(...arguments$)),JsObject)}static fromBrowserObject(object){if(dart.is(object,core.num)||typeof object=='string'||typeof object=='boolean'||object==null){dart.throw(new core.ArgumentError("object cannot be a num, string, bool, or null"))}return dart.as(_wrapToDart(_convertToJS(object)),JsObject)}static jsify(object){if(!dart.is(object,core.Map)&& !dart.is(object,core.Iterable)){dart.throw(new core.ArgumentError("object must be a Map or Iterable"))}return dart.as(_wrapToDart(JsObject._convertDataTree(object)),JsObject)}static _convertDataTree(data){let _convertedObjects=collection.HashMap.identity();function _convert(o){if(dart.notNull(_convertedObjects.containsKey(o))){return _convertedObjects.get(o)}if(dart.is(o,core.Map)){let convertedMap={};_convertedObjects.set(o,convertedMap);for(let key of dart.as(dart.dload(o,'keys'),core.Iterable)){convertedMap[key]=_convert(dart.dindex(o,key))}return convertedMap}else if(dart.is(o,core.Iterable)){let convertedList=[];_convertedObjects.set(o,convertedList);convertedList[dartx.addAll](dart.as(dart.dsend(o,'map',_convert),core.Iterable));return convertedList}else{return _convertToJS(o)}}dart.fn(_convert);return _convert(data)}get(property){if(!(typeof property=='string')&& !dart.is(property,core.num)){dart.throw(new core.ArgumentError("property is not a String or num"))}return _convertToDart(this[_jsObject][property])}set(property,value){if(!(typeof property=='string')&& !dart.is(property,core.num)){dart.throw(new core.ArgumentError("property is not a String or num"))}this[_jsObject][property]=_convertToJS(value)}get hashCode(){return 0}['=='](other){return dart.is(other,JsObject)&&this[_jsObject]===dart.dload(other,_jsObject)}hasProperty(property){if(!(typeof property=='string')&& !dart.is(property,core.num)){dart.throw(new core.ArgumentError("property is not a String or num"))}return property in this[_jsObject]}deleteProperty(property){if(!(typeof property=='string')&& !dart.is(property,core.num)){dart.throw(new core.ArgumentError("property is not a String or num"))}delete this[_jsObject][property]}instanceof(type){return this[_jsObject]instanceof _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')&& !dart.is(method,core.num)){dart.throw(new core.ArgumentError("method is not a String or num"))}if(args!=null)args=core.List.from(args[dartx.map](_convertToJS));let fn=this[_jsObject][method];if(!(fn instanceof Function)){dart.throw(new core.NoSuchMethodError(this[_jsObject],core.Symbol.new(dart.as(method,core.String)),args,dart.map()))}return _convertToDart(fn.apply(this[_jsObject],args))}};dart.defineNamedConstructor(JsObject,'_fromJs');dart.setSignature(JsObject,{constructors:()=>({_fromJs:[JsObject,[dart.dynamic]],fromBrowserObject:[JsObject,[dart.dynamic]],jsify:[JsObject,[dart.dynamic]],new:[JsObject,[JsFunction],[core.List]]}),methods:()=>({callMethod:[dart.dynamic,[dart.dynamic],[core.List]],deleteProperty:[dart.void,[dart.dynamic]],get:[dart.dynamic,[dart.dynamic]],hasProperty:[core.bool,[dart.dynamic]],instanceof:[core.bool,[JsFunction]],set:[dart.dynamic,[dart.dynamic,dart.dynamic]]}),names:['_convertDataTree'],statics:()=>({_convertDataTree:[dart.dynamic,[dart.dynamic]]})});class JsFunction extends JsObject{static withThis(f){return new JsFunction._fromJs(function(){let args=[_convertToDart(this)];for(let arg of arguments){args.push(_convertToDart(arg))}return _convertToJS(f(...args))})}_fromJs(jsObject){super._fromJs(jsObject)}apply(args,opts){let thisArg=opts&&'thisArg'in opts?opts.thisArg:null;return _convertToDart(this[_jsObject].apply(_convertToJS(thisArg),args==null?null:core.List.from(args[dartx.map](_convertToJS))))}};dart.defineNamedConstructor(JsFunction,'_fromJs');dart.setSignature(JsFunction,{constructors:()=>({_fromJs:[JsFunction,[dart.dynamic]],withThis:[JsFunction,[core.Function]]}),methods:()=>({apply:[dart.dynamic,[core.List],{thisArg:dart.dynamic}]})});let _checkIndex=Symbol('_checkIndex');let _checkInsertIndex=Symbol('_checkInsertIndex');let JsArray$=dart.generic(function(E){class JsArray extends dart.mixin(JsObject,collection.ListMixin$(E)){JsArray(){super._fromJs([])}from(other){super._fromJs((()=>{let _=[];_[dartx.addAll](other[dartx.map](dart.as(_convertToJS,__CastType0)));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(dart.is(index,core.num)&&dart.equals(index,dart.dsend(index,'toInt'))){this[_checkIndex](dart.as(index,core.int))}return dart.as(super.get(index),E)}set(index,value){dart.as(value,E);if(dart.is(index,core.num)&&dart.equals(index,dart.dsend(index,'toInt'))){this[_checkIndex](dart.as(index,core.int))}super.set(index,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){dart.as(value,E);this.callMethod('push',[value])}addAll(iterable){dart.as(iterable,core.Iterable$(E));let list=iterable instanceof Array?iterable:core.List.from(iterable);this.callMethod('push',dart.as(list,core.List))}insert(index,element){dart.as(element,E);this[_checkInsertIndex](index);this.callMethod('splice',[index,0,element])}removeAt(index){this[_checkIndex](index);return dart.as(dart.dindex(this.callMethod('splice',[index,1]),0),E)}removeLast(){if(this.length==0)dart.throw(new core.RangeError(-1));return dart.as(this.callMethod('pop'),E)}removeRange(start,end){JsArray$()._checkRange(start,end,this.length);this.callMethod('splice',[start,dart.notNull(end)-dart.notNull(start)])}setRange(start,end,iterable,skipCount){dart.as(iterable,core.Iterable$(E));if(skipCount===void 0)skipCount=0;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=[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.as(compare,dart.functionType(core.int,[E,E]));this.callMethod('sort',compare==null?[]:[compare])}}dart.defineNamedConstructor(JsArray,'from');dart.defineNamedConstructor(JsArray,'_fromJs');dart.setSignature(JsArray,{constructors:()=>({_fromJs:[JsArray$(E),[dart.dynamic]],from:[JsArray$(E),[core.Iterable$(E)]],JsArray:[JsArray$(E),[]]}),methods:()=>({[_checkIndex]:[dart.dynamic,[core.int]],[_checkInsertIndex]:[dart.dynamic,[core.int]],add:[dart.void,[E]],addAll:[dart.void,[core.Iterable$(E)]],get:[E,[dart.dynamic]],insert:[dart.void,[core.int,E]],removeAt:[E,[core.int]],removeLast:[E,[]],set:[dart.void,[dart.dynamic,E]],setRange:[dart.void,[core.int,core.int,core.Iterable$(E)],[core.int]],sort:[dart.void,[],[dart.functionType(core.int,[E,E])]]}),names:['_checkRange'],statics:()=>({_checkRange:[dart.dynamic,[core.int,core.int,core.int]]})});dart.defineExtensionMembers(JsArray,['get','set','add','addAll','insert','removeAt','removeLast','removeRange','setRange','sort','length','length']);return JsArray});let JsArray=JsArray$();function _isBrowserType(o){return o instanceof Blob||o instanceof Event||window.KeyRange&&o instanceof KeyRange||o instanceof ImageData||o instanceof Node||window.TypedData&&o instanceof TypedData||o instanceof Window}dart.fn(_isBrowserType,core.bool,[dart.dynamic]);let _dartObj=Symbol('_dartObj');class _DartObject extends core.Object{_DartObject(dartObj){this[_dartObj]=dartObj}};dart.setSignature(_DartObject,{constructors:()=>({_DartObject:[_DartObject,[dart.dynamic]]})});function _convertToJS(o){if(o==null||typeof o=='string'||dart.is(o,core.num)||typeof o=='boolean'||dart.notNull(_isBrowserType(o))){return o}else if(dart.is(o,core.DateTime)){return _js_helper.Primitives.lazyAsJsDate(o)}else if(dart.is(o,JsObject)){return dart.dload(o,_jsObject)}else if(dart.is(o,core.Function)){return _putIfAbsent(exports._jsProxies,o,_wrapDartFunction)}else{return _putIfAbsent(exports._jsProxies,o,dart.fn(o=>new _DartObject(o),_DartObject,[dart.dynamic]))}}dart.fn(_convertToJS);function _wrapDartFunction(f){let wrapper=function(){let args=Array.prototype.map.call(arguments,_convertToDart);return _convertToJS(f(...args))};dart.dsetindex(exports._dartProxies,wrapper,f);return wrapper}dart.fn(_wrapDartFunction);function _convertToDart(o){if(o==null||typeof o=="string"||typeof o=="number"||typeof o=="boolean"||dart.notNull(_isBrowserType(o))){return o}else if(o instanceof Date){let ms=o.getTime();return new core.DateTime.fromMillisecondsSinceEpoch(ms)}else if(dart.is(o,_DartObject)){return dart.dload(o,_dartObj)}else{return _putIfAbsent(exports._dartProxies,o,_wrapToDart)}}dart.fn(_convertToDart,core.Object,[dart.dynamic]);function _wrapToDart(o){if(typeof o=="function"){return new JsFunction._fromJs(o)}if(o instanceof Array){return new JsArray._fromJs(o)}return new JsObject._fromJs(o)}dart.fn(_wrapToDart);dart.defineLazyProperties(exports,{get _jsProxies(){return new WeakMap()},get _dartProxies(){return new WeakMap()}});function _putIfAbsent(weakMap,o,getValue){let value=weakMap.get(o);if(value==null){value=dart.dcall(getValue,o);weakMap.set(o,value)}return value}dart.fn(_putIfAbsent,core.Object,[dart.dynamic,dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic])]);let __CastType0$=dart.generic(function(E){let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[E]));return __CastType0});let __CastType0=__CastType0$();exports.JsObject=JsObject;exports.JsFunction=JsFunction;exports.JsArray$=JsArray$;exports.JsArray=JsArray});dart_library.library('dart/math',null,["dart_runtime/dart",'dart/core'],['dart/_js_helper'],function(exports,dart,core,_js_helper){'use strict';let dartx=dart.dartx;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)^dart.notNull(hash)>>6}static finish(hash){hash=536870911&dart.notNull(hash)+((67108863&dart.notNull(hash))<<3);hash=dart.notNull(hash)^dart.notNull(hash)>>11;return 536870911&dart.notNull(hash)+((16383&dart.notNull(hash))<<15)}static hash2(a,b){return _JenkinsSmiHash.finish(_JenkinsSmiHash.combine(_JenkinsSmiHash.combine(0,dart.as(a,core.int)),dart.as(b,core.int)))}static hash4(a,b,c,d){return _JenkinsSmiHash.finish(_JenkinsSmiHash.combine(_JenkinsSmiHash.combine(_JenkinsSmiHash.combine(_JenkinsSmiHash.combine(0,dart.as(a,core.int)),dart.as(b,core.int)),dart.as(c,core.int)),dart.as(d,core.int)))}};dart.setSignature(_JenkinsSmiHash,{names:['combine','finish','hash2','hash4'],statics:()=>({combine:[core.int,[core.int,core.int]],finish:[core.int,[core.int]],hash2:[core.int,[dart.dynamic,dart.dynamic]],hash4:[core.int,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]]})});let Point$=dart.generic(function(T){class Point extends core.Object{Point(x,y){this.x=x;this.y=y}toString(){return `Point(${this.x }, ${this.y })`}['=='](other){if(!dart.is(other,Point$()))return false;return dart.equals(this.x,dart.dload(other,'x'))&&dart.equals(this.y,dart.dload(other,'y'))}get hashCode(){return _JenkinsSmiHash.hash2(dart.hashCode(this.x),dart.hashCode(this.y))}['+'](other){dart.as(other,Point$(T));return new(Point$(T))(dart.as(this.x['+'](other.x),T),dart.as(this.y['+'](other.y),T))}['-'](other){dart.as(other,Point$(T));return new(Point$(T))(dart.as(this.x['-'](other.x),T),dart.as(this.y['-'](other.y),T))}['*'](factor){return new(Point$(T))(dart.as(this.x['*'](factor),T),dart.as(this.y['*'](factor),T))}get magnitude(){return sqrt(dart.notNull(this.x['*'](this.x))+dart.notNull(this.y['*'](this.y)))}distanceTo(other){dart.as(other,Point$(T));let dx=this.x['-'](other.x);let dy=this.y['-'](other.y);return sqrt(dart.notNull(dx)*dart.notNull(dx)+dart.notNull(dy)*dart.notNull(dy))}squaredDistanceTo(other){dart.as(other,Point$(T));let dx=this.x['-'](other.x);let dy=this.y['-'](other.y);return dart.as(dart.notNull(dx)*dart.notNull(dx)+dart.notNull(dy)*dart.notNull(dy),T)}}dart.setSignature(Point,{constructors:()=>({Point:[Point$(T),[T,T]]}),methods:()=>({'*':[Point$(T),[core.num]],'+':[Point$(T),[Point$(T)]],'-':[Point$(T),[Point$(T)]],distanceTo:[core.double,[Point$(T)]],squaredDistanceTo:[T,[Point$(T)]]})});return Point});let Point=Point$();class Random extends core.Object{static new(seed){if(seed===void 0)seed=null;return seed==null?dart.const(new _JSRandom()):new _Random(seed)}};dart.setSignature(Random,{constructors:()=>({new:[Random,[],[core.int]]})});let _RectangleBase$=dart.generic(function(T){class _RectangleBase extends core.Object{_RectangleBase(){}get right(){return dart.as(this.left['+'](this.width),T)}get bottom(){return dart.as(this.top['+'](this.height),T)}toString(){return `Rectangle (${this.left }, ${this.top }) ${this.width } x ${this.height }`}['=='](other){if(!dart.is(other,Rectangle))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 _JenkinsSmiHash.hash4(dart.hashCode(this.left),dart.hashCode(this.top),dart.hashCode(this.right),dart.hashCode(this.bottom))}intersection(other){dart.as(other,Rectangle$(T));let x0=max(this.left,other.left);let x1=min(this.left['+'](this.width),other.left['+'](other.width));if(dart.notNull(x0)<=dart.notNull(x1)){let y0=max(this.top,other.top);let y1=min(this.top['+'](this.height),other.top['+'](other.height));if(dart.notNull(y0)<=dart.notNull(y1)){return new(Rectangle$(T))(dart.as(x0,T),dart.as(y0,T),dart.as(dart.notNull(x1)-dart.notNull(x0),T),dart.as(dart.notNull(y1)-dart.notNull(y0),T))}}return null}intersects(other){return dart.notNull(this.left['<='](dart.notNull(other.left)+dart.notNull(other.width)))&&dart.notNull(other.left)<=dart.notNull(this.left['+'](this.width))&&dart.notNull(this.top['<='](dart.notNull(other.top)+dart.notNull(other.height)))&&dart.notNull(other.top)<=dart.notNull(this.top['+'](this.height))}boundingBox(other){dart.as(other,Rectangle$(T));let right=max(this.left['+'](this.width),other.left['+'](other.width));let bottom=max(this.top['+'](this.height),other.top['+'](other.height));let left=min(this.left,other.left);let top=min(this.top,other.top);return new(Rectangle$(T))(dart.as(left,T),dart.as(top,T),dart.as(dart.notNull(right)-dart.notNull(left),T),dart.as(dart.notNull(bottom)-dart.notNull(top),T))}containsRectangle(another){return dart.notNull(this.left['<='](another.left))&&dart.notNull(this.left['+'](this.width))>=dart.notNull(another.left)+dart.notNull(another.width)&&dart.notNull(this.top['<='](another.top))&&dart.notNull(this.top['+'](this.height))>=dart.notNull(another.top)+dart.notNull(another.height)}containsPoint(another){return another.x[dartx['>=']](this.left)&&dart.notNull(another.x)<=dart.notNull(this.left['+'](this.width))&&another.y[dartx['>=']](this.top)&&dart.notNull(another.y)<=dart.notNull(this.top['+'](this.height))}get topLeft(){return new(Point$(T))(this.left,this.top)}get topRight(){return new(Point$(T))(dart.as(this.left['+'](this.width),T),this.top)}get bottomRight(){return new(Point$(T))(dart.as(this.left['+'](this.width),T),dart.as(this.top['+'](this.height),T))}get bottomLeft(){return new(Point$(T))(this.left,dart.as(this.top['+'](this.height),T))}}dart.setSignature(_RectangleBase,{constructors:()=>({_RectangleBase:[_RectangleBase$(T),[]]}),methods:()=>({boundingBox:[Rectangle$(T),[Rectangle$(T)]],containsPoint:[core.bool,[Point$(core.num)]],containsRectangle:[core.bool,[Rectangle$(core.num)]],intersection:[Rectangle$(T),[Rectangle$(T)]],intersects:[core.bool,[Rectangle$(core.num)]]})});return _RectangleBase});let _RectangleBase=_RectangleBase$();let Rectangle$=dart.generic(function(T){class Rectangle extends _RectangleBase$(T){Rectangle(left,top,width,height){this.left=left;this.top=top;this.width=dart.as(dart.notNull(width['<'](0))?dart.notNull(width['unary-']())*0:width,T);this.height=dart.as(dart.notNull(height['<'](0))?dart.notNull(height['unary-']())*0:height,T);super._RectangleBase()}static fromPoints(a,b){let left=dart.as(min(a.x,b.x),T);let width=dart.as(max(a.x,b.x)[dartx['-']](left),T);let top=dart.as(min(a.y,b.y),T);let height=dart.as(max(a.y,b.y)[dartx['-']](top),T);return new(Rectangle$(T))(left,top,width,height)}}dart.setSignature(Rectangle,{constructors:()=>({fromPoints:[Rectangle$(T),[Point$(T),Point$(T)]],Rectangle:[Rectangle$(T),[T,T,T,T]]})});return Rectangle});let Rectangle=Rectangle$();let _width=Symbol('_width');let _height=Symbol('_height');let MutableRectangle$=dart.generic(function(T){class MutableRectangle extends _RectangleBase$(T){MutableRectangle(left,top,width,height){this.left=left;this.top=top;this[_width]=dart.as(dart.notNull(width['<'](0))?_clampToZero(width):width,T);this[_height]=dart.as(dart.notNull(height['<'](0))?_clampToZero(height):height,T);super._RectangleBase()}static fromPoints(a,b){let left=dart.as(min(a.x,b.x),T);let width=dart.as(max(a.x,b.x)[dartx['-']](left),T);let top=dart.as(min(a.y,b.y),T);let height=dart.as(max(a.y,b.y)[dartx['-']](top),T);return new(MutableRectangle$(T))(left,top,width,height)}get width(){return this[_width]}set width(width){dart.as(width,T);if(dart.notNull(width['<'](0)))width=dart.as(_clampToZero(width),T);this[_width]=width}get height(){return this[_height]}set height(height){dart.as(height,T);if(dart.notNull(height['<'](0)))height=dart.as(_clampToZero(height),T);this[_height]=height}}MutableRectangle[dart.implements]=()=>[Rectangle$(T)];dart.setSignature(MutableRectangle,{constructors:()=>({fromPoints:[MutableRectangle$(T),[Point$(T),Point$(T)]],MutableRectangle:[MutableRectangle$(T),[T,T,T,T]]})});return MutableRectangle});let MutableRectangle=MutableRectangle$();function _clampToZero(value){dart.assert(dart.notNull(value)<0);return-dart.notNull(value)*0}dart.fn(_clampToZero,core.num,[core.num]);let E=2.718281828459045;let LN10=2.302585092994046;let LN2=0.6931471805599453;let LOG2E=1.4426950408889634;let LOG10E=0.4342944819032518;let PI=3.141592653589793;let SQRT1_2=0.7071067811865476;let SQRT2=1.4142135623730951;function min(a,b){if(!dart.is(a,core.num))dart.throw(new core.ArgumentError(a));if(!dart.is(b,core.num))dart.throw(new core.ArgumentError(b));if(dart.notNull(a)>dart.notNull(b))return b;if(dart.notNull(a)<dart.notNull(b))return a;if(typeof b=='number'){if(typeof a=='number'){if(a==0.0){return(dart.notNull(a)+dart.notNull(b))*dart.notNull(a)*dart.notNull(b)}}if(a==0&&dart.notNull(b[dartx.isNegative])||dart.notNull(b[dartx.isNaN]))return b;return a}return a}dart.fn(min,core.num,[core.num,core.num]);function max(a,b){if(!dart.is(a,core.num))dart.throw(new core.ArgumentError(a));if(!dart.is(b,core.num))dart.throw(new core.ArgumentError(b));if(dart.notNull(a)>dart.notNull(b))return a;if(dart.notNull(a)<dart.notNull(b))return b;if(typeof b=='number'){if(typeof a=='number'){if(a==0.0){return dart.notNull(a)+dart.notNull(b)}}if(dart.notNull(b[dartx.isNaN]))return b;return a}if(b==0&&dart.notNull(a[dartx.isNegative]))return b;return a}dart.fn(max,core.num,[core.num,core.num]);function atan2(a,b){return Math.atan2(_js_helper.checkNum(a),_js_helper.checkNum(b))}dart.fn(atan2,core.double,[core.num,core.num]);function pow(x,exponent){_js_helper.checkNum(x);_js_helper.checkNum(exponent);return Math.pow(x,exponent)}dart.fn(pow,core.num,[core.num,core.num]);function sin(x){return Math.sin(_js_helper.checkNum(x))}dart.fn(sin,core.double,[core.num]);function cos(x){return Math.cos(_js_helper.checkNum(x))}dart.fn(cos,core.double,[core.num]);function tan(x){return Math.tan(_js_helper.checkNum(x))}dart.fn(tan,core.double,[core.num]);function acos(x){return Math.acos(_js_helper.checkNum(x))}dart.fn(acos,core.double,[core.num]);function asin(x){return Math.asin(_js_helper.checkNum(x))}dart.fn(asin,core.double,[core.num]);function atan(x){return Math.atan(_js_helper.checkNum(x))}dart.fn(atan,core.double,[core.num]);function sqrt(x){return Math.sqrt(_js_helper.checkNum(x))}dart.fn(sqrt,core.double,[core.num]);function exp(x){return Math.exp(_js_helper.checkNum(x))}dart.fn(exp,core.double,[core.num]);function log(x){return Math.log(_js_helper.checkNum(x))}dart.fn(log,core.double,[core.num]);let _POW2_32=4294967296;class _JSRandom extends core.Object{_JSRandom(){}nextInt(max){if(dart.notNull(max)<=0||dart.notNull(max)>dart.notNull(_POW2_32)){dart.throw(new core.RangeError(`max must be in range 0 < max ≤ 2^32, was ${max }`))}return Math.random()*max>>>0}nextDouble(){return Math.random()}nextBool(){return Math.random()<0.5}};_JSRandom[dart.implements]=()=>[Random];dart.setSignature(_JSRandom,{constructors:()=>({_JSRandom:[_JSRandom,[]]}),methods:()=>({nextBool:[core.bool,[]],nextDouble:[core.double,[]],nextInt:[core.int,[core.int]]})});let _lo=Symbol('_lo');let _hi=Symbol('_hi');let _nextState=Symbol('_nextState');class _Random extends core.Object{_Random(seed){this[_lo]=0;this[_hi]=0;let empty_seed=0;if(dart.notNull(seed)<0){empty_seed=-1}do{let low=dart.notNull(seed)&dart.notNull(_Random._MASK32);seed=((dart.notNull(seed)-dart.notNull(low))/dart.notNull(_POW2_32))[dartx.truncate]();let high=dart.notNull(seed)&dart.notNull(_Random._MASK32);seed=((dart.notNull(seed)-dart.notNull(high))/dart.notNull(_POW2_32))[dartx.truncate]();let tmplow=dart.notNull(low)<<21;let tmphigh=dart.notNull(high)<<21|dart.notNull(low)>>11;tmplow=(~dart.notNull(low)&dart.notNull(_Random._MASK32))+dart.notNull(tmplow);low=dart.notNull(tmplow)&dart.notNull(_Random._MASK32);high= ~dart.notNull(high)+dart.notNull(tmphigh)+((dart.notNull(tmplow)-dart.notNull(low))/4294967296)[dartx.truncate]()&dart.notNull(_Random._MASK32);tmphigh=dart.notNull(high)>>24;tmplow=dart.notNull(low)>>24|dart.notNull(high)<<8;low=dart.notNull(low)^dart.notNull(tmplow);high=dart.notNull(high)^dart.notNull(tmphigh);tmplow=dart.notNull(low)*265;low=dart.notNull(tmplow)&dart.notNull(_Random._MASK32);high=dart.notNull(high)*265+((dart.notNull(tmplow)-dart.notNull(low))/4294967296)[dartx.truncate]()&dart.notNull(_Random._MASK32);tmphigh=dart.notNull(high)>>14;tmplow=dart.notNull(low)>>14|dart.notNull(high)<<18;low=dart.notNull(low)^dart.notNull(tmplow);high=dart.notNull(high)^dart.notNull(tmphigh);tmplow=dart.notNull(low)*21;low=dart.notNull(tmplow)&dart.notNull(_Random._MASK32);high=dart.notNull(high)*21+((dart.notNull(tmplow)-dart.notNull(low))/4294967296)[dartx.truncate]()&dart.notNull(_Random._MASK32);tmphigh=dart.notNull(high)>>28;tmplow=dart.notNull(low)>>28|dart.notNull(high)<<4;low=dart.notNull(low)^dart.notNull(tmplow);high=dart.notNull(high)^dart.notNull(tmphigh);tmplow=dart.notNull(low)<<31;tmphigh=dart.notNull(high)<<31|dart.notNull(low)>>1;tmplow=dart.notNull(tmplow)+dart.notNull(low);low=dart.notNull(tmplow)&dart.notNull(_Random._MASK32);high=dart.notNull(high)+dart.notNull(tmphigh)+((dart.notNull(tmplow)-dart.notNull(low))/4294967296)[dartx.truncate]()&dart.notNull(_Random._MASK32);tmplow=dart.notNull(this[_lo])*1037;this[_lo]=dart.notNull(tmplow)&dart.notNull(_Random._MASK32);this[_hi]=dart.notNull(this[_hi])*1037+((dart.notNull(tmplow)-dart.notNull(this[_lo]))/4294967296)[dartx.truncate]()&dart.notNull(_Random._MASK32);this[_lo]=dart.notNull(this[_lo])^dart.notNull(low);this[_hi]=dart.notNull(this[_hi])^dart.notNull(high)}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=dart.notNull(tmpHi)&dart.notNull(_Random._MASK32);let tmpHiHi=dart.notNull(tmpHi)-dart.notNull(tmpHiLo);let tmpLo=55905*dart.notNull(this[_lo]);let tmpLoLo=dart.notNull(tmpLo)&dart.notNull(_Random._MASK32);let tmpLoHi=dart.notNull(tmpLo)-dart.notNull(tmpLoLo);let newLo=dart.notNull(tmpLoLo)+dart.notNull(tmpHiLo)+dart.notNull(this[_hi]);this[_lo]=dart.notNull(newLo)&dart.notNull(_Random._MASK32);let newLoHi=dart.notNull(newLo)-dart.notNull(this[_lo]);this[_hi]=((dart.notNull(tmpLoHi)+dart.notNull(tmpHiHi)+dart.notNull(newLoHi))/dart.notNull(_POW2_32))[dartx.truncate]()&dart.notNull(_Random._MASK32);dart.assert(dart.notNull(this[_lo])<dart.notNull(_POW2_32));dart.assert(dart.notNull(this[_hi])<dart.notNull(_POW2_32))}nextInt(max){if(dart.notNull(max)<=0||dart.notNull(max)>dart.notNull(_POW2_32)){dart.throw(new core.RangeError(`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}let rnd32=null;let result=null;do{this[_nextState]();rnd32=this[_lo];result=rnd32[dartx.remainder](max)}while(dart.notNull(rnd32)-dart.notNull(result)+dart.notNull(max)>=dart.notNull(_POW2_32));return result}nextDouble(){this[_nextState]();let bits26=dart.notNull(this[_lo])&(1<<26)-1;this[_nextState]();let bits27=dart.notNull(this[_lo])&(1<<27)-1;return(dart.notNull(bits26)*dart.notNull(_Random._POW2_27_D)+dart.notNull(bits27))/dart.notNull(_Random._POW2_53_D)}nextBool(){this[_nextState]();return(dart.notNull(this[_lo])&1)==0}};_Random[dart.implements]=()=>[Random];dart.setSignature(_Random,{constructors:()=>({_Random:[_Random,[core.int]]}),methods:()=>({[_nextState]:[dart.void,[]],nextBool:[core.bool,[]],nextDouble:[core.double,[]],nextInt:[core.int,[core.int]]})});_Random._POW2_53_D=1.0*9007199254740992;_Random._POW2_27_D=1.0*(1<<27);_Random._MASK32=4294967295;exports.Point$=Point$;exports.Point=Point;exports.Random=Random;exports.Rectangle$=Rectangle$;exports.Rectangle=Rectangle;exports.MutableRectangle$=MutableRectangle$;exports.MutableRectangle=MutableRectangle;exports.E=E;exports.LN10=LN10;exports.LN2=LN2;exports.LOG2E=LOG2E;exports.LOG10E=LOG10E;exports.PI=PI;exports.SQRT1_2=SQRT1_2;exports.SQRT2=SQRT2;exports.min=min;exports.max=max;exports.atan2=atan2;exports.pow=pow;exports.sin=sin;exports.cos=cos;exports.tan=tan;exports.acos=acos;exports.asin=asin;exports.atan=atan;exports.sqrt=sqrt;exports.exp=exp;exports.log=log});dart_library.library('dart/mirrors',null,["dart_runtime/dart",'dart/core'],['dart/_js_mirrors'],function(exports,dart,core,_js_mirrors){'use strict';let dartx=dart.dartx;class MirrorSystem extends core.Object{findLibrary(libraryName){return this.libraries.values[dartx.singleWhere](dart.fn(library=>dart.equals(dart.dload(library,'simpleName'),libraryName),core.bool,[dart.dynamic]))}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(MirrorSystem,{methods:()=>({findLibrary:[LibraryMirror,[core.Symbol]]}),names:['getName','getSymbol'],statics:()=>({getName:[core.String,[core.Symbol]],getSymbol:[core.Symbol,[core.String],[LibraryMirror]]})});function currentMirrorSystem(){return dart.as(_js_mirrors.currentJsMirrorSystem,MirrorSystem)}dart.fn(currentMirrorSystem,MirrorSystem,[]);function reflect(reflectee){return _js_mirrors.reflect(reflectee)}dart.fn(reflect,()=>dart.definiteFunctionType(InstanceMirror,[core.Object]));function reflectClass(key){if(!dart.is(key,core.Type)||dart.equals(key,dart.dynamic)){dart.throw(new core.ArgumentError(`${key } does not denote a class`))}let tm=reflectType(key);if(!dart.is(tm,ClassMirror)){dart.throw(new core.ArgumentError(`${key } does not denote a class`))}return dart.as(dart.as(tm,ClassMirror).originalDeclaration,ClassMirror)}dart.fn(reflectClass,()=>dart.definiteFunctionType(ClassMirror,[core.Type]));function reflectType(key){if(dart.equals(key,dart.dynamic)){return currentMirrorSystem().dynamicType}return _js_mirrors.reflectType(key)}dart.fn(reflectType,()=>dart.definiteFunctionType(TypeMirror,[core.Type]));class Mirror extends core.Object{};class IsolateMirror extends core.Object{};IsolateMirror[dart.implements]=()=>[Mirror];class DeclarationMirror extends core.Object{};DeclarationMirror[dart.implements]=()=>[Mirror];class ObjectMirror extends core.Object{};ObjectMirror[dart.implements]=()=>[Mirror];class InstanceMirror extends core.Object{};InstanceMirror[dart.implements]=()=>[ObjectMirror];class ClosureMirror extends core.Object{};ClosureMirror[dart.implements]=()=>[InstanceMirror];class LibraryMirror extends core.Object{};LibraryMirror[dart.implements]=()=>[DeclarationMirror,ObjectMirror];class LibraryDependencyMirror extends core.Object{};LibraryDependencyMirror[dart.implements]=()=>[Mirror];class CombinatorMirror extends core.Object{};CombinatorMirror[dart.implements]=()=>[Mirror];class TypeMirror extends core.Object{};TypeMirror[dart.implements]=()=>[DeclarationMirror];class ClassMirror extends core.Object{};ClassMirror[dart.implements]=()=>[TypeMirror,ObjectMirror];class FunctionTypeMirror extends core.Object{};FunctionTypeMirror[dart.implements]=()=>[ClassMirror];class TypeVariableMirror extends TypeMirror{};class TypedefMirror extends core.Object{};TypedefMirror[dart.implements]=()=>[TypeMirror];class MethodMirror extends core.Object{};MethodMirror[dart.implements]=()=>[DeclarationMirror];class VariableMirror extends core.Object{};VariableMirror[dart.implements]=()=>[DeclarationMirror];class ParameterMirror extends core.Object{};ParameterMirror[dart.implements]=()=>[VariableMirror];class SourceLocation extends core.Object{};class Comment extends core.Object{Comment(text,trimmedText,isDocComment){this.text=text;this.trimmedText=trimmedText;this.isDocComment=isDocComment}};dart.setSignature(Comment,{constructors:()=>({Comment:[Comment,[core.String,core.String,core.bool]]})});class MirrorsUsed extends core.Object{MirrorsUsed(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(MirrorsUsed,{constructors:()=>({MirrorsUsed:[MirrorsUsed,[],{metaTargets:dart.dynamic,override:dart.dynamic,symbols:dart.dynamic,targets:dart.dynamic}]})});exports.MirrorSystem=MirrorSystem;exports.currentMirrorSystem=currentMirrorSystem;exports.reflect=reflect;exports.reflectClass=reflectClass;exports.reflectType=reflectType;exports.Mirror=Mirror;exports.IsolateMirror=IsolateMirror;exports.DeclarationMirror=DeclarationMirror;exports.ObjectMirror=ObjectMirror;exports.InstanceMirror=InstanceMirror;exports.ClosureMirror=ClosureMirror;exports.LibraryMirror=LibraryMirror;exports.LibraryDependencyMirror=LibraryDependencyMirror;exports.CombinatorMirror=CombinatorMirror;exports.TypeMirror=TypeMirror;exports.ClassMirror=ClassMirror;exports.FunctionTypeMirror=FunctionTypeMirror;exports.TypeVariableMirror=TypeVariableMirror;exports.TypedefMirror=TypedefMirror;exports.MethodMirror=MethodMirror;exports.VariableMirror=VariableMirror;exports.ParameterMirror=ParameterMirror;exports.SourceLocation=SourceLocation;exports.Comment=Comment;exports.MirrorsUsed=MirrorsUsed});dart_library.library('dart/typed_data',null,["dart_runtime/dart",'dart/core'],['dart/_native_typed_data'],function(exports,dart,core,_native_typed_data){'use strict';let dartx=dart.dartx;class ByteBuffer extends core.Object{};class TypedData extends core.Object{};let _littleEndian=Symbol('_littleEndian');class Endianness extends core.Object{_(littleEndian){this[_littleEndian]=littleEndian}};dart.defineNamedConstructor(Endianness,'_');dart.setSignature(Endianness,{constructors:()=>({_:[Endianness,[core.bool]]})});Endianness.BIG_ENDIAN=dart.const(new Endianness._(false));Endianness.LITTLE_ENDIAN=dart.const(new Endianness._(true));dart.defineLazyProperties(Endianness,{get HOST_ENDIAN(){return ByteData.view(Uint16List.fromList(dart.list([1],core.int)).buffer).getInt8(0)==1?Endianness.LITTLE_ENDIAN:Endianness.BIG_ENDIAN}});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.asByteData(offsetInBytes,length)}};ByteData[dart.implements]=()=>[TypedData];dart.setSignature(ByteData,{constructors:()=>({new:[ByteData,[core.int]],view:[ByteData,[ByteBuffer],[core.int,core.int]]})});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.asInt8List(offsetInBytes,length)}};Int8List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Int8List,{constructors:()=>({fromList:[Int8List,[core.List$(core.int)]],new:[Int8List,[core.int]],view:[Int8List,[ByteBuffer],[core.int,core.int]]})});Int8List.BYTES_PER_ELEMENT=1;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.asUint8List(offsetInBytes,length)}};Uint8List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Uint8List,{constructors:()=>({fromList:[Uint8List,[core.List$(core.int)]],new:[Uint8List,[core.int]],view:[Uint8List,[ByteBuffer],[core.int,core.int]]})});Uint8List.BYTES_PER_ELEMENT=1;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.asUint8ClampedList(offsetInBytes,length)}};Uint8ClampedList[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Uint8ClampedList,{constructors:()=>({fromList:[Uint8ClampedList,[core.List$(core.int)]],new:[Uint8ClampedList,[core.int]],view:[Uint8ClampedList,[ByteBuffer],[core.int,core.int]]})});Uint8ClampedList.BYTES_PER_ELEMENT=1;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.asInt16List(offsetInBytes,length)}};Int16List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Int16List,{constructors:()=>({fromList:[Int16List,[core.List$(core.int)]],new:[Int16List,[core.int]],view:[Int16List,[ByteBuffer],[core.int,core.int]]})});Int16List.BYTES_PER_ELEMENT=2;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.asUint16List(offsetInBytes,length)}};Uint16List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Uint16List,{constructors:()=>({fromList:[Uint16List,[core.List$(core.int)]],new:[Uint16List,[core.int]],view:[Uint16List,[ByteBuffer],[core.int,core.int]]})});Uint16List.BYTES_PER_ELEMENT=2;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.asInt32List(offsetInBytes,length)}};Int32List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Int32List,{constructors:()=>({fromList:[Int32List,[core.List$(core.int)]],new:[Int32List,[core.int]],view:[Int32List,[ByteBuffer],[core.int,core.int]]})});Int32List.BYTES_PER_ELEMENT=4;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.asUint32List(offsetInBytes,length)}};Uint32List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Uint32List,{constructors:()=>({fromList:[Uint32List,[core.List$(core.int)]],new:[Uint32List,[core.int]],view:[Uint32List,[ByteBuffer],[core.int,core.int]]})});Uint32List.BYTES_PER_ELEMENT=4;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.asInt64List(offsetInBytes,length)}};Int64List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Int64List,{constructors:()=>({fromList:[Int64List,[core.List$(core.int)]],new:[Int64List,[core.int]],view:[Int64List,[ByteBuffer],[core.int,core.int]]})});Int64List.BYTES_PER_ELEMENT=8;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.asUint64List(offsetInBytes,length)}};Uint64List[dart.implements]=()=>[core.List$(core.int),TypedData];dart.setSignature(Uint64List,{constructors:()=>({fromList:[Uint64List,[core.List$(core.int)]],new:[Uint64List,[core.int]],view:[Uint64List,[ByteBuffer],[core.int,core.int]]})});Uint64List.BYTES_PER_ELEMENT=8;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.asFloat32List(offsetInBytes,length)}};Float32List[dart.implements]=()=>[core.List$(core.double),TypedData];dart.setSignature(Float32List,{constructors:()=>({fromList:[Float32List,[core.List$(core.double)]],new:[Float32List,[core.int]],view:[Float32List,[ByteBuffer],[core.int,core.int]]})});Float32List.BYTES_PER_ELEMENT=4;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.asFloat64List(offsetInBytes,length)}};Float64List[dart.implements]=()=>[core.List$(core.double),TypedData];dart.setSignature(Float64List,{constructors:()=>({fromList:[Float64List,[core.List$(core.double)]],new:[Float64List,[core.int]],view:[Float64List,[ByteBuffer],[core.int,core.int]]})});Float64List.BYTES_PER_ELEMENT=8;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.asFloat32x4List(offsetInBytes,length)}};Float32x4List[dart.implements]=()=>[core.List$(Float32x4),TypedData];dart.setSignature(Float32x4List,{constructors:()=>({fromList:[Float32x4List,[core.List$(Float32x4)]],new:[Float32x4List,[core.int]],view:[Float32x4List,[ByteBuffer],[core.int,core.int]]})});Float32x4List.BYTES_PER_ELEMENT=16;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.asInt32x4List(offsetInBytes,length)}};Int32x4List[dart.implements]=()=>[core.List$(Int32x4),TypedData];dart.setSignature(Int32x4List,{constructors:()=>({fromList:[Int32x4List,[core.List$(Int32x4)]],new:[Int32x4List,[core.int]],view:[Int32x4List,[ByteBuffer],[core.int,core.int]]})});Int32x4List.BYTES_PER_ELEMENT=16;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.asFloat64x2List(offsetInBytes,length)}};Float64x2List[dart.implements]=()=>[core.List$(Float64x2),TypedData];dart.setSignature(Float64x2List,{constructors:()=>({fromList:[Float64x2List,[core.List$(Float64x2)]],new:[Float64x2List,[core.int]],view:[Float64x2List,[ByteBuffer],[core.int,core.int]]})});Float64x2List.BYTES_PER_ELEMENT=16;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(Float32x4,{constructors:()=>({fromFloat64x2:[Float32x4,[Float64x2]],fromInt32x4Bits:[Float32x4,[Int32x4]],new:[Float32x4,[core.double,core.double,core.double,core.double]],splat:[Float32x4,[core.double]],zero:[Float32x4,[]]})});Float32x4.XXXX=0;Float32x4.XXXY=64;Float32x4.XXXZ=128;Float32x4.XXXW=192;Float32x4.XXYX=16;Float32x4.XXYY=80;Float32x4.XXYZ=144;Float32x4.XXYW=208;Float32x4.XXZX=32;Float32x4.XXZY=96;Float32x4.XXZZ=160;Float32x4.XXZW=224;Float32x4.XXWX=48;Float32x4.XXWY=112;Float32x4.XXWZ=176;Float32x4.XXWW=240;Float32x4.XYXX=4;Float32x4.XYXY=68;Float32x4.XYXZ=132;Float32x4.XYXW=196;Float32x4.XYYX=20;Float32x4.XYYY=84;Float32x4.XYYZ=148;Float32x4.XYYW=212;Float32x4.XYZX=36;Float32x4.XYZY=100;Float32x4.XYZZ=164;Float32x4.XYZW=228;Float32x4.XYWX=52;Float32x4.XYWY=116;Float32x4.XYWZ=180;Float32x4.XYWW=244;Float32x4.XZXX=8;Float32x4.XZXY=72;Float32x4.XZXZ=136;Float32x4.XZXW=200;Float32x4.XZYX=24;Float32x4.XZYY=88;Float32x4.XZYZ=152;Float32x4.XZYW=216;Float32x4.XZZX=40;Float32x4.XZZY=104;Float32x4.XZZZ=168;Float32x4.XZZW=232;Float32x4.XZWX=56;Float32x4.XZWY=120;Float32x4.XZWZ=184;Float32x4.XZWW=248;Float32x4.XWXX=12;Float32x4.XWXY=76;Float32x4.XWXZ=140;Float32x4.XWXW=204;Float32x4.XWYX=28;Float32x4.XWYY=92;Float32x4.XWYZ=156;Float32x4.XWYW=220;Float32x4.XWZX=44;Float32x4.XWZY=108;Float32x4.XWZZ=172;Float32x4.XWZW=236;Float32x4.XWWX=60;Float32x4.XWWY=124;Float32x4.XWWZ=188;Float32x4.XWWW=252;Float32x4.YXXX=1;Float32x4.YXXY=65;Float32x4.YXXZ=129;Float32x4.YXXW=193;Float32x4.YXYX=17;Float32x4.YXYY=81;Float32x4.YXYZ=145;Float32x4.YXYW=209;Float32x4.YXZX=33;Float32x4.YXZY=97;Float32x4.YXZZ=161;Float32x4.YXZW=225;Float32x4.YXWX=49;Float32x4.YXWY=113;Float32x4.YXWZ=177;Float32x4.YXWW=241;Float32x4.YYXX=5;Float32x4.YYXY=69;Float32x4.YYXZ=133;Float32x4.YYXW=197;Float32x4.YYYX=21;Float32x4.YYYY=85;Float32x4.YYYZ=149;Float32x4.YYYW=213;Float32x4.YYZX=37;Float32x4.YYZY=101;Float32x4.YYZZ=165;Float32x4.YYZW=229;Float32x4.YYWX=53;Float32x4.YYWY=117;Float32x4.YYWZ=181;Float32x4.YYWW=245;Float32x4.YZXX=9;Float32x4.YZXY=73;Float32x4.YZXZ=137;Float32x4.YZXW=201;Float32x4.YZYX=25;Float32x4.YZYY=89;Float32x4.YZYZ=153;Float32x4.YZYW=217;Float32x4.YZZX=41;Float32x4.YZZY=105;Float32x4.YZZZ=169;Float32x4.YZZW=233;Float32x4.YZWX=57;Float32x4.YZWY=121;Float32x4.YZWZ=185;Float32x4.YZWW=249;Float32x4.YWXX=13;Float32x4.YWXY=77;Float32x4.YWXZ=141;Float32x4.YWXW=205;Float32x4.YWYX=29;Float32x4.YWYY=93;Float32x4.YWYZ=157;Float32x4.YWYW=221;Float32x4.YWZX=45;Float32x4.YWZY=109;Float32x4.YWZZ=173;Float32x4.YWZW=237;Float32x4.YWWX=61;Float32x4.YWWY=125;Float32x4.YWWZ=189;Float32x4.YWWW=253;Float32x4.ZXXX=2;Float32x4.ZXXY=66;Float32x4.ZXXZ=130;Float32x4.ZXXW=194;Float32x4.ZXYX=18;Float32x4.ZXYY=82;Float32x4.ZXYZ=146;Float32x4.ZXYW=210;Float32x4.ZXZX=34;Float32x4.ZXZY=98;Float32x4.ZXZZ=162;Float32x4.ZXZW=226;Float32x4.ZXWX=50;Float32x4.ZXWY=114;Float32x4.ZXWZ=178;Float32x4.ZXWW=242;Float32x4.ZYXX=6;Float32x4.ZYXY=70;Float32x4.ZYXZ=134;Float32x4.ZYXW=198;Float32x4.ZYYX=22;Float32x4.ZYYY=86;Float32x4.ZYYZ=150;Float32x4.ZYYW=214;Float32x4.ZYZX=38;Float32x4.ZYZY=102;Float32x4.ZYZZ=166;Float32x4.ZYZW=230;Float32x4.ZYWX=54;Float32x4.ZYWY=118;Float32x4.ZYWZ=182;Float32x4.ZYWW=246;Float32x4.ZZXX=10;Float32x4.ZZXY=74;Float32x4.ZZXZ=138;Float32x4.ZZXW=202;Float32x4.ZZYX=26;Float32x4.ZZYY=90;Float32x4.ZZYZ=154;Float32x4.ZZYW=218;Float32x4.ZZZX=42;Float32x4.ZZZY=106;Float32x4.ZZZZ=170;Float32x4.ZZZW=234;Float32x4.ZZWX=58;Float32x4.ZZWY=122;Float32x4.ZZWZ=186;Float32x4.ZZWW=250;Float32x4.ZWXX=14;Float32x4.ZWXY=78;Float32x4.ZWXZ=142;Float32x4.ZWXW=206;Float32x4.ZWYX=30;Float32x4.ZWYY=94;Float32x4.ZWYZ=158;Float32x4.ZWYW=222;Float32x4.ZWZX=46;Float32x4.ZWZY=110;Float32x4.ZWZZ=174;Float32x4.ZWZW=238;Float32x4.ZWWX=62;Float32x4.ZWWY=126;Float32x4.ZWWZ=190;Float32x4.ZWWW=254;Float32x4.WXXX=3;Float32x4.WXXY=67;Float32x4.WXXZ=131;Float32x4.WXXW=195;Float32x4.WXYX=19;Float32x4.WXYY=83;Float32x4.WXYZ=147;Float32x4.WXYW=211;Float32x4.WXZX=35;Float32x4.WXZY=99;Float32x4.WXZZ=163;Float32x4.WXZW=227;Float32x4.WXWX=51;Float32x4.WXWY=115;Float32x4.WXWZ=179;Float32x4.WXWW=243;Float32x4.WYXX=7;Float32x4.WYXY=71;Float32x4.WYXZ=135;Float32x4.WYXW=199;Float32x4.WYYX=23;Float32x4.WYYY=87;Float32x4.WYYZ=151;Float32x4.WYYW=215;Float32x4.WYZX=39;Float32x4.WYZY=103;Float32x4.WYZZ=167;Float32x4.WYZW=231;Float32x4.WYWX=55;Float32x4.WYWY=119;Float32x4.WYWZ=183;Float32x4.WYWW=247;Float32x4.WZXX=11;Float32x4.WZXY=75;Float32x4.WZXZ=139;Float32x4.WZXW=203;Float32x4.WZYX=27;Float32x4.WZYY=91;Float32x4.WZYZ=155;Float32x4.WZYW=219;Float32x4.WZZX=43;Float32x4.WZZY=107;Float32x4.WZZZ=171;Float32x4.WZZW=235;Float32x4.WZWX=59;Float32x4.WZWY=123;Float32x4.WZWZ=187;Float32x4.WZWW=251;Float32x4.WWXX=15;Float32x4.WWXY=79;Float32x4.WWXZ=143;Float32x4.WWXW=207;Float32x4.WWYX=31;Float32x4.WWYY=95;Float32x4.WWYZ=159;Float32x4.WWYW=223;Float32x4.WWZX=47;Float32x4.WWZY=111;Float32x4.WWZZ=175;Float32x4.WWZW=239;Float32x4.WWWX=63;Float32x4.WWWY=127;Float32x4.WWWZ=191;Float32x4.WWWW=255;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(Int32x4,{constructors:()=>({bool:[Int32x4,[core.bool,core.bool,core.bool,core.bool]],fromFloat32x4Bits:[Int32x4,[Float32x4]],new:[Int32x4,[core.int,core.int,core.int,core.int]]})});Int32x4.XXXX=0;Int32x4.XXXY=64;Int32x4.XXXZ=128;Int32x4.XXXW=192;Int32x4.XXYX=16;Int32x4.XXYY=80;Int32x4.XXYZ=144;Int32x4.XXYW=208;Int32x4.XXZX=32;Int32x4.XXZY=96;Int32x4.XXZZ=160;Int32x4.XXZW=224;Int32x4.XXWX=48;Int32x4.XXWY=112;Int32x4.XXWZ=176;Int32x4.XXWW=240;Int32x4.XYXX=4;Int32x4.XYXY=68;Int32x4.XYXZ=132;Int32x4.XYXW=196;Int32x4.XYYX=20;Int32x4.XYYY=84;Int32x4.XYYZ=148;Int32x4.XYYW=212;Int32x4.XYZX=36;Int32x4.XYZY=100;Int32x4.XYZZ=164;Int32x4.XYZW=228;Int32x4.XYWX=52;Int32x4.XYWY=116;Int32x4.XYWZ=180;Int32x4.XYWW=244;Int32x4.XZXX=8;Int32x4.XZXY=72;Int32x4.XZXZ=136;Int32x4.XZXW=200;Int32x4.XZYX=24;Int32x4.XZYY=88;Int32x4.XZYZ=152;Int32x4.XZYW=216;Int32x4.XZZX=40;Int32x4.XZZY=104;Int32x4.XZZZ=168;Int32x4.XZZW=232;Int32x4.XZWX=56;Int32x4.XZWY=120;Int32x4.XZWZ=184;Int32x4.XZWW=248;Int32x4.XWXX=12;Int32x4.XWXY=76;Int32x4.XWXZ=140;Int32x4.XWXW=204;Int32x4.XWYX=28;Int32x4.XWYY=92;Int32x4.XWYZ=156;Int32x4.XWYW=220;Int32x4.XWZX=44;Int32x4.XWZY=108;Int32x4.XWZZ=172;Int32x4.XWZW=236;Int32x4.XWWX=60;Int32x4.XWWY=124;Int32x4.XWWZ=188;Int32x4.XWWW=252;Int32x4.YXXX=1;Int32x4.YXXY=65;Int32x4.YXXZ=129;Int32x4.YXXW=193;Int32x4.YXYX=17;Int32x4.YXYY=81;Int32x4.YXYZ=145;Int32x4.YXYW=209;Int32x4.YXZX=33;Int32x4.YXZY=97;Int32x4.YXZZ=161;Int32x4.YXZW=225;Int32x4.YXWX=49;Int32x4.YXWY=113;Int32x4.YXWZ=177;Int32x4.YXWW=241;Int32x4.YYXX=5;Int32x4.YYXY=69;Int32x4.YYXZ=133;Int32x4.YYXW=197;Int32x4.YYYX=21;Int32x4.YYYY=85;Int32x4.YYYZ=149;Int32x4.YYYW=213;Int32x4.YYZX=37;Int32x4.YYZY=101;Int32x4.YYZZ=165;Int32x4.YYZW=229;Int32x4.YYWX=53;Int32x4.YYWY=117;Int32x4.YYWZ=181;Int32x4.YYWW=245;Int32x4.YZXX=9;Int32x4.YZXY=73;Int32x4.YZXZ=137;Int32x4.YZXW=201;Int32x4.YZYX=25;Int32x4.YZYY=89;Int32x4.YZYZ=153;Int32x4.YZYW=217;Int32x4.YZZX=41;Int32x4.YZZY=105;Int32x4.YZZZ=169;Int32x4.YZZW=233;Int32x4.YZWX=57;Int32x4.YZWY=121;Int32x4.YZWZ=185;Int32x4.YZWW=249;Int32x4.YWXX=13;Int32x4.YWXY=77;Int32x4.YWXZ=141;Int32x4.YWXW=205;Int32x4.YWYX=29;Int32x4.YWYY=93;Int32x4.YWYZ=157;Int32x4.YWYW=221;Int32x4.YWZX=45;Int32x4.YWZY=109;Int32x4.YWZZ=173;Int32x4.YWZW=237;Int32x4.YWWX=61;Int32x4.YWWY=125;Int32x4.YWWZ=189;Int32x4.YWWW=253;Int32x4.ZXXX=2;Int32x4.ZXXY=66;Int32x4.ZXXZ=130;Int32x4.ZXXW=194;Int32x4.ZXYX=18;Int32x4.ZXYY=82;Int32x4.ZXYZ=146;Int32x4.ZXYW=210;Int32x4.ZXZX=34;Int32x4.ZXZY=98;Int32x4.ZXZZ=162;Int32x4.ZXZW=226;Int32x4.ZXWX=50;Int32x4.ZXWY=114;Int32x4.ZXWZ=178;Int32x4.ZXWW=242;Int32x4.ZYXX=6;Int32x4.ZYXY=70;Int32x4.ZYXZ=134;Int32x4.ZYXW=198;Int32x4.ZYYX=22;Int32x4.ZYYY=86;Int32x4.ZYYZ=150;Int32x4.ZYYW=214;Int32x4.ZYZX=38;Int32x4.ZYZY=102;Int32x4.ZYZZ=166;Int32x4.ZYZW=230;Int32x4.ZYWX=54;Int32x4.ZYWY=118;Int32x4.ZYWZ=182;Int32x4.ZYWW=246;Int32x4.ZZXX=10;Int32x4.ZZXY=74;Int32x4.ZZXZ=138;Int32x4.ZZXW=202;Int32x4.ZZYX=26;Int32x4.ZZYY=90;Int32x4.ZZYZ=154;Int32x4.ZZYW=218;Int32x4.ZZZX=42;Int32x4.ZZZY=106;Int32x4.ZZZZ=170;Int32x4.ZZZW=234;Int32x4.ZZWX=58;Int32x4.ZZWY=122;Int32x4.ZZWZ=186;Int32x4.ZZWW=250;Int32x4.ZWXX=14;Int32x4.ZWXY=78;Int32x4.ZWXZ=142;Int32x4.ZWXW=206;Int32x4.ZWYX=30;Int32x4.ZWYY=94;Int32x4.ZWYZ=158;Int32x4.ZWYW=222;Int32x4.ZWZX=46;Int32x4.ZWZY=110;Int32x4.ZWZZ=174;Int32x4.ZWZW=238;Int32x4.ZWWX=62;Int32x4.ZWWY=126;Int32x4.ZWWZ=190;Int32x4.ZWWW=254;Int32x4.WXXX=3;Int32x4.WXXY=67;Int32x4.WXXZ=131;Int32x4.WXXW=195;Int32x4.WXYX=19;Int32x4.WXYY=83;Int32x4.WXYZ=147;Int32x4.WXYW=211;Int32x4.WXZX=35;Int32x4.WXZY=99;Int32x4.WXZZ=163;Int32x4.WXZW=227;Int32x4.WXWX=51;Int32x4.WXWY=115;Int32x4.WXWZ=179;Int32x4.WXWW=243;Int32x4.WYXX=7;Int32x4.WYXY=71;Int32x4.WYXZ=135;Int32x4.WYXW=199;Int32x4.WYYX=23;Int32x4.WYYY=87;Int32x4.WYYZ=151;Int32x4.WYYW=215;Int32x4.WYZX=39;Int32x4.WYZY=103;Int32x4.WYZZ=167;Int32x4.WYZW=231;Int32x4.WYWX=55;Int32x4.WYWY=119;Int32x4.WYWZ=183;Int32x4.WYWW=247;Int32x4.WZXX=11;Int32x4.WZXY=75;Int32x4.WZXZ=139;Int32x4.WZXW=203;Int32x4.WZYX=27;Int32x4.WZYY=91;Int32x4.WZYZ=155;Int32x4.WZYW=219;Int32x4.WZZX=43;Int32x4.WZZY=107;Int32x4.WZZZ=171;Int32x4.WZZW=235;Int32x4.WZWX=59;Int32x4.WZWY=123;Int32x4.WZWZ=187;Int32x4.WZWW=251;Int32x4.WWXX=15;Int32x4.WWXY=79;Int32x4.WWXZ=143;Int32x4.WWXW=207;Int32x4.WWYX=31;Int32x4.WWYY=95;Int32x4.WWYZ=159;Int32x4.WWYW=223;Int32x4.WWZX=47;Int32x4.WWZY=111;Int32x4.WWZZ=175;Int32x4.WWZW=239;Int32x4.WWWX=63;Int32x4.WWWY=127;Int32x4.WWWZ=191;Int32x4.WWWW=255;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(Float64x2,{constructors:()=>({fromFloat32x4:[Float64x2,[Float32x4]],new:[Float64x2,[core.double,core.double]],splat:[Float64x2,[core.double]],zero:[Float64x2,[]]})});exports.ByteBuffer=ByteBuffer;exports.TypedData=TypedData;exports.Endianness=Endianness;exports.ByteData=ByteData;exports.Int8List=Int8List;exports.Uint8List=Uint8List;exports.Uint8ClampedList=Uint8ClampedList;exports.Int16List=Int16List;exports.Uint16List=Uint16List;exports.Int32List=Int32List;exports.Uint32List=Uint32List;exports.Int64List=Int64List;exports.Uint64List=Uint64List;exports.Float32List=Float32List;exports.Float64List=Float64List;exports.Float32x4List=Float32x4List;exports.Int32x4List=Int32x4List;exports.Float64x2List=Float64x2List;exports.Float32x4=Float32x4;exports.Int32x4=Int32x4;exports.Float64x2=Float64x2});(function(){try{var f=new Function('"use strict";class C {constructor(x) { this.x = x; };["foo"]() { return x => this.x + x; };bar(args) { return this.foo()(...args); };};return new C(42).bar([100]);');if(f()==142)return;}catch(e){}var message='This script needs EcmaScript 6 features like `class` and `=>`. Please run in a browser with support, for example: chrome --js-flags="--harmony"';console.error(message);alert(message)})();dart_library.library('dom_experimental/dom',window,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class JsName extends core.Object{JsName(opts){let name=opts&&'name'in opts?opts.name:null;this.name=name}};dart.setSignature(JsName,{constructors:()=>({JsName:[JsName,[],{name:core.String}]})});class Overload extends core.Object{Overload(){}};dart.setSignature(Overload,{constructors:()=>({Overload:[Overload,[]]})});let overload=dart.const(new Overload());let PositionErrorCallback=dart.typedef('PositionErrorCallback',()=>dart.functionType(dart.void,[PositionError]));let EventListener=dart.typedef('EventListener',()=>dart.functionType(dart.void,[Event]));let ErrorEventHandler=dart.typedef('ErrorEventHandler',()=>dart.functionType(dart.void,[Event,core.String,core.num,core.num]));let PositionCallback=dart.typedef('PositionCallback',()=>dart.functionType(dart.void,[Position]));let MSLaunchUriCallback=dart.typedef('MSLaunchUriCallback',()=>dart.functionType(dart.void,[]));let MSUnsafeFunctionCallback=dart.typedef('MSUnsafeFunctionCallback',()=>dart.functionType(dart.dynamic,[]));let MediaQueryListListener=dart.typedef('MediaQueryListListener',()=>dart.functionType(dart.void,[MediaQueryList]));let FrameRequestCallback=dart.typedef('FrameRequestCallback',()=>dart.functionType(dart.void,[core.num]));let MSExecAtPriorityFunctionCallback=dart.typedef('MSExecAtPriorityFunctionCallback',()=>dart.functionType(dart.dynamic,[],[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]));let MutationCallback=dart.typedef('MutationCallback',()=>dart.functionType(dart.void,[core.List$(MutationRecord),MutationObserver]));let callbackCallback=dart.typedef('callbackCallback',()=>dart.functionType(dart.dynamic,[core.List$(MutationRecord),MutationObserver]));let ondragendCallback=dart.typedef('ondragendCallback',()=>dart.functionType(dart.dynamic,[DragEvent]));let onkeydownCallback=dart.typedef('onkeydownCallback',()=>dart.functionType(dart.dynamic,[KeyboardEvent]));let onresetCallback=dart.typedef('onresetCallback',()=>dart.functionType(dart.dynamic,[Event]));let onmouseupCallback=dart.typedef('onmouseupCallback',()=>dart.functionType(dart.dynamic,[MouseEvent]));let onblurCallback=dart.typedef('onblurCallback',()=>dart.functionType(dart.dynamic,[FocusEvent]));let onbeforeunloadCallback=dart.typedef('onbeforeunloadCallback',()=>dart.functionType(dart.dynamic,[BeforeUnloadEvent]));let onstorageCallback=dart.typedef('onstorageCallback',()=>dart.functionType(dart.dynamic,[StorageEvent]));let onprogressCallback=dart.typedef('onprogressCallback',()=>dart.functionType(dart.dynamic,[ProgressEvent]));let onabortCallback=dart.typedef('onabortCallback',()=>dart.functionType(dart.dynamic,[UIEvent]));let onmessageCallback=dart.typedef('onmessageCallback',()=>dart.functionType(dart.dynamic,[MessageEvent]));let onmousewheelCallback=dart.typedef('onmousewheelCallback',()=>dart.functionType(dart.dynamic,[MouseWheelEvent]));let onmspointerdownCallback=dart.typedef('onmspointerdownCallback',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let onpopstateCallback=dart.typedef('onpopstateCallback',()=>dart.functionType(dart.dynamic,[PopStateEvent]));let onpageshowCallback=dart.typedef('onpageshowCallback',()=>dart.functionType(dart.dynamic,[PageTransitionEvent]));let ondevicemotionCallback=dart.typedef('ondevicemotionCallback',()=>dart.functionType(dart.dynamic,[DeviceMotionEvent]));let ondeviceorientationCallback=dart.typedef('ondeviceorientationCallback',()=>dart.functionType(dart.dynamic,[DeviceOrientationEvent]));let onpointerenterCallback=dart.typedef('onpointerenterCallback',()=>dart.functionType(dart.dynamic,[PointerEvent]));let onmoveCallback=dart.typedef('onmoveCallback',()=>dart.functionType(dart.dynamic,[MSEventObj]));let onerrorCallback=dart.typedef('onerrorCallback',()=>dart.functionType(dart.dynamic,[ErrorEvent]));let onmsthumbnailclickCallback=dart.typedef('onmsthumbnailclickCallback',()=>dart.functionType(dart.dynamic,[MSSiteModeEvent]));let onmsneedkeyCallback=dart.typedef('onmsneedkeyCallback',()=>dart.functionType(dart.dynamic,[MSMediaKeyNeededEvent]));let oncloseCallback=dart.typedef('oncloseCallback',()=>dart.functionType(dart.dynamic,[CloseEvent]));let onaddtrackCallback=dart.typedef('onaddtrackCallback',()=>dart.functionType(dart.dynamic,[TrackEvent]));let onupgradeneededCallback=dart.typedef('onupgradeneededCallback',()=>dart.functionType(dart.dynamic,[IDBVersionChangeEvent]));exports.JsName=JsName;exports.Overload=Overload;exports.overload=overload;exports.PositionErrorCallback=PositionErrorCallback;exports.EventListener=EventListener;exports.ErrorEventHandler=ErrorEventHandler;exports.PositionCallback=PositionCallback;exports.MSLaunchUriCallback=MSLaunchUriCallback;exports.MSUnsafeFunctionCallback=MSUnsafeFunctionCallback;exports.MediaQueryListListener=MediaQueryListListener;exports.FrameRequestCallback=FrameRequestCallback;exports.MSExecAtPriorityFunctionCallback=MSExecAtPriorityFunctionCallback;exports.MutationCallback=MutationCallback;exports.callbackCallback=callbackCallback;exports.ondragendCallback=ondragendCallback;exports.onkeydownCallback=onkeydownCallback;exports.onresetCallback=onresetCallback;exports.onmouseupCallback=onmouseupCallback;exports.onblurCallback=onblurCallback;exports.onbeforeunloadCallback=onbeforeunloadCallback;exports.onstorageCallback=onstorageCallback;exports.onprogressCallback=onprogressCallback;exports.onabortCallback=onabortCallback;exports.onmessageCallback=onmessageCallback;exports.onmousewheelCallback=onmousewheelCallback;exports.onmspointerdownCallback=onmspointerdownCallback;exports.onpopstateCallback=onpopstateCallback;exports.onpageshowCallback=onpageshowCallback;exports.ondevicemotionCallback=ondevicemotionCallback;exports.ondeviceorientationCallback=ondeviceorientationCallback;exports.onpointerenterCallback=onpointerenterCallback;exports.onmoveCallback=onmoveCallback;exports.onerrorCallback=onerrorCallback;exports.onmsthumbnailclickCallback=onmsthumbnailclickCallback;exports.onmsneedkeyCallback=onmsneedkeyCallback;exports.oncloseCallback=oncloseCallback;exports.onaddtrackCallback=onaddtrackCallback;exports.onupgradeneededCallback=onupgradeneededCallback});dart_library.library('dom_experimental/Intl',Intl,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx}); |