当你在敲击键盘的时候, 出现相应键位的动画特效
// ==UserScript== // @name 敲起来 (dart) // @description 当你在敲击键盘的时候, 出现相应键位的动画特效 // @version 1.1.0 // @author Axetroy // @include * // @grant none // @run-at document-idle // @namespace https://greasyfork.org/zh-CN/users/3400-axetroy // @license The MIT License (MIT); http://opensource.org/licenses/MIT // ==/UserScript== // Github源码: https://github.com/axetroy/type-up // Generated by dart2js, the Dart to JavaScript compiler version: 1.21.1. // The code supports the following hooks: // dartPrint(message): // if this function is defined it is called instead of the Dart [print] // method. // // dartMainRunner(main, args): // if this function is defined, the Dart [main] method will not be invoked // directly. Instead, a closure that will invoke [main], and its arguments // [args] is passed to [dartMainRunner]. // // dartDeferredLibraryLoader(uri, successCallback, errorCallback): // if this function is defined, it will be called when a deferred library // is loaded. It should load and eval the javascript of `uri`, and call // successCallback. If it fails to do so, it should call errorCallback with // an error. // // defaultPackagesBase: // Override the location where `package:` uris are resolved from. By default // they are resolved under "packages/" from the current window location. (function() { // /* ::norenaming:: */ var supportsDirectProtoAccess = function() { var cls = function() { }; cls.prototype = {p: {}}; var object = new cls(); if (!(object.__proto__ && object.__proto__.p === cls.prototype.p)) return false; try { if (typeof navigator != "undefined" && typeof navigator.userAgent == "string" && navigator.userAgent.indexOf("Chrome/") >= 0) return true; if (typeof version == "function" && version.length == 0) { var v = version(); if (/^\d+\.\d+\.\d+\.\d+$/.test(v)) return true; } } catch (_) { } return false; }(); function map(x) { x = Object.create(null); x.x = 0; delete x.x; return x; } // The global objects start as so-called "slow objects". For V8, this // means that it won't try to make map transitions as we add properties // to these objects. Later on, we attempt to turn these objects into // fast objects by calling "convertToFastObject" (see // [emitConvertToFastObjectFunction]). var A = map(); var B = map(); var C = map(); var D = map(); var E = map(); var F = map(); var G = map(); var H = map(); var J = map(); var K = map(); var L = map(); var M = map(); var N = map(); var O = map(); var P = map(); var Q = map(); var R = map(); var S = map(); var T = map(); var U = map(); var V = map(); var W = map(); var X = map(); var Y = map(); var Z = map(); function Isolate() { } init(); // Constructors are generated at runtime. function setupProgram(programData, typesOffset) { "use strict"; function generateAccessor(fieldDescriptor, accessors, cls) { var fieldInformation = fieldDescriptor.split("-"); var field = fieldInformation[0]; var len = field.length; var code = field.charCodeAt(len - 1); var reflectable; if (fieldInformation.length > 1) reflectable = true; else reflectable = false; code = code >= 60 && code <= 64 ? code - 59 : code >= 123 && code <= 126 ? code - 117 : code >= 37 && code <= 43 ? code - 27 : 0; if (code) { var getterCode = code & 3; var setterCode = code >> 2; var accessorName = field = field.substring(0, len - 1); var divider = field.indexOf(":"); if (divider > 0) { accessorName = field.substring(0, divider); field = field.substring(divider + 1); } if (getterCode) { var args = getterCode & 2 ? "receiver" : ""; var receiver = getterCode & 1 ? "this" : "receiver"; var body = "return " + receiver + "." + field; var property = cls + ".prototype.get$" + accessorName + "="; var fn = "function(" + args + "){" + body + "}"; if (reflectable) accessors.push(property + "$reflectable(" + fn + ");\n"); else accessors.push(property + fn + ";\n"); } if (setterCode) { var args = setterCode & 2 ? "receiver, value" : "value"; var receiver = setterCode & 1 ? "this" : "receiver"; var body = receiver + "." + field + " = value"; var property = cls + ".prototype.set$" + accessorName + "="; var fn = "function(" + args + "){" + body + "}"; if (reflectable) accessors.push(property + "$reflectable(" + fn + ");\n"); else accessors.push(property + fn + ";\n"); } } return field; } function defineClass(name, fields) { var accessors = []; var str = "function " + name + "("; var body = ""; var fieldNames = ""; for (var i = 0; i < fields.length; i++) { if (i != 0) str += ", "; var field = generateAccessor(fields[i], accessors, name); fieldNames += "'" + field + "',"; var parameter = "p_" + field; str += parameter; body += "this." + field + " = " + parameter + ";\n"; } if (supportsDirectProtoAccess) body += "this." + "$deferredAction" + "();"; str += ") {\n" + body + "}\n"; str += name + ".builtin$cls=\"" + name + "\";\n"; str += "$desc=$collectedClasses." + name + "[1];\n"; str += name + ".prototype = $desc;\n"; if (typeof defineClass.name != "string") str += name + ".name=\"" + name + "\";\n"; str += name + "." + "$__fields__" + "=[" + fieldNames + "];\n"; str += accessors.join(""); return str; } init.createNewIsolate = function() { return new Isolate(); }; init.classIdExtractor = function(o) { return o.constructor.name; }; init.classFieldsExtractor = function(o) { var fieldNames = o.constructor.$__fields__; if (!fieldNames) return []; var r###lt = []; r###lt.length = fieldNames.length; for (var i = 0; i < fieldNames.length; i++) r###lt[i] = o[fieldNames[i]]; return r###lt; }; init.instanceFromClassId = function(name) { return new init.allClasses[name](); }; init.initializeEmptyInstance = function(name, o, fields) { init.allClasses[name].apply(o, fields); return o; }; var inheritFrom = supportsDirectProtoAccess ? function(constructor, superConstructor) { var prototype = constructor.prototype; prototype.__proto__ = superConstructor.prototype; prototype.constructor = constructor; prototype["$is" + constructor.name] = constructor; return convertToFastObject(prototype); } : function() { function tmp() { } return function(constructor, superConstructor) { tmp.prototype = superConstructor.prototype; var object = new tmp(); convertToSlowObject(object); var properties = constructor.prototype; var members = Object.keys(properties); for (var i = 0; i < members.length; i++) { var member = members[i]; object[member] = properties[member]; } object["$is" + constructor.name] = constructor; object.constructor = constructor; constructor.prototype = object; return object; }; }(); function finishClasses(processedClasses) { var allClasses = init.allClasses; processedClasses.combinedConstructorFunction += "return [\n" + processedClasses.constructorsList.join(",\n ") + "\n]"; var constructors = new Function("$collectedClasses", processedClasses.combinedConstructorFunction)(processedClasses.collected); processedClasses.combinedConstructorFunction = null; for (var i = 0; i < constructors.length; i++) { var constructor = constructors[i]; var cls = constructor.name; var desc = processedClasses.collected[cls]; var globalObject = desc[0]; desc = desc[1]; allClasses[cls] = constructor; globalObject[cls] = constructor; } constructors = null; var finishedClasses = init.finishedClasses; function finishClass(cls) { if (finishedClasses[cls]) return; finishedClasses[cls] = true; var superclass = processedClasses.pending[cls]; if (superclass && superclass.indexOf("+") > 0) { var s = superclass.split("+"); superclass = s[0]; var mixinClass = s[1]; finishClass(mixinClass); var mixin = allClasses[mixinClass]; var mixinPrototype = mixin.prototype; var clsPrototype = allClasses[cls].prototype; var properties = Object.keys(mixinPrototype); for (var i = 0; i < properties.length; i++) { var d = properties[i]; if (!hasOwnProperty.call(clsPrototype, d)) clsPrototype[d] = mixinPrototype[d]; } } if (!superclass || typeof superclass != "string") { var constructor = allClasses[cls]; var prototype = constructor.prototype; prototype.constructor = constructor; prototype.$isObject = constructor; prototype.$deferredAction = function() { }; return; } finishClass(superclass); var superConstructor = allClasses[superclass]; if (!superConstructor) superConstructor = existingIsolateProperties[superclass]; var constructor = allClasses[cls]; var prototype = inheritFrom(constructor, superConstructor); if (mixinPrototype) prototype.$deferredAction = mixinDeferredActionHelper(mixinPrototype, prototype); if (Object.prototype.hasOwnProperty.call(prototype, "%")) { var nativeSpec = prototype["%"].split(";"); if (nativeSpec[0]) { var tags = nativeSpec[0].split("|"); for (var i = 0; i < tags.length; i++) { init.interceptorsByTag[tags[i]] = constructor; init.leafTags[tags[i]] = true; } } if (nativeSpec[1]) { tags = nativeSpec[1].split("|"); if (nativeSpec[2]) { var subclasses = nativeSpec[2].split("|"); for (var i = 0; i < subclasses.length; i++) { var subclass = allClasses[subclasses[i]]; subclass.$nativ###perclassTag = tags[0]; } } for (i = 0; i < tags.length; i++) { init.interceptorsByTag[tags[i]] = constructor; init.leafTags[tags[i]] = false; } } prototype.$deferredAction(); } if (prototype.$isInterceptor) prototype.$deferredAction(); } var properties = Object.keys(processedClasses.pending); for (var i = 0; i < properties.length; i++) finishClass(properties[i]); } function finishAddStubsHelper() { var prototype = this; while (!prototype.hasOwnProperty("$deferredAction")) prototype = prototype.__proto__; delete prototype.$deferredAction; var properties = Object.keys(prototype); for (var index = 0; index < properties.length; index++) { var property = properties[index]; var firstChar = property.charCodeAt(0); var elem; if (property !== "^" && property !== "$reflectable" && firstChar !== 43 && firstChar !== 42 && (elem = prototype[property]) != null && elem.constructor === Array && property !== "<>") addStubs(prototype, elem, property, false, []); } convertToFastObject(prototype); prototype = prototype.__proto__; prototype.$deferredAction(); } function mixinDeferredActionHelper(mixinPrototype, targetPrototype) { var chain; if (targetPrototype.hasOwnProperty("$deferredAction")) chain = targetPrototype.$deferredAction; return function foo() { var prototype = this; while (!prototype.hasOwnProperty("$deferredAction")) prototype = prototype.__proto__; if (chain) prototype.$deferredAction = chain; else { delete prototype.$deferredAction; convertToFastObject(prototype); } mixinPrototype.$deferredAction(); prototype.$deferredAction(); }; } function processClassData(cls, descriptor, processedClasses) { descriptor = convertToSlowObject(descriptor); var previousProperty; var properties = Object.keys(descriptor); var hasDeferredWork = false; var shouldDeferWork = supportsDirectProtoAccess && cls != "Object"; for (var i = 0; i < properties.length; i++) { var property = properties[i]; var firstChar = property.charCodeAt(0); if (property === "static") { processStatics(init.statics[cls] = descriptor.static, processedClasses); delete descriptor.static; } else if (firstChar === 43) { mangledNames[previousProperty] = property.substring(1); var flag = descriptor[property]; if (flag > 0) descriptor[previousProperty].$reflectable = flag; } else if (firstChar === 42) { descriptor[previousProperty].$defaultValues = descriptor[property]; var optionalMethods = descriptor.$methodsWithOptionalArguments; if (!optionalMethods) descriptor.$methodsWithOptionalArguments = optionalMethods = {}; optionalMethods[property] = previousProperty; } else { var elem = descriptor[property]; if (property !== "^" && elem != null && elem.constructor === Array && property !== "<>") if (shouldDeferWork) hasDeferredWork = true; else addStubs(descriptor, elem, property, false, []); else previousProperty = property; } } if (hasDeferredWork) descriptor.$deferredAction = finishAddStubsHelper; var classData = descriptor["^"], split, supr, fields = classData; var s = fields.split(";"); fields = s[1] ? s[1].split(",") : []; supr = s[0]; split = supr.split(":"); if (split.length == 2) { supr = split[0]; var functionSignature = split[1]; if (functionSignature) descriptor.$signature = function(s) { return function() { return init.types[s]; }; }(functionSignature); } if (supr) processedClasses.pending[cls] = supr; processedClasses.combinedConstructorFunction += defineClass(cls, fields); processedClasses.constructorsList.push(cls); processedClasses.collected[cls] = [globalObject, descriptor]; classes.push(cls); } function processStatics(descriptor, processedClasses) { var properties = Object.keys(descriptor); for (var i = 0; i < properties.length; i++) { var property = properties[i]; if (property === "^") continue; var element = descriptor[property]; var firstChar = property.charCodeAt(0); var previousProperty; if (firstChar === 43) { mangledGlobalNames[previousProperty] = property.substring(1); var flag = descriptor[property]; if (flag > 0) descriptor[previousProperty].$reflectable = flag; if (element && element.length) init.typeInformation[previousProperty] = element; } else if (firstChar === 42) { globalObject[previousProperty].$defaultValues = element; var optionalMethods = descriptor.$methodsWithOptionalArguments; if (!optionalMethods) descriptor.$methodsWithOptionalArguments = optionalMethods = {}; optionalMethods[property] = previousProperty; } else if (typeof element === "function") { globalObject[previousProperty = property] = element; functions.push(property); init.globalFunctions[property] = element; } else if (element.constructor === Array) addStubs(globalObject, element, property, true, functions); else { previousProperty = property; processClassData(property, element, processedClasses); } } } function addStubs(prototype, array, name, isStatic, functions) { var index = 0, alias = array[index], f; if (typeof alias == "string") f = array[++index]; else { f = alias; alias = name; } var funcs = [prototype[name] = prototype[alias] = f]; f.$stubName = name; functions.push(name); for (index++; index < array.length; index++) { f = array[index]; if (typeof f != "function") break; if (!isStatic) f.$stubName = array[++index]; funcs.push(f); if (f.$stubName) { prototype[f.$stubName] = f; functions.push(f.$stubName); } } for (var i = 0; i < funcs.length; index++, i++) funcs[i].$callName = array[index]; var getterStubName = array[index]; array = array.slice(++index); var requiredParameterInfo = array[0]; var requiredParameterCount = requiredParameterInfo >> 1; var isAccessor = (requiredParameterInfo & 1) === 1; var isSetter = requiredParameterInfo === 3; var isGetter = requiredParameterInfo === 1; var optionalParameterInfo = array[1]; var optionalParameterCount = optionalParameterInfo >> 1; var optionalParametersAreNamed = (optionalParameterInfo & 1) === 1; var isIntercepted = requiredParameterCount + optionalParameterCount != funcs[0].length; var functionTypeIndex = array[2]; if (typeof functionTypeIndex == "number") array[2] = functionTypeIndex + typesOffset; var unmangledNameIndex = 2 * optionalParameterCount + requiredParameterCount + 3; if (getterStubName) { f = tearOff(funcs, array, isStatic, name, isIntercepted); prototype[name].$getter = f; f.$getterStub = true; if (isStatic) { init.globalFunctions[name] = f; functions.push(getterStubName); } prototype[getterStubName] = f; funcs.push(f); f.$stubName = getterStubName; f.$callName = null; } } function tearOffGetter(funcs, reflectionInfo, name, isIntercepted) { return isIntercepted ? new Function("funcs", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "(x) {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, reflectionInfo, false, [x], name);" + "return new c(this, funcs[0], x, name);" + "}")(funcs, reflectionInfo, name, H, null) : new Function("funcs", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "() {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, reflectionInfo, false, [], name);" + "return new c(this, funcs[0], null, name);" + "}")(funcs, reflectionInfo, name, H, null); } function tearOff(funcs, reflectionInfo, isStatic, name, isIntercepted) { var cache; return isStatic ? function() { if (cache === void 0) cache = H.closureFromTearOff(this, funcs, reflectionInfo, true, [], name).prototype; return cache; } : tearOffGetter(funcs, reflectionInfo, name, isIntercepted); } var functionCounter = 0; if (!init.libraries) init.libraries = []; if (!init.mangledNames) init.mangledNames = map(); if (!init.mangledGlobalNames) init.mangledGlobalNames = map(); if (!init.statics) init.statics = map(); if (!init.typeInformation) init.typeInformation = map(); if (!init.globalFunctions) init.globalFunctions = map(); var libraries = init.libraries; var mangledNames = init.mangledNames; var mangledGlobalNames = init.mangledGlobalNames; var hasOwnProperty = Object.prototype.hasOwnProperty; var length = programData.length; var processedClasses = map(); processedClasses.collected = map(); processedClasses.pending = map(); processedClasses.constructorsList = []; processedClasses.combinedConstructorFunction = "function $reflectable(fn){fn.$reflectable=1;return fn};\n" + "var $desc;\n"; for (var i = 0; i < length; i++) { var data = programData[i]; var name = data[0]; var uri = data[1]; var metadata = data[2]; var globalObject = data[3]; var descriptor = data[4]; var isRoot = !!data[5]; var fields = descriptor && descriptor["^"]; if (fields instanceof Array) fields = fields[0]; var classes = []; var functions = []; processStatics(descriptor, processedClasses); libraries.push([name, uri, classes, functions, metadata, fields, isRoot, globalObject]); } finishClasses(processedClasses); } Isolate.functionThatReturnsNull = function() { }; var dart = [["_foreign_helper", "dart:_foreign_helper",, H, { "^": "", JS_CONST: { "^": "Object;code" } }], ["_interceptors", "dart:_interceptors",, J, { "^": "", getInterceptor: function(object) { return void 0; }, makeDispatchRecord: function(interceptor, proto, extension, indexability) { return {i: interceptor, p: proto, e: extension, x: indexability}; }, getNativeInterceptor: function(object) { var record, proto, objectProto, $constructor, interceptor; record = object[init.dispatchPropertyName]; if (record == null) if ($.initNativeDispatchFlag == null) { H.initNativeDispatch(); record = object[init.dispatchPropertyName]; } if (record != null) { proto = record.p; if (false === proto) return record.i; if (true === proto) return object; objectProto = Object.getPrototypeOf(object); if (proto === objectProto) return record.i; if (record.e === objectProto) throw H.wrapException(new P.UnimplementedError("Return interceptor for " + H.S(proto(object, record)))); } $constructor = object.constructor; interceptor = $constructor == null ? null : $constructor[$.$get$JS_INTEROP_INTERCEPTOR_TAG()]; if (interceptor != null) return interceptor; interceptor = H.lookupAndCacheInterceptor(object); if (interceptor != null) return interceptor; if (typeof object == "function") return C.JavaScriptFunction_methods; proto = Object.getPrototypeOf(object); if (proto == null) return C.PlainJavaScriptObject_methods; if (proto === Object.prototype) return C.PlainJavaScriptObject_methods; if (typeof $constructor == "function") { Object.defineProperty($constructor, $.$get$JS_INTEROP_INTERCEPTOR_TAG(), {value: C.UnknownJavaScriptObject_methods, enumerable: false, writable: true, configurable: true}); return C.UnknownJavaScriptObject_methods; } return C.UnknownJavaScriptObject_methods; }, Interceptor: { "^": "Object;", $eq: function(receiver, other) { return receiver === other; }, get$hashCode: function(receiver) { return H.Primitives_objectHashCode(receiver); }, toString$0: ["super$Interceptor$toString", function(receiver) { return H.Primitives_objectToHumanReadableString(receiver); }], "%": "Blob|DOMError|DOMImplementation|File|FileError|MediaError|MediaKeyError|NavigatorUserMediaError|PositionError|Range|SQLError|SVGAnimatedLength|SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedString" }, JSBool: { "^": "Interceptor;", toString$0: function(receiver) { return String(receiver); }, get$hashCode: function(receiver) { return receiver ? 519018 : 218159; }, $isbool: 1 }, JSNull: { "^": "Interceptor;", $eq: function(receiver, other) { return null == other; }, toString$0: function(receiver) { return "null"; }, get$hashCode: function(receiver) { return 0; } }, JavaScriptObject: { "^": "Interceptor;", get$hashCode: function(receiver) { return 0; }, toString$0: ["super$JavaScriptObject$toString", function(receiver) { return String(receiver); }], $isJSObject: 1 }, PlainJavaScriptObject: { "^": "JavaScriptObject;" }, UnknownJavaScriptObject: { "^": "JavaScriptObject;" }, JavaScriptFunction: { "^": "JavaScriptObject;", toString$0: function(receiver) { var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()]; return dartClosure == null ? this.super$JavaScriptObject$toString(receiver) : J.toString$0$(dartClosure); }, $signature: function() { return {func: 1, opt: [,,,,,,,,,,,,,,,,]}; } }, JSArray: { "^": "Interceptor;$ti", checkMutable$1: function(receiver, reason) { if (!!receiver.immutable$list) throw H.wrapException(new P.UnsupportedError(reason)); }, checkGrowable$1: function(receiver, reason) { if (!!receiver.fixed$length) throw H.wrapException(new P.UnsupportedError(reason)); }, map$1: function(receiver, f) { return new H.MappedListIterable(receiver, f, [null, null]); }, join$1: function(receiver, separator) { var t1, list, i, t2; t1 = receiver.length; list = new Array(t1); list.fixed$length = Array; for (i = 0; i < receiver.length; ++i) { t2 = H.S(receiver[i]); if (i >= t1) return H.ioore(list, i); list[i] = t2; } return list.join(separator); }, elementAt$1: function(receiver, index) { if (index < 0 || index >= receiver.length) return H.ioore(receiver, index); return receiver[index]; }, get$first: function(receiver) { if (receiver.length > 0) return receiver[0]; throw H.wrapException(H.IterableElementError_noElement()); }, setRange$4: function(receiver, start, end, iterable, skipCount) { var $length, i, t1; this.checkMutable$1(receiver, "set range"); P.RangeError_checkValidRange(start, end, receiver.length, null, null, null); $length = end - start; if ($length === 0) return; if (skipCount < 0) H.throwExpression(P.RangeError$range(skipCount, 0, null, "skipCount", null)); if (skipCount + $length > iterable.length) throw H.wrapException(H.IterableElementError_tooFew()); if (skipCount < start) for (i = $length - 1; i >= 0; --i) { t1 = skipCount + i; if (t1 < 0 || t1 >= iterable.length) return H.ioore(iterable, t1); receiver[start + i] = iterable[t1]; } else for (i = 0; i < $length; ++i) { t1 = skipCount + i; if (t1 < 0 || t1 >= iterable.length) return H.ioore(iterable, t1); receiver[start + i] = iterable[t1]; } }, any$1: function(receiver, test) { var end, i; end = receiver.length; for (i = 0; i < end; ++i) { if (test.call$1(receiver[i]) === true) return true; if (receiver.length !== end) throw H.wrapException(new P.ConcurrentModificationError(receiver)); } return false; }, contains$1: function(receiver, other) { var i; for (i = 0; i < receiver.length; ++i) if (J.$eq$(receiver[i], other)) return true; return false; }, toString$0: function(receiver) { return P.IterableBase_iterableToFullString(receiver, "[", "]"); }, get$iterator: function(receiver) { return new J.ArrayIterator(receiver, receiver.length, 0, null); }, get$hashCode: function(receiver) { return H.Primitives_objectHashCode(receiver); }, get$length: function(receiver) { return receiver.length; }, set$length: function(receiver, newLength) { this.checkGrowable$1(receiver, "set length"); if (newLength < 0) throw H.wrapException(P.RangeError$range(newLength, 0, null, "newLength", null)); receiver.length = newLength; }, $index: function(receiver, index) { if (typeof index !== "number" || Math.floor(index) !== index) throw H.wrapException(H.diagnoseIndexError(receiver, index)); if (index >= receiver.length || index < 0) throw H.wrapException(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $indexSet: function(receiver, index, value) { this.checkMutable$1(receiver, "indexed set"); if (typeof index !== "number" || Math.floor(index) !== index) throw H.wrapException(H.diagnoseIndexError(receiver, index)); if (index >= receiver.length || index < 0) throw H.wrapException(H.diagnoseIndexError(receiver, index)); receiver[index] = value; }, $isJSIndexable: 1, $asJSIndexable: Isolate.functionThatReturnsNull, $isList: 1, $asList: null, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: null }, JSUnmodifiableArray: { "^": "JSArray;$ti" }, ArrayIterator: { "^": "Object;__interceptors$_iterable,__interceptors$_length,__interceptors$_index,__interceptors$_current", get$current: function() { return this.__interceptors$_current; }, moveNext$0: function() { var t1, $length, t2; t1 = this.__interceptors$_iterable; $length = t1.length; if (this.__interceptors$_length !== $length) throw H.wrapException(H.throwConcurrentModificationError(t1)); t2 = this.__interceptors$_index; if (t2 >= $length) { this.__interceptors$_current = null; return false; } this.__interceptors$_current = t1[t2]; this.__interceptors$_index = t2 + 1; return true; } }, JSNumber: { "^": "Interceptor;", remainder$1: function(receiver, b) { return receiver % b; }, toRadixString$1: function(receiver, radix) { var r###lt, match, t1, exponent; if (radix < 2 || radix > 36) throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", null)); r###lt = receiver.toString(radix); if (C.JSString_methods.codeUnitAt$1(r###lt, r###lt.length - 1) !== 41) return r###lt; match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(r###lt); if (match == null) H.throwExpression(new P.UnsupportedError("Unexpected toString r###lt: " + r###lt)); t1 = J.getInterceptor$asx(match); r###lt = t1.$index(match, 1); exponent = +t1.$index(match, 3); if (t1.$index(match, 2) != null) { r###lt += t1.$index(match, 2); exponent -= t1.$index(match, 2).length; } return r###lt + C.JSString_methods.$mul("0", exponent); }, toString$0: function(receiver) { if (receiver === 0 && 1 / receiver < 0) return "-0.0"; else return "" + receiver; }, get$hashCode: function(receiver) { return receiver & 0x1FFFFFFF; }, $add: function(receiver, other) { if (typeof other !== "number") throw H.wrapException(H.argumentErrorValue(other)); return receiver + other; }, _tdivFast$1: function(receiver, other) { return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other); }, _tdivSlow$1: function(receiver, other) { var quotient = receiver / other; if (quotient >= -2147483648 && quotient <= 2147483647) return quotient | 0; if (quotient > 0) { if (quotient !== 1 / 0) return Math.floor(quotient); } else if (quotient > -1 / 0) return Math.ceil(quotient); throw H.wrapException(new P.UnsupportedError("R###lt of truncating division is " + H.S(quotient) + ": " + H.S(receiver) + " ~/ " + other)); }, _shrOtherPositive$1: function(receiver, other) { var t1; if (receiver > 0) t1 = other > 31 ? 0 : receiver >>> other; else { t1 = other > 31 ? 31 : other; t1 = receiver >> t1 >>> 0; } return t1; }, $lt: function(receiver, other) { if (typeof other !== "number") throw H.wrapException(H.argumentErrorValue(other)); return receiver < other; }, $isnum: 1 }, JSInt: { "^": "JSNumber;", $isnum: 1, $is$int: 1 }, JSDouble: { "^": "JSNumber;", $isnum: 1 }, JSString: { "^": "Interceptor;", codeUnitAt$1: function(receiver, index) { if (index < 0) throw H.wrapException(H.diagnoseIndexError(receiver, index)); if (index >= receiver.length) throw H.wrapException(H.diagnoseIndexError(receiver, index)); return receiver.charCodeAt(index); }, $add: function(receiver, other) { if (typeof other !== "string") throw H.wrapException(P.ArgumentError$value(other, null, null)); return receiver + other; }, substring$2: function(receiver, startIndex, endIndex) { if (endIndex == null) endIndex = receiver.length; H.checkInt(endIndex); if (startIndex < 0) throw H.wrapException(P.RangeError$value(startIndex, null, null)); if (typeof endIndex !== "number") return H.iae(endIndex); if (startIndex > endIndex) throw H.wrapException(P.RangeError$value(startIndex, null, null)); if (endIndex > receiver.length) throw H.wrapException(P.RangeError$value(endIndex, null, null)); return receiver.substring(startIndex, endIndex); }, substring$1: function($receiver, startIndex) { return this.substring$2($receiver, startIndex, null); }, toLowerCase$0: function(receiver) { return receiver.toLowerCase(); }, $mul: function(receiver, times) { var s, r###lt; if (0 >= times) return ""; if (times === 1 || receiver.length === 0) return receiver; if (times !== times >>> 0) throw H.wrapException(C.C_OutOfMemoryError); for (s = receiver, r###lt = ""; true;) { if ((times & 1) === 1) r###lt = s + r###lt; times = times >>> 1; if (times === 0) break; s += s; } return r###lt; }, contains$2: function(receiver, other, startIndex) { if (startIndex > receiver.length) throw H.wrapException(P.RangeError$range(startIndex, 0, receiver.length, null, null)); return H.stringContainsUnchecked(receiver, other, startIndex); }, toString$0: function(receiver) { return receiver; }, get$hashCode: function(receiver) { var t1, hash, i; for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) { hash = 536870911 & hash + receiver.charCodeAt(i); hash = 536870911 & hash + ((524287 & hash) << 10); hash ^= hash >> 6; } hash = 536870911 & hash + ((67108863 & hash) << 3); hash ^= hash >> 11; return 536870911 & hash + ((16383 & hash) << 15); }, get$length: function(receiver) { return receiver.length; }, $index: function(receiver, index) { if (typeof index !== "number" || Math.floor(index) !== index) throw H.wrapException(H.diagnoseIndexError(receiver, index)); if (index >= receiver.length || index < 0) throw H.wrapException(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isJSIndexable: 1, $asJSIndexable: Isolate.functionThatReturnsNull, $isString: 1 } }], ["dart._internal", "dart:_internal",, H, { "^": "", IterableElementError_noElement: function() { return new P.StateError("No element"); }, IterableElementError_tooMany: function() { return new P.StateError("Too many elements"); }, IterableElementError_tooFew: function() { return new P.StateError("Too few elements"); }, EfficientLengthIterable: { "^": "Iterable;$ti", $asEfficientLengthIterable: null }, ListIterable: { "^": "EfficientLengthIterable;$ti", get$iterator: function(_) { return new H.ListIterator(this, this.get$length(this), 0, null); }, where$1: function(_, test) { return this.super$Iterable$where(0, test); }, map$1: function(_, f) { return new H.MappedListIterable(this, f, [H.getRuntimeTypeArgument(this, "ListIterable", 0), null]); }, toList$1$growable: function(_, growable) { var r###lt, i, t1; r###lt = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "ListIterable", 0)]); C.JSArray_methods.set$length(r###lt, this.get$length(this)); for (i = 0; i < this.get$length(this); ++i) { t1 = this.elementAt$1(0, i); if (i >= r###lt.length) return H.ioore(r###lt, i); r###lt[i] = t1; } return r###lt; }, toList$0: function($receiver) { return this.toList$1$growable($receiver, true); } }, ListIterator: { "^": "Object;_iterable,__internal$_length,_index,__internal$_current", get$current: function() { return this.__internal$_current; }, moveNext$0: function() { var t1, t2, $length, t3; t1 = this._iterable; t2 = J.getInterceptor$asx(t1); $length = t2.get$length(t1); if (this.__internal$_length !== $length) throw H.wrapException(new P.ConcurrentModificationError(t1)); t3 = this._index; if (t3 >= $length) { this.__internal$_current = null; return false; } this.__internal$_current = t2.elementAt$1(t1, t3); ++this._index; return true; } }, MappedIterable: { "^": "Iterable;_iterable,_f,$ti", get$iterator: function(_) { return new H.MappedIterator(null, J.get$iterator$ax(this._iterable), this._f, this.$ti); }, get$length: function(_) { return J.get$length$asx(this._iterable); }, $asIterable: function($S, $T) { return [$T]; }, static: { MappedIterable_MappedIterable: function(iterable, $function, $S, $T) { if (!!J.getInterceptor(iterable).$isEfficientLengthIterable) return new H.EfficientLengthMappedIterable(iterable, $function, [$S, $T]); return new H.MappedIterable(iterable, $function, [$S, $T]); } } }, EfficientLengthMappedIterable: { "^": "MappedIterable;_iterable,_f,$ti", $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function($S, $T) { return [$T]; } }, MappedIterator: { "^": "Iterator;__internal$_current,_iterator,_f,$ti", moveNext$0: function() { var t1 = this._iterator; if (t1.moveNext$0()) { this.__internal$_current = this._f.call$1(t1.get$current()); return true; } this.__internal$_current = null; return false; }, get$current: function() { return this.__internal$_current; } }, MappedListIterable: { "^": "ListIterable;_source,_f,$ti", get$length: function(_) { return J.get$length$asx(this._source); }, elementAt$1: function(_, index) { return this._f.call$1(J.elementAt$1$ax(this._source, index)); }, $asListIterable: function($S, $T) { return [$T]; }, $asEfficientLengthIterable: function($S, $T) { return [$T]; }, $asIterable: function($S, $T) { return [$T]; } }, WhereIterable: { "^": "Iterable;_iterable,_f,$ti", get$iterator: function(_) { return new H.WhereIterator(J.get$iterator$ax(this._iterable), this._f, this.$ti); }, map$1: function(_, f) { return new H.MappedIterable(this, f, [H.getTypeArgumentByIndex(this, 0), null]); } }, WhereIterator: { "^": "Iterator;_iterator,_f,$ti", moveNext$0: function() { var t1, t2; for (t1 = this._iterator, t2 = this._f; t1.moveNext$0();) if (t2.call$1(t1.get$current()) === true) return true; return false; }, get$current: function() { return this._iterator.get$current(); } }, FixedLengthListMixin: { "^": "Object;$ti" } }], ["_isolate_helper", "dart:_isolate_helper",, H, { "^": "", _callInIsolate: function(isolate, $function) { var r###lt = isolate.eval$1($function); if (!init.globalState.currentContext._isExecutingEvent) init.globalState.topEventLoop.run$0(); return r###lt; }, startRootIsolate: function(entry, args) { var t1, t2, t3, t4, t5, rootContext; t1 = {}; t1.args = args; if (args == null) { args = []; t1.args = args; t2 = args; } else t2 = args; if (!J.getInterceptor(t2).$isList) throw H.wrapException(P.ArgumentError$("Arguments to main must be a List: " + H.S(t2))); init.globalState = new H._Manager(0, 0, 1, null, null, null, null, null, null, null, null, null, entry); t2 = init.globalState; t3 = self.window == null; t4 = self.Worker; t5 = t3 && !!self.postMessage; t2.isWorker = t5; t5 = !t5; if (t5) t4 = t4 != null && $.$get$IsolateNatives_thisScript() != null; else t4 = true; t2.supportsWorkers = t4; t2.fromCommandLine = t3 && t5; t2.topEventLoop = new H._EventLoop(P.ListQueue$(null, H._IsolateEvent), 0); t3 = P.$int; t2.isolates = new H.JsLinkedHashMap(0, null, null, null, null, null, 0, [t3, H._IsolateContext]); t2.managers = new H.JsLinkedHashMap(0, null, null, null, null, null, 0, [t3, null]); if (t2.isWorker === true) { t4 = new H._MainManagerStub(); t2.mainManager = t4; self.onmessage = function(f, a) { return function(e) { f(a, e); }; }(H.IsolateNatives__processWorkerMessage, t4); self.dartPrint = self.dartPrint || function(serialize) { return function(object) { if (self.console && self.console.log) self.console.log(object); else self.postMessage(serialize(object)); }; }(H._Manager__serializePrintMessage); } if (init.globalState.isWorker === true) return; t2 = init.globalState.nextIsolateId++; t4 = new H.JsLinkedHashMap(0, null, null, null, null, null, 0, [t3, H.RawReceivePortImpl]); t3 = P.LinkedHashSet_LinkedHashSet(null, null, null, t3); t5 = new H.RawReceivePortImpl(0, null, false); rootContext = new H._IsolateContext(t2, t4, t3, init.createNewIsolate(), t5, new H.CapabilityImpl(H.random64()), new H.CapabilityImpl(H.random64()), false, false, [], P.LinkedHashSet_LinkedHashSet(null, null, null, null), null, null, false, true, P.LinkedHashSet_LinkedHashSet(null, null, null, null)); t3.add$1(0, 0); rootContext._addRegistration$2(0, t5); init.globalState.rootContext = rootContext; init.globalState.currentContext = rootContext; t2 = H.getDynamicRuntimeType(); if (H.buildFunctionType(t2, [t2])._isTest$1(entry)) rootContext.eval$1(new H.startRootIsolate_closure(t1, entry)); else if (H.buildFunctionType(t2, [t2, t2])._isTest$1(entry)) rootContext.eval$1(new H.startRootIsolate_closure0(t1, entry)); else rootContext.eval$1(entry); init.globalState.topEventLoop.run$0(); }, IsolateNatives_computeThisScript: function() { var currentScript = init.currentScript; if (currentScript != null) return String(currentScript.src); if (init.globalState.isWorker === true) return H.IsolateNatives_computeThisScriptFromTrace(); return; }, IsolateNatives_computeThisScriptFromTrace: function() { var stack, matches; stack = new Error().stack; if (stack == null) { stack = function() { try { throw new Error(); } catch (e) { return e.stack; } }(); if (stack == null) throw H.wrapException(new P.UnsupportedError("No stack trace")); } matches = stack.match(new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m")); if (matches != null) return matches[1]; matches = stack.match(new RegExp("^[^@]*@(.*):[0-9]*$", "m")); if (matches != null) return matches[1]; throw H.wrapException(new P.UnsupportedError('Cannot extract URI from "' + H.S(stack) + '"')); }, IsolateNatives__processWorkerMessage: function(sender, e) { var msg, t1, functionName, entryPoint, args, message, isSpawnUri, startPaused, replyTo, t2, t3, t4, context; msg = new H._Deserializer(true, []).deserialize$1(e.data); t1 = J.getInterceptor$asx(msg); switch (t1.$index(msg, "command")) { case "start": init.globalState.currentManagerId = t1.$index(msg, "id"); functionName = t1.$index(msg, "functionName"); entryPoint = functionName == null ? init.globalState.entry : init.globalFunctions[functionName](); args = t1.$index(msg, "args"); message = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, "msg")); isSpawnUri = t1.$index(msg, "isSpawnUri"); startPaused = t1.$index(msg, "startPaused"); replyTo = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, "replyTo")); t1 = init.globalState.nextIsolateId++; t2 = P.$int; t3 = new H.JsLinkedHashMap(0, null, null, null, null, null, 0, [t2, H.RawReceivePortImpl]); t2 = P.LinkedHashSet_LinkedHashSet(null, null, null, t2); t4 = new H.RawReceivePortImpl(0, null, false); context = new H._IsolateContext(t1, t3, t2, init.createNewIsolate(), t4, new H.CapabilityImpl(H.random64()), new H.CapabilityImpl(H.random64()), false, false, [], P.LinkedHashSet_LinkedHashSet(null, null, null, null), null, null, false, true, P.LinkedHashSet_LinkedHashSet(null, null, null, null)); t2.add$1(0, 0); context._addRegistration$2(0, t4); init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(context, new H.IsolateNatives__processWorkerMessage_closure(entryPoint, args, message, isSpawnUri, startPaused, replyTo), "worker-start")); init.globalState.currentContext = context; init.globalState.topEventLoop.run$0(); break; case "spawn-worker": break; case "message": if (t1.$index(msg, "port") != null) J.send$1$x(t1.$index(msg, "port"), t1.$index(msg, "msg")); init.globalState.topEventLoop.run$0(); break; case "close": init.globalState.managers.remove$1(0, $.$get$IsolateNatives_workerIds().$index(0, sender)); sender.terminate(); init.globalState.topEventLoop.run$0(); break; case "log": H.IsolateNatives__log(t1.$index(msg, "msg")); break; case "print": if (init.globalState.isWorker === true) { t1 = init.globalState.mainManager; t2 = P.LinkedHashMap__makeLiteral(["command", "print", "msg", msg]); t2 = new H._Serializer(true, P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6(null, P.$int)).serialize$1(t2); t1.toString; self.postMessage(t2); } else P.print(t1.$index(msg, "msg")); break; case "error": throw H.wrapException(t1.$index(msg, "msg")); } }, IsolateNatives__log: function(msg) { var trace, t1, t2, exception; if (init.globalState.isWorker === true) { t1 = init.globalState.mainManager; t2 = P.LinkedHashMap__makeLiteral(["command", "log", "msg", msg]); t2 = new H._Serializer(true, P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6(null, P.$int)).serialize$1(t2); t1.toString; self.postMessage(t2); } else try { self.console.log(msg); } catch (exception) { H.unwrapException(exception); trace = H.getTraceFromException(exception); throw H.wrapException(P.Exception_Exception(trace)); } }, IsolateNatives__startIsolate: function(topLevel, args, message, isSpawnUri, startPaused, replyTo) { var context, t1, t2, t3; context = init.globalState.currentContext; t1 = context.id; $.Primitives_mirrorFunctionCacheName = $.Primitives_mirrorFunctionCacheName + ("_" + t1); $.Primitives_mirrorInvokeCacheName = $.Primitives_mirrorInvokeCacheName + ("_" + t1); t1 = context.controlPort; t2 = init.globalState.currentContext.id; t3 = context.pauseCapability; J.send$1$x(replyTo, ["spawned", new H._NativeJsSendPort(t1, t2), t3, context.terminateCapability]); t2 = new H.IsolateNatives__startIsolate_runStartFunction(topLevel, args, message, isSpawnUri, context); if (startPaused === true) { context.addPause$2(t3, t3); init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(context, t2, "start isolate")); } else t2.call$0(); }, _clone: function(message) { return new H._Deserializer(true, []).deserialize$1(new H._Serializer(false, P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6(null, P.$int)).serialize$1(message)); }, startRootIsolate_closure: { "^": "Closure:0;_box_0,entry", call$0: function() { this.entry.call$1(this._box_0.args); } }, startRootIsolate_closure0: { "^": "Closure:0;_box_0,entry", call$0: function() { this.entry.call$2(this._box_0.args, null); } }, _Manager: { "^": "Object;nextIsolateId,currentManagerId,nextManagerId,currentContext,rootContext,topEventLoop,fromCommandLine,isWorker,supportsWorkers,isolates,mainManager,managers,entry", static: { _Manager__serializePrintMessage: function(object) { var t1 = P.LinkedHashMap__makeLiteral(["command", "print", "msg", object]); return new H._Serializer(true, P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6(null, P.$int)).serialize$1(t1); } } }, _IsolateContext: { "^": "Object;id,ports,weakPorts,isolateStatics<,controlPort<,pauseCapability,terminateCapability,initialized,isPaused,delayedEvents,pauseTokens,doneHandlers,_scheduledControlEvents,_isExecutingEvent,errorsAreFatal,errorPorts", addPause$2: function(authentification, r###me) { if (!this.pauseCapability.$eq(0, authentification)) return; if (this.pauseTokens.add$1(0, r###me) && !this.isPaused) this.isPaused = true; this._updateGlobalState$0(); }, removePause$1: function(r###me) { var t1, t2, $event, t3, t4, t5; if (!this.isPaused) return; t1 = this.pauseTokens; t1.remove$1(0, r###me); if (t1._collection$_length === 0) { for (t1 = this.delayedEvents; t2 = t1.length, t2 !== 0;) { if (0 >= t2) return H.ioore(t1, -1); $event = t1.pop(); t2 = init.globalState.topEventLoop.events; t3 = t2._head; t4 = t2._table; t5 = t4.length; t3 = (t3 - 1 & t5 - 1) >>> 0; t2._head = t3; if (t3 < 0 || t3 >= t5) return H.ioore(t4, t3); t4[t3] = $event; if (t3 === t2._tail) t2._grow$0(); ++t2._modificationCount; } this.isPaused = false; } this._updateGlobalState$0(); }, addDoneListener$2: function(responsePort, response) { var t1, i, t2; if (this.doneHandlers == null) this.doneHandlers = []; for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers, i < t2.length; i += 2) if (t1.$eq(responsePort, t2[i])) { t1 = this.doneHandlers; t2 = i + 1; if (t2 >= t1.length) return H.ioore(t1, t2); t1[t2] = response; return; } t2.push(responsePort); this.doneHandlers.push(response); }, removeDoneListener$1: function(responsePort) { var t1, i, t2; if (this.doneHandlers == null) return; for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers, i < t2.length; i += 2) if (t1.$eq(responsePort, t2[i])) { t1 = this.doneHandlers; t2 = i + 2; t1.toString; if (typeof t1 !== "object" || t1 === null || !!t1.fixed$length) H.throwExpression(new P.UnsupportedError("removeRange")); P.RangeError_checkValidRange(i, t2, t1.length, null, null, null); t1.splice(i, t2 - i); return; } }, setErrorsFatal$2: function(authentification, errorsAreFatal) { if (!this.terminateCapability.$eq(0, authentification)) return; this.errorsAreFatal = errorsAreFatal; }, handlePing$3: function(responsePort, pingType, response) { var t1 = J.getInterceptor(pingType); if (!t1.$eq(pingType, 0)) t1 = t1.$eq(pingType, 1) && !this._isExecutingEvent; else t1 = true; if (t1) { J.send$1$x(responsePort, response); return; } t1 = this._scheduledControlEvents; if (t1 == null) { t1 = P.ListQueue$(null, null); this._scheduledControlEvents = t1; } t1._add$1(new H._IsolateContext_handlePing_respond(responsePort, response)); }, handleKill$2: function(authentification, priority) { var t1; if (!this.terminateCapability.$eq(0, authentification)) return; t1 = J.getInterceptor(priority); if (!t1.$eq(priority, 0)) t1 = t1.$eq(priority, 1) && !this._isExecutingEvent; else t1 = true; if (t1) { this.kill$0(); return; } t1 = this._scheduledControlEvents; if (t1 == null) { t1 = P.ListQueue$(null, null); this._scheduledControlEvents = t1; } t1._add$1(this.get$kill()); }, handleUncaughtError$2: function(error, stackTrace) { var t1, message, t2; t1 = this.errorPorts; if (t1._collection$_length === 0) { if (this.errorsAreFatal === true && this === init.globalState.rootContext) return; if (self.console && self.console.error) self.console.error(error, stackTrace); else { P.print(error); if (stackTrace != null) P.print(stackTrace); } return; } message = new Array(2); message.fixed$length = Array; message[0] = J.toString$0$(error); message[1] = stackTrace == null ? null : J.toString$0$(stackTrace); for (t2 = new P._LinkedHashSetIterator(t1, t1._collection$_modifications, null, null), t2._collection$_cell = t1._collection$_first; t2.moveNext$0();) J.send$1$x(t2._collection$_current, message); }, eval$1: function(code) { var old, r###lt, oldIsExecutingEvent, e, s, exception, t1; old = init.globalState.currentContext; init.globalState.currentContext = this; $ = this.isolateStatics; r###lt = null; oldIsExecutingEvent = this._isExecutingEvent; this._isExecutingEvent = true; try { r###lt = code.call$0(); } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); this.handleUncaughtError$2(e, s); if (this.errorsAreFatal === true) { this.kill$0(); if (this === init.globalState.rootContext) throw exception; } } finally { this._isExecutingEvent = oldIsExecutingEvent; init.globalState.currentContext = old; if (old != null) $ = old.get$isolateStatics(); if (this._scheduledControlEvents != null) for (; t1 = this._scheduledControlEvents, !t1.get$isEmpty(t1);) this._scheduledControlEvents.removeFirst$0().call$0(); } return r###lt; }, lookup$1: function(portId) { return this.ports.$index(0, portId); }, _addRegistration$2: function(portId, port) { var t1 = this.ports; if (t1.containsKey$1(portId)) throw H.wrapException(P.Exception_Exception("Registry: ports must be registered only once.")); t1.$indexSet(0, portId, port); }, _updateGlobalState$0: function() { var t1 = this.ports; if (t1.get$length(t1) - this.weakPorts._collection$_length > 0 || this.isPaused || !this.initialized) init.globalState.isolates.$indexSet(0, this.id, this); else this.kill$0(); }, kill$0: [function() { var t1, t2, i, responsePort, t3; t1 = this._scheduledControlEvents; if (t1 != null) t1.clear$0(0); for (t1 = this.ports, t2 = t1.get$values(t1), t2 = t2.get$iterator(t2); t2.moveNext$0();) t2.get$current()._close$0(); t1.clear$0(0); this.weakPorts.clear$0(0); init.globalState.isolates.remove$1(0, this.id); this.errorPorts.clear$0(0); if (this.doneHandlers != null) { for (i = 0; t1 = this.doneHandlers, t2 = t1.length, i < t2; i += 2) { responsePort = t1[i]; t3 = i + 1; if (t3 >= t2) return H.ioore(t1, t3); J.send$1$x(responsePort, t1[t3]); } this.doneHandlers = null; } }, "call$0", "get$kill", 0, 0, 1] }, _IsolateContext_handlePing_respond: { "^": "Closure:1;responsePort,response", call$0: function() { J.send$1$x(this.responsePort, this.response); } }, _EventLoop: { "^": "Object;events,_activeJsAsyncCount", dequeue$0: function() { var t1 = this.events; if (t1._head === t1._tail) return; return t1.removeFirst$0(); }, runIteration$0: function() { var $event, t1, t2; $event = this.dequeue$0(); if ($event == null) { if (init.globalState.rootContext != null) if (init.globalState.isolates.containsKey$1(init.globalState.rootContext.id)) if (init.globalState.fromCommandLine === true) { t1 = init.globalState.rootContext.ports; t1 = t1.get$isEmpty(t1); } else t1 = false; else t1 = false; else t1 = false; if (t1) H.throwExpression(P.Exception_Exception("Program exited with open ReceivePorts.")); t1 = init.globalState; if (t1.isWorker === true) { t2 = t1.isolates; t2 = t2.get$isEmpty(t2) && t1.topEventLoop._activeJsAsyncCount === 0; } else t2 = false; if (t2) { t1 = t1.mainManager; t2 = P.LinkedHashMap__makeLiteral(["command", "close"]); t2 = new H._Serializer(true, new P._LinkedIdentityHashMap(0, null, null, null, null, null, 0, [null, P.$int])).serialize$1(t2); t1.toString; self.postMessage(t2); } return false; } $event.process$0(); return true; }, _runHelper$0: function() { if (self.window != null) new H._EventLoop__runHelper_next(this).call$0(); else for (; this.runIteration$0();) ; }, run$0: function() { var e, trace, exception, t1, t2; if (init.globalState.isWorker !== true) this._runHelper$0(); else try { this._runHelper$0(); } catch (exception) { t1 = H.unwrapException(exception); e = t1; trace = H.getTraceFromException(exception); t1 = init.globalState.mainManager; t2 = P.LinkedHashMap__makeLiteral(["command", "error", "msg", H.S(e) + "\n" + H.S(trace)]); t2 = new H._Serializer(true, P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6(null, P.$int)).serialize$1(t2); t1.toString; self.postMessage(t2); } } }, _EventLoop__runHelper_next: { "^": "Closure:1;$this", call$0: function() { if (!this.$this.runIteration$0()) return; P.Timer_Timer(C.Duration_0, this); } }, _IsolateEvent: { "^": "Object;isolate,fn,message", process$0: function() { var t1 = this.isolate; if (t1.isPaused) { t1.delayedEvents.push(this); return; } t1.eval$1(this.fn); } }, _MainManagerStub: { "^": "Object;" }, IsolateNatives__processWorkerMessage_closure: { "^": "Closure:0;entryPoint,args,message,isSpawnUri,startPaused,replyTo", call$0: function() { H.IsolateNatives__startIsolate(this.entryPoint, this.args, this.message, this.isSpawnUri, this.startPaused, this.replyTo); } }, IsolateNatives__startIsolate_runStartFunction: { "^": "Closure:1;topLevel,args,message,isSpawnUri,context", call$0: function() { var t1, t2, t3; t1 = this.context; t1.initialized = true; if (this.isSpawnUri !== true) this.topLevel.call$1(this.message); else { t2 = this.topLevel; t3 = H.getDynamicRuntimeType(); if (H.buildFunctionType(t3, [t3, t3])._isTest$1(t2)) t2.call$2(this.args, this.message); else if (H.buildFunctionType(t3, [t3])._isTest$1(t2)) t2.call$1(this.args); else t2.call$0(); } t1._updateGlobalState$0(); } }, _BaseSendPort: { "^": "Object;" }, _NativeJsSendPort: { "^": "_BaseSendPort;_receivePort,_isolateId", send$1: function(_, message) { var isolate, t1, msg; isolate = init.globalState.isolates.$index(0, this._isolateId); if (isolate == null) return; t1 = this._receivePort; if (t1.get$_isClosed()) return; msg = H._clone(message); if (isolate.get$controlPort() === t1) { t1 = J.getInterceptor$asx(msg); switch (t1.$index(msg, 0)) { case "pause": isolate.addPause$2(t1.$index(msg, 1), t1.$index(msg, 2)); break; case "r###me": isolate.removePause$1(t1.$index(msg, 1)); break; case "add-ondone": isolate.addDoneListener$2(t1.$index(msg, 1), t1.$index(msg, 2)); break; case "remove-ondone": isolate.removeDoneListener$1(t1.$index(msg, 1)); break; case "set-errors-fatal": isolate.setErrorsFatal$2(t1.$index(msg, 1), t1.$index(msg, 2)); break; case "ping": isolate.handlePing$3(t1.$index(msg, 1), t1.$index(msg, 2), t1.$index(msg, 3)); break; case "kill": isolate.handleKill$2(t1.$index(msg, 1), t1.$index(msg, 2)); break; case "getErrors": t1 = t1.$index(msg, 1); isolate.errorPorts.add$1(0, t1); break; case "stopErrors": t1 = t1.$index(msg, 1); isolate.errorPorts.remove$1(0, t1); break; } return; } init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(isolate, new H._NativeJsSendPort_send_closure(this, msg), "receive")); }, $eq: function(_, other) { if (other == null) return false; return other instanceof H._NativeJsSendPort && J.$eq$(this._receivePort, other._receivePort); }, get$hashCode: function(_) { return this._receivePort.get$_id(); } }, _NativeJsSendPort_send_closure: { "^": "Closure:0;$this,msg", call$0: function() { var t1 = this.$this._receivePort; if (!t1.get$_isClosed()) t1.__isolate_helper$_add$1(this.msg); } }, _WorkerSendPort: { "^": "_BaseSendPort;_workerId,_receivePortId,_isolateId", send$1: function(_, message) { var t1, workerMessage, manager; t1 = P.LinkedHashMap__makeLiteral(["command", "message", "port", this, "msg", message]); workerMessage = new H._Serializer(true, P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6(null, P.$int)).serialize$1(t1); if (init.globalState.isWorker === true) { init.globalState.mainManager.toString; self.postMessage(workerMessage); } else { manager = init.globalState.managers.$index(0, this._workerId); if (manager != null) manager.postMessage(workerMessage); } }, $eq: function(_, other) { if (other == null) return false; return other instanceof H._WorkerSendPort && J.$eq$(this._workerId, other._workerId) && J.$eq$(this._isolateId, other._isolateId) && J.$eq$(this._receivePortId, other._receivePortId); }, get$hashCode: function(_) { var t1, t2, t3; t1 = this._workerId; if (typeof t1 !== "number") return t1.$shl(); t2 = this._isolateId; if (typeof t2 !== "number") return t2.$shl(); t3 = this._receivePortId; if (typeof t3 !== "number") return H.iae(t3); return (t1 << 16 ^ t2 << 8 ^ t3) >>> 0; } }, RawReceivePortImpl: { "^": "Object;_id<,_handler,_isClosed<", _close$0: function() { this._isClosed = true; this._handler = null; }, __isolate_helper$_add$1: function(dataEvent) { if (this._isClosed) return; this._handler.call$1(dataEvent); }, $isRawReceivePort: 1 }, TimerImpl: { "^": "Object;_once,_inEventLoop,_handle", TimerImpl$2: function(milliseconds, callback) { var t1, t2; if (milliseconds === 0) t1 = self.setTimeout == null || init.globalState.isWorker === true; else t1 = false; if (t1) { this._handle = 1; t1 = init.globalState.topEventLoop; t2 = init.globalState.currentContext; t1.events._add$1(new H._IsolateEvent(t2, new H.TimerImpl_internalCallback(this, callback), "timer")); this._inEventLoop = true; } else if (self.setTimeout != null) { ++init.globalState.topEventLoop._activeJsAsyncCount; this._handle = self.setTimeout(H.convertDartClosureToJS(new H.TimerImpl_internalCallback0(this, callback), 0), milliseconds); } else throw H.wrapException(new P.UnsupportedError("Timer greater than 0.")); }, static: { TimerImpl$: function(milliseconds, callback) { var t1 = new H.TimerImpl(true, false, null); t1.TimerImpl$2(milliseconds, callback); return t1; } } }, TimerImpl_internalCallback: { "^": "Closure:1;$this,callback", call$0: function() { this.$this._handle = null; this.callback.call$0(); } }, TimerImpl_internalCallback0: { "^": "Closure:1;$this,callback", call$0: function() { this.$this._handle = null; --init.globalState.topEventLoop._activeJsAsyncCount; this.callback.call$0(); } }, CapabilityImpl: { "^": "Object;_id<", get$hashCode: function(_) { var hash = this._id; if (typeof hash !== "number") return hash.$shr(); hash = C.JSNumber_methods._shrOtherPositive$1(hash, 0) ^ C.JSNumber_methods._tdivFast$1(hash, 4294967296); hash = (~hash >>> 0) + (hash << 15 >>> 0) & 4294967295; hash = ((hash ^ hash >>> 12) >>> 0) * 5 & 4294967295; hash = ((hash ^ hash >>> 4) >>> 0) * 2057 & 4294967295; return (hash ^ hash >>> 16) >>> 0; }, $eq: function(_, other) { var t1, t2; if (other == null) return false; if (other === this) return true; if (other instanceof H.CapabilityImpl) { t1 = this._id; t2 = other._id; return t1 == null ? t2 == null : t1 === t2; } return false; } }, _Serializer: { "^": "Object;_serializeSendPorts,serializedObjectIds", serialize$1: [function(x) { var t1, serializationId, serializeTearOff, t2, $name; if (x == null || typeof x === "string" || typeof x === "number" || typeof x === "boolean") return x; t1 = this.serializedObjectIds; serializationId = t1.$index(0, x); if (serializationId != null) return ["ref", serializationId]; t1.$indexSet(0, x, t1.get$length(t1)); t1 = J.getInterceptor(x); if (!!t1.$isNativeByteBuffer) return ["buffer", x]; if (!!t1.$isNativeTypedData) return ["typed", x]; if (!!t1.$isJSIndexable) return this.serializeJSIndexable$1(x); if (!!t1.$isInternalMap) { serializeTearOff = this.get$serialize(); t2 = x.get$keys(); t2 = H.MappedIterable_MappedIterable(t2, serializeTearOff, H.getRuntimeTypeArgument(t2, "Iterable", 0), null); t2 = P.List_List$from(t2, true, H.getRuntimeTypeArgument(t2, "Iterable", 0)); t1 = t1.get$values(x); t1 = H.MappedIterable_MappedIterable(t1, serializeTearOff, H.getRuntimeTypeArgument(t1, "Iterable", 0), null); return ["map", t2, P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "Iterable", 0))]; } if (!!t1.$isJSObject) return this.serializeJSObject$1(x); if (!!t1.$isInterceptor) this.unsupported$1(x); if (!!t1.$isRawReceivePort) this.unsupported$2(x, "RawReceivePorts can't be transmitted:"); if (!!t1.$is_NativeJsSendPort) return this.serializeJsSendPort$1(x); if (!!t1.$is_WorkerSendPort) return this.serializeWorkerSendPort$1(x); if (!!t1.$isClosure) { $name = x.$static_name; if ($name == null) this.unsupported$2(x, "Closures can't be transmitted:"); return ["function", $name]; } if (!!t1.$isCapabilityImpl) return ["capability", x._id]; if (!(x instanceof P.Object)) this.unsupported$1(x); return ["dart", init.classIdExtractor(x), this.serializeArrayInPlace$1(init.classFieldsExtractor(x))]; }, "call$1", "get$serialize", 2, 0, 2], unsupported$2: function(x, message) { throw H.wrapException(new P.UnsupportedError(H.S(message == null ? "Can't transmit:" : message) + " " + H.S(x))); }, unsupported$1: function(x) { return this.unsupported$2(x, null); }, serializeJSIndexable$1: function(indexable) { var serialized = this.serializeArray$1(indexable); if (!!indexable.fixed$length) return ["fixed", serialized]; if (!indexable.fixed$length) return ["extendable", serialized]; if (!indexable.immutable$list) return ["mutable", serialized]; if (indexable.constructor === Array) return ["const", serialized]; this.unsupported$2(indexable, "Can't serialize indexable: "); }, serializeArray$1: function(x) { var serialized, i, t1; serialized = []; C.JSArray_methods.set$length(serialized, x.length); for (i = 0; i < x.length; ++i) { t1 = this.serialize$1(x[i]); if (i >= serialized.length) return H.ioore(serialized, i); serialized[i] = t1; } return serialized; }, serializeArrayInPlace$1: function(x) { var i; for (i = 0; i < x.length; ++i) C.JSArray_methods.$indexSet(x, i, this.serialize$1(x[i])); return x; }, serializeJSObject$1: function(x) { var keys, values, i, t1; if (!!x.constructor && x.constructor !== Object) this.unsupported$2(x, "Only plain JS Objects are supported:"); keys = Object.keys(x); values = []; C.JSArray_methods.set$length(values, keys.length); for (i = 0; i < keys.length; ++i) { t1 = this.serialize$1(x[keys[i]]); if (i >= values.length) return H.ioore(values, i); values[i] = t1; } return ["js-object", keys, values]; }, serializeWorkerSendPort$1: function(x) { if (this._serializeSendPorts) return ["sendport", x._workerId, x._isolateId, x._receivePortId]; return ["raw sendport", x]; }, serializeJsSendPort$1: function(x) { if (this._serializeSendPorts) return ["sendport", init.globalState.currentManagerId, x._isolateId, x._receivePort.get$_id()]; return ["raw sendport", x]; } }, _Deserializer: { "^": "Object;_adjustSendPorts,deserializedObjects", deserialize$1: [function(x) { var serializationId, t1, r###lt, classId, fields, emptyInstance; if (x == null || typeof x === "string" || typeof x === "number" || typeof x === "boolean") return x; if (typeof x !== "object" || x === null || x.constructor !== Array) throw H.wrapException(P.ArgumentError$("Bad serialized message: " + H.S(x))); switch (C.JSArray_methods.get$first(x)) { case "ref": if (1 >= x.length) return H.ioore(x, 1); serializationId = x[1]; t1 = this.deserializedObjects; if (serializationId >>> 0 !== serializationId || serializationId >= t1.length) return H.ioore(t1, serializationId); return t1[serializationId]; case "buffer": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); return r###lt; case "typed": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); return r###lt; case "fixed": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); t1 = H.setRuntimeTypeInfo(this.deserializeArrayInPlace$1(r###lt), [null]); t1.fixed$length = Array; return t1; case "extendable": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); return H.setRuntimeTypeInfo(this.deserializeArrayInPlace$1(r###lt), [null]); case "mutable": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); return this.deserializeArrayInPlace$1(r###lt); case "const": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); t1 = H.setRuntimeTypeInfo(this.deserializeArrayInPlace$1(r###lt), [null]); t1.fixed$length = Array; return t1; case "map": return this.deserializeMap$1(x); case "sendport": return this.deserializeSendPort$1(x); case "raw sendport": if (1 >= x.length) return H.ioore(x, 1); r###lt = x[1]; this.deserializedObjects.push(r###lt); return r###lt; case "js-object": return this.deserializeJSObject$1(x); case "function": if (1 >= x.length) return H.ioore(x, 1); r###lt = init.globalFunctions[x[1]](); this.deserializedObjects.push(r###lt); return r###lt; case "capability": if (1 >= x.length) return H.ioore(x, 1); return new H.CapabilityImpl(x[1]); case "dart": t1 = x.length; if (1 >= t1) return H.ioore(x, 1); classId = x[1]; if (2 >= t1) return H.ioore(x, 2); fields = x[2]; emptyInstance = init.instanceFromClassId(classId); this.deserializedObjects.push(emptyInstance); this.deserializeArrayInPlace$1(fields); return init.initializeEmptyInstance(classId, emptyInstance, fields); default: throw H.wrapException("couldn't deserialize: " + H.S(x)); } }, "call$1", "get$deserialize", 2, 0, 2], deserializeArrayInPlace$1: function(x) { var t1, i, t2; t1 = J.getInterceptor$asx(x); i = 0; while (true) { t2 = t1.get$length(x); if (typeof t2 !== "number") return H.iae(t2); if (!(i < t2)) break; t1.$indexSet(x, i, this.deserialize$1(t1.$index(x, i))); ++i; } return x; }, deserializeMap$1: function(x) { var t1, keys, values, r###lt, t2, i; t1 = x.length; if (1 >= t1) return H.ioore(x, 1); keys = x[1]; if (2 >= t1) return H.ioore(x, 2); values = x[2]; r###lt = P.LinkedHashMap__makeEmpty(); this.deserializedObjects.push(r###lt); keys = J.map$1$ax(keys, this.get$deserialize()).toList$0(0); for (t1 = J.getInterceptor$asx(keys), t2 = J.getInterceptor$asx(values), i = 0; i < t1.get$length(keys); ++i) { if (i >= keys.length) return H.ioore(keys, i); r###lt.$indexSet(0, keys[i], this.deserialize$1(t2.$index(values, i))); } return r###lt; }, deserializeSendPort$1: function(x) { var t1, managerId, isolateId, receivePortId, isolate, receivePort, r###lt; t1 = x.length; if (1 >= t1) return H.ioore(x, 1); managerId = x[1]; if (2 >= t1) return H.ioore(x, 2); isolateId = x[2]; if (3 >= t1) return H.ioore(x, 3); receivePortId = x[3]; if (J.$eq$(managerId, init.globalState.currentManagerId)) { isolate = init.globalState.isolates.$index(0, isolateId); if (isolate == null) return; receivePort = isolate.lookup$1(receivePortId); if (receivePort == null) return; r###lt = new H._NativeJsSendPort(receivePort, isolateId); } else r###lt = new H._WorkerSendPort(managerId, receivePortId, isolateId); this.deserializedObjects.push(r###lt); return r###lt; }, deserializeJSObject$1: function(x) { var t1, keys, values, o, t2, i, t3; t1 = x.length; if (1 >= t1) return H.ioore(x, 1); keys = x[1]; if (2 >= t1) return H.ioore(x, 2); values = x[2]; o = {}; this.deserializedObjects.push(o); t1 = J.getInterceptor$asx(keys); t2 = J.getInterceptor$asx(values); i = 0; while (true) { t3 = t1.get$length(keys); if (typeof t3 !== "number") return H.iae(t3); if (!(i < t3)) break; o[t1.$index(keys, i)] = this.deserialize$1(t2.$index(values, i)); ++i; } return o; } } }], ["_js_helper", "dart:_js_helper",, H, { "^": "", jsConstructorNameToRti: function(constructorName) { return init.getTypeFromName(constructorName); }, getType: function(index) { return init.types[index]; }, isJsIndexable: function(object, record) { var r###lt; if (record != null) { r###lt = record.x; if (r###lt != null) return r###lt; } return !!J.getInterceptor(object).$isJavaScriptIndexingBehavior; }, S: function(value) { var res; if (typeof value === "string") return value; if (typeof value === "number") { if (value !== 0) return "" + value; } else if (true === value) return "true"; else if (false === value) return "false"; else if (value == null) return "null"; res = J.toString$0$(value); if (typeof res !== "string") throw H.wrapException(H.argumentErrorValue(value)); return res; }, Primitives_objectHashCode: function(object) { var hash = object.$identityHash; if (hash == null) { hash = Math.random() * 0x3fffffff | 0; object.$identityHash = hash; } return hash; }, Primitives_objectTypeName: function(object) { var interceptor, interceptorConstructor, interceptorConstructorName, $name, dispatchName, objectConstructor, match, decompiledName; interceptor = J.getInterceptor(object); interceptorConstructor = interceptor.constructor; if (typeof interceptorConstructor == "function") { interceptorConstructorName = interceptorConstructor.name; $name = typeof interceptorConstructorName === "string" ? interceptorConstructorName : null; } else $name = null; if ($name == null || interceptor === C.Interceptor_methods || !!J.getInterceptor(object).$isUnknownJavaScriptObject) { dispatchName = C.JS_CONST_u2C(object); if (dispatchName === "Object") { objectConstructor = object.constructor; if (typeof objectConstructor == "function") { match = String(objectConstructor).match(/^\s*function\s*([\w$]*)\s*\(/); decompiledName = match == null ? null : match[1]; if (typeof decompiledName === "string" && /^\w+$/.test(decompiledName)) $name = decompiledName; } if ($name == null) $name = dispatchName; } else $name = dispatchName; } $name = $name; if ($name.length > 1 && C.JSString_methods.codeUnitAt$1($name, 0) === 36) $name = C.JSString_methods.substring$1($name, 1); return function(str, names) { return str.replace(/[^<,> ]+/g, function(m) { return names[m] || m; }); }($name + H.joinArguments(H.getRuntimeTypeInfo(object), 0, null), init.mangledGlobalNames); }, Primitives_objectToHumanReadableString: function(object) { return "Instance of '" + H.Primitives_objectTypeName(object) + "'"; }, Primitives_getProperty: function(object, key) { if (object == null || typeof object === "boolean" || typeof object === "number" || typeof object === "string") throw H.wrapException(H.argumentErrorValue(object)); return object[key]; }, Primitives_setProperty: function(object, key, value) { if (object == null || typeof object === "boolean" || typeof object === "number" || typeof object === "string") throw H.wrapException(H.argumentErrorValue(object)); object[key] = value; }, iae: function(argument) { throw H.wrapException(H.argumentErrorValue(argument)); }, ioore: function(receiver, index) { if (receiver == null) J.get$length$asx(receiver); throw H.wrapException(H.diagnoseIndexError(receiver, index)); }, diagnoseIndexError: function(indexable, index) { var $length, t1; if (typeof index !== "number" || Math.floor(index) !== index) return new P.ArgumentError(true, index, "index", null); $length = J.get$length$asx(indexable); if (!(index < 0)) { if (typeof $length !== "number") return H.iae($length); t1 = index >= $length; } else t1 = true; if (t1) return P.IndexError$(index, indexable, "index", null, $length); return P.RangeError$value(index, "index", null); }, argumentErrorValue: function(object) { return new P.ArgumentError(true, object, null, null); }, checkInt: function(value) { if (typeof value !== "number" || Math.floor(value) !== value) throw H.wrapException(H.argumentErrorValue(value)); return value; }, wrapException: function(ex) { var wrapper; if (ex == null) ex = new P.NullThrownError(); wrapper = new Error(); wrapper.dartException = ex; if ("defineProperty" in Object) { Object.defineProperty(wrapper, "message", {get: H.toStringWrapper}); wrapper.name = ""; } else wrapper.toString = H.toStringWrapper; return wrapper; }, toStringWrapper: function() { return J.toString$0$(this.dartException); }, throwExpression: function(ex) { throw H.wrapException(ex); }, throwConcurrentModificationError: function(collection) { throw H.wrapException(new P.ConcurrentModificationError(collection)); }, unwrapException: function(ex) { var t1, message, number, ieErrorCode, t2, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match; t1 = new H.unwrapException_saveStackTrace(ex); if (ex == null) return; if (typeof ex !== "object") return ex; if ("dartException" in ex) return t1.call$1(ex.dartException); else if (!("message" in ex)) return ex; message = ex.message; if ("number" in ex && typeof ex.number == "number") { number = ex.number; ieErrorCode = number & 65535; if ((C.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10) switch (ieErrorCode) { case 438: return t1.call$1(H.JsNoSuchMethodError$(H.S(message) + " (Error " + ieErrorCode + ")", null)); case 445: case 5007: t2 = H.S(message) + " (Error " + ieErrorCode + ")"; return t1.call$1(new H.NullError(t2, null)); } } if (ex instanceof TypeError) { nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern(); notClosure = $.$get$TypeErrorDecoder_notClosurePattern(); nullCall = $.$get$TypeErrorDecoder_nullCallPattern(); nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern(); undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern(); undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern(); nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern(); $.$get$TypeErrorDecoder_nullLiteralPropertyPattern(); undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern(); undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyPattern(); match = nsme.matchTypeError$1(message); if (match != null) return t1.call$1(H.JsNoSuchMethodError$(message, match)); else { match = notClosure.matchTypeError$1(message); if (match != null) { match.method = "call"; return t1.call$1(H.JsNoSuchMethodError$(message, match)); } else { match = nullCall.matchTypeError$1(message); if (match == null) { match = nullLiteralCall.matchTypeError$1(message); if (match == null) { match = undefCall.matchTypeError$1(message); if (match == null) { match = undefLiteralCall.matchTypeError$1(message); if (match == null) { match = nullProperty.matchTypeError$1(message); if (match == null) { match = nullLiteralCall.matchTypeError$1(message); if (match == null) { match = undefProperty.matchTypeError$1(message); if (match == null) { match = undefLiteralProperty.matchTypeError$1(message); t2 = match != null; } else t2 = true; } else t2 = true; } else t2 = true; } else t2 = true; } else t2 = true; } else t2 = true; } else t2 = true; if (t2) return t1.call$1(new H.NullError(message, match == null ? null : match.method)); } } return t1.call$1(new H.UnknownJsTypeError(typeof message === "string" ? message : "")); } if (ex instanceof RangeError) { if (typeof message === "string" && message.indexOf("call stack") !== -1) return new P.StackOverflowError(); message = function(ex) { try { return String(ex); } catch (e) { } return null; }(ex); return t1.call$1(new P.ArgumentError(false, null, null, typeof message === "string" ? message.replace(/^RangeError:\s*/, "") : message)); } if (typeof InternalError == "function" && ex instanceof InternalError) if (typeof message === "string" && message === "too much recursion") return new P.StackOverflowError(); return ex; }, getTraceFromException: function(exception) { var trace; if (exception == null) return new H._StackTrace(exception, null); trace = exception.$cachedTrace; if (trace != null) return trace; return exception.$cachedTrace = new H._StackTrace(exception, null); }, objectHashCode: function(object) { if (object == null || typeof object != 'object') return J.get$hashCode$(object); else return H.Primitives_objectHashCode(object); }, fillLiteralMap: function(keyValuePairs, r###lt) { var $length, index, index0, index1; $length = keyValuePairs.length; for (index = 0; index < $length; index = index1) { index0 = index + 1; index1 = index0 + 1; r###lt.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]); } return r###lt; }, invokeClosure: function(closure, isolate, numberOfArguments, arg1, arg2, arg3, arg4) { switch (numberOfArguments) { case 0: return H._callInIsolate(isolate, new H.invokeClosure_closure(closure)); case 1: return H._callInIsolate(isolate, new H.invokeClosure_closure0(closure, arg1)); case 2: return H._callInIsolate(isolate, new H.invokeClosure_closure1(closure, arg1, arg2)); case 3: return H._callInIsolate(isolate, new H.invokeClosure_closure2(closure, arg1, arg2, arg3)); case 4: return H._callInIsolate(isolate, new H.invokeClosure_closure3(closure, arg1, arg2, arg3, arg4)); } throw H.wrapException(P.Exception_Exception("Unsupported number of arguments for wrapped closure")); }, convertDartClosureToJS: function(closure, arity) { var $function; if (closure == null) return; $function = closure.$identity; if (!!$function) return $function; $function = function(closure, arity, context, invoke) { return function(a1, a2, a3, a4) { return invoke(closure, context, arity, a1, a2, a3, a4); }; }(closure, arity, init.globalState.currentContext, H.invokeClosure); closure.$identity = $function; return $function; }, Closure_fromTearOff: function(receiver, functions, reflectionInfo, isStatic, jsArguments, propertyName) { var $function, callName, functionType, $prototype, $constructor, t1, isIntercepted, trampoline, signatureFunction, getReceiver, i, stub, stubCallName, t2; $function = functions[0]; callName = $function.$callName; if (!!J.getInterceptor(reflectionInfo).$isList) { $function.$reflectionInfo = reflectionInfo; functionType = H.ReflectionInfo_ReflectionInfo($function).functionType; } else functionType = reflectionInfo; $prototype = isStatic ? Object.create(new H.StaticClosure().constructor.prototype) : Object.create(new H.BoundClosure(null, null, null, null).constructor.prototype); $prototype.$initialize = $prototype.constructor; if (isStatic) $constructor = function() { this.$initialize(); }; else { t1 = $.Closure_functionCounter; $.Closure_functionCounter = J.$add$ns(t1, 1); t1 = new Function("a,b,c,d" + t1, "this.$initialize(a,b,c,d" + t1 + ")"); $constructor = t1; } $prototype.constructor = $constructor; $constructor.prototype = $prototype; t1 = !isStatic; if (t1) { isIntercepted = jsArguments.length == 1 && true; trampoline = H.Closure_forwardCallTo(receiver, $function, isIntercepted); trampoline.$reflectionInfo = reflectionInfo; } else { $prototype.$static_name = propertyName; trampoline = $function; isIntercepted = false; } if (typeof functionType == "number") signatureFunction = function(getType, t) { return function() { return getType(t); }; }(H.getType, functionType); else if (t1 && typeof functionType == "function") { getReceiver = isIntercepted ? H.BoundClosure_receiverOf : H.BoundClosure_selfOf; signatureFunction = function(f, r) { return function() { return f.apply({$receiver: r(this)}, arguments); }; }(functionType, getReceiver); } else throw H.wrapException("Error in reflectionInfo."); $prototype.$signature = signatureFunction; $prototype[callName] = trampoline; for (t1 = functions.length, i = 1; i < t1; ++i) { stub = functions[i]; stubCallName = stub.$callName; if (stubCallName != null) { t2 = isStatic ? stub : H.Closure_forwardCallTo(receiver, stub, isIntercepted); $prototype[stubCallName] = t2; } } $prototype["call*"] = trampoline; $prototype.$requiredArgCount = $function.$requiredArgCount; $prototype.$defaultValues = $function.$defaultValues; return $constructor; }, Closure_cspForwardCall: function(arity, isSuperCall, stubName, $function) { var getSelf = H.BoundClosure_selfOf; switch (isSuperCall ? -1 : arity) { case 0: return function(n, S) { return function() { return S(this)[n](); }; }(stubName, getSelf); case 1: return function(n, S) { return function(a) { return S(this)[n](a); }; }(stubName, getSelf); case 2: return function(n, S) { return function(a, b) { return S(this)[n](a, b); }; }(stubName, getSelf); case 3: return function(n, S) { return function(a, b, c) { return S(this)[n](a, b, c); }; }(stubName, getSelf); case 4: return function(n, S) { return function(a, b, c, d) { return S(this)[n](a, b, c, d); }; }(stubName, getSelf); case 5: return function(n, S) { return function(a, b, c, d, e) { return S(this)[n](a, b, c, d, e); }; }(stubName, getSelf); default: return function(f, s) { return function() { return f.apply(s(this), arguments); }; }($function, getSelf); } }, Closure_forwardCallTo: function(receiver, $function, isIntercepted) { var stubName, arity, lookedUpFunction, t1, t2, selfName, $arguments; if (isIntercepted) return H.Closure_forwardInterceptedCallTo(receiver, $function); stubName = $function.$stubName; arity = $function.length; lookedUpFunction = receiver[stubName]; t1 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction; t2 = !t1 || arity >= 27; if (t2) return H.Closure_cspForwardCall(arity, !t1, stubName, $function); if (arity === 0) { t1 = $.Closure_functionCounter; $.Closure_functionCounter = J.$add$ns(t1, 1); selfName = "self" + H.S(t1); t1 = "return function(){var " + selfName + " = this."; t2 = $.BoundClosure_selfFieldNameCache; if (t2 == null) { t2 = H.BoundClosure_computeFieldNamed("self"); $.BoundClosure_selfFieldNameCache = t2; } return new Function(t1 + H.S(t2) + ";return " + selfName + "." + H.S(stubName) + "();}")(); } $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join(","); t1 = $.Closure_functionCounter; $.Closure_functionCounter = J.$add$ns(t1, 1); $arguments += H.S(t1); t1 = "return function(" + $arguments + "){return this."; t2 = $.BoundClosure_selfFieldNameCache; if (t2 == null) { t2 = H.BoundClosure_computeFieldNamed("self"); $.BoundClosure_selfFieldNameCache = t2; } return new Function(t1 + H.S(t2) + "." + H.S(stubName) + "(" + $arguments + ");}")(); }, Closure_cspForwardInterceptedCall: function(arity, isSuperCall, $name, $function) { var getSelf, getReceiver; getSelf = H.BoundClosure_selfOf; getReceiver = H.BoundClosure_receiverOf; switch (isSuperCall ? -1 : arity) { case 0: throw H.wrapException(new H.RuntimeError("Intercepted function with no arguments.")); case 1: return function(n, s, r) { return function() { return s(this)[n](r(this)); }; }($name, getSelf, getReceiver); case 2: return function(n, s, r) { return function(a) { return s(this)[n](r(this), a); }; }($name, getSelf, getReceiver); case 3: return function(n, s, r) { return function(a, b) { return s(this)[n](r(this), a, b); }; }($name, getSelf, getReceiver); case 4: return function(n, s, r) { return function(a, b, c) { return s(this)[n](r(this), a, b, c); }; }($name, getSelf, getReceiver); case 5: return function(n, s, r) { return function(a, b, c, d) { return s(this)[n](r(this), a, b, c, d); }; }($name, getSelf, getReceiver); case 6: return function(n, s, r) { return function(a, b, c, d, e) { return s(this)[n](r(this), a, b, c, d, e); }; }($name, getSelf, getReceiver); default: return function(f, s, r, a) { return function() { a = [r(this)]; Array.prototype.push.apply(a, arguments); return f.apply(s(this), a); }; }($function, getSelf, getReceiver); } }, Closure_forwardInterceptedCallTo: function(receiver, $function) { var selfField, t1, stubName, arity, lookedUpFunction, t2, t3, $arguments; selfField = H.BoundClosure_selfFieldName(); t1 = $.BoundClosure_receiverFieldNameCache; if (t1 == null) { t1 = H.BoundClosure_computeFieldNamed("receiver"); $.BoundClosure_receiverFieldNameCache = t1; } stubName = $function.$stubName; arity = $function.length; lookedUpFunction = receiver[stubName]; t2 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction; t3 = !t2 || arity >= 28; if (t3) return H.Closure_cspForwardInterceptedCall(arity, !t2, stubName, $function); if (arity === 1) { t1 = "return function(){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + H.S(t1) + ");"; t2 = $.Closure_functionCounter; $.Closure_functionCounter = J.$add$ns(t2, 1); return new Function(t1 + H.S(t2) + "}")(); } $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).join(","); t1 = "return function(" + $arguments + "){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + H.S(t1) + ", " + $arguments + ");"; t2 = $.Closure_functionCounter; $.Closure_functionCounter = J.$add$ns(t2, 1); return new Function(t1 + H.S(t2) + "}")(); }, closureFromTearOff: function(receiver, functions, reflectionInfo, isStatic, jsArguments, $name) { var t1; functions.fixed$length = Array; if (!!J.getInterceptor(reflectionInfo).$isList) { reflectionInfo.fixed$length = Array; t1 = reflectionInfo; } else t1 = reflectionInfo; return H.Closure_fromTearOff(receiver, functions, t1, !!isStatic, jsArguments, $name); }, throwCyclicInit: function(staticName) { throw H.wrapException(new P.CyclicInitializationError("Cyclic initialization for static " + H.S(staticName))); }, buildFunctionType: function(returnType, parameterTypes, optionalParameterTypes) { return new H.RuntimeFunctionType(returnType, parameterTypes, optionalParameterTypes, null); }, buildInterfaceType: function(rti, typeArguments) { var jsConstructorName = rti.builtin$cls; if (typeArguments == null || typeArguments.length === 0) return new H.RuntimeTypePlain(jsConstructorName); return new H.RuntimeTypeGeneric(jsConstructorName, typeArguments, null); }, getDynamicRuntimeType: function() { return C.C_DynamicRuntimeType; }, random64: function() { return (Math.random() * 0x100000000 >>> 0) + (Math.random() * 0x100000000 >>> 0) * 4294967296; }, getIsolateAffinityTag: function($name) { return init.getIsolateTag($name); }, setRuntimeTypeInfo: function(target, rti) { target.$ti = rti; return target; }, getRuntimeTypeInfo: function(target) { if (target == null) return; return target.$ti; }, getRuntimeTypeArguments: function(target, substitutionName) { return H.substitute(target["$as" + H.S(substitutionName)], H.getRuntimeTypeInfo(target)); }, getRuntimeTypeArgument: function(target, substitutionName, index) { var $arguments = H.getRuntimeTypeArguments(target, substitutionName); return $arguments == null ? null : $arguments[index]; }, getTypeArgumentByIndex: function(target, index) { var rti = H.getRuntimeTypeInfo(target); return rti == null ? null : rti[index]; }, runtimeTypeToString: function(rti, onTypeVariable) { if (rti == null) return "dynamic"; else if (typeof rti === "object" && rti !== null && rti.constructor === Array) return rti[0].builtin$cls + H.joinArguments(rti, 1, onTypeVariable); else if (typeof rti == "function") return rti.builtin$cls; else if (typeof rti === "number" && Math.floor(rti) === rti) return C.JSInt_methods.toString$0(rti); else return; }, joinArguments: function(types, startIndex, onTypeVariable) { var buffer, index, firstArgument, allDynamic, t1, argument; if (types == null) return ""; buffer = new P.StringBuffer(""); for (index = startIndex, firstArgument = true, allDynamic = true, t1 = ""; index < types.length; ++index) { if (firstArgument) firstArgument = false; else buffer._contents = t1 + ", "; argument = types[index]; if (argument != null) allDynamic = false; t1 = buffer._contents += H.S(H.runtimeTypeToString(argument, onTypeVariable)); } return allDynamic ? "" : "<" + buffer.toString$0(0) + ">"; }, substitute: function(substitution, $arguments) { if (substitution == null) return $arguments; substitution = substitution.apply(null, $arguments); if (substitution == null) return; if (typeof substitution === "object" && substitution !== null && substitution.constructor === Array) return substitution; if (typeof substitution == "function") return substitution.apply(null, $arguments); return $arguments; }, ar###btypes: function(s, t) { var len, i; if (s == null || t == null) return true; len = s.length; for (i = 0; i < len; ++i) if (!H.isSubtype(s[i], t[i])) return false; return true; }, computeSignature: function(signature, context, contextName) { return signature.apply(context, H.getRuntimeTypeArguments(context, contextName)); }, isSubtype: function(s, t) { var t1, typeOfS, t2, typeOfT, typeOfTString, substitution; if (s === t) return true; if (s == null || t == null) return true; if ('func' in t) return H.isFunctionSubtype(s, t); if ('func' in s) return t.builtin$cls === "Function"; t1 = typeof s === "object" && s !== null && s.constructor === Array; typeOfS = t1 ? s[0] : s; t2 = typeof t === "object" && t !== null && t.constructor === Array; typeOfT = t2 ? t[0] : t; if (typeOfT !== typeOfS) { typeOfTString = H.runtimeTypeToString(typeOfT, null); if (!('$is' + typeOfTString in typeOfS.prototype)) return false; substitution = typeOfS.prototype["$as" + H.S(typeOfTString)]; } else substitution = null; if (!t1 && substitution == null || !t2) return true; t1 = t1 ? s.slice(1) : null; t2 = t.slice(1); return H.ar###btypes(H.substitute(substitution, t1), t2); }, areAssignable: function(s, t, allowShorter) { var t1, sLength, tLength, i, t2; t1 = t == null; if (t1 && s == null) return true; if (t1) return allowShorter; if (s == null) return false; sLength = s.length; tLength = t.length; if (allowShorter) { if (sLength < tLength) return false; } else if (sLength !== tLength) return false; for (i = 0; i < tLength; ++i) { t1 = s[i]; t2 = t[i]; if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) return false; } return true; }, areAssignableMaps: function(s, t) { var t1, names, i, $name, tType, sType; if (t == null) return true; if (s == null) return false; t1 = Object.getOwnPropertyNames(t); t1.fixed$length = Array; names = t1; for (t1 = names.length, i = 0; i < t1; ++i) { $name = names[i]; if (!Object.hasOwnProperty.call(s, $name)) return false; tType = t[$name]; sType = s[$name]; if (!(H.isSubtype(tType, sType) || H.isSubtype(sType, tType))) return false; } return true; }, isFunctionSubtype: function(s, t) { var sReturnType, tReturnType, sParameterTypes, tParameterTypes, sOptionalParameterTypes, tOptionalParameterTypes, sParametersLen, tParametersLen, sOptionalParametersLen, tOptionalParametersLen, pos, t1, t2, tPos, sPos; if (!('func' in s)) return false; if ("v" in s) { if (!("v" in t) && "ret" in t) return false; } else if (!("v" in t)) { sReturnType = s.ret; tReturnType = t.ret; if (!(H.isSubtype(sReturnType, tReturnType) || H.isSubtype(tReturnType, sReturnType))) return false; } sParameterTypes = s.args; tParameterTypes = t.args; sOptionalParameterTypes = s.opt; tOptionalParameterTypes = t.opt; sParametersLen = sParameterTypes != null ? sParameterTypes.length : 0; tParametersLen = tParameterTypes != null ? tParameterTypes.length : 0; sOptionalParametersLen = sOptionalParameterTypes != null ? sOptionalParameterTypes.length : 0; tOptionalParametersLen = tOptionalParameterTypes != null ? tOptionalParameterTypes.length : 0; if (sParametersLen > tParametersLen) return false; if (sParametersLen + sOptionalParametersLen < tParametersLen + tOptionalParametersLen) return false; if (sParametersLen === tParametersLen) { if (!H.areAssignable(sParameterTypes, tParameterTypes, false)) return false; if (!H.areAssignable(sOptionalParameterTypes, tOptionalParameterTypes, true)) return false; } else { for (pos = 0; pos < sParametersLen; ++pos) { t1 = sParameterTypes[pos]; t2 = tParameterTypes[pos]; if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) return false; } for (tPos = pos, sPos = 0; tPos < tParametersLen; ++sPos, ++tPos) { t1 = sOptionalParameterTypes[sPos]; t2 = tParameterTypes[tPos]; if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) return false; } for (tPos = 0; tPos < tOptionalParametersLen; ++sPos, ++tPos) { t1 = sOptionalParameterTypes[sPos]; t2 = tOptionalParameterTypes[tPos]; if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) return false; } } return H.areAssignableMaps(s.named, t.named); }, toStringForNativeObject: function(obj) { var t1 = $.getTagFunction; return "Instance of " + (t1 == null ? "<Unknown>" : t1.call$1(obj)); }, hashCodeForNativeObject: function(object) { return H.Primitives_objectHashCode(object); }, defineProperty: function(obj, property, value) { Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true}); }, lookupAndCacheInterceptor: function(obj) { var tag, record, interceptor, interceptorClass, mark, t1; tag = $.getTagFunction.call$1(obj); record = $.dispatchRecordsForInstanceTags[tag]; if (record != null) { Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); return record.i; } interceptor = $.interceptorsForUncacheableTags[tag]; if (interceptor != null) return interceptor; interceptorClass = init.interceptorsByTag[tag]; if (interceptorClass == null) { tag = $.alternateTagFunction.call$2(obj, tag); if (tag != null) { record = $.dispatchRecordsForInstanceTags[tag]; if (record != null) { Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); return record.i; } interceptor = $.interceptorsForUncacheableTags[tag]; if (interceptor != null) return interceptor; interceptorClass = init.interceptorsByTag[tag]; } } if (interceptorClass == null) return; interceptor = interceptorClass.prototype; mark = tag[0]; if (mark === "!") { record = H.makeLeafDispatchRecord(interceptor); $.dispatchRecordsForInstanceTags[tag] = record; Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); return record.i; } if (mark === "~") { $.interceptorsForUncacheableTags[tag] = interceptor; return interceptor; } if (mark === "-") { t1 = H.makeLeafDispatchRecord(interceptor); Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); return t1.i; } if (mark === "+") return H.patchInteriorProto(obj, interceptor); if (mark === "*") throw H.wrapException(new P.UnimplementedError(tag)); if (init.leafTags[tag] === true) { t1 = H.makeLeafDispatchRecord(interceptor); Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); return t1.i; } else return H.patchInteriorProto(obj, interceptor); }, patchInteriorProto: function(obj, interceptor) { var proto = Object.getPrototypeOf(obj); Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDispatchRecord(interceptor, proto, null, null), enumerable: false, writable: true, configurable: true}); return interceptor; }, makeLeafDispatchRecord: function(interceptor) { return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); }, makeDefaultDispatchRecord: function(tag, interceptorClass, proto) { var interceptor = interceptorClass.prototype; if (init.leafTags[tag] === true) return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); else return J.makeDispatchRecord(interceptor, proto, null, null); }, initNativeDispatch: function() { if (true === $.initNativeDispatchFlag) return; $.initNativeDispatchFlag = true; H.initNativeDispatchContinue(); }, initNativeDispatchContinue: function() { var map, tags, fun, i, tag, proto, record, interceptorClass; $.dispatchRecordsForInstanceTags = Object.create(null); $.interceptorsForUncacheableTags = Object.create(null); H.initHooks(); map = init.interceptorsByTag; tags = Object.getOwnPropertyNames(map); if (typeof window != "undefined") { window; fun = function() { }; for (i = 0; i < tags.length; ++i) { tag = tags[i]; proto = $.prototypeForTagFunction.call$1(tag); if (proto != null) { record = H.makeDefaultDispatchRecord(tag, map[tag], proto); if (record != null) { Object.defineProperty(proto, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); fun.prototype = proto; } } } } for (i = 0; i < tags.length; ++i) { tag = tags[i]; if (/^[A-Za-z_]/.test(tag)) { interceptorClass = map[tag]; map["!" + tag] = interceptorClass; map["~" + tag] = interceptorClass; map["-" + tag] = interceptorClass; map["+" + tag] = interceptorClass; map["*" + tag] = interceptorClass; } } }, initHooks: function() { var hooks, transformers, i, transformer, getTag, getUnknownTag, prototypeForTag; hooks = C.JS_CONST_bDt(); hooks = H.applyHooksTransformer(C.JS_CONST_0, H.applyHooksTransformer(C.JS_CONST_rr7, H.applyHooksTransformer(C.JS_CONST_Fs4, H.applyHooksTransformer(C.JS_CONST_Fs4, H.applyHooksTransformer(C.JS_CONST_gkc, H.applyHooksTransformer(C.JS_CONST_4hp, H.applyHooksTransformer(C.JS_CONST_QJm(C.JS_CONST_u2C), hooks))))))); if (typeof dartNativeDispatchHooksTransformer != "undefined") { transformers = dartNativeDispatchHooksTransformer; if (typeof transformers == "function") transformers = [transformers]; if (transformers.constructor == Array) for (i = 0; i < transformers.length; ++i) { transformer = transformers[i]; if (typeof transformer == "function") hooks = transformer(hooks) || hooks; } } getTag = hooks.getTag; getUnknownTag = hooks.getUnknownTag; prototypeForTag = hooks.prototypeForTag; $.getTagFunction = new H.initHooks_closure(getTag); $.alternateTagFunction = new H.initHooks_closure0(getUnknownTag); $.prototypeForTagFunction = new H.initHooks_closure1(prototypeForTag); }, applyHooksTransformer: function(transformer, hooks) { return transformer(hooks) || hooks; }, stringContainsUnchecked: function(receiver, other, startIndex) { return receiver.indexOf(other, startIndex) >= 0; }, ReflectionInfo: { "^": "Object;jsFunction,data,isAccessor,requiredParameterCount,optionalParameterCount,areOptionalParametersNamed,functionType,cachedSortedIndices", static: { ReflectionInfo_ReflectionInfo: function(jsFunction) { var data, requiredParametersInfo, optionalParametersInfo; data = jsFunction.$reflectionInfo; if (data == null) return; data.fixed$length = Array; data = data; requiredParametersInfo = data[0]; optionalParametersInfo = data[1]; return new H.ReflectionInfo(jsFunction, data, (requiredParametersInfo & 1) === 1, requiredParametersInfo >> 1, optionalParametersInfo >> 1, (optionalParametersInfo & 1) === 1, data[2], null); } } }, TypeErrorDecoder: { "^": "Object;_pattern,_arguments,_argumentsExpr,_expr,_method,_receiver", matchTypeError$1: function(message) { var match, r###lt, t1; match = new RegExp(this._pattern).exec(message); if (match == null) return; r###lt = Object.create(null); t1 = this._arguments; if (t1 !== -1) r###lt.arguments = match[t1 + 1]; t1 = this._argumentsExpr; if (t1 !== -1) r###lt.argumentsExpr = match[t1 + 1]; t1 = this._expr; if (t1 !== -1) r###lt.expr = match[t1 + 1]; t1 = this._method; if (t1 !== -1) r###lt.method = match[t1 + 1]; t1 = this._receiver; if (t1 !== -1) r###lt.receiver = match[t1 + 1]; return r###lt; }, static: { TypeErrorDecoder_extractPattern: function(message) { var match, $arguments, argumentsExpr, expr, method, receiver; message = message.replace(String({}), '$receiver$').replace(/[[\]{}()*+?.\\^$|]/g, "\\$&"); match = message.match(/\\\$[a-zA-Z]+\\\$/g); if (match == null) match = []; $arguments = match.indexOf("\\$arguments\\$"); argumentsExpr = match.indexOf("\\$argumentsExpr\\$"); expr = match.indexOf("\\$expr\\$"); method = match.indexOf("\\$method\\$"); receiver = match.indexOf("\\$receiver\\$"); return new H.TypeErrorDecoder(message.replace(new RegExp('\\\\\\$arguments\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$argumentsExpr\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$expr\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$method\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$receiver\\\\\\$', 'g'), '((?:x|[^x])*)'), $arguments, argumentsExpr, expr, method, receiver); }, TypeErrorDecoder_provokeCallErrorOn: function(expression) { return function($expr$) { var $argumentsExpr$ = '$arguments$'; try { $expr$.$method$($argumentsExpr$); } catch (e) { return e.message; } }(expression); }, TypeErrorDecoder_provokePropertyErrorOn: function(expression) { return function($expr$) { try { $expr$.$method$; } catch (e) { return e.message; } }(expression); } } }, NullError: { "^": "Error;_message,_method", toString$0: function(_) { var t1 = this._method; if (t1 == null) return "NullError: " + H.S(this._message); return "NullError: method not found: '" + H.S(t1) + "' on null"; } }, JsNoSuchMethodError: { "^": "Error;_message,_method,_receiver", toString$0: function(_) { var t1, t2; t1 = this._method; if (t1 == null) return "NoSuchMethodError: " + H.S(this._message); t2 = this._receiver; if (t2 == null) return "NoSuchMethodError: method not found: '" + H.S(t1) + "' (" + H.S(this._message) + ")"; return "NoSuchMethodError: method not found: '" + H.S(t1) + "' on '" + H.S(t2) + "' (" + H.S(this._message) + ")"; }, static: { JsNoSuchMethodError$: function(_message, match) { var t1, t2; t1 = match == null; t2 = t1 ? null : match.method; return new H.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver); } } }, UnknownJsTypeError: { "^": "Error;_message", toString$0: function(_) { var t1 = this._message; return t1.length === 0 ? "Error" : "Error: " + t1; } }, unwrapException_saveStackTrace: { "^": "Closure:2;ex", call$1: function(error) { if (!!J.getInterceptor(error).$isError) if (error.$thrownJsError == null) error.$thrownJsError = this.ex; return error; } }, _StackTrace: { "^": "Object;_exception,_trace", toString$0: function(_) { var t1, trace; t1 = this._trace; if (t1 != null) return t1; t1 = this._exception; trace = t1 !== null && typeof t1 === "object" ? t1.stack : null; t1 = trace == null ? "" : trace; this._trace = t1; return t1; } }, invokeClosure_closure: { "^": "Closure:0;closure", call$0: function() { return this.closure.call$0(); } }, invokeClosure_closure0: { "^": "Closure:0;closure,arg1", call$0: function() { return this.closure.call$1(this.arg1); } }, invokeClosure_closure1: { "^": "Closure:0;closure,arg1,arg2", call$0: function() { return this.closure.call$2(this.arg1, this.arg2); } }, invokeClosure_closure2: { "^": "Closure:0;closure,arg1,arg2,arg3", call$0: function() { return this.closure.call$3(this.arg1, this.arg2, this.arg3); } }, invokeClosure_closure3: { "^": "Closure:0;closure,arg1,arg2,arg3,arg4", call$0: function() { return this.closure.call$4(this.arg1, this.arg2, this.arg3, this.arg4); } }, Closure: { "^": "Object;", toString$0: function(_) { return "Closure '" + H.Primitives_objectTypeName(this) + "'"; }, get$$call: function() { return this; }, get$$call: function() { return this; } }, TearOffClosure: { "^": "Closure;" }, StaticClosure: { "^": "TearOffClosure;", toString$0: function(_) { var $name = this.$static_name; if ($name == null) return "Closure of unknown static method"; return "Closure '" + $name + "'"; } }, BoundClosure: { "^": "TearOffClosure;_self,_target,_receiver,_name", $eq: function(_, other) { if (other == null) return false; if (this === other) return true; if (!(other instanceof H.BoundClosure)) return false; return this._self === other._self && this._target === other._target && this._receiver === other._receiver; }, get$hashCode: function(_) { var t1, receiverHashCode; t1 = this._receiver; if (t1 == null) receiverHashCode = H.Primitives_objectHashCode(this._self); else receiverHashCode = typeof t1 !== "object" ? J.get$hashCode$(t1) : H.Primitives_objectHashCode(t1); t1 = H.Primitives_objectHashCode(this._target); if (typeof receiverHashCode !== "number") return receiverHashCode.$xor(); return (receiverHashCode ^ t1) >>> 0; }, toString$0: function(_) { var receiver = this._receiver; if (receiver == null) receiver = this._self; return "Closure '" + H.S(this._name) + "' of " + H.Primitives_objectToHumanReadableString(receiver); }, static: { BoundClosure_selfOf: function(closure) { return closure._self; }, BoundClosure_receiverOf: function(closure) { return closure._receiver; }, BoundClosure_selfFieldName: function() { var t1 = $.BoundClosure_selfFieldNameCache; if (t1 == null) { t1 = H.BoundClosure_computeFieldNamed("self"); $.BoundClosure_selfFieldNameCache = t1; } return t1; }, BoundClosure_computeFieldNamed: function(fieldName) { var template, t1, names, i, $name; template = new H.BoundClosure("self", "target", "receiver", "name"); t1 = Object.getOwnPropertyNames(template); t1.fixed$length = Array; names = t1; for (t1 = names.length, i = 0; i < t1; ++i) { $name = names[i]; if (template[$name] === fieldName) return $name; } } } }, RuntimeError: { "^": "Error;message", toString$0: function(_) { return "RuntimeError: " + H.S(this.message); } }, RuntimeType: { "^": "Object;" }, RuntimeFunctionType: { "^": "RuntimeType;returnType,parameterTypes,optionalParameterTypes,namedParameters", _isTest$1: function(expression) { var functionTypeObject = this._extractFunctionTypeObjectFrom$1(expression); return functionTypeObject == null ? false : H.isFunctionSubtype(functionTypeObject, this.toRti$0()); }, _extractFunctionTypeObjectFrom$1: function(o) { var interceptor = J.getInterceptor(o); return "$signature" in interceptor ? interceptor.$signature() : null; }, toRti$0: function() { var r###lt, t1, t2, namedRti, keys, i, $name; r###lt = {func: "dynafunc"}; t1 = this.returnType; t2 = J.getInterceptor(t1); if (!!t2.$isVoidRuntimeType) r###lt.v = true; else if (!t2.$isDynamicRuntimeType) r###lt.ret = t1.toRti$0(); t1 = this.parameterTypes; if (t1 != null && t1.length !== 0) r###lt.args = H.RuntimeFunctionType_listToRti(t1); t1 = this.optionalParameterTypes; if (t1 != null && t1.length !== 0) r###lt.opt = H.RuntimeFunctionType_listToRti(t1); t1 = this.namedParameters; if (t1 != null) { namedRti = Object.create(null); keys = H.extractKeys(t1); for (t2 = keys.length, i = 0; i < t2; ++i) { $name = keys[i]; namedRti[$name] = t1[$name].toRti$0(); } r###lt.named = namedRti; } return r###lt; }, toString$0: function(_) { var t1, t2, r###lt, needsComma, i, type, keys, $name; t1 = this.parameterTypes; if (t1 != null) for (t2 = t1.length, r###lt = "(", needsComma = false, i = 0; i < t2; ++i, needsComma = true) { type = t1[i]; if (needsComma) r###lt += ", "; r###lt += H.S(type); } else { r###lt = "("; needsComma = false; } t1 = this.optionalParameterTypes; if (t1 != null && t1.length !== 0) { r###lt = (needsComma ? r###lt + ", " : r###lt) + "["; for (t2 = t1.length, needsComma = false, i = 0; i < t2; ++i, needsComma = true) { type = t1[i]; if (needsComma) r###lt += ", "; r###lt += H.S(type); } r###lt += "]"; } else { t1 = this.namedParameters; if (t1 != null) { r###lt = (needsComma ? r###lt + ", " : r###lt) + "{"; keys = H.extractKeys(t1); for (t2 = keys.length, needsComma = false, i = 0; i < t2; ++i, needsComma = true) { $name = keys[i]; if (needsComma) r###lt += ", "; r###lt += H.S(t1[$name].toRti$0()) + " " + $name; } r###lt += "}"; } } return r###lt + (") -> " + H.S(this.returnType)); }, static: { RuntimeFunctionType_listToRti: function(list) { var r###lt, t1, i; list = list; r###lt = []; for (t1 = list.length, i = 0; i < t1; ++i) r###lt.push(list[i].toRti$0()); return r###lt; } } }, DynamicRuntimeType: { "^": "RuntimeType;", toString$0: function(_) { return "dynamic"; }, toRti$0: function() { return; } }, RuntimeTypePlain: { "^": "RuntimeType;_jsConstructorName", toRti$0: function() { var t1, rti; t1 = this._jsConstructorName; rti = H.jsConstructorNameToRti(t1); if (rti == null) throw H.wrapException("no type for '" + t1 + "'"); return rti; }, toString$0: function(_) { return this._jsConstructorName; } }, RuntimeTypeGeneric: { "^": "RuntimeType;_jsConstructorName,$arguments,rti", toRti$0: function() { var t1, r###lt, t2, _i; t1 = this.rti; if (t1 != null) return t1; t1 = this._jsConstructorName; r###lt = [H.jsConstructorNameToRti(t1)]; if (0 >= r###lt.length) return H.ioore(r###lt, 0); if (r###lt[0] == null) throw H.wrapException("no type for '" + t1 + "<...>'"); for (t1 = this.$arguments, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) r###lt.push(t1[_i].toRti$0()); this.rti = r###lt; return r###lt; }, toString$0: function(_) { var t1 = this.$arguments; return this._jsConstructorName + "<" + (t1 && C.JSArray_methods).join$1(t1, ", ") + ">"; } }, JsLinkedHashMap: { "^": "Object;_length,_strings,_nums,_rest,_first,_last,_modifications,$ti", get$length: function(_) { return this._length; }, get$isEmpty: function(_) { return this._length === 0; }, get$keys: function() { return new H.LinkedHashMapKeyIterable(this, [H.getTypeArgumentByIndex(this, 0)]); }, get$values: function(_) { return H.MappedIterable_MappedIterable(this.get$keys(), new H.JsLinkedHashMap_values_closure(this), H.getTypeArgumentByIndex(this, 0), H.getTypeArgumentByIndex(this, 1)); }, containsKey$1: function(key) { var nums; if ((key & 0x3ffffff) === key) { nums = this._nums; if (nums == null) return false; return this._containsTableEntry$2(nums, key); } else return this.internalContainsKey$1(key); }, internalContainsKey$1: function(key) { var rest = this._rest; if (rest == null) return false; return this.internalFindBucketIndex$2(this._getTableBucket$2(rest, this.internalComputeHashCode$1(key)), key) >= 0; }, $index: function(_, key) { var strings, cell, nums; if (typeof key === "string") { strings = this._strings; if (strings == null) return; cell = this._getTableCell$2(strings, key); return cell == null ? null : cell.get$hashMapCellValue(); } else if (typeof key === "number" && (key & 0x3ffffff) === key) { nums = this._nums; if (nums == null) return; cell = this._getTableCell$2(nums, key); return cell == null ? null : cell.get$hashMapCellValue(); } else return this.internalGet$1(key); }, internalGet$1: function(key) { var rest, bucket, index; rest = this._rest; if (rest == null) return; bucket = this._getTableBucket$2(rest, this.internalComputeHashCode$1(key)); index = this.internalFindBucketIndex$2(bucket, key); if (index < 0) return; return bucket[index].get$hashMapCellValue(); }, $indexSet: function(_, key, value) { var strings, nums, rest, hash, bucket, index; if (typeof key === "string") { strings = this._strings; if (strings == null) { strings = this._newHashTable$0(); this._strings = strings; } this._addHashTableEntry$3(strings, key, value); } else if (typeof key === "number" && (key & 0x3ffffff) === key) { nums = this._nums; if (nums == null) { nums = this._newHashTable$0(); this._nums = nums; } this._addHashTableEntry$3(nums, key, value); } else { rest = this._rest; if (rest == null) { rest = this._newHashTable$0(); this._rest = rest; } hash = this.internalComputeHashCode$1(key); bucket = this._getTableBucket$2(rest, hash); if (bucket == null) this._setTableEntry$3(rest, hash, [this._newLinkedCell$2(key, value)]); else { index = this.internalFindBucketIndex$2(bucket, key); if (index >= 0) bucket[index].set$hashMapCellValue(value); else bucket.push(this._newLinkedCell$2(key, value)); } } }, remove$1: function(_, key) { if (typeof key === "string") return this._removeHashTableEntry$2(this._strings, key); else if (typeof key === "number" && (key & 0x3ffffff) === key) return this._removeHashTableEntry$2(this._nums, key); else return this.internalRemove$1(key); }, internalRemove$1: function(key) { var rest, bucket, index, cell; rest = this._rest; if (rest == null) return; bucket = this._getTableBucket$2(rest, this.internalComputeHashCode$1(key)); index = this.internalFindBucketIndex$2(bucket, key); if (index < 0) return; cell = bucket.splice(index, 1)[0]; this._unlinkCell$1(cell); return cell.get$hashMapCellValue(); }, clear$0: function(_) { if (this._length > 0) { this._last = null; this._first = null; this._rest = null; this._nums = null; this._strings = null; this._length = 0; this._modifications = this._modifications + 1 & 67108863; } }, forEach$1: function(_, action) { var cell, modifications; cell = this._first; modifications = this._modifications; for (; cell != null;) { action.call$2(cell.hashMapCellKey, cell.hashMapCellValue); if (modifications !== this._modifications) throw H.wrapException(new P.ConcurrentModificationError(this)); cell = cell._next; } }, _addHashTableEntry$3: function(table, key, value) { var cell = this._getTableCell$2(table, key); if (cell == null) this._setTableEntry$3(table, key, this._newLinkedCell$2(key, value)); else cell.set$hashMapCellValue(value); }, _removeHashTableEntry$2: function(table, key) { var cell; if (table == null) return; cell = this._getTableCell$2(table, key); if (cell == null) return; this._unlinkCell$1(cell); this._deleteTableEntry$2(table, key); return cell.get$hashMapCellValue(); }, _newLinkedCell$2: function(key, value) { var cell, last; cell = new H.LinkedHashMapCell(key, value, null, null); if (this._first == null) { this._last = cell; this._first = cell; } else { last = this._last; cell._previous = last; last._next = cell; this._last = cell; } ++this._length; this._modifications = this._modifications + 1 & 67108863; return cell; }, _unlinkCell$1: function(cell) { var previous, next; previous = cell.get$_previous(); next = cell._next; if (previous == null) this._first = next; else previous._next = next; if (next == null) this._last = previous; else next._previous = previous; --this._length; this._modifications = this._modifications + 1 & 67108863; }, internalComputeHashCode$1: function(key) { return J.get$hashCode$(key) & 0x3ffffff; }, internalFindBucketIndex$2: function(bucket, key) { var $length, i; if (bucket == null) return -1; $length = bucket.length; for (i = 0; i < $length; ++i) if (J.$eq$(bucket[i].get$hashMapCellKey(), key)) return i; return -1; }, toString$0: function(_) { return P.Maps_mapToString(this); }, _getTableCell$2: function(table, key) { return table[key]; }, _getTableBucket$2: function(table, key) { return table[key]; }, _setTableEntry$3: function(table, key, value) { table[key] = value; }, _deleteTableEntry$2: function(table, key) { delete table[key]; }, _containsTableEntry$2: function(table, key) { return this._getTableCell$2(table, key) != null; }, _newHashTable$0: function() { var table = Object.create(null); this._setTableEntry$3(table, "<non-identifier-key>", table); this._deleteTableEntry$2(table, "<non-identifier-key>"); return table; }, $isInternalMap: 1 }, JsLinkedHashMap_values_closure: { "^": "Closure:2;$this", call$1: function(each) { return this.$this.$index(0, each); } }, LinkedHashMapCell: { "^": "Object;hashMapCellKey<,hashMapCellValue@,_next,_previous<" }, LinkedHashMapKeyIterable: { "^": "EfficientLengthIterable;_map,$ti", get$length: function(_) { return this._map._length; }, get$iterator: function(_) { var t1, t2; t1 = this._map; t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications, null, null); t2._cell = t1._first; return t2; } }, LinkedHashMapKeyIterator: { "^": "Object;_map,_modifications,_cell,__js_helper$_current", get$current: function() { return this.__js_helper$_current; }, moveNext$0: function() { var t1 = this._map; if (this._modifications !== t1._modifications) throw H.wrapException(new P.ConcurrentModificationError(t1)); else { t1 = this._cell; if (t1 == null) { this.__js_helper$_current = null; return false; } else { this.__js_helper$_current = t1.hashMapCellKey; this._cell = t1._next; return true; } } } }, initHooks_closure: { "^": "Closure:2;getTag", call$1: function(o) { return this.getTag(o); } }, initHooks_closure0: { "^": "Closure:7;getUnknownTag", call$2: function(o, tag) { return this.getUnknownTag(o, tag); } }, initHooks_closure1: { "^": "Closure:8;prototypeForTag", call$1: function(tag) { return this.prototypeForTag(tag); } } }], ["dart._js_names", "dart:_js_names",, H, { "^": "", extractKeys: function(victim) { var t1 = H.setRuntimeTypeInfo(victim ? Object.keys(victim) : [], [null]); t1.fixed$length = Array; return t1; } }], ["dart2js._js_primitives", "dart:_js_primitives",, H, { "^": "", printString: function(string) { if (typeof dartPrint == "function") { dartPrint(string); return; } if (typeof console == "object" && typeof console.log != "undefined") { console.log(string); return; } if (typeof window == "object") return; if (typeof print == "function") { print(string); return; } throw "Unable to print message: " + String(string); } }], ["dart.typed_data.implementation", "dart:_native_typed_data",, H, { "^": "", NativeByteBuffer: { "^": "Interceptor;", $isNativeByteBuffer: 1, "%": "ArrayBuffer" }, NativeTypedData: { "^": "Interceptor;", $isNativeTypedData: 1, "%": "DataView;ArrayBufferView;NativeTypedArray|NativeTypedArray_ListMixin|NativeTypedArray_ListMixin_FixedLengthListMixin|NativeTypedArrayOfDouble|NativeTypedArray_ListMixin0|NativeTypedArray_ListMixin_FixedLengthListMixin0|NativeTypedArrayOfInt" }, NativeTypedArray: { "^": "NativeTypedData;", get$length: function(receiver) { return receiver.length; }, $isJavaScriptIndexingBehavior: 1, $asJavaScriptIndexingBehavior: Isolate.functionThatReturnsNull, $isJSIndexable: 1, $asJSIndexable: Isolate.functionThatReturnsNull }, NativeTypedArrayOfDouble: { "^": "NativeTypedArray_ListMixin_FixedLengthListMixin;", $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $indexSet: function(receiver, index, value) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); receiver[index] = value; } }, NativeTypedArray_ListMixin: { "^": "NativeTypedArray+ListMixin;", $asJavaScriptIndexingBehavior: Isolate.functionThatReturnsNull, $asJSIndexable: Isolate.functionThatReturnsNull, $asList: function() { return [P.$double]; }, $asEfficientLengthIterable: function() { return [P.$double]; }, $isList: 1, $isEfficientLengthIterable: 1 }, NativeTypedArray_ListMixin_FixedLengthListMixin: { "^": "NativeTypedArray_ListMixin+FixedLengthListMixin;", $asJavaScriptIndexingBehavior: Isolate.functionThatReturnsNull, $asJSIndexable: Isolate.functionThatReturnsNull, $asList: function() { return [P.$double]; }, $asEfficientLengthIterable: function() { return [P.$double]; } }, NativeTypedArrayOfInt: { "^": "NativeTypedArray_ListMixin_FixedLengthListMixin0;", $indexSet: function(receiver, index, value) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); receiver[index] = value; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; } }, NativeTypedArray_ListMixin0: { "^": "NativeTypedArray+ListMixin;", $asJavaScriptIndexingBehavior: Isolate.functionThatReturnsNull, $asJSIndexable: Isolate.functionThatReturnsNull, $asList: function() { return [P.$int]; }, $asEfficientLengthIterable: function() { return [P.$int]; }, $isList: 1, $isEfficientLengthIterable: 1 }, NativeTypedArray_ListMixin_FixedLengthListMixin0: { "^": "NativeTypedArray_ListMixin0+FixedLengthListMixin;", $asJavaScriptIndexingBehavior: Isolate.functionThatReturnsNull, $asJSIndexable: Isolate.functionThatReturnsNull, $asList: function() { return [P.$int]; }, $asEfficientLengthIterable: function() { return [P.$int]; } }, NativeFloat32List: { "^": "NativeTypedArrayOfDouble;", $isList: 1, $asList: function() { return [P.$double]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$double]; }, "%": "Float32Array" }, NativeFloat64List: { "^": "NativeTypedArrayOfDouble;", $isList: 1, $asList: function() { return [P.$double]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$double]; }, "%": "Float64Array" }, NativeInt16List: { "^": "NativeTypedArrayOfInt;", $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": "Int16Array" }, NativeInt32List: { "^": "NativeTypedArrayOfInt;", $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": "Int32Array" }, NativeInt8List: { "^": "NativeTypedArrayOfInt;", $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": "Int8Array" }, NativeUint16List: { "^": "NativeTypedArrayOfInt;", $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": "Uint16Array" }, NativeUint32List: { "^": "NativeTypedArrayOfInt;", $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": "Uint32Array" }, NativeUint8ClampedList: { "^": "NativeTypedArrayOfInt;", get$length: function(receiver) { return receiver.length; }, $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": "CanvasPixelArray|Uint8ClampedArray" }, NativeUint8List: { "^": "NativeTypedArrayOfInt;", get$length: function(receiver) { return receiver.length; }, $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) H.throwExpression(H.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isList: 1, $asList: function() { return [P.$int]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [P.$int]; }, "%": ";Uint8Array" } }], ["dart.async", "dart:async",, P, { "^": "", _AsyncRun__initializeScheduleImmediate: function() { var t1, div, span; t1 = {}; if (self.scheduleImmediate != null) return P.async__AsyncRun__scheduleImmediateJsOverride$closure(); if (self.MutationObserver != null && self.document != null) { div = self.document.createElement("div"); span = self.document.createElement("span"); t1.storedCallback = null; new self.MutationObserver(H.convertDartClosureToJS(new P._AsyncRun__initializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true}); return new P._AsyncRun__initializeScheduleImmediate_closure(t1, div, span); } else if (self.setImmediate != null) return P.async__AsyncRun__scheduleImmediateWithSetImmediate$closure(); return P.async__AsyncRun__scheduleImmediateWithTimer$closure(); }, _AsyncRun__scheduleImmediateJsOverride: [function(callback) { ++init.globalState.topEventLoop._activeJsAsyncCount; self.scheduleImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateJsOverride_internalCallback(callback), 0)); }, "call$1", "async__AsyncRun__scheduleImmediateJsOverride$closure", 2, 0, 3], _AsyncRun__scheduleImmediateWithSetImmediate: [function(callback) { ++init.globalState.topEventLoop._activeJsAsyncCount; self.setImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(callback), 0)); }, "call$1", "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", 2, 0, 3], _AsyncRun__scheduleImmediateWithTimer: [function(callback) { P.Timer__createTimer(C.Duration_0, callback); }, "call$1", "async__AsyncRun__scheduleImmediateWithTimer$closure", 2, 0, 3], _registerErrorHandler: function(errorHandler, zone) { var t1 = H.getDynamicRuntimeType(); if (H.buildFunctionType(t1, [t1, t1])._isTest$1(errorHandler)) { zone.toString; return errorHandler; } else { zone.toString; return errorHandler; } }, _microtaskLoop: function() { var t1, t2; for (; t1 = $._nextCallback, t1 != null;) { $._lastPriorityCallback = null; t2 = t1.next; $._nextCallback = t2; if (t2 == null) $._lastCallback = null; t1.callback.call$0(); } }, _startMicrotaskLoop: [function() { $._isInCallbackLoop = true; try { P._microtaskLoop(); } finally { $._lastPriorityCallback = null; $._isInCallbackLoop = false; if ($._nextCallback != null) $.$get$_AsyncRun__scheduleImmediateClosure().call$1(P.async___startMicrotaskLoop$closure()); } }, "call$0", "async___startMicrotaskLoop$closure", 0, 0, 1], _scheduleAsyncCallback: function(callback) { var newEntry = new P._AsyncCallbackEntry(callback, null); if ($._nextCallback == null) { $._lastCallback = newEntry; $._nextCallback = newEntry; if (!$._isInCallbackLoop) $.$get$_AsyncRun__scheduleImmediateClosure().call$1(P.async___startMicrotaskLoop$closure()); } else { $._lastCallback.next = newEntry; $._lastCallback = newEntry; } }, _schedulePriorityAsyncCallback: function(callback) { var t1, entry, t2; t1 = $._nextCallback; if (t1 == null) { P._scheduleAsyncCallback(callback); $._lastPriorityCallback = $._lastCallback; return; } entry = new P._AsyncCallbackEntry(callback, null); t2 = $._lastPriorityCallback; if (t2 == null) { entry.next = t1; $._lastPriorityCallback = entry; $._nextCallback = entry; } else { entry.next = t2.next; t2.next = entry; $._lastPriorityCallback = entry; if (entry.next == null) $._lastCallback = entry; } }, scheduleMicrotask: function(callback) { var currentZone = $.Zone__current; if (C.C__RootZone === currentZone) { P._rootScheduleMicrotask(null, null, C.C__RootZone, callback); return; } currentZone.toString; P._rootScheduleMicrotask(null, null, currentZone, currentZone.bindCallback$2$runGuarded(callback, true)); }, _addErrorWithReplacement: function(sink, error, stackTrace) { $.Zone__current.toString; sink._addError$2(error, stackTrace); }, Timer_Timer: function(duration, callback) { var t1 = $.Zone__current; if (t1 === C.C__RootZone) { t1.toString; return P.Timer__createTimer(duration, callback); } return P.Timer__createTimer(duration, t1.bindCallback$2$runGuarded(callback, true)); }, Timer__createTimer: function(duration, callback) { var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000); return H.TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback); }, Zone_current: function() { return $.Zone__current; }, _rootHandleUncaughtError: function($self, $parent, zone, error, stackTrace) { var t1 = {}; t1.error = error; P._schedulePriorityAsyncCallback(new P._rootHandleUncaughtError_closure(t1, stackTrace)); }, _rootRun: function($self, $parent, zone, f) { var old, t1; t1 = $.Zone__current; if (t1 === zone) return f.call$0(); $.Zone__current = zone; old = t1; try { t1 = f.call$0(); return t1; } finally { $.Zone__current = old; } }, _rootRunUnary: function($self, $parent, zone, f, arg) { var old, t1; t1 = $.Zone__current; if (t1 === zone) return f.call$1(arg); $.Zone__current = zone; old = t1; try { t1 = f.call$1(arg); return t1; } finally { $.Zone__current = old; } }, _rootRunBinary: function($self, $parent, zone, f, arg1, arg2) { var old, t1; t1 = $.Zone__current; if (t1 === zone) return f.call$2(arg1, arg2); $.Zone__current = zone; old = t1; try { t1 = f.call$2(arg1, arg2); return t1; } finally { $.Zone__current = old; } }, _rootScheduleMicrotask: function($self, $parent, zone, f) { var t1 = C.C__RootZone !== zone; if (t1) f = zone.bindCallback$2$runGuarded(f, !(!t1 || false)); P._scheduleAsyncCallback(f); }, _AsyncRun__initializeScheduleImmediate_internalCallback: { "^": "Closure:2;_box_0", call$1: function(_) { var t1, f; --init.globalState.topEventLoop._activeJsAsyncCount; t1 = this._box_0; f = t1.storedCallback; t1.storedCallback = null; f.call$0(); } }, _AsyncRun__initializeScheduleImmediate_closure: { "^": "Closure:9;_box_0,div,span", call$1: function(callback) { var t1, t2; ++init.globalState.topEventLoop._activeJsAsyncCount; this._box_0.storedCallback = callback; t1 = this.div; t2 = this.span; t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); } }, _AsyncRun__scheduleImmediateJsOverride_internalCallback: { "^": "Closure:0;callback", call$0: function() { --init.globalState.topEventLoop._activeJsAsyncCount; this.callback.call$0(); } }, _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: { "^": "Closure:0;callback", call$0: function() { --init.globalState.topEventLoop._activeJsAsyncCount; this.callback.call$0(); } }, Future: { "^": "Object;$ti" }, _FutureListener: { "^": "Object;_nextListener<,r###lt,state,callback,errorCallback", get$_zone: function() { return this.r###lt._zone; }, get$handlesValue: function() { return (this.state & 1) !== 0; }, get$handlesError: function() { return (this.state & 2) !== 0; }, get$handlesComplete: function() { return this.state === 8; }, handleValue$1: function(sourceR###lt) { return this.r###lt._zone.runUnary$2(this.callback, sourceR###lt); }, matchesErrorTest$1: function(asyncError) { if (this.state !== 6) return true; return this.r###lt._zone.runUnary$2(this.callback, J.get$error$x(asyncError)); }, handleError$1: function(asyncError) { var t1, t2, t3, t4; t1 = this.errorCallback; t2 = H.getDynamicRuntimeType(); t3 = J.getInterceptor$x(asyncError); t4 = this.r###lt._zone; if (H.buildFunctionType(t2, [t2, t2])._isTest$1(t1)) return t4.runBinary$3(t1, t3.get$error(asyncError), asyncError.get$stackTrace()); else return t4.runUnary$2(t1, t3.get$error(asyncError)); }, handleWhenComplete$0: function() { return this.r###lt._zone.run$1(this.callback); } }, _Future: { "^": "Object;_state<,_zone,_r###ltOrListeners<,$ti", get$_isChained: function() { return this._state === 2; }, get$_isComplete: function() { return this._state >= 4; }, then$2$onError: function(f, onError) { var currentZone, r###lt; currentZone = $.Zone__current; if (currentZone !== C.C__RootZone) { currentZone.toString; if (onError != null) onError = P._registerErrorHandler(onError, currentZone); } r###lt = new P._Future(0, currentZone, null, [null]); this._addListener$1(new P._FutureListener(null, r###lt, onError == null ? 1 : 3, f, onError)); return r###lt; }, then$1: function(f) { return this.then$2$onError(f, null); }, whenComplete$1: function(action) { var t1, r###lt; t1 = $.Zone__current; r###lt = new P._Future(0, t1, null, this.$ti); if (t1 !== C.C__RootZone) t1.toString; this._addListener$1(new P._FutureListener(null, r###lt, 8, action, null)); return r###lt; }, _addListener$1: function(listener) { var t1, source; t1 = this._state; if (t1 <= 1) { listener._nextListener = this._r###ltOrListeners; this._r###ltOrListeners = listener; } else { if (t1 === 2) { source = this._r###ltOrListeners; if (!source.get$_isComplete()) { source._addListener$1(listener); return; } this._state = source._state; this._r###ltOrListeners = source._r###ltOrListeners; } t1 = this._zone; t1.toString; P._rootScheduleMicrotask(null, null, t1, new P._Future__addListener_closure(this, listener)); } }, _prependListeners$1: function(listeners) { var t1, t2, existingListeners, cursor, source; t1 = {}; t1.listeners = listeners; if (listeners == null) return; t2 = this._state; if (t2 <= 1) { existingListeners = this._r###ltOrListeners; this._r###ltOrListeners = listeners; if (existingListeners != null) { for (cursor = listeners; cursor.get$_nextListener() != null;) cursor = cursor._nextListener; cursor._nextListener = existingListeners; } } else { if (t2 === 2) { source = this._r###ltOrListeners; if (!source.get$_isComplete()) { source._prependListeners$1(listeners); return; } this._state = source._state; this._r###ltOrListeners = source._r###ltOrListeners; } t1.listeners = this._reverseListeners$1(listeners); t2 = this._zone; t2.toString; P._rootScheduleMicrotask(null, null, t2, new P._Future__prependListeners_closure(t1, this)); } }, _removeListeners$0: function() { var current = this._r###ltOrListeners; this._r###ltOrListeners = null; return this._reverseListeners$1(current); }, _reverseListeners$1: function(listeners) { var current, prev, next; for (current = listeners, prev = null; current != null; prev = current, current = next) { next = current.get$_nextListener(); current._nextListener = prev; } return prev; }, _complete$1: function(value) { var listeners; if (!!J.getInterceptor(value).$isFuture) P._Future__chainCoreFuture(value, this); else { listeners = this._removeListeners$0(); this._state = 4; this._r###ltOrListeners = value; P._Future__propagateToListeners(this, listeners); } }, _completeError$2: [function(error, stackTrace) { var listeners = this._removeListeners$0(); this._state = 8; this._r###ltOrListeners = new P.AsyncError(error, stackTrace); P._Future__propagateToListeners(this, listeners); }, function(error) { return this._completeError$2(error, null); }, "_completeError$1", "call$2", "call$1", "get$_completeError", 2, 2, 10, 0], _asyncComplete$1: function(value) { var t1; if (!!J.getInterceptor(value).$isFuture) { if (value._state === 8) { this._state = 1; t1 = this._zone; t1.toString; P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncComplete_closure(this, value)); } else P._Future__chainCoreFuture(value, this); return; } this._state = 1; t1 = this._zone; t1.toString; P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncComplete_closure0(this, value)); }, _Future$immediate$1: function(value, $T) { this._asyncComplete$1(value); }, $isFuture: 1, static: { _Future__chainForeignFuture: function(source, target) { var e, s, exception, t1; target._state = 1; try { source.then$2$onError(new P._Future__chainForeignFuture_closure(target), new P._Future__chainForeignFuture_closure0(target)); } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); P.scheduleMicrotask(new P._Future__chainForeignFuture_closure1(target, e, s)); } }, _Future__chainCoreFuture: function(source, target) { var t1, current, listeners; for (; source.get$_isChained();) source = source._r###ltOrListeners; t1 = source.get$_isComplete(); current = target._r###ltOrListeners; if (t1) { target._r###ltOrListeners = null; listeners = target._reverseListeners$1(current); target._state = source._state; target._r###ltOrListeners = source._r###ltOrListeners; P._Future__propagateToListeners(target, listeners); } else { target._state = 2; target._r###ltOrListeners = source; source._prependListeners$1(current); } }, _Future__propagateToListeners: function(source, listeners) { var t1, t2, t3, hasError, asyncError, listeners0, sourceR###lt, zone, t4, oldZone, r###lt, current; t1 = {}; t1.source = source; for (t2 = source; true;) { t3 = {}; hasError = t2._state === 8; if (listeners == null) { if (hasError) { asyncError = t2._r###ltOrListeners; t1 = t2._zone; t2 = J.get$error$x(asyncError); t3 = asyncError.get$stackTrace(); t1.toString; P._rootHandleUncaughtError(null, null, t1, t2, t3); } return; } for (; listeners.get$_nextListener() != null; listeners = listeners0) { listeners0 = listeners._nextListener; listeners._nextListener = null; P._Future__propagateToListeners(t1.source, listeners); } sourceR###lt = t1.source._r###ltOrListeners; t3.listenerHasError = hasError; t3.listenerValueOrError = sourceR###lt; t2 = !hasError; if (!t2 || listeners.get$handlesValue() || listeners.get$handlesComplete()) { zone = listeners.get$_zone(); if (hasError) { t4 = t1.source._zone; t4.toString; t4 = t4 == null ? zone == null : t4 === zone; if (!t4) zone.toString; else t4 = true; t4 = !t4; } else t4 = false; if (t4) { t2 = t1.source; asyncError = t2._r###ltOrListeners; t2 = t2._zone; t3 = J.get$error$x(asyncError); t4 = asyncError.get$stackTrace(); t2.toString; P._rootHandleUncaughtError(null, null, t2, t3, t4); return; } oldZone = $.Zone__current; if (oldZone == null ? zone != null : oldZone !== zone) $.Zone__current = zone; else oldZone = null; if (listeners.get$handlesComplete()) new P._Future__propagateToListeners_handleWhenCompleteCallback(t1, t3, hasError, listeners).call$0(); else if (t2) { if (listeners.get$handlesValue()) new P._Future__propagateToListeners_handleValueCallback(t3, listeners, sourceR###lt).call$0(); } else if (listeners.get$handlesError()) new P._Future__propagateToListeners_handleError(t1, t3, listeners).call$0(); if (oldZone != null) $.Zone__current = oldZone; t2 = t3.listenerValueOrError; t4 = J.getInterceptor(t2); if (!!t4.$isFuture) { r###lt = listeners.r###lt; if (!!t4.$is_Future) if (t2._state >= 4) { current = r###lt._r###ltOrListeners; r###lt._r###ltOrListeners = null; listeners = r###lt._reverseListeners$1(current); r###lt._state = t2._state; r###lt._r###ltOrListeners = t2._r###ltOrListeners; t1.source = t2; continue; } else P._Future__chainCoreFuture(t2, r###lt); else P._Future__chainForeignFuture(t2, r###lt); return; } } r###lt = listeners.r###lt; listeners = r###lt._removeListeners$0(); t2 = t3.listenerHasError; t3 = t3.listenerValueOrError; if (!t2) { r###lt._state = 4; r###lt._r###ltOrListeners = t3; } else { r###lt._state = 8; r###lt._r###ltOrListeners = t3; } t1.source = r###lt; t2 = r###lt; } } } }, _Future__addListener_closure: { "^": "Closure:0;$this,listener", call$0: function() { P._Future__propagateToListeners(this.$this, this.listener); } }, _Future__prependListeners_closure: { "^": "Closure:0;_box_0,$this", call$0: function() { P._Future__propagateToListeners(this.$this, this._box_0.listeners); } }, _Future__chainForeignFuture_closure: { "^": "Closure:2;target", call$1: function(value) { var t1 = this.target; t1._state = 0; t1._complete$1(value); } }, _Future__chainForeignFuture_closure0: { "^": "Closure:11;target", call$2: function(error, stackTrace) { this.target._completeError$2(error, stackTrace); }, call$1: function(error) { return this.call$2(error, null); } }, _Future__chainForeignFuture_closure1: { "^": "Closure:0;target,e,s", call$0: function() { this.target._completeError$2(this.e, this.s); } }, _Future__asyncComplete_closure: { "^": "Closure:0;$this,coreFuture", call$0: function() { P._Future__chainCoreFuture(this.coreFuture, this.$this); } }, _Future__asyncComplete_closure0: { "^": "Closure:0;$this,typedValue", call$0: function() { var t1, listeners; t1 = this.$this; listeners = t1._removeListeners$0(); t1._state = 4; t1._r###ltOrListeners = this.typedValue; P._Future__propagateToListeners(t1, listeners); } }, _Future__propagateToListeners_handleWhenCompleteCallback: { "^": "Closure:1;_box_1,_box_0,hasError,listener", call$0: function() { var completeR###lt, e, s, exception, t1, t2, originalSource; completeR###lt = null; try { completeR###lt = this.listener.handleWhenComplete$0(); } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); if (this.hasError) { t1 = J.get$error$x(this._box_1.source._r###ltOrListeners); t2 = e; t2 = t1 == null ? t2 == null : t1 === t2; t1 = t2; } else t1 = false; t2 = this._box_0; if (t1) t2.listenerValueOrError = this._box_1.source._r###ltOrListeners; else t2.listenerValueOrError = new P.AsyncError(e, s); t2.listenerHasError = true; return; } if (!!J.getInterceptor(completeR###lt).$isFuture) { if (completeR###lt instanceof P._Future && completeR###lt.get$_state() >= 4) { if (completeR###lt.get$_state() === 8) { t1 = this._box_0; t1.listenerValueOrError = completeR###lt.get$_r###ltOrListeners(); t1.listenerHasError = true; } return; } originalSource = this._box_1.source; t1 = this._box_0; t1.listenerValueOrError = completeR###lt.then$1(new P._Future__propagateToListeners_handleWhenCompleteCallback_closure(originalSource)); t1.listenerHasError = false; } } }, _Future__propagateToListeners_handleWhenCompleteCallback_closure: { "^": "Closure:2;originalSource", call$1: function(_) { return this.originalSource; } }, _Future__propagateToListeners_handleValueCallback: { "^": "Closure:1;_box_0,listener,sourceR###lt", call$0: function() { var e, s, exception, t1; try { this._box_0.listenerValueOrError = this.listener.handleValue$1(this.sourceR###lt); } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); t1 = this._box_0; t1.listenerValueOrError = new P.AsyncError(e, s); t1.listenerHasError = true; } } }, _Future__propagateToListeners_handleError: { "^": "Closure:1;_box_1,_box_0,listener", call$0: function() { var asyncError, e, s, t1, t2, exception, t3, t4; try { asyncError = this._box_1.source._r###ltOrListeners; t1 = this.listener; if (t1.matchesErrorTest$1(asyncError) === true && t1.errorCallback != null) { t2 = this._box_0; t2.listenerValueOrError = t1.handleError$1(asyncError); t2.listenerHasError = false; } } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); t1 = this._box_1; t2 = J.get$error$x(t1.source._r###ltOrListeners); t3 = e; t4 = this._box_0; if (t2 == null ? t3 == null : t2 === t3) t4.listenerValueOrError = t1.source._r###ltOrListeners; else t4.listenerValueOrError = new P.AsyncError(e, s); t4.listenerHasError = true; } } }, _AsyncCallbackEntry: { "^": "Object;callback,next" }, Stream: { "^": "Object;$ti", map$1: function(_, convert) { return new P._MapStream(convert, this, [H.getRuntimeTypeArgument(this, "Stream", 0), null]); }, get$length: function(_) { var t1, future; t1 = {}; future = new P._Future(0, $.Zone__current, null, [P.$int]); t1.count = 0; this.listen$4$cancelOnError$onDone$onError(new P.Stream_length_closure(t1), true, new P.Stream_length_closure0(t1, future), future.get$_completeError()); return future; }, toList$0: function(_) { var t1, r###lt, future; t1 = H.getRuntimeTypeArgument(this, "Stream", 0); r###lt = H.setRuntimeTypeInfo([], [t1]); future = new P._Future(0, $.Zone__current, null, [[P.List, t1]]); this.listen$4$cancelOnError$onDone$onError(new P.Stream_toList_closure(this, r###lt), true, new P.Stream_toList_closure0(r###lt, future), future.get$_completeError()); return future; } }, Stream_length_closure: { "^": "Closure:2;_box_0", call$1: function(_) { ++this._box_0.count; } }, Stream_length_closure0: { "^": "Closure:0;_box_0,future", call$0: function() { this.future._complete$1(this._box_0.count); } }, Stream_toList_closure: { "^": "Closure;$this,r###lt", call$1: function(data) { this.r###lt.push(data); }, $signature: function() { return H.computeSignature(function(T) { return {func: 1, args: [T]}; }, this.$this, "Stream"); } }, Stream_toList_closure0: { "^": "Closure:0;r###lt,future", call$0: function() { this.future._complete$1(this.r###lt); } }, StreamSubscription: { "^": "Object;" }, _EventSink: { "^": "Object;" }, _BufferingStreamSubscription: { "^": "Object;_state<", pause$1: function(_, r###meSignal) { var t1 = this._state; if ((t1 & 8) !== 0) return; this._state = (t1 + 128 | 4) >>> 0; if (t1 < 128 && this._pending != null) this._pending.cancelSchedule$0(); if ((t1 & 4) === 0 && (this._state & 32) === 0) this._guardCallback$1(this.get$_onPause()); }, pause$0: function($receiver) { return this.pause$1($receiver, null); }, r###me$0: function() { var t1 = this._state; if ((t1 & 8) !== 0) return; if (t1 >= 128) { t1 -= 128; this._state = t1; if (t1 < 128) { if ((t1 & 64) !== 0) { t1 = this._pending; t1 = !t1.get$isEmpty(t1); } else t1 = false; if (t1) this._pending.schedule$1(this); else { t1 = (this._state & 4294967291) >>> 0; this._state = t1; if ((t1 & 32) === 0) this._guardCallback$1(this.get$_onR###me()); } } } }, cancel$0: function() { var t1 = (this._state & 4294967279) >>> 0; this._state = t1; if ((t1 & 8) === 0) this._cancel$0(); t1 = this._cancelFuture; return t1 == null ? $.$get$Future__nullFuture() : t1; }, _cancel$0: function() { var t1 = (this._state | 8) >>> 0; this._state = t1; if ((t1 & 64) !== 0) this._pending.cancelSchedule$0(); if ((this._state & 32) === 0) this._pending = null; this._cancelFuture = this._onCancel$0(); }, _async$_add$1: ["super$_BufferingStreamSubscription$_add", function(data) { var t1 = this._state; if ((t1 & 8) !== 0) return; if (t1 < 32) this._sendData$1(data); else this._addPending$1(new P._DelayedData(data, null, [null])); }], _addError$2: ["super$_BufferingStreamSubscription$_addError", function(error, stackTrace) { var t1 = this._state; if ((t1 & 8) !== 0) return; if (t1 < 32) this._sendError$2(error, stackTrace); else this._addPending$1(new P._DelayedError(error, stackTrace, null)); }], _async$_close$0: function() { var t1 = this._state; if ((t1 & 8) !== 0) return; t1 = (t1 | 2) >>> 0; this._state = t1; if (t1 < 32) this._sendDone$0(); else this._addPending$1(C.C__DelayedDone); }, _onPause$0: [function() { }, "call$0", "get$_onPause", 0, 0, 1], _onR###me$0: [function() { }, "call$0", "get$_onR###me", 0, 0, 1], _onCancel$0: function() { return; }, _addPending$1: function($event) { var pending, t1; pending = this._pending; if (pending == null) { pending = new P._StreamImplEvents(null, null, 0, [null]); this._pending = pending; } pending.add$1(0, $event); t1 = this._state; if ((t1 & 64) === 0) { t1 = (t1 | 64) >>> 0; this._state = t1; if (t1 < 128) this._pending.schedule$1(this); } }, _sendData$1: function(data) { var t1 = this._state; this._state = (t1 | 32) >>> 0; this._zone.runUnaryGuarded$2(this._async$_onData, data); this._state = (this._state & 4294967263) >>> 0; this._checkState$1((t1 & 4) !== 0); }, _sendError$2: function(error, stackTrace) { var t1, t2, t3; t1 = this._state; t2 = new P._BufferingStreamSubscription__sendError_sendError(this, error, stackTrace); if ((t1 & 1) !== 0) { this._state = (t1 | 16) >>> 0; this._cancel$0(); t1 = this._cancelFuture; if (!!J.getInterceptor(t1).$isFuture) { t3 = $.$get$Future__nullFuture(); t3 = t1 == null ? t3 != null : t1 !== t3; } else t3 = false; if (t3) t1.whenComplete$1(t2); else t2.call$0(); } else { t2.call$0(); this._checkState$1((t1 & 4) !== 0); } }, _sendDone$0: function() { var t1, t2, t3; t1 = new P._BufferingStreamSubscription__sendDone_sendDone(this); this._cancel$0(); this._state = (this._state | 16) >>> 0; t2 = this._cancelFuture; if (!!J.getInterceptor(t2).$isFuture) { t3 = $.$get$Future__nullFuture(); t3 = t2 == null ? t3 != null : t2 !== t3; } else t3 = false; if (t3) t2.whenComplete$1(t1); else t1.call$0(); }, _guardCallback$1: function(callback) { var t1 = this._state; this._state = (t1 | 32) >>> 0; callback.call$0(); this._state = (this._state & 4294967263) >>> 0; this._checkState$1((t1 & 4) !== 0); }, _checkState$1: function(wasInputPaused) { var t1, isInputPaused; if ((this._state & 64) !== 0) { t1 = this._pending; t1 = t1.get$isEmpty(t1); } else t1 = false; if (t1) { t1 = (this._state & 4294967231) >>> 0; this._state = t1; if ((t1 & 4) !== 0) if (t1 < 128) { t1 = this._pending; t1 = t1 == null || t1.get$isEmpty(t1); } else t1 = false; else t1 = false; if (t1) this._state = (this._state & 4294967291) >>> 0; } for (; true; wasInputPaused = isInputPaused) { t1 = this._state; if ((t1 & 8) !== 0) { this._pending = null; return; } isInputPaused = (t1 & 4) !== 0; if (wasInputPaused === isInputPaused) break; this._state = (t1 ^ 32) >>> 0; if (isInputPaused) this._onPause$0(); else this._onR###me$0(); this._state = (this._state & 4294967263) >>> 0; } t1 = this._state; if ((t1 & 64) !== 0 && t1 < 128) this._pending.schedule$1(this); }, _BufferingStreamSubscription$4: function(onData, onError, onDone, cancelOnError) { var t1 = this._zone; t1.toString; this._async$_onData = onData; this._onError = P._registerErrorHandler(onError, t1); this._onDone = onDone; } }, _BufferingStreamSubscription__sendError_sendError: { "^": "Closure:1;$this,error,stackTrace", call$0: function() { var t1, t2, t3, t4, t5, t6; t1 = this.$this; t2 = t1._state; if ((t2 & 8) !== 0 && (t2 & 16) === 0) return; t1._state = (t2 | 32) >>> 0; t2 = t1._onError; t3 = H.buildFunctionType(H.getDynamicRuntimeType(), [H.buildInterfaceType(P.Object), H.buildInterfaceType(P.StackTrace)])._isTest$1(t2); t4 = t1._zone; t5 = this.error; t6 = t1._onError; if (t3) t4.runBinaryGuarded$3(t6, t5, this.stackTrace); else t4.runUnaryGuarded$2(t6, t5); t1._state = (t1._state & 4294967263) >>> 0; } }, _BufferingStreamSubscription__sendDone_sendDone: { "^": "Closure:1;$this", call$0: function() { var t1, t2; t1 = this.$this; t2 = t1._state; if ((t2 & 16) === 0) return; t1._state = (t2 | 42) >>> 0; t1._zone.runGuarded$1(t1._onDone); t1._state = (t1._state & 4294967263) >>> 0; } }, _DelayedEvent: { "^": "Object;next@" }, _DelayedData: { "^": "_DelayedEvent;value,next,$ti", perform$1: function(dispatch) { dispatch._sendData$1(this.value); } }, _DelayedError: { "^": "_DelayedEvent;error>,stackTrace<,next", perform$1: function(dispatch) { dispatch._sendError$2(this.error, this.stackTrace); } }, _DelayedDone: { "^": "Object;", perform$1: function(dispatch) { dispatch._sendDone$0(); }, get$next: function() { return; }, set$next: function(_) { throw H.wrapException(new P.StateError("No events after a done.")); } }, _PendingEvents: { "^": "Object;_state<", schedule$1: function(dispatch) { var t1 = this._state; if (t1 === 1) return; if (t1 >= 1) { this._state = 1; return; } P.scheduleMicrotask(new P._PendingEvents_schedule_closure(this, dispatch)); this._state = 1; }, cancelSchedule$0: function() { if (this._state === 1) this._state = 3; } }, _PendingEvents_schedule_closure: { "^": "Closure:0;$this,dispatch", call$0: function() { var t1, oldState, $event, t2; t1 = this.$this; oldState = t1._state; t1._state = 0; if (oldState === 3) return; $event = t1.firstPendingEvent; t2 = $event.get$next(); t1.firstPendingEvent = t2; if (t2 == null) t1.lastPendingEvent = null; $event.perform$1(this.dispatch); } }, _StreamImplEvents: { "^": "_PendingEvents;firstPendingEvent,lastPendingEvent,_state,$ti", get$isEmpty: function(_) { return this.lastPendingEvent == null; }, add$1: function(_, $event) { var t1 = this.lastPendingEvent; if (t1 == null) { this.lastPendingEvent = $event; this.firstPendingEvent = $event; } else { t1.set$next($event); this.lastPendingEvent = $event; } } }, _ForwardingStream: { "^": "Stream;$ti", listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) { return this._creat###bscription$4(onData, onError, onDone, true === cancelOnError); }, listen$3$onDone$onError: function(onData, onDone, onError) { return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); }, _creat###bscription$4: function(onData, onError, onDone, cancelOnError) { return P._ForwardingStreamSubscription$(this, onData, onError, onDone, cancelOnError, H.getRuntimeTypeArgument(this, "_ForwardingStream", 0), H.getRuntimeTypeArgument(this, "_ForwardingStream", 1)); }, _handleData$2: function(data, sink) { sink._async$_add$1(data); }, _handleError$3: function(error, stackTrace, sink) { sink._addError$2(error, stackTrace); }, $asStream: function($S, $T) { return [$T]; } }, _ForwardingStreamSubscription: { "^": "_BufferingStreamSubscription;_stream,_subscription,_async$_onData,_onError,_onDone,_zone,_state,_cancelFuture,_pending,$ti", _async$_add$1: function(data) { if ((this._state & 2) !== 0) return; this.super$_BufferingStreamSubscription$_add(data); }, _addError$2: function(error, stackTrace) { if ((this._state & 2) !== 0) return; this.super$_BufferingStreamSubscription$_addError(error, stackTrace); }, _onPause$0: [function() { var t1 = this._subscription; if (t1 == null) return; t1.pause$0(0); }, "call$0", "get$_onPause", 0, 0, 1], _onR###me$0: [function() { var t1 = this._subscription; if (t1 == null) return; t1.r###me$0(); }, "call$0", "get$_onR###me", 0, 0, 1], _onCancel$0: function() { var t1 = this._subscription; if (t1 != null) { this._subscription = null; return t1.cancel$0(); } return; }, _handleData$1: [function(data) { this._stream._handleData$2(data, this); }, "call$1", "get$_handleData", 2, 0, function() { return H.computeSignature(function(S, T) { return {func: 1, v: true, args: [S]}; }, this.$receiver, "_ForwardingStreamSubscription"); }], _handleError$2: [function(error, stackTrace) { this._stream._handleError$3(error, stackTrace, this); }, "call$2", "get$_handleError", 4, 0, 12], _handleDone$0: [function() { this._async$_close$0(); }, "call$0", "get$_handleDone", 0, 0, 1], _ForwardingStreamSubscription$5: function(_stream, onData, onError, onDone, cancelOnError, $S, $T) { this._subscription = this._stream._async$_source.listen$3$onDone$onError(this.get$_handleData(), this.get$_handleDone(), this.get$_handleError()); }, static: { _ForwardingStreamSubscription$: function(_stream, onData, onError, onDone, cancelOnError, $S, $T) { var t1, t2; t1 = $.Zone__current; t2 = cancelOnError ? 1 : 0; t2 = new P._ForwardingStreamSubscription(_stream, null, null, null, null, t1, t2, null, null, [$S, $T]); t2._BufferingStreamSubscription$4(onData, onError, onDone, cancelOnError); t2._ForwardingStreamSubscription$5(_stream, onData, onError, onDone, cancelOnError, $S, $T); return t2; } } }, _MapStream: { "^": "_ForwardingStream;_transform,_async$_source,$ti", _handleData$2: function(inputEvent, sink) { var outputEvent, e, s, exception, t1; outputEvent = null; try { outputEvent = this._transform.call$1(inputEvent); } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); P._addErrorWithReplacement(sink, e, s); return; } sink._async$_add$1(outputEvent); } }, AsyncError: { "^": "Object;error>,stackTrace<", toString$0: function(_) { return H.S(this.error); }, $isError: 1 }, _Zone: { "^": "Object;" }, _rootHandleUncaughtError_closure: { "^": "Closure:0;_box_0,stackTrace", call$0: function() { var t1, t2, error; t1 = this._box_0; t2 = t1.error; if (t2 == null) { error = new P.NullThrownError(); t1.error = error; t1 = error; } else t1 = t2; t2 = this.stackTrace; if (t2 == null) throw H.wrapException(t1); error = H.wrapException(t1); error.stack = J.toString$0$(t2); throw error; } }, _RootZone: { "^": "_Zone;", runGuarded$1: function(f) { var e, s, t1, exception; try { if (C.C__RootZone === $.Zone__current) { t1 = f.call$0(); return t1; } t1 = P._rootRun(null, null, this, f); return t1; } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); return P._rootHandleUncaughtError(null, null, this, e, s); } }, runUnaryGuarded$2: function(f, arg) { var e, s, t1, exception; try { if (C.C__RootZone === $.Zone__current) { t1 = f.call$1(arg); return t1; } t1 = P._rootRunUnary(null, null, this, f, arg); return t1; } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); return P._rootHandleUncaughtError(null, null, this, e, s); } }, runBinaryGuarded$3: function(f, arg1, arg2) { var e, s, t1, exception; try { if (C.C__RootZone === $.Zone__current) { t1 = f.call$2(arg1, arg2); return t1; } t1 = P._rootRunBinary(null, null, this, f, arg1, arg2); return t1; } catch (exception) { t1 = H.unwrapException(exception); e = t1; s = H.getTraceFromException(exception); return P._rootHandleUncaughtError(null, null, this, e, s); } }, bindCallback$2$runGuarded: function(f, runGuarded) { if (runGuarded) return new P._RootZone_bindCallback_closure(this, f); else return new P._RootZone_bindCallback_closure0(this, f); }, bindUnaryCallback$2$runGuarded: function(f, runGuarded) { return new P._RootZone_bindUnaryCallback_closure(this, f); }, $index: function(_, key) { return; }, run$1: function(f) { if ($.Zone__current === C.C__RootZone) return f.call$0(); return P._rootRun(null, null, this, f); }, runUnary$2: function(f, arg) { if ($.Zone__current === C.C__RootZone) return f.call$1(arg); return P._rootRunUnary(null, null, this, f, arg); }, runBinary$3: function(f, arg1, arg2) { if ($.Zone__current === C.C__RootZone) return f.call$2(arg1, arg2); return P._rootRunBinary(null, null, this, f, arg1, arg2); } }, _RootZone_bindCallback_closure: { "^": "Closure:0;$this,f", call$0: function() { return this.$this.runGuarded$1(this.f); } }, _RootZone_bindCallback_closure0: { "^": "Closure:0;$this,f", call$0: function() { return this.$this.run$1(this.f); } }, _RootZone_bindUnaryCallback_closure: { "^": "Closure:2;$this,f", call$1: function(arg) { return this.$this.runUnaryGuarded$2(this.f, arg); } } }], ["dart.collection", "dart:collection",, P, { "^": "", LinkedHashMap__makeEmpty: function() { return new H.JsLinkedHashMap(0, null, null, null, null, null, 0, [null, null]); }, LinkedHashMap__makeLiteral: function(keyValuePairs) { return H.fillLiteralMap(keyValuePairs, new H.JsLinkedHashMap(0, null, null, null, null, null, 0, [null, null])); }, IterableBase_iterableToShortString: function(iterable, leftDelimiter, rightDelimiter) { var parts, t1; if (P._isToStringVisiting(iterable)) { if (leftDelimiter === "(" && rightDelimiter === ")") return "(...)"; return leftDelimiter + "..." + rightDelimiter; } parts = []; t1 = $.$get$_toStringVisiting(); t1.push(iterable); try { P._iterablePartsToStrings(iterable, parts); } finally { if (0 >= t1.length) return H.ioore(t1, -1); t1.pop(); } t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter; return t1.charCodeAt(0) == 0 ? t1 : t1; }, IterableBase_iterableToFullString: function(iterable, leftDelimiter, rightDelimiter) { var buffer, t1, t2; if (P._isToStringVisiting(iterable)) return leftDelimiter + "..." + rightDelimiter; buffer = new P.StringBuffer(leftDelimiter); t1 = $.$get$_toStringVisiting(); t1.push(iterable); try { t2 = buffer; t2._contents = P.StringBuffer__writeAll(t2.get$_contents(), iterable, ", "); } finally { if (0 >= t1.length) return H.ioore(t1, -1); t1.pop(); } t1 = buffer; t1._contents = t1.get$_contents() + rightDelimiter; t1 = buffer.get$_contents(); return t1.charCodeAt(0) == 0 ? t1 : t1; }, _isToStringVisiting: function(o) { var i, t1; for (i = 0; t1 = $.$get$_toStringVisiting(), i < t1.length; ++i) if (o === t1[i]) return true; return false; }, _iterablePartsToStrings: function(iterable, parts) { var it, $length, count, next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision; it = iterable.get$iterator(iterable); $length = 0; count = 0; while (true) { if (!($length < 80 || count < 3)) break; if (!it.moveNext$0()) return; next = H.S(it.get$current()); parts.push(next); $length += next.length + 2; ++count; } if (!it.moveNext$0()) { if (count <= 5) return; if (0 >= parts.length) return H.ioore(parts, -1); ultimateString = parts.pop(); if (0 >= parts.length) return H.ioore(parts, -1); penultimateString = parts.pop(); } else { penultimate = it.get$current(); ++count; if (!it.moveNext$0()) { if (count <= 4) { parts.push(H.S(penultimate)); return; } ultimateString = H.S(penultimate); if (0 >= parts.length) return H.ioore(parts, -1); penultimateString = parts.pop(); $length += ultimateString.length + 2; } else { ultimate = it.get$current(); ++count; for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) { ultimate0 = it.get$current(); ++count; if (count > 100) { while (true) { if (!($length > 75 && count > 3)) break; if (0 >= parts.length) return H.ioore(parts, -1); $length -= parts.pop().length + 2; --count; } parts.push("..."); return; } } penultimateString = H.S(penultimate); ultimateString = H.S(ultimate); $length += ultimateString.length + penultimateString.length + 4; } } if (count > parts.length + 2) { $length += 5; elision = "..."; } else elision = null; while (true) { if (!($length > 80 && parts.length > 3)) break; if (0 >= parts.length) return H.ioore(parts, -1); $length -= parts.pop().length + 2; if (elision == null) { $length += 5; elision = "..."; } } if (elision != null) parts.push(elision); parts.push(penultimateString); parts.push(ultimateString); }, LinkedHashSet_LinkedHashSet: function(equals, hashCode, isValidKey, $E) { return new P._LinkedHashSet(0, null, null, null, null, null, 0, [$E]); }, LinkedHashSet_LinkedHashSet$from: function(elements, $E) { var r###lt, t1, _i; r###lt = P.LinkedHashSet_LinkedHashSet(null, null, null, $E); for (t1 = elements.length, _i = 0; _i < elements.length; elements.length === t1 || (0, H.throwConcurrentModificationError)(elements), ++_i) r###lt.add$1(0, elements[_i]); return r###lt; }, Maps_mapToString: function(m) { var t1, r###lt, t2; t1 = {}; if (P._isToStringVisiting(m)) return "{...}"; r###lt = new P.StringBuffer(""); try { $.$get$_toStringVisiting().push(m); t2 = r###lt; t2._contents = t2.get$_contents() + "{"; t1.first = true; m.forEach$1(0, new P.Maps_mapToString_closure(t1, r###lt)); t1 = r###lt; t1._contents = t1.get$_contents() + "}"; } finally { t1 = $.$get$_toStringVisiting(); if (0 >= t1.length) return H.ioore(t1, -1); t1.pop(); } t1 = r###lt.get$_contents(); return t1.charCodeAt(0) == 0 ? t1 : t1; }, _LinkedIdentityHashMap: { "^": "JsLinkedHashMap;_length,_strings,_nums,_rest,_first,_last,_modifications,$ti", internalComputeHashCode$1: function(key) { return H.objectHashCode(key) & 0x3ffffff; }, internalFindBucketIndex$2: function(bucket, key) { var $length, i, t1; if (bucket == null) return -1; $length = bucket.length; for (i = 0; i < $length; ++i) { t1 = bucket[i].get$hashMapCellKey(); if (t1 == null ? key == null : t1 === key) return i; } return -1; }, static: { _LinkedIdentityHashMap__LinkedIdentityHashMap$es6: function($K, $V) { return new P._LinkedIdentityHashMap(0, null, null, null, null, null, 0, [$K, $V]); } } }, _LinkedHashSet: { "^": "_HashSetBase;_collection$_length,_collection$_strings,_collection$_nums,_collection$_rest,_collection$_first,_collection$_last,_collection$_modifications,$ti", get$iterator: function(_) { var t1 = new P._LinkedHashSetIterator(this, this._collection$_modifications, null, null); t1._collection$_cell = this._collection$_first; return t1; }, get$length: function(_) { return this._collection$_length; }, contains$1: function(_, object) { var strings, nums; if (typeof object === "string" && object !== "__proto__") { strings = this._collection$_strings; if (strings == null) return false; return strings[object] != null; } else if (typeof object === "number" && (object & 0x3ffffff) === object) { nums = this._collection$_nums; if (nums == null) return false; return nums[object] != null; } else return this._contains$1(object); }, _contains$1: function(object) { var rest = this._collection$_rest; if (rest == null) return false; return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], object) >= 0; }, lookup$1: function(object) { var t1; if (!(typeof object === "string" && object !== "__proto__")) t1 = typeof object === "number" && (object & 0x3ffffff) === object; else t1 = true; if (t1) return this.contains$1(0, object) ? object : null; else return this._lookup$1(object); }, _lookup$1: function(object) { var rest, bucket, index; rest = this._collection$_rest; if (rest == null) return; bucket = rest[this._computeHashCode$1(object)]; index = this._findBucketIndex$2(bucket, object); if (index < 0) return; return J.$index$asx(bucket, index).get$_element(); }, add$1: function(_, element) { var strings, table, nums; if (typeof element === "string" && element !== "__proto__") { strings = this._collection$_strings; if (strings == null) { table = Object.create(null); table["<non-identifier-key>"] = table; delete table["<non-identifier-key>"]; this._collection$_strings = table; strings = table; } return this._collection$_addHashTableEntry$2(strings, element); } else if (typeof element === "number" && (element & 0x3ffffff) === element) { nums = this._collection$_nums; if (nums == null) { table = Object.create(null); table["<non-identifier-key>"] = table; delete table["<non-identifier-key>"]; this._collection$_nums = table; nums = table; } return this._collection$_addHashTableEntry$2(nums, element); } else return this._add$1(element); }, _add$1: function(element) { var rest, hash, bucket; rest = this._collection$_rest; if (rest == null) { rest = P._LinkedHashSet__newHashTable(); this._collection$_rest = rest; } hash = this._computeHashCode$1(element); bucket = rest[hash]; if (bucket == null) rest[hash] = [this._collection$_newLinkedCell$1(element)]; else { if (this._findBucketIndex$2(bucket, element) >= 0) return false; bucket.push(this._collection$_newLinkedCell$1(element)); } return true; }, remove$1: function(_, object) { if (typeof object === "string" && object !== "__proto__") return this._collection$_removeHashTableEntry$2(this._collection$_strings, object); else if (typeof object === "number" && (object & 0x3ffffff) === object) return this._collection$_removeHashTableEntry$2(this._collection$_nums, object); else return this._remove$1(object); }, _remove$1: function(object) { var rest, bucket, index; rest = this._collection$_rest; if (rest == null) return false; bucket = rest[this._computeHashCode$1(object)]; index = this._findBucketIndex$2(bucket, object); if (index < 0) return false; this._collection$_unlinkCell$1(bucket.splice(index, 1)[0]); return true; }, clear$0: function(_) { if (this._collection$_length > 0) { this._collection$_last = null; this._collection$_first = null; this._collection$_rest = null; this._collection$_nums = null; this._collection$_strings = null; this._collection$_length = 0; this._collection$_modifications = this._collection$_modifications + 1 & 67108863; } }, _collection$_addHashTableEntry$2: function(table, element) { if (table[element] != null) return false; table[element] = this._collection$_newLinkedCell$1(element); return true; }, _collection$_removeHashTableEntry$2: function(table, element) { var cell; if (table == null) return false; cell = table[element]; if (cell == null) return false; this._collection$_unlinkCell$1(cell); delete table[element]; return true; }, _collection$_newLinkedCell$1: function(element) { var cell, last; cell = new P._LinkedHashSetCell(element, null, null); if (this._collection$_first == null) { this._collection$_last = cell; this._collection$_first = cell; } else { last = this._collection$_last; cell._collection$_previous = last; last._collection$_next = cell; this._collection$_last = cell; } ++this._collection$_length; this._collection$_modifications = this._collection$_modifications + 1 & 67108863; return cell; }, _collection$_unlinkCell$1: function(cell) { var previous, next; previous = cell.get$_collection$_previous(); next = cell._collection$_next; if (previous == null) this._collection$_first = next; else previous._collection$_next = next; if (next == null) this._collection$_last = previous; else next._collection$_previous = previous; --this._collection$_length; this._collection$_modifications = this._collection$_modifications + 1 & 67108863; }, _computeHashCode$1: function(element) { return J.get$hashCode$(element) & 0x3ffffff; }, _findBucketIndex$2: function(bucket, element) { var $length, i; if (bucket == null) return -1; $length = bucket.length; for (i = 0; i < $length; ++i) if (J.$eq$(bucket[i].get$_element(), element)) return i; return -1; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: null, static: { _LinkedHashSet__newHashTable: function() { var table = Object.create(null); table["<non-identifier-key>"] = table; delete table["<non-identifier-key>"]; return table; } } }, _LinkedHashSetCell: { "^": "Object;_element<,_collection$_next,_collection$_previous<" }, _LinkedHashSetIterator: { "^": "Object;_set,_collection$_modifications,_collection$_cell,_collection$_current", get$current: function() { return this._collection$_current; }, moveNext$0: function() { var t1 = this._set; if (this._collection$_modifications !== t1._collection$_modifications) throw H.wrapException(new P.ConcurrentModificationError(t1)); else { t1 = this._collection$_cell; if (t1 == null) { this._collection$_current = null; return false; } else { this._collection$_current = t1._element; this._collection$_cell = t1._collection$_next; return true; } } } }, _HashSetBase: { "^": "SetBase;$ti" }, ListBase: { "^": "Object_ListMixin;$ti" }, Object_ListMixin: { "^": "Object+ListMixin;", $asList: null, $asEfficientLengthIterable: null, $isList: 1, $isEfficientLengthIterable: 1 }, ListMixin: { "^": "Object;$ti", get$iterator: function(receiver) { return new H.ListIterator(receiver, this.get$length(receiver), 0, null); }, elementAt$1: function(receiver, index) { return this.$index(receiver, index); }, map$1: function(receiver, f) { return new H.MappedListIterable(receiver, f, [null, null]); }, toString$0: function(receiver) { return P.IterableBase_iterableToFullString(receiver, "[", "]"); }, $isList: 1, $asList: null, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: null }, Maps_mapToString_closure: { "^": "Closure:13;_box_0,r###lt", call$2: function(k, v) { var t1, t2; t1 = this._box_0; if (!t1.first) this.r###lt._contents += ", "; t1.first = false; t1 = this.r###lt; t2 = t1._contents += H.S(k); t1._contents = t2 + ": "; t1._contents += H.S(v); } }, ListQueue: { "^": "ListIterable;_table,_head,_tail,_modificationCount,$ti", get$iterator: function(_) { return new P._ListQueueIterator(this, this._tail, this._modificationCount, this._head, null); }, get$isEmpty: function(_) { return this._head === this._tail; }, get$length: function(_) { return (this._tail - this._head & this._table.length - 1) >>> 0; }, elementAt$1: function(_, index) { var $length, t1, t2, t3; $length = (this._tail - this._head & this._table.length - 1) >>> 0; if (0 > index || index >= $length) H.throwExpression(P.IndexError$(index, this, "index", null, $length)); t1 = this._table; t2 = t1.length; t3 = (this._head + index & t2 - 1) >>> 0; if (t3 < 0 || t3 >= t2) return H.ioore(t1, t3); return t1[t3]; }, clear$0: function(_) { var i, t1, t2, t3, t4; i = this._head; t1 = this._tail; if (i !== t1) { for (t2 = this._table, t3 = t2.length, t4 = t3 - 1; i !== t1; i = (i + 1 & t4) >>> 0) { if (i < 0 || i >= t3) return H.ioore(t2, i); t2[i] = null; } this._tail = 0; this._head = 0; ++this._modificationCount; } }, toString$0: function(_) { return P.IterableBase_iterableToFullString(this, "{", "}"); }, removeFirst$0: function() { var t1, t2, t3, r###lt; t1 = this._head; if (t1 === this._tail) throw H.wrapException(H.IterableElementError_noElement()); ++this._modificationCount; t2 = this._table; t3 = t2.length; if (t1 >= t3) return H.ioore(t2, t1); r###lt = t2[t1]; t2[t1] = null; this._head = (t1 + 1 & t3 - 1) >>> 0; return r###lt; }, _add$1: function(element) { var t1, t2, t3; t1 = this._table; t2 = this._tail; t3 = t1.length; if (t2 < 0 || t2 >= t3) return H.ioore(t1, t2); t1[t2] = element; t3 = (t2 + 1 & t3 - 1) >>> 0; this._tail = t3; if (this._head === t3) this._grow$0(); ++this._modificationCount; }, _grow$0: function() { var t1, newTable, t2, split; t1 = new Array(this._table.length * 2); t1.fixed$length = Array; newTable = H.setRuntimeTypeInfo(t1, this.$ti); t1 = this._table; t2 = this._head; split = t1.length - t2; C.JSArray_methods.setRange$4(newTable, 0, split, t1, t2); C.JSArray_methods.setRange$4(newTable, split, split + this._head, this._table, 0); this._head = 0; this._tail = this._table.length; this._table = newTable; }, ListQueue$1: function(initialCapacity, $E) { var t1 = new Array(8); t1.fixed$length = Array; this._table = H.setRuntimeTypeInfo(t1, [$E]); }, $asEfficientLengthIterable: null, static: { ListQueue$: function(initialCapacity, $E) { var t1 = new P.ListQueue(null, 0, 0, 0, [$E]); t1.ListQueue$1(initialCapacity, $E); return t1; } } }, _ListQueueIterator: { "^": "Object;_queue,_end,_modificationCount,_collection$_position,_collection$_current", get$current: function() { return this._collection$_current; }, moveNext$0: function() { var t1, t2, t3; t1 = this._queue; if (this._modificationCount !== t1._modificationCount) H.throwExpression(new P.ConcurrentModificationError(t1)); t2 = this._collection$_position; if (t2 === this._end) { this._collection$_current = null; return false; } t1 = t1._table; t3 = t1.length; if (t2 >= t3) return H.ioore(t1, t2); this._collection$_current = t1[t2]; this._collection$_position = (t2 + 1 & t3 - 1) >>> 0; return true; } }, SetMixin: { "^": "Object;$ti", addAll$1: function(_, elements) { var t1; for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) this.add$1(0, t1.get$current()); }, map$1: function(_, f) { return new H.EfficientLengthMappedIterable(this, f, [H.getTypeArgumentByIndex(this, 0), null]); }, toString$0: function(_) { return P.IterableBase_iterableToFullString(this, "{", "}"); }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: null }, SetBase: { "^": "SetMixin;$ti" } }], ["dart.core", "dart:core",, P, { "^": "", Error_safeToString: function(object) { if (typeof object === "number" || typeof object === "boolean" || null == object) return J.toString$0$(object); if (typeof object === "string") return JSON.stringify(object); return P.Error__objectToString(object); }, Error__objectToString: function(object) { var t1 = J.getInterceptor(object); if (!!t1.$isClosure) return t1.toString$0(object); return H.Primitives_objectToHumanReadableString(object); }, Exception_Exception: function(message) { return new P._Exception(message); }, List_List$from: function(elements, growable, $E) { var list, t1; list = H.setRuntimeTypeInfo([], [$E]); for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) list.push(t1.get$current()); return list; }, print: function(object) { var line = H.S(object); H.printString(line); }, bool: { "^": "Object;" }, "+bool": 0, DateTime: { "^": "Object;" }, $double: { "^": "num;" }, "+double": 0, Duration: { "^": "Object;_duration", $add: function(_, other) { return new P.Duration(C.JSInt_methods.$add(this._duration, other.get$_duration())); }, $lt: function(_, other) { return C.JSInt_methods.$lt(this._duration, other.get$_duration()); }, $eq: function(_, other) { if (other == null) return false; if (!(other instanceof P.Duration)) return false; return this._duration === other._duration; }, get$hashCode: function(_) { return this._duration & 0x1FFFFFFF; }, toString$0: function(_) { var t1, t2, twoDigitMinutes, twoDigitSeconds, sixDigitUs; t1 = new P.Duration_toString_twoDigits(); t2 = this._duration; if (t2 < 0) return "-" + new P.Duration(-t2).toString$0(0); twoDigitMinutes = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods._tdivFast$1(t2, 60000000), 60)); twoDigitSeconds = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods._tdivFast$1(t2, 1000000), 60)); sixDigitUs = new P.Duration_toString_sixDigits().call$1(C.JSInt_methods.remainder$1(t2, 1000000)); return "" + C.JSInt_methods._tdivFast$1(t2, 3600000000) + ":" + H.S(twoDigitMinutes) + ":" + H.S(twoDigitSeconds) + "." + H.S(sixDigitUs); } }, Duration_toString_sixDigits: { "^": "Closure:4;", call$1: function(n) { if (n >= 100000) return "" + n; if (n >= 10000) return "0" + n; if (n >= 1000) return "00" + n; if (n >= 100) return "000" + n; if (n >= 10) return "0000" + n; return "00000" + n; } }, Duration_toString_twoDigits: { "^": "Closure:4;", call$1: function(n) { if (n >= 10) return "" + n; return "0" + n; } }, Error: { "^": "Object;", get$stackTrace: function() { return H.getTraceFromException(this.$thrownJsError); } }, NullThrownError: { "^": "Error;", toString$0: function(_) { return "Throw of null."; } }, ArgumentError: { "^": "Error;_hasValue,invalidValue,name,message", get$_errorName: function() { return "Invalid argument" + (!this._hasValue ? "(s)" : ""); }, get$_errorExplanation: function() { return ""; }, toString$0: function(_) { var t1, nameString, message, prefix, explanation, errorValue; t1 = this.name; nameString = t1 != null ? " (" + H.S(t1) + ")" : ""; t1 = this.message; message = t1 == null ? "" : ": " + H.S(t1); prefix = this.get$_errorName() + nameString + message; if (!this._hasValue) return prefix; explanation = this.get$_errorExplanation(); errorValue = P.Error_safeToString(this.invalidValue); return prefix + explanation + ": " + H.S(errorValue); }, static: { ArgumentError$: function(message) { return new P.ArgumentError(false, null, null, message); }, ArgumentError$value: function(value, $name, message) { return new P.ArgumentError(true, value, $name, message); } } }, RangeError: { "^": "ArgumentError;start,end,_hasValue,invalidValue,name,message", get$_errorName: function() { return "RangeError"; }, get$_errorExplanation: function() { var t1, explanation, t2; t1 = this.start; if (t1 == null) { t1 = this.end; explanation = t1 != null ? ": Not less than or equal to " + H.S(t1) : ""; } else { t2 = this.end; if (t2 == null) explanation = ": Not greater than or equal to " + H.S(t1); else { if (typeof t2 !== "number") return t2.$gt(); if (typeof t1 !== "number") return H.iae(t1); if (t2 > t1) explanation = ": Not in range " + t1 + ".." + t2 + ", inclusive"; else explanation = t2 < t1 ? ": Valid value range is empty" : ": Only valid value is " + t1; } } return explanation; }, static: { RangeError$: function(message) { return new P.RangeError(null, null, false, null, null, message); }, RangeError$value: function(value, $name, message) { return new P.RangeError(null, null, true, value, $name, "Value not in range"); }, RangeError$range: function(invalidValue, minValue, maxValue, $name, message) { return new P.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value"); }, RangeError_checkValidRange: function(start, end, $length, startName, endName, message) { if (0 > start || start > $length) throw H.wrapException(P.RangeError$range(start, 0, $length, "start", message)); if (start > end || end > $length) throw H.wrapException(P.RangeError$range(end, start, $length, "end", message)); return end; } } }, IndexError: { "^": "ArgumentError;indexable,length>,_hasValue,invalidValue,name,message", get$_errorName: function() { return "RangeError"; }, get$_errorExplanation: function() { if (J.$lt$n(this.invalidValue, 0)) return ": index must not be negative"; var t1 = this.length; if (t1 === 0) return ": no indices are valid"; return ": index should be less than " + H.S(t1); }, static: { IndexError$: function(invalidValue, indexable, $name, message, $length) { var t1 = $length != null ? $length : J.get$length$asx(indexable); return new P.IndexError(indexable, t1, true, invalidValue, $name, "Index out of range"); } } }, UnsupportedError: { "^": "Error;message", toString$0: function(_) { return "Unsupported operation: " + this.message; } }, UnimplementedError: { "^": "Error;message", toString$0: function(_) { var t1 = this.message; return t1 != null ? "UnimplementedError: " + H.S(t1) : "UnimplementedError"; } }, StateError: { "^": "Error;message", toString$0: function(_) { return "Bad state: " + this.message; } }, ConcurrentModificationError: { "^": "Error;modifiedObject", toString$0: function(_) { var t1 = this.modifiedObject; if (t1 == null) return "Concurrent modification during iteration."; return "Concurrent modification during iteration: " + H.S(P.Error_safeToString(t1)) + "."; } }, OutOfMemoryError: { "^": "Object;", toString$0: function(_) { return "Out of Memory"; }, get$stackTrace: function() { return; }, $isError: 1 }, StackOverflowError: { "^": "Object;", toString$0: function(_) { return "Stack Overflow"; }, get$stackTrace: function() { return; }, $isError: 1 }, CyclicInitializationError: { "^": "Error;variableName", toString$0: function(_) { return "Reading static variable '" + this.variableName + "' during its initialization"; } }, _Exception: { "^": "Object;message", toString$0: function(_) { var t1 = this.message; if (t1 == null) return "Exception"; return "Exception: " + H.S(t1); } }, Expando: { "^": "Object;name,_jsWeakMapOrKey", toString$0: function(_) { return "Expando:" + H.S(this.name); }, $index: function(_, object) { var t1, values; t1 = this._jsWeakMapOrKey; if (typeof t1 !== "string") { if (object == null || typeof object === "boolean" || typeof object === "number" || typeof object === "string") H.throwExpression(P.ArgumentError$value(object, "Expandos are not allowed on strings, numbers, booleans or null", null)); return t1.get(object); } values = H.Primitives_getProperty(object, "expando$values"); return values == null ? null : H.Primitives_getProperty(values, t1); }, $indexSet: function(_, object, value) { var t1, values; t1 = this._jsWeakMapOrKey; if (typeof t1 !== "string") t1.set(object, value); else { values = H.Primitives_getProperty(object, "expando$values"); if (values == null) { values = new P.Object(); H.Primitives_setProperty(object, "expando$values", values); } H.Primitives_setProperty(values, t1, value); } } }, $int: { "^": "num;" }, "+int": 0, Iterable: { "^": "Object;$ti", map$1: function(_, f) { return H.MappedIterable_MappedIterable(this, f, H.getRuntimeTypeArgument(this, "Iterable", 0), null); }, where$1: ["super$Iterable$where", function(_, test) { return new H.WhereIterable(this, test, [H.getRuntimeTypeArgument(this, "Iterable", 0)]); }], toList$1$growable: function(_, growable) { return P.List_List$from(this, true, H.getRuntimeTypeArgument(this, "Iterable", 0)); }, toList$0: function($receiver) { return this.toList$1$growable($receiver, true); }, get$length: function(_) { var it, count; it = this.get$iterator(this); for (count = 0; it.moveNext$0();) ++count; return count; }, get$single: function(_) { var it, r###lt; it = this.get$iterator(this); if (!it.moveNext$0()) throw H.wrapException(H.IterableElementError_noElement()); r###lt = it.get$current(); if (it.moveNext$0()) throw H.wrapException(H.IterableElementError_tooMany()); return r###lt; }, elementAt$1: function(_, index) { var t1, elementIndex, element; if (index < 0) H.throwExpression(P.RangeError$range(index, 0, null, "index", null)); for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) { element = t1.get$current(); if (index === elementIndex) return element; ++elementIndex; } throw H.wrapException(P.IndexError$(index, this, "index", null, elementIndex)); }, toString$0: function(_) { return P.IterableBase_iterableToShortString(this, "(", ")"); } }, Iterator: { "^": "Object;" }, List: { "^": "Object;$ti", $asList: null, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: null }, "+List": 0, Null: { "^": "Object;", toString$0: function(_) { return "null"; } }, "+Null": 0, num: { "^": "Object;" }, "+num": 0, Object: { "^": ";", $eq: function(_, other) { return this === other; }, get$hashCode: function(_) { return H.Primitives_objectHashCode(this); }, toString$0: function(_) { return H.Primitives_objectToHumanReadableString(this); }, toString: function() { return this.toString$0(this); } }, StackTrace: { "^": "Object;" }, String: { "^": "Object;" }, "+String": 0, StringBuffer: { "^": "Object;_contents<", get$length: function(_) { return this._contents.length; }, toString$0: function(_) { var t1 = this._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; }, static: { StringBuffer__writeAll: function(string, objects, separator) { var iterator = J.get$iterator$ax(objects); if (!iterator.moveNext$0()) return string; if (separator.length === 0) { do string += H.S(iterator.get$current()); while (iterator.moveNext$0()); } else { string += H.S(iterator.get$current()); for (; iterator.moveNext$0();) string = string + separator + H.S(iterator.get$current()); } return string; } } } }], ["dart.dom.html", "dart:html",, W, { "^": "", CssStyleDeclaration__camelCase: function(hyphenated) { return hyphenated.replace(/^-ms-/, "ms-").replace(/-([\da-z])/ig, C.JS_CONST_s8I); }, Element_Element$html: function(html, treeSanitizer, validator) { var t1, fragment; t1 = document.body; fragment = (t1 && C.BodyElement_methods).createFragment$3$treeSanitizer$validator(t1, html, treeSanitizer, validator); fragment.toString; t1 = new H.WhereIterable(new W._ChildNodeListLazy(fragment), new W.closure(), [W.Node]); return t1.get$single(t1); }, Element__safeTagName: function(element) { var r###lt, t1, exception; r###lt = "element tag unavailable"; try { t1 = J.get$tagName$x(element); if (typeof t1 === "string") r###lt = element.tagName; } catch (exception) { H.unwrapException(exception); } return r###lt; }, _wrapZone: function(callback) { var t1 = $.Zone__current; if (t1 === C.C__RootZone) return callback; return t1.bindUnaryCallback$2$runGuarded(callback, true); }, HtmlElement: { "^": "Element;", "%": "HTMLAppletElement|HTMLBRElement|HTMLCanvasElement|HTMLContentElement|HTMLDListElement|HTMLDataListElement|HTMLDetailsElement|HTMLDialogElement|HTMLDirectoryElement|HTMLDivElement|HTMLFontElement|HTMLFrameElement|HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLImageElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLMarqueeElement|HTMLMenuElement|HTMLMenuItemElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLOptGroupElement|HTMLOptionElement|HTMLParagraphElement|HTMLPictureElement|HTMLPreElement|HTMLProgressElement|HTMLQuoteElement|HTMLScriptElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement|HTMLTableRowElement|HTMLTableSectionElement|HTMLTitleElement|HTMLTrackElement|HTMLUListElement|HTMLUnknownElement|PluginPlaceholderElement;HTMLElement" }, AnchorElement: { "^": "HtmlElement;hostname=,href},port=,protocol=", toString$0: function(receiver) { return String(receiver); }, $isInterceptor: 1, "%": "HTMLAnchorElement" }, AreaElement: { "^": "HtmlElement;hostname=,href},port=,protocol=", toString$0: function(receiver) { return String(receiver); }, $isInterceptor: 1, "%": "HTMLAreaElement" }, BaseElement: { "^": "HtmlElement;href}", "%": "HTMLBaseElement" }, BodyElement: { "^": "HtmlElement;", $isBodyElement: 1, $isInterceptor: 1, "%": "HTMLBodyElement" }, ButtonElement: { "^": "HtmlElement;name=", "%": "HTMLButtonElement" }, CharacterData: { "^": "Node;length=", $isInterceptor: 1, "%": "CDATASection|CharacterData|Comment|ProcessingInstruction|Text" }, CssFontFaceRule: { "^": "CssRule;style=", "%": "CSSFontFaceRule" }, CssKeyframeRule: { "^": "CssRule;style=", "%": "CSSKeyframeRule|MozCSSKeyframeRule|WebKitCSSKeyframeRule" }, CssPageRule: { "^": "CssRule;style=", "%": "CSSPageRule" }, CssRule: { "^": "Interceptor;", $isObject: 1, "%": "CSSCharsetRule|CSSGroupingRule|CSSImportRule|CSSKeyframesRule|CSSMediaRule|CSSSupportsRule|MozCSSKeyframesRule|WebKitCSSKeyframesRule;CSSRule" }, CssStyleDeclaration: { "^": "Interceptor_CssStyleDeclarationBase;length=", getPropertyValue$1: function(receiver, propertyName) { var propValue = this._getPropertyValueHelper$1(receiver, propertyName); return propValue != null ? propValue : ""; }, _getPropertyValueHelper$1: function(receiver, propertyName) { if (W.CssStyleDeclaration__camelCase(propertyName) in receiver) return receiver.getPropertyValue(propertyName); else return receiver.getPropertyValue(P.Device_cssPrefix() + propertyName); }, _browserPropertyName$1: function(receiver, propertyName) { var t1, $name; t1 = $.$get$CssStyleDeclaration__propertyCache(); $name = t1[propertyName]; if (typeof $name === "string") return $name; $name = W.CssStyleDeclaration__camelCase(propertyName) in receiver ? propertyName : P.Device_cssPrefix() + propertyName; t1[propertyName] = $name; return $name; }, _setPropertyHelper$3: function(receiver, propertyName, value, priority) { receiver.setProperty(propertyName, value, priority); }, "%": "CSS2Properties|CSSStyleDeclaration|MSStyleCSSProperties" }, Interceptor_CssStyleDeclarationBase: { "^": "Interceptor+CssStyleDeclarationBase;" }, CssStyleDeclarationBase: { "^": "Object;", get$page: function(receiver) { return this.getPropertyValue$1(receiver, "page"); } }, CssStyleRule: { "^": "CssRule;style=", "%": "CSSStyleRule" }, CssStyleSheet: { "^": "StyleSheet;cssRules=", "%": "CSSStyleSheet" }, CssViewportRule: { "^": "CssRule;style=", "%": "CSSViewportRule" }, DocumentFragment: { "^": "Node;", $isInterceptor: 1, "%": "DocumentFragment|ShadowRoot" }, DomException: { "^": "Interceptor;", toString$0: function(receiver) { return String(receiver); }, "%": "DOMException" }, Element: { "^": "Node;style=,tagName=", get$attributes: function(receiver) { return new W._ElementAttributeMap(receiver); }, toString$0: function(receiver) { return receiver.localName; }, createFragment$3$treeSanitizer$validator: function(receiver, html, treeSanitizer, validator) { var t1, t2, base, contextElement, fragment; if (treeSanitizer == null) { t1 = $.Element__defaultValidator; if (t1 == null) { t1 = H.setRuntimeTypeInfo([], [W.NodeValidator]); t2 = new W.NodeValidatorBuilder(t1); t1.push(W._Html5NodeValidator$(null)); t1.push(W._TemplatingNodeValidator$()); $.Element__defaultValidator = t2; validator = t2; } else validator = t1; t1 = $.Element__defaultSanitizer; if (t1 == null) { t1 = new W._ValidatingTreeSanitizer(validator); $.Element__defaultSanitizer = t1; treeSanitizer = t1; } else { t1.validator = validator; treeSanitizer = t1; } } if ($.Element__parseDocument == null) { t1 = document; t2 = t1.implementation.createHTMLDocument(""); $.Element__parseDocument = t2; $.Element__parseRange = t2.createRange(); t2 = $.Element__parseDocument; t2.toString; base = t2.createElement("base"); J.set$href$x(base, t1.baseURI); $.Element__parseDocument.head.appendChild(base); } t1 = $.Element__parseDocument; if (!!this.$isBodyElement) contextElement = t1.body; else { t2 = receiver.tagName; t1.toString; contextElement = t1.createElement(t2); $.Element__parseDocument.body.appendChild(contextElement); } if ("createContextualFragment" in window.Range.prototype && !C.JSArray_methods.contains$1(C.List_ego, receiver.tagName)) { $.Element__parseRange.selectNodeContents(contextElement); fragment = $.Element__parseRange.createContextualFragment(html); } else { contextElement.innerHTML = html; fragment = $.Element__parseDocument.createDocumentFragment(); for (; t1 = contextElement.firstChild, t1 != null;) fragment.appendChild(t1); } t1 = $.Element__parseDocument.body; if (contextElement == null ? t1 != null : contextElement !== t1) J.remove$0$ax(contextElement); treeSanitizer.sanitizeTree$1(fragment); document.adoptNode(fragment); return fragment; }, $isElement: 1, $isNode: 1, $isObject: 1, $isInterceptor: 1, "%": ";Element" }, closure: { "^": "Closure:2;", call$1: function(e) { return !!J.getInterceptor(e).$isElement; } }, EmbedElement: { "^": "HtmlElement;name=", "%": "HTMLEmbedElement" }, ErrorEvent: { "^": "Event;error=", "%": "ErrorEvent" }, Event: { "^": "Interceptor;", "%": "AnimationEvent|AnimationPlayerEvent|ApplicationCacheErrorEvent|AudioProcessingEvent|AutocompleteErrorEvent|BeforeInstallPromptEvent|BeforeUnloadEvent|ClipboardEvent|CloseEvent|CrossOriginConnectEvent|CustomEvent|DefaultSessionStartEvent|DeviceLightEvent|DeviceMotionEvent|DeviceOrientationEvent|ExtendableEvent|FetchEvent|FontFaceSetLoadEvent|GamepadEvent|GeofencingEvent|HashChangeEvent|IDBVersionChangeEvent|MIDIConnectionEvent|MIDIMessageEvent|MediaEncryptedEvent|MediaKeyEvent|MediaKeyMessageEvent|MediaQueryListEvent|MediaStreamEvent|MediaStreamTrackEvent|MessageEvent|NotificationEvent|OfflineAudioCompletionEvent|PageTransitionEvent|PeriodicSyncEvent|PopStateEvent|ProgressEvent|PromiseRejectionEvent|PushEvent|RTCDTMFToneChangeEvent|RTCDataChannelEvent|RTCIceCandidateEvent|RTCPeerConnectionIceEvent|RelatedEvent|ResourceProgressEvent|SecurityPolicyViolationEvent|ServicePortConnectEvent|ServiceWorkerMessageEvent|SpeechRecognitionEvent|SpeechSynthesisEvent|StorageEvent|SyncEvent|TrackEvent|TransitionEvent|WebGLContextEvent|WebKitTransitionEvent|XMLHttpRequestProgressEvent;Event|InputEvent" }, EventTarget: { "^": "Interceptor;", _addEventListener$3: function(receiver, type, listener, capture) { return receiver.addEventListener(type, H.convertDartClosureToJS(listener, 1), false); }, _removeEventListener$3: function(receiver, type, listener, capture) { return receiver.removeEventListener(type, H.convertDartClosureToJS(listener, 1), false); }, "%": "MediaStream;EventTarget" }, FieldSetElement: { "^": "HtmlElement;name=", "%": "HTMLFieldSetElement" }, FormElement: { "^": "HtmlElement;length=,name=", "%": "HTMLFormElement" }, IFrameElement: { "^": "HtmlElement;name=", "%": "HTMLIFrameElement" }, InputElement: { "^": "HtmlElement;name=", $isElement: 1, $isInterceptor: 1, "%": "HTMLInputElement" }, KeyboardEvent: { "^": "UIEvent;", get$keyCode: function(receiver) { return receiver.keyCode; }, "%": "KeyboardEvent" }, KeygenElement: { "^": "HtmlElement;name=", "%": "HTMLKeygenElement" }, LinkElement: { "^": "HtmlElement;href},sheet=", "%": "HTMLLinkElement" }, Location: { "^": "Interceptor;", toString$0: function(receiver) { return String(receiver); }, "%": "Location" }, MapElement: { "^": "HtmlElement;name=", "%": "HTMLMapElement" }, MediaElement: { "^": "HtmlElement;error=", "%": "HTMLAudioElement|HTMLMediaElement|HTMLVideoElement" }, MetaElement: { "^": "HtmlElement;name=", "%": "HTMLMetaElement" }, MidiOutput: { "^": "MidiPort;", send$2: function(receiver, data, timestamp) { return receiver.send(data, timestamp); }, send$1: function($receiver, data) { return $receiver.send(data); }, "%": "MIDIOutput" }, MidiPort: { "^": "EventTarget;", "%": "MIDIInput;MIDIPort" }, MouseEvent: { "^": "UIEvent;", get$page: function(receiver) { return new P.Point(receiver.pageX, receiver.pageY, [null]); }, $isMouseEvent: 1, $isObject: 1, "%": "DragEvent|MouseEvent|PointerEvent|WheelEvent" }, Navigator: { "^": "Interceptor;", $isInterceptor: 1, "%": "Navigator" }, _ChildNodeListLazy: { "^": "ListBase;_this", $indexSet: function(_, index, value) { var t1, t2; t1 = this._this; t2 = t1.childNodes; if (index >>> 0 !== index || index >= t2.length) return H.ioore(t2, index); t1.replaceChild(value, t2[index]); }, get$iterator: function(_) { var t1 = this._this.childNodes; return new W.FixedSizeListIterator(t1, t1.length, -1, null); }, get$length: function(_) { return this._this.childNodes.length; }, $index: function(_, index) { var t1 = this._this.childNodes; if (index >>> 0 !== index || index >= t1.length) return H.ioore(t1, index); return t1[index]; }, $asListBase: function() { return [W.Node]; }, $asList: function() { return [W.Node]; }, $asEfficientLengthIterable: function() { return [W.Node]; } }, Node: { "^": "EventTarget;parentNode=,previousNode:previousSibling=", remove$0: function(receiver) { var t1 = receiver.parentNode; if (t1 != null) t1.removeChild(receiver); }, toString$0: function(receiver) { var value = receiver.nodeValue; return value == null ? this.super$Interceptor$toString(receiver) : value; }, $isNode: 1, $isObject: 1, "%": "Document|HTMLDocument|XMLDocument;Node" }, NodeList: { "^": "Interceptor_ListMixin_ImmutableListMixin;", get$length: function(receiver) { return receiver.length; }, $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) throw H.wrapException(P.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet: function(receiver, index, value) { throw H.wrapException(new P.UnsupportedError("Cannot assign element of immutable List.")); }, elementAt$1: function(receiver, index) { if (index < 0 || index >= receiver.length) return H.ioore(receiver, index); return receiver[index]; }, $isList: 1, $asList: function() { return [W.Node]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [W.Node]; }, $isJavaScriptIndexingBehavior: 1, $asJavaScriptIndexingBehavior: function() { return [W.Node]; }, $isJSIndexable: 1, $asJSIndexable: function() { return [W.Node]; }, "%": "NodeList|RadioNodeList" }, Interceptor_ListMixin: { "^": "Interceptor+ListMixin;", $asList: function() { return [W.Node]; }, $asEfficientLengthIterable: function() { return [W.Node]; }, $isList: 1, $isEfficientLengthIterable: 1 }, Interceptor_ListMixin_ImmutableListMixin: { "^": "Interceptor_ListMixin+ImmutableListMixin;", $asList: function() { return [W.Node]; }, $asEfficientLengthIterable: function() { return [W.Node]; }, $isList: 1, $isEfficientLengthIterable: 1 }, ObjectElement: { "^": "HtmlElement;name=", "%": "HTMLObjectElement" }, OutputElement: { "^": "HtmlElement;name=", "%": "HTMLOutputElement" }, ParamElement: { "^": "HtmlElement;name=", "%": "HTMLParamElement" }, SelectElement: { "^": "HtmlElement;length=,name=", "%": "HTMLSelectElement" }, SpeechRecognitionError: { "^": "Event;error=", "%": "SpeechRecognitionError" }, StyleElement: { "^": "HtmlElement;sheet=", "%": "HTMLStyleElement" }, StyleSheet: { "^": "Interceptor;", "%": ";StyleSheet" }, TemplateElement: { "^": "HtmlElement;", $isTemplateElement: 1, "%": "HTMLTemplateElement" }, TextAreaElement: { "^": "HtmlElement;name=", "%": "HTMLTextAreaElement" }, UIEvent: { "^": "Event;", "%": "CompositionEvent|FocusEvent|SVGZoomEvent|TextEvent|TouchEvent;UIEvent" }, Window: { "^": "EventTarget;", $isInterceptor: 1, "%": "DOMWindow|Window" }, _Attr: { "^": "Node;name=", "%": "Attr" }, _CssRuleList: { "^": "Interceptor_ListMixin_ImmutableListMixin0;", get$length: function(receiver) { return receiver.length; }, $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) throw H.wrapException(P.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet: function(receiver, index, value) { throw H.wrapException(new P.UnsupportedError("Cannot assign element of immutable List.")); }, elementAt$1: function(receiver, index) { if (index < 0 || index >= receiver.length) return H.ioore(receiver, index); return receiver[index]; }, $isList: 1, $asList: function() { return [W.CssRule]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [W.CssRule]; }, $isJavaScriptIndexingBehavior: 1, $asJavaScriptIndexingBehavior: function() { return [W.CssRule]; }, $isJSIndexable: 1, $asJSIndexable: function() { return [W.CssRule]; }, "%": "CSSRuleList" }, Interceptor_ListMixin0: { "^": "Interceptor+ListMixin;", $asList: function() { return [W.CssRule]; }, $asEfficientLengthIterable: function() { return [W.CssRule]; }, $isList: 1, $isEfficientLengthIterable: 1 }, Interceptor_ListMixin_ImmutableListMixin0: { "^": "Interceptor_ListMixin0+ImmutableListMixin;", $asList: function() { return [W.CssRule]; }, $asEfficientLengthIterable: function() { return [W.CssRule]; }, $isList: 1, $isEfficientLengthIterable: 1 }, _DocumentType: { "^": "Node;", $isInterceptor: 1, "%": "DocumentType" }, _HTMLFrameSetElement: { "^": "HtmlElement;", $isInterceptor: 1, "%": "HTMLFrameSetElement" }, _NamedNodeMap: { "^": "Interceptor_ListMixin_ImmutableListMixin1;", get$length: function(receiver) { return receiver.length; }, $index: function(receiver, index) { if (index >>> 0 !== index || index >= receiver.length) throw H.wrapException(P.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet: function(receiver, index, value) { throw H.wrapException(new P.UnsupportedError("Cannot assign element of immutable List.")); }, elementAt$1: function(receiver, index) { if (index < 0 || index >= receiver.length) return H.ioore(receiver, index); return receiver[index]; }, $isList: 1, $asList: function() { return [W.Node]; }, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: function() { return [W.Node]; }, $isJavaScriptIndexingBehavior: 1, $asJavaScriptIndexingBehavior: function() { return [W.Node]; }, $isJSIndexable: 1, $asJSIndexable: function() { return [W.Node]; }, "%": "MozNamedAttrMap|NamedNodeMap" }, Interceptor_ListMixin1: { "^": "Interceptor+ListMixin;", $asList: function() { return [W.Node]; }, $asEfficientLengthIterable: function() { return [W.Node]; }, $isList: 1, $isEfficientLengthIterable: 1 }, Interceptor_ListMixin_ImmutableListMixin1: { "^": "Interceptor_ListMixin1+ImmutableListMixin;", $asList: function() { return [W.Node]; }, $asEfficientLengthIterable: function() { return [W.Node]; }, $isList: 1, $isEfficientLengthIterable: 1 }, _AttributeMap: { "^": "Object;_html$_element<", get$keys: function() { var attributes, keys, len, i, attr; attributes = this._html$_element.attributes; keys = H.setRuntimeTypeInfo([], [P.String]); for (len = attributes.length, i = 0; i < len; ++i) { if (i >= attributes.length) return H.ioore(attributes, i); attr = attributes[i]; if (attr.namespaceURI == null) keys.push(J.get$name$x(attr)); } return keys; } }, _ElementAttributeMap: { "^": "_AttributeMap;_html$_element", $index: function(_, key) { return this._html$_element.getAttribute(key); }, $indexSet: function(_, key, value) { this._html$_element.setAttribute(key, value); }, get$length: function(_) { return this.get$keys().length; } }, _EventStream: { "^": "Stream;_html$_target,_eventType,_useCapture,$ti", listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) { var t1 = new W._EventStreamSubscription(0, this._html$_target, this._eventType, W._wrapZone(onData), false, this.$ti); t1._tryR###me$0(); return t1; }, listen$3$onDone$onError: function(onData, onDone, onError) { return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); } }, _EventStreamSubscription: { "^": "StreamSubscription;_pauseCount,_html$_target,_eventType,_onData,_useCapture,$ti", cancel$0: function() { if (this._html$_target == null) return; this._unlisten$0(); this._html$_target = null; this._onData = null; return; }, pause$1: function(_, r###meSignal) { if (this._html$_target == null) return; ++this._pauseCount; this._unlisten$0(); }, pause$0: function($receiver) { return this.pause$1($receiver, null); }, r###me$0: function() { if (this._html$_target == null || this._pauseCount <= 0) return; --this._pauseCount; this._tryR###me$0(); }, _tryR###me$0: function() { var t1, t2, t3; t1 = this._onData; t2 = t1 != null; if (t2 && this._pauseCount <= 0) { t3 = this._html$_target; t3.toString; if (t2) J._addEventListener$3$x(t3, this._eventType, t1, false); } }, _unlisten$0: function() { var t1, t2, t3; t1 = this._onData; t2 = t1 != null; if (t2) { t3 = this._html$_target; t3.toString; if (t2) J._removeEventListener$3$x(t3, this._eventType, t1, false); } } }, _Html5NodeValidator: { "^": "Object;uriPolicy<", allowsElement$1: function(element) { return $.$get$_Html5NodeValidator__allowedElements().contains$1(0, W.Element__safeTagName(element)); }, allowsAttribute$3: function(element, attributeName, value) { var tagName, t1, validator; tagName = W.Element__safeTagName(element); t1 = $.$get$_Html5NodeValidator__attributeValidators(); validator = t1.$index(0, H.S(tagName) + "::" + attributeName); if (validator == null) validator = t1.$index(0, "*::" + attributeName); if (validator == null) return false; return validator.call$4(element, attributeName, value, this); }, _Html5NodeValidator$1$uriPolicy: function(uriPolicy) { var t1, _i; t1 = $.$get$_Html5NodeValidator__attributeValidators(); if (t1.get$isEmpty(t1)) { for (_i = 0; _i < 262; ++_i) t1.$indexSet(0, C.List_2Zi[_i], W.html__Html5NodeValidator__standardAttributeValidator$closure()); for (_i = 0; _i < 12; ++_i) t1.$indexSet(0, C.List_yrN[_i], W.html__Html5NodeValidator__uriAttributeValidator$closure()); } }, $isNodeValidator: 1, static: { _Html5NodeValidator$: function(uriPolicy) { var t1, e; t1 = document; e = t1.createElement("a"); t1 = new W._SameOriginUriPolicy(e, window.location); t1 = new W._Html5NodeValidator(t1); t1._Html5NodeValidator$1$uriPolicy(uriPolicy); return t1; }, _Html5NodeValidator__standardAttributeValidator: [function(element, attributeName, value, context) { return true; }, "call$4", "html__Html5NodeValidator__standardAttributeValidator$closure", 8, 0, 6], _Html5NodeValidator__uriAttributeValidator: [function(element, attributeName, value, context) { var t1, t2, t3, t4, t5; t1 = context.get$uriPolicy(); t2 = t1._hiddenAnchor; t3 = J.getInterceptor$x(t2); t3.set$href(t2, value); t4 = t3.get$hostname(t2); t1 = t1._loc; t5 = t1.hostname; if (t4 == null ? t5 == null : t4 === t5) { t4 = t3.get$port(t2); t5 = t1.port; if (t4 == null ? t5 == null : t4 === t5) { t4 = t3.get$protocol(t2); t1 = t1.protocol; t1 = t4 == null ? t1 == null : t4 === t1; } else t1 = false; } else t1 = false; if (!t1) if (t3.get$hostname(t2) === "") if (t3.get$port(t2) === "") t1 = t3.get$protocol(t2) === ":" || t3.get$protocol(t2) === ""; else t1 = false; else t1 = false; else t1 = true; return t1; }, "call$4", "html__Html5NodeValidator__uriAttributeValidator$closure", 8, 0, 6] } }, ImmutableListMixin: { "^": "Object;$ti", get$iterator: function(receiver) { return new W.FixedSizeListIterator(receiver, this.get$length(receiver), -1, null); }, $isList: 1, $asList: null, $isEfficientLengthIterable: 1, $asEfficientLengthIterable: null }, NodeValidatorBuilder: { "^": "Object;_validators", allowsElement$1: function(element) { return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuilder_allowsElement_closure(element)); }, allowsAttribute$3: function(element, attributeName, value) { return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuilder_allowsAttribute_closure(element, attributeName, value)); } }, NodeValidatorBuilder_allowsElement_closure: { "^": "Closure:2;element", call$1: function(v) { return v.allowsElement$1(this.element); } }, NodeValidatorBuilder_allowsAttribute_closure: { "^": "Closure:2;element,attributeName,value", call$1: function(v) { return v.allowsAttribute$3(this.element, this.attributeName, this.value); } }, _SimpleNodeValidator: { "^": "Object;uriPolicy<", allowsElement$1: function(element) { return this.allowedElements.contains$1(0, W.Element__safeTagName(element)); }, allowsAttribute$3: ["super$_SimpleNodeValidator$allowsAttribute", function(element, attributeName, value) { var tagName, t1; tagName = W.Element__safeTagName(element); t1 = this.allowedUriAttributes; if (t1.contains$1(0, H.S(tagName) + "::" + attributeName)) return this.uriPolicy.allowsUri$1(value); else if (t1.contains$1(0, "*::" + attributeName)) return this.uriPolicy.allowsUri$1(value); else { t1 = this.allowedAttributes; if (t1.contains$1(0, H.S(tagName) + "::" + attributeName)) return true; else if (t1.contains$1(0, "*::" + attributeName)) return true; else if (t1.contains$1(0, H.S(tagName) + "::*")) return true; else if (t1.contains$1(0, "*::*")) return true; } return false; }], _SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttributes: function(uriPolicy, allowedAttributes, allowedElements, allowedUriAttributes) { var legalAttributes, extraUriAttributes, t1; this.allowedElements.addAll$1(0, allowedElements); legalAttributes = allowedAttributes.where$1(0, new W._SimpleNodeValidator_closure()); extraUriAttributes = allowedAttributes.where$1(0, new W._SimpleNodeValidator_closure0()); this.allowedAttributes.addAll$1(0, legalAttributes); t1 = this.allowedUriAttributes; t1.addAll$1(0, C.List_empty); t1.addAll$1(0, extraUriAttributes); } }, _SimpleNodeValidator_closure: { "^": "Closure:2;", call$1: function(x) { return !C.JSArray_methods.contains$1(C.List_yrN, x); } }, _SimpleNodeValidator_closure0: { "^": "Closure:2;", call$1: function(x) { return C.JSArray_methods.contains$1(C.List_yrN, x); } }, _TemplatingNodeValidator: { "^": "_SimpleNodeValidator;_templateAttrs,allowedElements,allowedAttributes,allowedUriAttributes,uriPolicy", allowsAttribute$3: function(element, attributeName, value) { if (this.super$_SimpleNodeValidator$allowsAttribute(element, attributeName, value)) return true; if (attributeName === "template" && value === "") return true; if (J.get$attributes$x(element)._html$_element.getAttribute("template") === "") return this._templateAttrs.contains$1(0, attributeName); return false; }, static: { _TemplatingNodeValidator$: function() { var t1 = P.String; t1 = new W._TemplatingNodeValidator(P.LinkedHashSet_LinkedHashSet$from(C.List_wSV, t1), P.LinkedHashSet_LinkedHashSet(null, null, null, t1), P.LinkedHashSet_LinkedHashSet(null, null, null, t1), P.LinkedHashSet_LinkedHashSet(null, null, null, t1), null); t1._SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttributes(null, new H.MappedListIterable(C.List_wSV, new W._TemplatingNodeValidator_closure(), [null, null]), ["TEMPLATE"], null); return t1; } } }, _TemplatingNodeValidator_closure: { "^": "Closure:2;", call$1: function(attr) { return "TEMPLATE::" + H.S(attr); } }, FixedSizeListIterator: { "^": "Object;_array,_html$_length,_position,_current", moveNext$0: function() { var nextPosition, t1; nextPosition = this._position + 1; t1 = this._html$_length; if (nextPosition < t1) { this._current = J.$index$asx(this._array, nextPosition); this._position = nextPosition; return true; } this._current = null; this._position = t1; return false; }, get$current: function() { return this._current; } }, KeyEvent: { "^": "_WrappedEvent;", $isInterceptor: 1 }, _WrappedEvent: { "^": "Object;", $isInterceptor: 1 }, NodeValidator: { "^": "Object;" }, _SameOriginUriPolicy: { "^": "Object;_hiddenAnchor,_loc" }, _ValidatingTreeSanitizer: { "^": "Object;validator", sanitizeTree$1: function(node) { new W._ValidatingTreeSanitizer_sanitizeTree_walk(this).call$2(node, null); }, _removeNode$2: function(node, $parent) { var t1; if ($parent == null) { t1 = node.parentNode; if (t1 != null) t1.removeChild(node); } else $parent.removeChild(node); }, _sanitizeUntrustedElement$2: function(element, $parent) { var corrupted, attrs, isAttr, corruptedTest1, elementText, elementTagName, exception, t1; corrupted = true; attrs = null; isAttr = null; try { attrs = J.get$attributes$x(element); isAttr = attrs.get$_html$_element().getAttribute("is"); corruptedTest1 = function(element) { if (!(element.attributes instanceof NamedNodeMap)) return true; var childNodes = element.childNodes; if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) return true; if (element.children) if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) return true; var length = 0; if (element.children) length = element.children.length; for (var i = 0; i < length; i++) { var child = element.children[i]; if (child.id == 'attributes' || child.name == 'attributes' || child.id == 'lastChild' || child.name == 'lastChild' || child.id == 'children' || child.name == 'children') return true; } return false; }(element); corrupted = corruptedTest1 === true ? true : !(element.attributes instanceof NamedNodeMap); } catch (exception) { H.unwrapException(exception); } elementText = "element unprintable"; try { elementText = J.toString$0$(element); } catch (exception) { H.unwrapException(exception); } try { elementTagName = W.Element__safeTagName(element); this._sanitizeElement$7(element, $parent, corrupted, elementText, elementTagName, attrs, isAttr); } catch (exception) { if (H.unwrapException(exception) instanceof P.ArgumentError) throw exception; else { this._removeNode$2(element, $parent); window; t1 = "Removing corrupted element " + H.S(elementText); if (typeof console != "undefined") console.warn(t1); } } }, _sanitizeElement$7: function(element, $parent, corrupted, text, tag, attrs, isAttr) { var t1, keys, i, $name, t2; if (corrupted) { this._removeNode$2(element, $parent); window; t1 = "Removing element due to corrupted attributes on <" + text + ">"; if (typeof console != "undefined") console.warn(t1); return; } if (!this.validator.allowsElement$1(element)) { this._removeNode$2(element, $parent); window; t1 = "Removing disallowed element <" + H.S(tag) + "> from " + J.toString$0$($parent); if (typeof console != "undefined") console.warn(t1); return; } if (isAttr != null) if (!this.validator.allowsAttribute$3(element, "is", isAttr)) { this._removeNode$2(element, $parent); window; t1 = "Removing disallowed type extension <" + H.S(tag) + ' is="' + isAttr + '">'; if (typeof console != "undefined") console.warn(t1); return; } t1 = attrs.get$keys(); keys = H.setRuntimeTypeInfo(t1.slice(), [H.getTypeArgumentByIndex(t1, 0)]); for (i = attrs.get$keys().length - 1, t1 = attrs._html$_element; i >= 0; --i) { if (i >= keys.length) return H.ioore(keys, i); $name = keys[i]; if (!this.validator.allowsAttribute$3(element, J.toLowerCase$0$s($name), t1.getAttribute($name))) { window; t2 = "Removing disallowed attribute <" + H.S(tag) + " " + $name + '="' + H.S(t1.getAttribute($name)) + '">'; if (typeof console != "undefined") console.warn(t2); t1.getAttribute($name); t1.removeAttribute($name); } } if (!!J.getInterceptor(element).$isTemplateElement) this.sanitizeTree$1(element.content); } }, _ValidatingTreeSanitizer_sanitizeTree_walk: { "^": "Closure:14;$this", call$2: function(node, $parent) { var child, nextChild, t1, exception, t2; t1 = this.$this; switch (node.nodeType) { case 1: t1._sanitizeUntrustedElement$2(node, $parent); break; case 8: case 11: case 3: case 4: break; default: t1._removeNode$2(node, $parent); } child = node.lastChild; for (t1 = node == null; null != child;) { nextChild = null; try { nextChild = J.get$previousNode$x(child); } catch (exception) { H.unwrapException(exception); t2 = child; if (t1) { if (J.get$parentNode$x(t2) != null) t2.parentNode.removeChild(t2); } else node.removeChild(t2); child = null; nextChild = node.lastChild; } if (child != null) this.call$2(child, node); child = nextChild; } } } }], ["html_common", "dart:html_common",, P, { "^": "", Device_isOpera: function() { var t1 = $.Device__isOpera; if (t1 == null) { t1 = J.contains$2$asx(window.navigator.userAgent, "Opera", 0); $.Device__isOpera = t1; } return t1; }, Device_cssPrefix: function() { var prefix, t1; prefix = $.Device__cachedCssPrefix; if (prefix != null) return prefix; t1 = $.Device__isFirefox; if (t1 == null) { t1 = J.contains$2$asx(window.navigator.userAgent, "Firefox", 0); $.Device__isFirefox = t1; } if (t1 === true) prefix = "-moz-"; else { t1 = $.Device__isIE; if (t1 == null) { t1 = P.Device_isOpera() !== true && J.contains$2$asx(window.navigator.userAgent, "Trident/", 0); $.Device__isIE = t1; } if (t1 === true) prefix = "-ms-"; else prefix = P.Device_isOpera() === true ? "-o-" : "-webkit-"; } $.Device__cachedCssPrefix = prefix; return prefix; } }], ["dart.dom.indexed_db", "dart:indexed_db",, P, { "^": "" }], ["dart.math", "dart:math",, P, { "^": "", _JenkinsSmiHash_combine: function(hash, value) { hash = 536870911 & hash + value; hash = 536870911 & hash + ((524287 & hash) << 10); return hash ^ hash >>> 6; }, _JSRandom: { "^": "Object;", nextInt$1: function(max) { if (max <= 0 || max > 4294967296) throw H.wrapException(P.RangeError$("max must be in range 0 < max \u2264 2^32, was " + max)); return Math.random() * max >>> 0; } }, Point: { "^": "Object;x>,y>,$ti", toString$0: function(_) { return "Point(" + H.S(this.x) + ", " + H.S(this.y) + ")"; }, $eq: function(_, other) { var t1, t2; if (other == null) return false; if (!(other instanceof P.Point)) return false; t1 = this.x; t2 = other.x; if (t1 == null ? t2 == null : t1 === t2) { t1 = this.y; t2 = other.y; t2 = t1 == null ? t2 == null : t1 === t2; t1 = t2; } else t1 = false; return t1; }, get$hashCode: function(_) { var t1, t2, hash; t1 = J.get$hashCode$(this.x); t2 = J.get$hashCode$(this.y); t2 = P._JenkinsSmiHash_combine(P._JenkinsSmiHash_combine(0, t1), t2); hash = 536870911 & t2 + ((67108863 & t2) << 3); hash ^= hash >>> 11; return 536870911 & hash + ((16383 & hash) << 15); }, $add: function(_, other) { var t1, t2, t3; t1 = this.x; t2 = J.getInterceptor$x(other); t3 = t2.get$x(other); if (typeof t1 !== "number") return t1.$add(); t3 = C.JSNumber_methods.$add(t1, t3); t1 = this.y; t2 = t2.get$y(other); if (typeof t1 !== "number") return t1.$add(); return new P.Point(t3, C.JSNumber_methods.$add(t1, t2), this.$ti); }, static: { Point$: function(x, y, $T) { return new P.Point(x, y, [$T]); } } } }], ["dart.dom.svg", "dart:svg",, P, { "^": "", AElement: { "^": "GraphicsElement;", $isInterceptor: 1, "%": "SVGAElement" }, AnimationElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGAnimateElement|SVGAnimateMotionElement|SVGAnimateTransformElement|SVGAnimationElement|SVGSetElement" }, FEBlendElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEBlendElement" }, FEColorMatrixElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEColorMatrixElement" }, FEComponentTransferElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEComponentTransferElement" }, FECompositeElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFECompositeElement" }, FEConvolveMatrixElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEConvolveMatrixElement" }, FEDiffuseLightingElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEDiffuseLightingElement" }, FEDisplacementMapElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEDisplacementMapElement" }, FEFloodElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEFloodElement" }, FEGaussianBlurElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEGaussianBlurElement" }, FEImageElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEImageElement" }, FEMergeElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEMergeElement" }, FEMorphologyElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEMorphologyElement" }, FEOffsetElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEOffsetElement" }, FESpecularLightingElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFESpecularLightingElement" }, FETileElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFETileElement" }, FETurbulenceElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFETurbulenceElement" }, FilterElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFilterElement" }, GraphicsElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGCircleElement|SVGClipPathElement|SVGDefsElement|SVGEllipseElement|SVGForeignObjectElement|SVGGElement|SVGGeometryElement|SVGLineElement|SVGPathElement|SVGPolygonElement|SVGPolylineElement|SVGRectElement|SVGSwitchElement;SVGGraphicsElement" }, ImageElement0: { "^": "GraphicsElement;", $isInterceptor: 1, "%": "SVGImageElement" }, MarkerElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGMarkerElement" }, MaskElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGMaskElement" }, PatternElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGPatternElement" }, ScriptElement0: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGScriptElement" }, StyleElement0: { "^": "SvgElement;sheet=", "%": "SVGStyleElement" }, SvgElement: { "^": "Element;", $isInterceptor: 1, "%": "SVGComponentTransferFunctionElement|SVGDescElement|SVGDiscardElement|SVGFEDistantLightElement|SVGFEFuncAElement|SVGFEFuncBElement|SVGFEFuncGElement|SVGFEFuncRElement|SVGFEMergeNodeElement|SVGFEPointLightElement|SVGFESpotLightElement|SVGMetadataElement|SVGStopElement|SVGTitleElement;SVGElement" }, SvgSvgElement: { "^": "GraphicsElement;", $isInterceptor: 1, "%": "SVGSVGElement" }, SymbolElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGSymbolElement" }, TextContentElement: { "^": "GraphicsElement;", "%": "SVGTSpanElement|SVGTextElement|SVGTextPositioningElement;SVGTextContentElement" }, TextPathElement: { "^": "TextContentElement;", $isInterceptor: 1, "%": "SVGTextPathElement" }, UseElement: { "^": "GraphicsElement;", $isInterceptor: 1, "%": "SVGUseElement" }, ViewElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGViewElement" }, _GradientElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGGradientElement|SVGLinearGradientElement|SVGRadialGradientElement" }, _SVGCursorElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGCursorElement" }, _SVGFEDropShadowElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGFEDropShadowElement" }, _SVGMPathElement: { "^": "SvgElement;", $isInterceptor: 1, "%": "SVGMPathElement" } }], ["dart.dom.web_audio", "dart:web_audio",, P, { "^": "" }], ["dart.dom.web_gl", "dart:web_gl",, P, { "^": "" }], ["dart.dom.web_sql", "dart:web_sql",, P, { "^": "" }], ["", "../src/index.dart",, E, { "^": "", main: [function() { E.injectStyles(); var t1 = [W.MouseEvent]; new W._EventStreamSubscription(0, window, "mousemove", W._wrapZone(new E.main_closure()), false, t1)._tryR###me$0(); new W._EventStreamSubscription(0, window, "keyup", W._wrapZone(new E.main_closure0()), false, [W.KeyboardEvent])._tryR###me$0(); new W._EventStreamSubscription(0, window, "click", W._wrapZone(new E.main_closure1()), false, t1)._tryR###me$0(); }, "call$0", "index__main$closure", 0, 0, 1], clickHandler: function($event) { var t1, x, y, ele, t2, t3; t1 = J.getInterceptor$x($event); x = J.get$x$x(t1.get$page($event)); y = J.get$y$x(t1.get$page($event)); ele = W.Element_Element$html('<span class="ripple"></span>', null, null); t1 = J.getInterceptor$x(ele); t2 = t1.get$style(ele); t2.width = "200px"; t2 = t1.get$style(ele); t2.height = "200px"; t2 = t1.get$style(ele); if (typeof x !== "number") return x.$sub(); t3 = H.S(x - 100) + "px"; t2.left = t3; t1 = t1.get$style(ele); if (typeof y !== "number") return y.$sub(); t2 = H.S(y - 100) + "px"; t1.top = t2; document.body.appendChild(ele); P.Timer_Timer(C.Duration_750000, new E.clickHandler_closure(ele)); }, createElement: function(color, key, x, y) { var ele, t1, t2, t3; ele = W.Element_Element$html("<div>" + key + "</div>", null, null); t1 = J.getInterceptor$x(ele); t2 = t1.get$style(ele); t2.position = "absolute"; t2 = t1.get$style(ele); t2.zIndex = "999999999"; t2 = t1.get$style(ele); t3 = H.S(y) + "px"; t2.top = t3; t2 = t1.get$style(ele); t3 = H.S(x) + "px"; t2.left = t3; t2 = t1.get$style(ele); t2.display = "inline-block"; t2 = t1.get$style(ele); t2.padding = "3px 5px"; t2 = t1.get$style(ele); t2.fontSize = "11px"; t2 = t1.get$style(ele); t2.lineHeight = "10px"; t2 = t1.get$style(ele); t2.color = color; t2 = t1.get$style(ele); t2.verticalAlign = "middle"; t2 = t1.get$style(ele); t2.backgroundColor = "#fcfcfc"; t2 = t1.get$style(ele); t2.border = "solid 1px #ccc"; t2 = t1.get$style(ele); t2.borderBottomColor = "#bbb"; t2 = t1.get$style(ele); C.CssStyleDeclaration_methods._setPropertyHelper$3(t2, (t2 && C.CssStyleDeclaration_methods)._browserPropertyName$1(t2, "border-radius"), "3px", ""); t1 = t1.get$style(ele); C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, (t1 && C.CssStyleDeclaration_methods)._browserPropertyName$1(t1, "box-shadow"), "inset 0 -1px 0 #bbb", ""); t1 = document; if (t1.querySelector("style#type-up") == null) E.injectStyles(); t1.body.appendChild(ele); P.Timer_Timer(C.Duration_500000, new E.createElement_closure(ele)); }, injectStyles: function() { var t1, styleElement, sheet; t1 = document; styleElement = t1.createElement("style"); styleElement.id = "type-up"; t1.head.appendChild(styleElement); sheet = J.get$sheet$x(styleElement); sheet.insertRule("@keyframes ripple {\n to {\n transform: scale(2);\n opacity: 0;\n }\n}\n ", J.get$cssRules$x(sheet).length); sheet.insertRule(".ripple {\n position: absolute;\n z-index:99999999;\n background: rgba(0,0,0,.15);\n border-radius: 100%;\n transform: scale(0);\n pointer-events: none;\n animation: ripple .75s ease-out;\n}", sheet.cssRules.length); }, main_closure: { "^": "Closure:5;", call$1: function($event) { var t1 = J.getInterceptor$x($event); $.mousePoint = new P.Point(J.get$x$x(t1.get$page($event)), J.get$y$x(t1.get$page($event)), [null]); } }, main_closure0: { "^": "Closure:15;", call$1: function($event) { var key, t1, x, y, radius, angle, t2; key = C.JSString_methods.$add(J.toString$0$(J.get$keyCode$x($event)), $event.key); t1 = $.$get$mousePoint(); x = t1.x; y = t1.y; radius = 50 + C.C__JSRandom.nextInt$1(50); angle = C.C__JSRandom.nextInt$1(360); if (angle >= 0 && angle < 90) { t1 = angle * 2 * 3.141592653589793 / 360; t2 = Math.sin(t1); t1 = Math.cos(t1); if (typeof x !== "number") return x.$add(); x += radius * t1; if (typeof y !== "number") return y.$sub(); y -= radius * t2; } else if (angle >= 90 && angle < 180) { t1 = Math.sin((180 - angle) * 2 * 3.141592653589793 / 360); t2 = Math.cos(180 * angle * 2 * 3.141592653589793 / 360); if (typeof x !== "number") return x.$sub(); x -= radius * t2; if (typeof y !== "number") return y.$sub(); y -= radius * t1; } else if (angle >= 180 && angle < 270) { t1 = Math.cos((270 - angle) * 2 * 3.141592653589793 / 360); t2 = Math.sin(270 * angle * 2 * 3.141592653589793 / 360); if (typeof x !== "number") return x.$sub(); x -= radius * t2; if (typeof y !== "number") return y.$add(); y += radius * t1; } else if (angle >= 270 && angle <= 360) { t1 = (angle - 270) * 2 * 3.141592653589793 / 360; t2 = Math.cos(t1); t1 = Math.sin(t1); if (typeof x !== "number") return x.$add(); x += radius * t1; if (typeof y !== "number") return y.$add(); y += radius * t2; } t1 = $.$get$keyboardMap(); t2 = $event.keyCode; if (t2 >>> 0 !== t2 || t2 >= 256) return H.ioore(t1, t2); t2 = t1[t2]; E.createElement(X.stringToColor(key + " " + key), t2, x, y); return; } }, main_closure1: { "^": "Closure:5;", call$1: function($event) { return E.clickHandler($event); } }, clickHandler_closure: { "^": "Closure:0;ele", call$0: function() { J.remove$0$ax(this.ele); } }, createElement_closure: { "^": "Closure:0;ele", call$0: function() { J.remove$0$ax(this.ele); } } }, 1], ["", "../src/keyBordMaps.dart",, E, {}], ["", "../src/stringToColor.dart",, X, { "^": "", stringToColor: function(str) { var t1, hash, i, colour, x; for (t1 = str.length, hash = 0, i = 0; i < t1; ++i) hash = C.JSString_methods.codeUnitAt$1(str, i) + ((hash << 5 >>> 0) - hash); for (colour = "#", x = 0; x < 3; ++x) { str = "00" + C.JSInt_methods.toRadixString$1(C.JSInt_methods._shrOtherPositive$1(hash, x * 8) & 255, 16); colour += C.JSString_methods.substring$1(str, str.length - 2); } return colour; } }]]; setupProgram(dart, 0); // getInterceptor methods J.getInterceptor = function(receiver) { if (typeof receiver == "number") { if (Math.floor(receiver) == receiver) return J.JSInt.prototype; return J.JSDouble.prototype; } if (typeof receiver == "string") return J.JSString.prototype; if (receiver == null) return J.JSNull.prototype; if (typeof receiver == "boolean") return J.JSBool.prototype; if (receiver.constructor == Array) return J.JSArray.prototype; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof P.Object) return receiver; return J.getNativeInterceptor(receiver); }; J.getInterceptor$asx = function(receiver) { if (typeof receiver == "string") return J.JSString.prototype; if (receiver == null) return receiver; if (receiver.constructor == Array) return J.JSArray.prototype; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof P.Object) return receiver; return J.getNativeInterceptor(receiver); }; J.getInterceptor$ax = function(receiver) { if (receiver == null) return receiver; if (receiver.constructor == Array) return J.JSArray.prototype; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof P.Object) return receiver; return J.getNativeInterceptor(receiver); }; J.getInterceptor$n = function(receiver) { if (typeof receiver == "number") return J.JSNumber.prototype; if (receiver == null) return receiver; if (!(receiver instanceof P.Object)) return J.UnknownJavaScriptObject.prototype; return receiver; }; J.getInterceptor$ns = function(receiver) { if (typeof receiver == "number") return J.JSNumber.prototype; if (typeof receiver == "string") return J.JSString.prototype; if (receiver == null) return receiver; if (!(receiver instanceof P.Object)) return J.UnknownJavaScriptObject.prototype; return receiver; }; J.getInterceptor$s = function(receiver) { if (typeof receiver == "string") return J.JSString.prototype; if (receiver == null) return receiver; if (!(receiver instanceof P.Object)) return J.UnknownJavaScriptObject.prototype; return receiver; }; J.getInterceptor$x = function(receiver) { if (receiver == null) return receiver; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof P.Object) return receiver; return J.getNativeInterceptor(receiver); }; J.set$href$x = function(receiver, value) { return J.getInterceptor$x(receiver).set$href(receiver, value); }; J.get$attributes$x = function(receiver) { return J.getInterceptor$x(receiver).get$attributes(receiver); }; J.get$cssRules$x = function(receiver) { return J.getInterceptor$x(receiver).get$cssRules(receiver); }; J.get$error$x = function(receiver) { return J.getInterceptor$x(receiver).get$error(receiver); }; J.get$iterator$ax = function(receiver) { return J.getInterceptor$ax(receiver).get$iterator(receiver); }; J.get$keyCode$x = function(receiver) { return J.getInterceptor$x(receiver).get$keyCode(receiver); }; J.get$length$asx = function(receiver) { return J.getInterceptor$asx(receiver).get$length(receiver); }; J.get$name$x = function(receiver) { return J.getInterceptor$x(receiver).get$name(receiver); }; J.get$parentNode$x = function(receiver) { return J.getInterceptor$x(receiver).get$parentNode(receiver); }; J.get$previousNode$x = function(receiver) { return J.getInterceptor$x(receiver).get$previousNode(receiver); }; J.get$sheet$x = function(receiver) { return J.getInterceptor$x(receiver).get$sheet(receiver); }; J.get$tagName$x = function(receiver) { return J.getInterceptor$x(receiver).get$tagName(receiver); }; J.get$x$x = function(receiver) { return J.getInterceptor$x(receiver).get$x(receiver); }; J.get$y$x = function(receiver) { return J.getInterceptor$x(receiver).get$y(receiver); }; J.$add$ns = function(receiver, a0) { if (typeof receiver == "number" && typeof a0 == "number") return receiver + a0; return J.getInterceptor$ns(receiver).$add(receiver, a0); }; J.$index$asx = function(receiver, a0) { if (typeof a0 === "number") if (receiver.constructor == Array || typeof receiver == "string" || H.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) if (a0 >>> 0 === a0 && a0 < receiver.length) return receiver[a0]; return J.getInterceptor$asx(receiver).$index(receiver, a0); }; J.$lt$n = function(receiver, a0) { if (typeof receiver == "number" && typeof a0 == "number") return receiver < a0; return J.getInterceptor$n(receiver).$lt(receiver, a0); }; J._addEventListener$3$x = function(receiver, a0, a1, a2) { return J.getInterceptor$x(receiver)._addEventListener$3(receiver, a0, a1, a2); }; J._removeEventListener$3$x = function(receiver, a0, a1, a2) { return J.getInterceptor$x(receiver)._removeEventListener$3(receiver, a0, a1, a2); }; J.contains$2$asx = function(receiver, a0, a1) { return J.getInterceptor$asx(receiver).contains$2(receiver, a0, a1); }; J.elementAt$1$ax = function(receiver, a0) { return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); }; J.map$1$ax = function(receiver, a0) { return J.getInterceptor$ax(receiver).map$1(receiver, a0); }; J.remove$0$ax = function(receiver) { return J.getInterceptor$ax(receiver).remove$0(receiver); }; J.send$1$x = function(receiver, a0) { return J.getInterceptor$x(receiver).send$1(receiver, a0); }; J.toLowerCase$0$s = function(receiver) { return J.getInterceptor$s(receiver).toLowerCase$0(receiver); }; J.get$hashCode$ = function(receiver) { return J.getInterceptor(receiver).get$hashCode(receiver); }; J.$eq$ = function(receiver, a0) { if (receiver == null) return a0 == null; if (typeof receiver != "object") return a0 != null && receiver === a0; return J.getInterceptor(receiver).$eq(receiver, a0); }; J.toString$0$ = function(receiver) { return J.getInterceptor(receiver).toString$0(receiver); }; Isolate.makeConstantList = function(list) { list.immutable$list = Array; list.fixed$length = Array; return list; }; var $ = Isolate.$isolateProperties; C.BodyElement_methods = W.BodyElement.prototype; C.CssStyleDeclaration_methods = W.CssStyleDeclaration.prototype; C.Interceptor_methods = J.Interceptor.prototype; C.JSArray_methods = J.JSArray.prototype; C.JSInt_methods = J.JSInt.prototype; C.JSNumber_methods = J.JSNumber.prototype; C.JSString_methods = J.JSString.prototype; C.JavaScriptFunction_methods = J.JavaScriptFunction.prototype; C.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; C.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; C.C_DynamicRuntimeType = new H.DynamicRuntimeType(); C.C_OutOfMemoryError = new P.OutOfMemoryError(); C.C__DelayedDone = new P._DelayedDone(); C.C__JSRandom = new P._JSRandom(); C.C__RootZone = new P._RootZone(); C.Duration_0 = new P.Duration(0); C.Duration_500000 = new P.Duration(500000); C.Duration_750000 = new P.Duration(750000); C.JS_CONST_0 = function(hooks) { if (typeof dartExperimentalFixupGetTag != "function") return hooks; hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); }; C.JS_CONST_4hp = function(hooks) { var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; if (userAgent.indexOf("Firefox") == -1) return hooks; var getTag = hooks.getTag; var quickMap = { "BeforeUnloadEvent": "Event", "DataTransfer": "Clipboard", "GeoGeolocation": "Geolocation", "Location": "!Location", "WorkerMessageEvent": "MessageEvent", "XMLDocument": "!Document"}; function getTagFirefox(o) { var tag = getTag(o); return quickMap[tag] || tag; } hooks.getTag = getTagFirefox; }; C.JS_CONST_Fs4 = function(hooks) { return hooks; } ; C.JS_CONST_QJm = function(getTagFallback) { return function(hooks) { if (typeof navigator != "object") return hooks; var ua = navigator.userAgent; if (ua.indexOf("DumpRenderTree") >= 0) return hooks; if (ua.indexOf("Chrome") >= 0) { function confirm(p) { return typeof window == "object" && window[p] && window[p].name == p; } if (confirm("Window") && confirm("HTMLElement")) return hooks; } hooks.getTag = getTagFallback; }; }; C.JS_CONST_bDt = function() { var toStringFunction = Object.prototype.toString; function getTag(o) { var s = toStringFunction.call(o); return s.substring(8, s.length - 1); } function getUnknownTag(object, tag) { if (/^HTML[A-Z].*Element$/.test(tag)) { var name = toStringFunction.call(object); if (name == "[object Object]") return null; return "HTMLElement"; } } function getUnknownTagGenericBrowser(object, tag) { if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; return getUnknownTag(object, tag); } function prototypeForTag(tag) { if (typeof window == "undefined") return null; if (typeof window[tag] == "undefined") return null; var constructor = window[tag]; if (typeof constructor != "function") return null; return constructor.prototype; } function discriminator(tag) { return null; } var isBrowser = typeof navigator == "object"; return { getTag: getTag, getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, prototypeForTag: prototypeForTag, discriminator: discriminator }; }; C.JS_CONST_gkc = function(hooks) { var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; if (userAgent.indexOf("Trident/") == -1) return hooks; var getTag = hooks.getTag; var quickMap = { "BeforeUnloadEvent": "Event", "DataTransfer": "Clipboard", "HTMLDDElement": "HTMLElement", "HTMLDTElement": "HTMLElement", "HTMLPhraseElement": "HTMLElement", "Position": "Geoposition" }; function getTagIE(o) { var tag = getTag(o); var newTag = quickMap[tag]; if (newTag) return newTag; if (tag == "Object") { if (window.DataView && (o instanceof window.DataView)) return "DataView"; } return tag; } function prototypeForTagIE(tag) { var constructor = window[tag]; if (constructor == null) return null; return constructor.prototype; } hooks.getTag = getTagIE; hooks.prototypeForTag = prototypeForTagIE; }; C.JS_CONST_rr7 = function(hooks) { var getTag = hooks.getTag; var prototypeForTag = hooks.prototypeForTag; function getTagFixed(o) { var tag = getTag(o); if (tag == "Document") { if (!!o.xmlVersion) return "!Document"; return "!HTMLDocument"; } return tag; } function prototypeForTagFixed(tag) { if (tag == "Document") return null; return prototypeForTag(tag); } hooks.getTag = getTagFixed; hooks.prototypeForTag = prototypeForTagFixed; }; C.JS_CONST_s8I = function(_, letter) { return letter.toUpperCase(); }; C.JS_CONST_u2C = function getTagFallback(o) { var s = Object.prototype.toString.call(o); return s.substring(8, s.length - 1); }; C.List_2Zi = H.setRuntimeTypeInfo(Isolate.makeConstantList(["*::class", "*::dir", "*::draggable", "*::hidden", "*::id", "*::inert", "*::itemprop", "*::itemref", "*::itemscope", "*::lang", "*::spellcheck", "*::title", "*::translate", "A::accesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "AREA::accesskey", "AREA::alt", "AREA::coords", "AREA::nohref", "AREA::shape", "AREA::tabindex", "AREA::target", "AUDIO::controls", "AUDIO::loop", "AUDIO::mediagroup", "AUDIO::muted", "AUDIO::preload", "BDO::dir", "BODY::alink", "BODY::bgcolor", "BODY::link", "BODY::text", "BODY::vlink", "BR::clear", "BUTTON::accesskey", "BUTTON::disabled", "BUTTON::name", "BUTTON::tabindex", "BUTTON::type", "BUTTON::value", "CANVAS::height", "CANVAS::width", "CAPTION::align", "COL::align", "COL::char", "COL::charoff", "COL::span", "COL::valign", "COL::width", "COLGROUP::align", "COLGROUP::char", "COLGROUP::charoff", "COLGROUP::span", "COLGROUP::valign", "COLGROUP::width", "COMMAND::checked", "COMMAND::command", "COMMAND::disabled", "COMMAND::label", "COMMAND::radiogroup", "COMMAND::type", "DATA::value", "DEL::datetime", "DETAILS::open", "DIR::compact", "DIV::align", "DL::compact", "FIELDSET::disabled", "FONT::color", "FONT::face", "FONT::size", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::novalidate", "FORM::target", "FRAME::name", "H1::align", "H2::align", "H3::align", "H4::align", "H5::align", "H6::align", "HR::align", "HR::noshade", "HR::size", "HR::width", "HTML::version", "IFRAME::align", "IFRAME::frameborder", "IFRAME::height", "IFRAME::marginheight", "IFRAME::marginwidth", "IFRAME::width", "IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace", "IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width", "INPUT::accept", "INPUT::accesskey", "INPUT::align", "INPUT::alt", "INPUT::autocomplete", "INPUT::autofocus", "INPUT::checked", "INPUT::disabled", "INPUT::inputmode", "INPUT::ismap", "INPUT::list", "INPUT::max", "INPUT::maxlength", "INPUT::min", "INPUT::multiple", "INPUT::name", "INPUT::placeholder", "INPUT::readonly", "INPUT::required", "INPUT::size", "INPUT::step", "INPUT::tabindex", "INPUT::type", "INPUT::usemap", "INPUT::value", "INS::datetime", "KEYGEN::disabled", "KEYGEN::keytype", "KEYGEN::name", "LABEL::accesskey", "LABEL::for", "LEGEND::accesskey", "LEGEND::align", "LI::type", "LI::value", "LINK::sizes", "MAP::name", "MENU::compact", "MENU::label", "MENU::type", "METER::high", "METER::low", "METER::max", "METER::min", "METER::value", "OBJECT::typemustmatch", "OL::compact", "OL::reversed", "OL::start", "OL::type", "OPTGROUP::disabled", "OPTGROUP::label", "OPTION::disabled", "OPTION::label", "OPTION::selected", "OPTION::value", "OUTPUT::for", "OUTPUT::name", "P::align", "PRE::width", "PROGRESS::max", "PROGRESS::min", "PROGRESS::value", "SELECT::autocomplete", "SELECT::disabled", "SELECT::multiple", "SELECT::name", "SELECT::required", "SELECT::size", "SELECT::tabindex", "SOURCE::type", "TABLE::align", "TABLE::bgcolor", "TABLE::border", "TABLE::cellpadding", "TABLE::cellspacing", "TABLE::frame", "TABLE::rules", "TABLE::summary", "TABLE::width", "TBODY::align", "TBODY::char", "TBODY::charoff", "TBODY::valign", "TD::abbr", "TD::align", "TD::axis", "TD::bgcolor", "TD::char", "TD::charoff", "TD::colspan", "TD::headers", "TD::height", "TD::nowrap", "TD::rowspan", "TD::scope", "TD::valign", "TD::width", "TEXTAREA::accesskey", "TEXTAREA::autocomplete", "TEXTAREA::cols", "TEXTAREA::disabled", "TEXTAREA::inputmode", "TEXTAREA::name", "TEXTAREA::placeholder", "TEXTAREA::readonly", "TEXTAREA::required", "TEXTAREA::rows", "TEXTAREA::tabindex", "TEXTAREA::wrap", "TFOOT::align", "TFOOT::char", "TFOOT::charoff", "TFOOT::valign", "TH::abbr", "TH::align", "TH::axis", "TH::bgcolor", "TH::char", "TH::charoff", "TH::colspan", "TH::headers", "TH::height", "TH::nowrap", "TH::rowspan", "TH::scope", "TH::valign", "TH::width", "THEAD::align", "THEAD::char", "THEAD::charoff", "THEAD::valign", "TR::align", "TR::bgcolor", "TR::char", "TR::charoff", "TR::valign", "TRACK::default", "TRACK::kind", "TRACK::label", "TRACK::srclang", "UL::compact", "UL::type", "VIDEO::controls", "VIDEO::height", "VIDEO::loop", "VIDEO::mediagroup", "VIDEO::muted", "VIDEO::preload", "VIDEO::width"]), [P.String]); C.List_ego = Isolate.makeConstantList(["HEAD", "AREA", "BASE", "BASEFONT", "BR", "COL", "COLGROUP", "EMBED", "FRAME", "FRAMESET", "HR", "IMAGE", "IMG", "INPUT", "ISINDEX", "LINK", "META", "PARAM", "SOURCE", "STYLE", "TITLE", "WBR"]); C.List_empty = Isolate.makeConstantList([]); C.List_wSV = H.setRuntimeTypeInfo(Isolate.makeConstantList(["bind", "if", "ref", "repeat", "syntax"]), [P.String]); C.List_yrN = H.setRuntimeTypeInfo(Isolate.makeConstantList(["A::href", "AREA::href", "BLOCKQUOTE::cite", "BODY::background", "COMMAND::icon", "DEL::cite", "FORM::action", "IMG::src", "INPUT::src", "INS::cite", "Q::cite", "VIDEO::poster"]), [P.String]); $.Primitives_mirrorFunctionCacheName = "$cachedFunction"; $.Primitives_mirrorInvokeCacheName = "$cachedInvocation"; $.Closure_functionCounter = 0; $.BoundClosure_selfFieldNameCache = null; $.BoundClosure_receiverFieldNameCache = null; $.getTagFunction = null; $.alternateTagFunction = null; $.prototypeForTagFunction = null; $.dispatchRecordsForInstanceTags = null; $.interceptorsForUncacheableTags = null; $.initNativeDispatchFlag = null; $._nextCallback = null; $._lastCallback = null; $._lastPriorityCallback = null; $._isInCallbackLoop = false; $.Zone__current = C.C__RootZone; $.Expando__keyCount = 0; $.Element__parseDocument = null; $.Element__parseRange = null; $.Element__defaultValidator = null; $.Element__defaultSanitizer = null; $.Device__isOpera = null; $.Device__isIE = null; $.Device__isFirefox = null; $.Device__cachedCssPrefix = null; $ = null; init.isHunkLoaded = function(hunkHash) { return !!$dart_deferred_initializers$[hunkHash]; }; init.deferredInitialized = new Object(null); init.isHunkInitialized = function(hunkHash) { return init.deferredInitialized[hunkHash]; }; init.initializeLoadedHunk = function(hunkHash) { $dart_deferred_initializers$[hunkHash]($globals$, $); init.deferredInitialized[hunkHash] = true; }; init.deferredLibraryUris = {}; init.deferredLibraryHashes = {}; // Empty type-to-interceptor map. (function(lazies) { for (var i = 0; i < lazies.length;) { var fieldName = lazies[i++]; var getterName = lazies[i++]; var lazyValue = lazies[i++]; var staticName = lazies[i++]; Isolate.$lazy(fieldName, getterName, lazyValue, staticName); } })(["DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", function() { return H.getIsolateAffinityTag("_$dart_dartClosure"); }, "DART_CLOSURE_PROPERTY_NAME", "JS_INTEROP_INTERCEPTOR_TAG", "$get$JS_INTEROP_INTERCEPTOR_TAG", function() { return H.getIsolateAffinityTag("_$dart_js"); }, "JS_INTEROP_INTERCEPTOR_TAG", "IsolateNatives_thisScript", "$get$IsolateNatives_thisScript", function() { return H.IsolateNatives_computeThisScript(); }, "IsolateNatives_thisScript", "IsolateNatives_workerIds", "$get$IsolateNatives_workerIds", function() { if (typeof WeakMap == "function") var t1 = new WeakMap(); else { t1 = $.Expando__keyCount; $.Expando__keyCount = t1 + 1; t1 = "expando$key$" + t1; } return new P.Expando(null, t1); }, "IsolateNatives_workerIds", "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethodPattern", function() { return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({ toString: function() { return "$receiver$"; } })); }, "TypeErrorDecoder_noSuchMethodPattern", "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePattern", function() { return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({$method$: null, toString: function() { return "$receiver$"; } })); }, "TypeErrorDecoder_notClosurePattern", "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern", function() { return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(null)); }, "TypeErrorDecoder_nullCallPattern", "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiteralCallPattern", function() { return H.TypeErrorDecoder_extractPattern(function() { var $argumentsExpr$ = '$arguments$'; try { null.$method$($argumentsExpr$); } catch (e) { return e.message; } }()); }, "TypeErrorDecoder_nullLiteralCallPattern", "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCallPattern", function() { return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(void 0)); }, "TypeErrorDecoder_undefinedCallPattern", "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_undefinedLiteralCallPattern", function() { return H.TypeErrorDecoder_extractPattern(function() { var $argumentsExpr$ = '$arguments$'; try { (void 0).$method$($argumentsExpr$); } catch (e) { return e.message; } }()); }, "TypeErrorDecoder_undefinedLiteralCallPattern", "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullPropertyPattern", function() { return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(null)); }, "TypeErrorDecoder_nullPropertyPattern", "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullLiteralPropertyPattern", function() { return H.TypeErrorDecoder_extractPattern(function() { try { null.$method$; } catch (e) { return e.message; } }()); }, "TypeErrorDecoder_nullLiteralPropertyPattern", "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefinedPropertyPattern", function() { return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(void 0)); }, "TypeErrorDecoder_undefinedPropertyPattern", "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_undefinedLiteralPropertyPattern", function() { return H.TypeErrorDecoder_extractPattern(function() { try { (void 0).$method$; } catch (e) { return e.message; } }()); }, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "_AsyncRun__scheduleImmediateClosure", "$get$_AsyncRun__scheduleImmediateClosure", function() { return P._AsyncRun__initializeScheduleImmediate(); }, "_AsyncRun__scheduleImmediateClosure", "Future__nullFuture", "$get$Future__nullFuture", function() { var t1 = new P._Future(0, P.Zone_current(), null, [null]); t1._Future$immediate$1(null, null); return t1; }, "Future__nullFuture", "_toStringVisiting", "$get$_toStringVisiting", function() { return []; }, "_toStringVisiting", "CssStyleDeclaration__propertyCache", "$get$CssStyleDeclaration__propertyCache", function() { return {}; }, "CssStyleDeclaration__propertyCache", "_Html5NodeValidator__allowedElements", "$get$_Html5NodeValidator__allowedElements", function() { return P.LinkedHashSet_LinkedHashSet$from(["A", "ABBR", "ACRONYM", "ADDRESS", "AREA", "ARTICLE", "ASIDE", "AUDIO", "B", "BDI", "BDO", "BIG", "BLOCKQUOTE", "BR", "BUTTON", "CANVAS", "CAPTION", "CENTER", "CITE", "CODE", "COL", "COLGROUP", "COMMAND", "DATA", "DATALIST", "DD", "DEL", "DETAILS", "DFN", "DIR", "DIV", "DL", "DT", "EM", "FIELDSET", "FIGCAPTION", "FIGURE", "FONT", "FOOTER", "FORM", "H1", "H2", "H3", "H4", "H5", "H6", "HEADER", "HGROUP", "HR", "I", "IFRAME", "IMG", "INPUT", "INS", "KBD", "LABEL", "LEGEND", "LI", "MAP", "MARK", "MENU", "METER", "NAV", "NOBR", "OL", "OPTGROUP", "OPTION", "OUTPUT", "P", "PRE", "PROGRESS", "Q", "S", "SAMP", "SECTION", "SELECT", "SMALL", "SOURCE", "SPAN", "STRIKE", "STRONG", "SUB", "SUMMARY", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH", "THEAD", "TIME", "TR", "TRACK", "TT", "U", "UL", "VAR", "VIDEO", "WBR"], null); }, "_Html5NodeValidator__allowedElements", "_Html5NodeValidator__attributeValidators", "$get$_Html5NodeValidator__attributeValidators", function() { return P.LinkedHashMap__makeEmpty(); }, "_Html5NodeValidator__attributeValidators", "mousePoint", "$get$mousePoint", function() { return P.Point$(0, 0, null); }, "mousePoint", "keyboardMap", "$get$keyboardMap", function() { return ["", "", "", "CANCEL", "", "", "HELP", "", "BACK SPACE", "TAB", "", "", "CLEAR", "ENTER", "ENTER SPECIAL", "", "SHIFT", "CONTROL", "ALT", "PAUSE", "CAPS LOCK", "KANA", "EISU", "JUNJA", "FINAL", "HANJA", "", "ESCAPE", "CONVERT", "NONCONVERT", "ACCEPT", "MODECHANGE", "SPACE", "PAGE UP", "PAGE DOWN", "END", "HOME", "LEFT", "UP", "RIGHT", "DOWN", "SELECT", "PRINT", "EXECUTE", "PRINTSCREEN", "INSERT", "DELETE", "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "COLON", "SEMICOLON", "LESS THAN", "EQUALS", "GREATER THAN", "QUESTION MARK", "AT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "OS KEY", "", "CONTEXT MENU", "", "SLEEP", "NUMPAD0", "NUMPAD1", "NUMPAD2", "NUMPAD3", "NUMPAD4", "NUMPAD5", "NUMPAD6", "NUMPAD7", "NUMPAD8", "NUMPAD9", "MULTIPLY", "ADD", "SEPARATOR", "SUBTRACT", "DECIMAL", "DIVIDE", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "", "", "", "", "", "", "", "", "NUM LOCK", "SCROLL LOCK", "WIN OEM FJ JISHO", "WIN OEM FJ MASSHOU", "WIN OEM FJ TOUROKU", "WIN OEM FJ LOYA", "WIN OEM FJ ROYA", "", "", "", "", "", "", "", "", "", "CIRCUMFLEX", "EXCLAMATION", "DOUBLE QUOTE", "HASH", "DOLLAR", "PERCENT", "AMPERSAND", "UNDERSCORE", "OPEN PAREN", "CLOSE PAREN", "ASTERISK", "PLUS", "PIPE", "HYPHEN MINUS", "OPEN CURLY BRACKET", "CLOSE CURLY BRACKET", "TILDE", "", "", "", "", "VOLUME MUTE", "VOLUME DOWN", "VOLUME UP", "", "", "SEMICOLON", "EQUALS", "COMMA", "MINUS", "PERIOD", "SLASH", "BACK QUOTE", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "OPEN BRACKET", "BACK SLASH", "CLOSE BRACKET", "QUOTE", "", "META", "ALTGR", "", "WIN ICO HELP", "WIN ICO 00", "", "WIN ICO CLEAR", "", "", "WIN OEM RESET", "WIN OEM JUMP", "WIN OEM PA1", "WIN OEM PA2", "WIN OEM PA3", "WIN OEM WSCTRL", "WIN OEM CUSEL", "WIN OEM ATTN", "WIN OEM FINISH", "WIN OEM COPY", "WIN OEM AUTO", "WIN OEM ENLW", "WIN OEM BACKTAB", "ATTN", "CRSEL", "EXSEL", "EREOF", "PLAY", "ZOOM", "", "PA1", "WIN OEM CLEAR", ""]; }, "keyboardMap"]); Isolate = Isolate.$finishIsolateConstructor(Isolate); $ = new Isolate(); init.metadata = [null]; init.types = [{func: 1}, {func: 1, v: true}, {func: 1, args: [,]}, {func: 1, v: true, args: [{func: 1, v: true}]}, {func: 1, ret: P.String, args: [P.$int]}, {func: 1, args: [W.MouseEvent]}, {func: 1, ret: P.bool, args: [W.Element, P.String, P.String, W._Html5NodeValidator]}, {func: 1, args: [, P.String]}, {func: 1, args: [P.String]}, {func: 1, args: [{func: 1, v: true}]}, {func: 1, v: true, args: [,], opt: [P.StackTrace]}, {func: 1, args: [,], opt: [,]}, {func: 1, v: true, args: [, P.StackTrace]}, {func: 1, args: [,,]}, {func: 1, v: true, args: [W.Node, W.Node]}, {func: 1, args: [W.KeyEvent]}]; function convertToFastObject(properties) { function MyClass() { } MyClass.prototype = properties; new MyClass(); return properties; } function convertToSlowObject(properties) { properties.__MAGIC_SLOW_PROPERTY = 1; delete properties.__MAGIC_SLOW_PROPERTY; return properties; } A = convertToFastObject(A); B = convertToFastObject(B); C = convertToFastObject(C); D = convertToFastObject(D); E = convertToFastObject(E); F = convertToFastObject(F); G = convertToFastObject(G); H = convertToFastObject(H); J = convertToFastObject(J); K = convertToFastObject(K); L = convertToFastObject(L); M = convertToFastObject(M); N = convertToFastObject(N); O = convertToFastObject(O); P = convertToFastObject(P); Q = convertToFastObject(Q); R = convertToFastObject(R); S = convertToFastObject(S); T = convertToFastObject(T); U = convertToFastObject(U); V = convertToFastObject(V); W = convertToFastObject(W); X = convertToFastObject(X); Y = convertToFastObject(Y); Z = convertToFastObject(Z); function init() { Isolate.$isolateProperties = Object.create(null); init.allClasses = map(); init.getTypeFromName = function(name) { return init.allClasses[name]; }; init.interceptorsByTag = map(); init.leafTags = map(); init.finishedClasses = map(); Isolate.$lazy = function(fieldName, getterName, lazyValue, staticName, prototype) { if (!init.lazies) init.lazies = Object.create(null); init.lazies[fieldName] = getterName; prototype = prototype || Isolate.$isolateProperties; var sentinelUndefined = {}; var sentinelInProgress = {}; prototype[fieldName] = sentinelUndefined; prototype[getterName] = function() { var r###lt = this[fieldName]; try { if (r###lt === sentinelUndefined) { this[fieldName] = sentinelInProgress; try { r###lt = this[fieldName] = lazyValue(); } finally { if (r###lt === sentinelUndefined) this[fieldName] = null; } } else if (r###lt === sentinelInProgress) H.throwCyclicInit(staticName || fieldName); return r###lt; } finally { this[getterName] = function() { return this[fieldName]; }; } }; }; Isolate.$finishIsolateConstructor = function(oldIsolate) { var isolateProperties = oldIsolate.$isolateProperties; function Isolate() { var staticNames = Object.keys(isolateProperties); for (var i = 0; i < staticNames.length; i++) { var staticName = staticNames[i]; this[staticName] = isolateProperties[staticName]; } var lazies = init.lazies; var lazyInitializers = lazies ? Object.keys(lazies) : []; for (var i = 0; i < lazyInitializers.length; i++) this[lazies[lazyInitializers[i]]] = null; function ForceEfficientMap() { } ForceEfficientMap.prototype = this; new ForceEfficientMap(); for (var i = 0; i < lazyInitializers.length; i++) { var lazyInitName = lazies[lazyInitializers[i]]; this[lazyInitName] = isolateProperties[lazyInitName]; } } Isolate.prototype = oldIsolate.prototype; Isolate.prototype.constructor = Isolate; Isolate.$isolateProperties = isolateProperties; Isolate.makeConstantList = oldIsolate.makeConstantList; Isolate.functionThatReturnsNull = oldIsolate.functionThatReturnsNull; return Isolate; }; } !function() { var intern = function(s) { var o = {}; o[s] = 1; return Object.keys(convertToFastObject(o))[0]; }; init.getIsolateTag = function(name) { return intern("___dart_" + name + init.isolateTag); }; var tableProperty = "___dart_isolate_tags_"; var usedProperties = Object[tableProperty] || (Object[tableProperty] = Object.create(null)); var rootProperty = "_ZxYxX"; for (var i = 0;; i++) { var property = intern(rootProperty + "_" + i + "_"); if (!(property in usedProperties)) { usedProperties[property] = 1; init.isolateTag = property; break; } } init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); }(); // BEGIN invoke [main]. (function(callback) { if (typeof document === "undefined") { callback(null); return; } if (typeof document.currentScript != 'undefined') { callback(document.currentScript); return; } var scripts = document.scripts; function onLoad(event) { for (var i = 0; i < scripts.length; ++i) scripts[i].removeEventListener("load", onLoad, false); callback(event.target); } for (var i = 0; i < scripts.length; ++i) scripts[i].addEventListener("load", onLoad, false); })(function(currentScript) { init.currentScript = currentScript; if (typeof dartMainRunner === "function") dartMainRunner(function(a) { H.startRootIsolate(E.index__main$closure(), a); }, []); else (function(a) { H.startRootIsolate(E.index__main$closure(), a); })([]); }); // END invoke [main]. })(); //# sourceMappingURL=index.dart.js.map