elkjs
Version:
Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.
1,514 lines (1,385 loc) • 4.78 MB
JavaScript
'use strict';
// -------------- FAKE ELEMENTS GWT ASSUMES EXIST --------------
var $wnd;
if (typeof window !== 'undefined')
$wnd = window
else if (typeof global !== 'undefined')
$wnd = global // nodejs
else if (typeof self !== 'undefined')
$wnd = self // web worker
var $moduleName,
$moduleBase;
// -------------- WORKAROUND STRICT MODE, SEE #127 --------------
var _xblockexpression;
// -------------- GENERATED CODE --------------
var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {204:1, 50:1}, $intern_4 = {204:1, 50:1, 128:1}, $intern_5 = {229:1, 3:1}, $intern_6 = {50:1}, $intern_7 = {92:1}, $intern_8 = {20:1, 31:1, 18:1}, $intern_9 = 2025, $intern_10 = {20:1, 31:1, 18:1, 22:1}, $intern_11 = {92:1, 138:1, 134:1}, $intern_12 = {20:1, 31:1, 18:1, 22:1, 83:1}, $intern_13 = {20:1, 31:1, 18:1, 277:1, 22:1, 83:1}, $intern_14 = {50:1, 128:1}, $intern_15 = {358:1, 45:1}, $intern_16 = 2048, $intern_17 = {3:1, 6:1, 4:1, 5:1}, $intern_18 = 16384, $intern_19 = {162:1}, $intern_20 = {41:1}, $intern_21 = {202:1}, $intern_22 = {l:4194303, m:4194303, h:524287}, $intern_23 = {254:1, 3:1, 35:1}, $intern_24 = {20:1}, $intern_25 = {20:1, 18:1}, $intern_26 = {3:1, 20:1, 31:1, 18:1}, $intern_27 = {311:1, 3:1, 20:1, 31:1, 18:1, 16:1, 59:1}, $intern_28 = {3:1, 4:1, 5:1, 175:1}, $intern_29 = {3:1, 92:1}, $intern_30 = {20:1, 18:1, 22:1}, $intern_31 = {3:1, 20:1, 31:1, 18:1, 22:1}, $intern_32 = {20:1, 18:1, 22:1, 83:1}, $intern_33 = 461845907, $intern_34 = -862048943, $intern_35 = {3:1, 6:1, 4:1, 5:1, 175:1}, $intern_36 = 1000, $intern_37 = 1073741824, $intern_38 = {3:1, 6:1, 4:1, 10:1, 5:1}, $intern_39 = {20:1, 31:1, 56:1, 18:1, 16:1}, $intern_40 = {20:1, 31:1, 56:1, 18:1, 16:1, 59:1}, $intern_41 = {48:1}, $intern_42 = {375:1}, $intern_43 = 1.0E-4, $intern_44 = -2147483648, $intern_45 = {3:1, 101:1, 63:1, 80:1}, $intern_46 = {201:1, 3:1, 4:1}, $intern_47 = 65535, $intern_48 = 1900, $intern_49 = {54:1, 3:1, 4:1}, $intern_50 = {3:1, 4:1, 35:1, 205:1}, $intern_51 = 4194303, $intern_52 = 1048575, $intern_53 = 524288, $intern_54 = 4194304, $intern_55 = 17592186044416, $intern_56 = 1000000000, $intern_57 = -17592186044416, $intern_58 = {3:1, 101:1, 99:1, 63:1, 80:1}, $intern_59 = {3:1, 297:1, 80:1}, $intern_60 = Infinity, $intern_61 = -Infinity, $intern_62 = 4096, $intern_63 = {3:1, 4:1, 584:1}, $intern_64 = 65536, $intern_65 = 55296, $intern_66 = {108:1, 3:1, 4:1}, $intern_67 = 100000, $intern_68 = 0.3010299956639812, $intern_69 = 4294967295, $intern_70 = {45:1}, $intern_71 = {3:1, 4:1, 20:1, 31:1, 56:1, 13:1, 18:1, 16:1, 59:1}, $intern_72 = {3:1, 20:1, 31:1, 56:1, 18:1, 16:1, 59:1}, $intern_73 = {20:1, 18:1, 16:1}, $intern_74 = {3:1, 51:1}, $intern_75 = {189:1}, $intern_76 = {3:1, 4:1, 92:1}, $intern_77 = {3:1, 4:1, 20:1, 31:1, 18:1, 47:1, 22:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 59:1}, $intern_85 = {3:1, 35:1, 23:1, 309:1}, $intern_86 = {3:1, 4:1, 5:1, 840:1}, $intern_87 = {520:1, 677:1}, $intern_88 = {51:1}, $intern_89 = {178:1, 48:1}, $intern_90 = {171:1, 3:1, 4:1}, $intern_91 = {216:1, 337:1}, $intern_92 = {3:1, 4:1, 5:1, 592:1}, $intern_93 = 0.01, $intern_94 = {3:1, 4:1, 5:1, 198:1}, $intern_95 = {3:1, 6:1, 4:1, 5:1, 90:1, 110:1}, $intern_96 = {214:1}, $intern_97 = 0.001, $intern_98 = {148:1}, $intern_99 = 1.600000023841858, $intern_100 = {3:1, 6:1, 4:1, 10:1, 5:1, 126:1}, $intern_101 = {3:1, 6:1, 4:1, 5:1, 135:1, 90:1, 110:1}, $intern_102 = {43:1}, $intern_103 = {3:1, 6:1, 4:1, 5:1, 323:1, 135:1, 90:1, 110:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 135:1, 199:1, 209:1, 90:1, 110:1}, $intern_105 = {3:1, 6:1, 4:1, 5:1, 135:1, 2004:1, 209:1, 90:1, 110:1}, $intern_106 = {3:1, 4:1, 140:1, 213:1, 414:1}, $intern_107 = {3:1, 4:1, 104:1, 213:1, 414:1}, $intern_108 = {220:1}, $intern_109 = {3:1, 4:1, 5:1, 590:1}, $intern_110 = {95:1, 43:1}, $intern_111 = {406:1, 220:1}, $intern_112 = {830:1, 3:1, 4:1}, $intern_113 = 1.7976931348623157E308, $intern_114 = 4.9E-324, $intern_115 = {3:1, 4:1, 5:1, 838:1}, $intern_116 = 1.0E-5, $intern_117 = 1.0E-6, $intern_118 = 0.09999999999999998, $intern_119 = 1.0E-8, $intern_120 = 4.71238898038469, $intern_121 = 1.5707963267948966, $intern_122 = 3.141592653589793, $intern_123 = 0.10000000149011612, $intern_124 = -1.7976931348623157E308, $intern_125 = {3:1, 6:1, 4:1, 5:1, 522:1, 90:1, 110:1}, $intern_126 = 6.283185307179586, $intern_127 = {3:1, 4:1, 5:1, 90:1}, $intern_128 = 5.497787143782138, $intern_129 = 3.9269908169872414, $intern_130 = 2.356194490192345, $intern_131 = {342:1}, $intern_132 = {296:1}, $intern_133 = 0.05, $intern_134 = 1.2999999523162842, $intern_135 = {3:1, 35:1, 23:1, 521:1, 288:1}, $intern_136 = {94:1, 93:1}, $intern_137 = 32768, $intern_138 = {109:1, 94:1, 93:1, 57:1, 52:1, 100:1}, $intern_139 = {195:1, 3:1, 4:1}, $intern_140 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 59:1, 71:1, 67:1, 61:1}, $intern_141 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 50:1, 16:1, 59:1, 71:1, 67:1, 61:1, 585:1}, $intern_142 = {415:1, 676:1}, $intern_143 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 71:1, 61:1}, $intern_144 = {373:1, 151:1}, $intern_145 = {3:1, 4:1, 5:1, 129:1}, $intern_146 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 59:1, 71:1, 61:1}, $intern_147 = {3:1, 6:1, 4:1, 5:1, 198:1}, $intern_148 = {3:1, 4:1, 5:1, 175:1, 374:1}, $intern_149 = 1024, $intern_150 = {77:1}, $intern_151 = {3:1, 20:1, 18:1, 16:1, 61:1, 586:1, 77:1, 72:1, 98:1}, $intern_152 = 8192, $intern_153 = {3:1, 4:1, 5:1, 255:1}, $intern_154 = {3:1, 4:1, 5:1, 678:1}, $intern_155 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 59:1, 71:1, 67:1, 61:1, 72:1}, $intern_156 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 59:1, 71:1, 67:1, 61:1, 77:1, 72:1, 98:1}, $intern_157 = {3:1, 4:1, 5:1, 679:1}, $intern_158 = {3:1, 4:1, 20:1, 31:1, 56:1, 18:1, 16:1, 71:1, 61:1, 77:1, 72:1, 98:1}, $intern_159 = {20:1, 31:1, 56:1, 18:1, 16:1, 61:1, 72:1}, $intern_160 = {50:1, 128:1, 287:1}, $intern_161 = {75:1, 344:1}, $intern_162 = 1306, $intern_163 = -32768, $intern_164 = {58:1}, $intern_165 = {3:1, 4:1, 5:1, 122:1}, $intern_166 = {94:1, 93:1, 588:1, 1996:1}, $intern_167 = 1114111, $intern_168 = {3:1, 121:1}, $intern_169 = {3:1, 4:1, 5:1, 376:1};
var _, prototypesByTypeId_0, initFnList_0, permutationId = -1;
function setGwtProperty(propertyName, propertyValue){
typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue);
}
function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){
ensureModuleInit();
var initFnList = initFnList_0;
$moduleName = modName;
$moduleBase = modBase;
permutationId = softPermutationId;
function initializeModules(){
for (var i = 0; i < initFnList.length; i++) {
initFnList[i]();
}
}
if (errFn) {
try {
$entry(initializeModules)();
}
catch (e) {
errFn(modName, e);
}
}
else {
$entry(initializeModules)();
}
}
function ensureModuleInit(){
initFnList_0 == null && (initFnList_0 = []);
}
function addInitFunctions(){
ensureModuleInit();
var initFnList = initFnList_0;
for (var i = 0; i < arguments.length; i++) {
initFnList.push(arguments[i]);
}
}
function typeMarkerFn(){
}
function toString_40(object){
var number;
if (Array.isArray(object) && object.typeMarker === typeMarkerFn) {
return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16));
}
return object.toString();
}
function portableObjCreate(obj){
function F(){
}
;
F.prototype = obj || {};
return new F;
}
function makeLambdaFunction(samMethod, ctor, ctorArguments){
var lambda = function(){
return samMethod.apply(lambda, arguments);
}
;
ctor.apply(lambda, ctorArguments);
return lambda;
}
function emptyMethod(){
}
function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){
var prototypesByTypeId = prototypesByTypeId_0, superPrototype;
var prototype_0 = prototypesByTypeId[typeId];
var clazz = prototype_0 instanceof Array?prototype_0[0]:null;
if (prototype_0 && !clazz) {
_ = prototype_0;
}
else {
_ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype));
_.castableTypeMap = castableTypeMap;
!superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn);
prototypesByTypeId[typeId] = _;
}
for (var i = 3; i < arguments.length; ++i) {
arguments[i].prototype = _;
}
clazz && (_.___clazz = clazz);
}
$wnd.goog = $wnd.goog || {};
$wnd.goog.global = $wnd.goog.global || $wnd;
prototypesByTypeId_0 = {};
function $equals(this$static, other){
return maskUndefined(this$static) === maskUndefined(other);
}
function Object_0(){
}
function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){
return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other);
}
function getClass__Ljava_lang_Class___devirtual$(this$static){
return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit;
}
function hashCode__I__devirtual$(this$static){
return instanceOfString(this$static)?$hashCode_2(this$static):instanceOfDouble(this$static)?$hashCode_1(this$static):instanceOfBoolean(this$static)?$hashCode_0(this$static):hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getObjectIdentityHashCode(this$static):$hashCode(this$static);
}
defineClass(1, null, {}, Object_0);
_.equals_0 = function equals(other){
return $equals(this, other);
}
;
_.getClass_0 = function getClass_0(){
return this.___clazz;
}
;
_.hashCode_1 = function hashCode_0(){
return getObjectIdentityHashCode(this);
}
;
_.toString_0 = function toString_1(){
var number;
return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16));
}
;
_.equals = function(other){
return this.equals_0(other);
}
;
_.hashCode = function(){
return this.hashCode_1();
}
;
_.toString = function(){
return this.toString_0();
}
;
function canCast(src_0, dstId){
if (instanceOfString(src_0)) {
return !!stringCastMap[dstId];
}
else if (src_0.castableTypeMap) {
return !!src_0.castableTypeMap[dstId];
}
else if (instanceOfDouble(src_0)) {
return !!doubleCastMap[dstId];
}
else if (instanceOfBoolean(src_0)) {
return !!booleanCastMap[dstId];
}
return false;
}
function castTo(src_0, dstId){
checkCriticalType(src_0 == null || canCast(src_0, dstId));
return src_0;
}
function castToArray(src_0){
var elementTypeCategory;
checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16)));
return src_0;
}
function castToBoolean(src_0){
checkCriticalType(src_0 == null || instanceOfBoolean(src_0));
return src_0;
}
function castToDouble(src_0){
checkCriticalType(src_0 == null || instanceOfDouble(src_0));
return src_0;
}
function castToJso(src_0){
checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn));
return src_0;
}
function castToString(src_0){
checkCriticalType(src_0 == null || instanceOfString(src_0));
return src_0;
}
function charToString(x_0){
return String.fromCharCode(x_0);
}
function hasJavaObjectVirtualDispatch(src_0){
return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn;
}
function instanceOf(src_0, dstId){
return src_0 != null && canCast(src_0, dstId);
}
function instanceOfBoolean(src_0){
return typeof src_0 === 'boolean';
}
function instanceOfDouble(src_0){
return typeof src_0 === 'number';
}
function instanceOfJso(src_0){
return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn);
}
function instanceOfString(src_0){
return typeof src_0 === 'string';
}
function isJsObjectOrFunction(src_0){
return typeof src_0 === 'object' || typeof src_0 === 'function';
}
function maskUndefined(src_0){
return src_0 == null?null:src_0;
}
function round_int(x_0){
return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0;
}
function throwClassCastExceptionUnlessNull(o){
checkCriticalType(o == null);
return o;
}
var booleanCastMap, doubleCastMap, stringCastMap;
function $ensureNamesAreInitialized(this$static){
if (this$static.typeName != null) {
return;
}
initializeNames(this$static);
}
function $getEnumConstants(this$static){
return this$static.enumConstantsFunc && this$static.enumConstantsFunc();
}
function $getName(this$static){
$ensureNamesAreInitialized(this$static);
return this$static.typeName;
}
function $toString_5(this$static){
return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName);
}
function Class(){
++nextSequentialId;
this.typeName = null;
this.simpleName = null;
this.packageName = null;
this.compoundName = null;
this.canonicalName = null;
this.typeId = null;
this.arrayLiterals = null;
}
function createClassObject(packageName, compoundClassName){
var clazz;
clazz = new Class;
clazz.packageName = packageName;
clazz.compoundName = compoundClassName;
return clazz;
}
function createForClass(packageName, compoundClassName, typeId){
var clazz;
clazz = createClassObject(packageName, compoundClassName);
maybeSetClassLiteral(typeId, clazz);
return clazz;
}
function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){
var clazz;
clazz = createClassObject(packageName, compoundClassName);
maybeSetClassLiteral(typeId, clazz);
clazz.modifiers = enumConstantsFunc?8:0;
clazz.enumSuperclass = superclass;
clazz.enumConstantsFunc = enumConstantsFunc;
clazz.enumValueOfFunc = enumValueOfFunc;
return clazz;
}
function createForInterface(packageName, compoundClassName){
var clazz;
clazz = createClassObject(packageName, compoundClassName);
clazz.modifiers = 2;
return clazz;
}
function createForPrimitive(className, primitiveTypeId){
var clazz;
clazz = createClassObject('', className);
clazz.typeId = primitiveTypeId;
clazz.modifiers = 1;
return clazz;
}
function getClassLiteralForArray_0(leafClass, dimensions){
var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || [];
return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions));
}
function getPrototypeForClass(clazz){
if (clazz.isPrimitive()) {
return null;
}
var typeId = clazz.typeId;
return prototypesByTypeId_0[typeId];
}
function initializeNames(clazz){
if (clazz.isArray_1()) {
var componentType = clazz.componentType;
componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName());
clazz.canonicalName = componentType.getCanonicalName() + '[]';
clazz.simpleName = componentType.getSimpleName() + '[]';
return;
}
var packageName = clazz.packageName;
var compoundName = clazz.compoundName;
compoundName = compoundName.split('/');
clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]);
clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]);
clazz.simpleName = compoundName[compoundName.length - 1];
}
function join_0(separator, strings){
var i = 0;
while (!strings[i] || strings[i] == '') {
i++;
}
var result = strings[i++];
for (; i < strings.length; i++) {
if (!strings[i] || strings[i] == '') {
continue;
}
result += separator + strings[i];
}
return result;
}
function maybeSetClassLiteral(typeId, clazz){
var proto;
if (!typeId) {
return;
}
clazz.typeId = typeId;
var prototype_0 = getPrototypeForClass(clazz);
if (!prototype_0) {
prototypesByTypeId_0[typeId] = [clazz];
return;
}
prototype_0.___clazz = clazz;
}
defineClass(298, 1, {298:1, 2086:1}, Class);
_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){
var clazz;
clazz = new Class;
clazz.modifiers = 4;
dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this);
return clazz;
}
;
_.getCanonicalName = function getCanonicalName(){
$ensureNamesAreInitialized(this);
return this.canonicalName;
}
;
_.getName = function getName(){
return $getName(this);
}
;
_.getSimpleName = function getSimpleName(){
return $ensureNamesAreInitialized(this) , this.simpleName;
}
;
_.isArray_1 = function isArray_1(){
return (this.modifiers & 4) != 0;
}
;
_.isPrimitive = function isPrimitive(){
return (this.modifiers & 1) != 0;
}
;
_.toString_0 = function toString_44(){
return $toString_5(this);
}
;
_.modifiers = 0;
var nextSequentialId = 1;
var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1);
var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 298);
defineClass(2058, 1, $intern_1);
var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 2058);
function $clinit_Absent(){
$clinit_Absent = emptyMethod;
INSTANCE = new Absent;
}
function Absent(){
}
defineClass(1160, 2058, $intern_1, Absent);
_.equals_0 = function equals_0(object){
return object === this;
}
;
_.hashCode_1 = function hashCode_1(){
return 2040732332;
}
;
_.toString_0 = function toString_2(){
return 'Optional.absent()';
}
;
_.transform = function transform(function_0){
checkNotNull(function_0);
return $clinit_Absent() , INSTANCE;
}
;
var INSTANCE;
var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1160);
function $appendTo(this$static, appendable, parts){
checkNotNull(appendable);
if (parts.hasNext_0()) {
$append_7(appendable, $toString(parts.next_1()));
while (parts.hasNext_0()) {
$append_7(appendable, this$static.separator);
$append_7(appendable, $toString(parts.next_1()));
}
}
return appendable;
}
function $appendTo_0(this$static, builder, parts){
var impossible;
try {
$appendTo(this$static, builder, parts);
}
catch ($e0) {
$e0 = toJava($e0);
if (instanceOf($e0, 595)) {
impossible = $e0;
throw toJs(new AssertionError_0(impossible));
}
else
throw toJs($e0);
}
return builder;
}
function $join(this$static, parts){
return $appendTo_0(this$static, new StringBuilder, parts).string;
}
function $toString(part){
requireNonNull(part);
return instanceOf(part, 472)?castTo(part, 472):toString_40(part);
}
function Joiner(){
this.separator = castToString(checkNotNull(', '));
}
defineClass(627, 1, {}, Joiner);
var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 627);
function equal(a, b){
return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b);
}
function badElementIndex(index_0, size_0){
if (index_0 < 0) {
return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_3(index_0)]));
}
else if (size_0 < 0) {
throw toJs(new IllegalArgumentException_0('negative size: ' + size_0));
}
else {
return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_3(index_0), valueOf_3(size_0)]));
}
}
function badPositionIndex(index_0, size_0, desc){
if (index_0 < 0) {
return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_3(index_0)]));
}
else if (size_0 < 0) {
throw toJs(new IllegalArgumentException_0('negative size: ' + size_0));
}
else {
return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_3(index_0), valueOf_3(size_0)]));
}
}
function badPositionIndexes(start_0, end, size_0){
if (start_0 < 0 || start_0 > size_0) {
return badPositionIndex(start_0, size_0, 'start index');
}
if (end < 0 || end > size_0) {
return badPositionIndex(end, size_0, 'end index');
}
return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_3(end), valueOf_3(start_0)]));
}
function checkArgument(expression){
if (!expression) {
throw toJs(new IllegalArgumentException);
}
}
function checkArgument_0(expression, errorMessage){
if (!expression) {
throw toJs(new IllegalArgumentException_0(errorMessage));
}
}
function checkArgument_1(expression, p1){
if (!expression) {
throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1]))));
}
}
function checkArgument_2(expression, errorMessageTemplate, p1, p2){
if (!expression) {
throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2]))));
}
}
function checkElementIndex(index_0, size_0){
if (index_0 < 0 || index_0 >= size_0) {
throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0)));
}
return index_0;
}
function checkNotNull(reference){
if (reference == null) {
throw toJs(new NullPointerException);
}
return reference;
}
function checkNotNull_0(reference, errorMessage){
if (reference == null) {
throw toJs(new NullPointerException_0(errorMessage));
}
return reference;
}
function checkPositionIndex(index_0, size_0){
if (index_0 < 0 || index_0 > size_0) {
throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index')));
}
return index_0;
}
function checkPositionIndexes(start_0, end, size_0){
if (start_0 < 0 || end < start_0 || end > size_0) {
throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0)));
}
}
function checkState(expression){
if (!expression) {
throw toJs(new IllegalStateException);
}
}
function checkState_0(expression){
if (!expression) {
throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()'));
}
}
var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate');
function toStringHelper(components){
var builder, first, o, o$iterator;
builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40);
first = true;
for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) {
o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++));
first || (builder.string += ',' , builder);
builder.string += '' + o;
first = false;
}
return (builder.string += ')' , builder).string;
}
function $apply(this$static, t){
var i;
for (i = 0; i < this$static.components.array.length; i++) {
if (!castTo($get_12(this$static.components, i), 178).apply_1(t)) {
return false;
}
}
return true;
}
function Predicates$AndPredicate(components){
this.components = components;
}
defineClass(577, 1, {178:1, 577:1, 3:1, 48:1}, Predicates$AndPredicate);
_.test_0 = function test_0(input_0){
return $apply(this, input_0);
}
;
_.apply_1 = function apply_1(t){
return $apply(this, t);
}
;
_.equals_0 = function equals_1(obj){
var that;
if (instanceOf(obj, 577)) {
that = castTo(obj, 577);
return $equals_2(this.components, that.components);
}
return false;
}
;
_.hashCode_1 = function hashCode_2(){
return hashCode_49(this.components) + 306654252;
}
;
_.toString_0 = function toString_3(){
return toStringHelper(this.components);
}
;
var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 577);
function Present(reference){
this.reference = reference;
}
defineClass(411, 2058, {411:1, 3:1}, Present);
_.equals_0 = function equals_2(object){
var other;
if (instanceOf(object, 411)) {
other = castTo(object, 411);
return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference);
}
return false;
}
;
_.hashCode_1 = function hashCode_3(){
return 1502476572 + hashCode__I__devirtual$(this.reference);
}
;
_.toString_0 = function toString_4(){
return 'Optional.of(' + this.reference + ')';
}
;
_.transform = function transform_0(function_0){
return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.'));
}
;
var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 411);
function lenientFormat(template, args){
var builder, i, i0, placeholderStart, templateStart;
template = template == null?'null':(checkCriticalNotNull(template) , template);
for (i0 = 0; i0 < args.length; i0++) {
args[i0] = lenientToString(args[i0]);
}
builder = new StringBuilder_0;
templateStart = 0;
i = 0;
while (i < args.length) {
placeholderStart = template.indexOf('%s', templateStart);
if (placeholderStart == -1) {
break;
}
builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart);
$append_10(builder, args[i++]);
templateStart = placeholderStart + 2;
}
$append_9(builder, template, templateStart, template.length);
if (i < args.length) {
builder.string += ' [';
$append_10(builder, args[i++]);
while (i < args.length) {
builder.string += ', ';
$append_10(builder, args[i++]);
}
builder.string += ']';
}
return builder.string;
}
function lenientToString(o){
var e, number, objectToString;
if (o == null) {
return 'null';
}
try {
return toString_40(o);
}
catch ($e0) {
$e0 = toJava($e0);
if (instanceOf($e0, 101)) {
e = $e0;
objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16));
$log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e);
return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>';
}
else
throw toJs($e0);
}
}
function $forEachRemaining(this$static, consumer){
checkCriticalNotNull(consumer);
while (this$static.hasNext_0()) {
consumer.accept(this$static.next_1());
}
}
function $remove_21(){
throw toJs(new UnsupportedOperationException);
}
function $remove(){
throw toJs(new UnsupportedOperationException);
}
defineClass(204, 1, $intern_3);
_.forEachRemaining = function forEachRemaining(consumer){
$forEachRemaining(this, consumer);
}
;
_.remove = function remove_0(){
$remove();
}
;
var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 204);
defineClass(2038, 204, $intern_4);
_.remove = function remove_1(){
$remove();
}
;
_.add_1 = function add_1(e){
throw toJs(new UnsupportedOperationException);
}
;
_.set_1 = function set_1(e){
throw toJs(new UnsupportedOperationException);
}
;
var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 2038);
function AbstractIndexedListIterator(size_0){
AbstractIndexedListIterator_0.call(this, size_0, 0);
}
function AbstractIndexedListIterator_0(size_0, position){
checkPositionIndex(position, size_0);
this.size_0 = size_0;
this.position = position;
}
defineClass(392, 2038, $intern_4);
_.hasNext_0 = function hasNext(){
return this.position < this.size_0;
}
;
_.hasPrevious = function hasPrevious(){
return this.position > 0;
}
;
_.next_1 = function next_0(){
if (this.position >= this.size_0) {
throw toJs(new NoSuchElementException);
}
return this.get_0(this.position++);
}
;
_.nextIndex_0 = function nextIndex_0(){
return this.position;
}
;
_.previous_0 = function previous_0(){
if (this.position <= 0) {
throw toJs(new NoSuchElementException);
}
return this.get_0(--this.position);
}
;
_.previousIndex = function previousIndex(){
return this.position - 1;
}
;
_.position = 0;
_.size_0 = 0;
var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 392);
function $hasNext(this$static){
checkState(this$static.state != 3);
switch (this$static.state) {
case 2:
return false;
case 0:
return true;
}
return $tryToComputeNext(this$static);
}
function $next(this$static){
var result;
if (!$hasNext(this$static)) {
throw toJs(new NoSuchElementException);
}
this$static.state = 1;
result = this$static.next_0;
this$static.next_0 = null;
return result;
}
function $tryToComputeNext(this$static){
this$static.state = 3;
this$static.next_0 = this$static.computeNext();
if (this$static.state != 2) {
this$static.state = 0;
return true;
}
return false;
}
defineClass(702, 204, $intern_3);
_.hasNext_0 = function hasNext_0(){
return $hasNext(this);
}
;
_.next_1 = function next_1(){
return $next(this);
}
;
_.state = 1;
var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 702);
function $containsEntry(this$static, key, value_0){
var collection;
collection = castTo(this$static.asMap_0().get_3(key), 18);
return !!collection && collection.contains(value_0);
}
function $containsValue(this$static, value_0){
var collection, collection$iterator;
for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) {
collection = castTo(collection$iterator.next_1(), 18);
if (collection.contains(value_0)) {
return true;
}
}
return false;
}
function $keySet(this$static){
var result;
result = this$static.keySet;
return !result?(this$static.keySet = this$static.createKeySet()):result;
}
function $keys(this$static){
var result;
result = this$static.keys_0;
return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result;
}
function $remove_0(this$static, key, value_0){
var collection;
collection = castTo(this$static.asMap_0().get_3(key), 18);
return !!collection && collection.remove_1(value_0);
}
defineClass(2046, 1, {229:1});
_.asMap_0 = function asMap(){
var result;
return result = this.asMap , !result?(this.asMap = this.createAsMap()):result;
}
;
_.equals_0 = function equals_3(object){
return equalsImpl_1(this, object);
}
;
_.hashCode_1 = function hashCode_4(){
return hashCode__I__devirtual$(this.asMap_0());
}
;
_.isEmpty = function isEmpty(){
return this.size_1() == 0;
}
;
_.keySet_0 = function keySet_0(){
return $keySet(this);
}
;
_.toString_0 = function toString_5(){
return toString_40(this.asMap_0());
}
;
var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 2046);
function $clear(this$static){
var collection, collection$iterator;
for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) {
collection = castTo(collection$iterator.next_1(), 18);
collection.clear_0();
}
this$static.map_0.clear_0();
this$static.totalSize = 0;
}
function $containsKey(this$static, key){
return this$static.map_0.containsKey(key);
}
function $entries(this$static){
var result;
return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result;
}
function $get(this$static, key){
var collection;
collection = castTo(this$static.map_0.get_3(key), 18);
!collection && (collection = this$static.createCollection_0(key));
return this$static.wrapCollection(key, collection);
}
function $put(this$static, key, value_0){
var collection;
collection = castTo(this$static.map_0.get_3(key), 18);
if (!collection) {
collection = this$static.createCollection_0(key);
if (collection.add_2(value_0)) {
++this$static.totalSize;
this$static.map_0.put(key, collection);
return true;
}
else {
throw toJs(new AssertionError_0('New Collection violated the Collection spec'));
}
}
else if (collection.add_2(value_0)) {
++this$static.totalSize;
return true;
}
else {
return false;
}
}
function $removeAll(this$static, key){
var collection, output;
collection = castTo(this$static.map_0.remove_0(key), 18);
if (!collection) {
return this$static.createUnmodifiableEmptyCollection();
}
output = this$static.createCollection();
output.addAll(collection);
this$static.totalSize -= collection.size_1();
collection.clear_0();
return this$static.unmodifiableCollectionSubclass(output);
}
function $removeValuesForKey(this$static, key){
var collection, count;
collection = castTo(safeRemove_0(this$static.map_0, key), 18);
if (collection) {
count = collection.size_1();
collection.clear_0();
this$static.totalSize -= count;
}
}
function $values(this$static){
var result;
return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result;
}
function $wrapList(this$static, key, list, ancestor){
return instanceOf(list, 59)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor);
}
function AbstractMapBasedMultimap(map_0){
checkArgument(map_0.isEmpty());
this.map_0 = map_0;
}
function iteratorOrListIterator(collection){
return instanceOf(collection, 16)?castTo(collection, 16).listIterator_0():collection.iterator_0();
}
function lambda$1(keyToValueCollectionEntry_0){
var key, valueCollection;
key = keyToValueCollectionEntry_0.getKey();
valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 18);
return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key));
}
defineClass(730, 2046, $intern_5);
_.clear_0 = function clear_0(){
$clear(this);
}
;
_.containsKey = function containsKey(key){
return $containsKey(this, key);
}
;
_.createAsMap = function createAsMap(){
return new AbstractMapBasedMultimap$AsMap(this, this.map_0);
}
;
_.createCollection_0 = function createCollection(key){
return this.createCollection();
}
;
_.createKeySet = function createKeySet(){
return new AbstractMapBasedMultimap$KeySet(this, this.map_0);
}
;
_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){
return this.unmodifiableCollectionSubclass(this.createCollection());
}
;
_.entryIterator = function entryIterator_0(){
return new AbstractMapBasedMultimap$2(this);
}
;
_.entrySpliterator = function entrySpliterator_0(){
return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize);
}
;
_.get_1 = function get_0(key){
return $get(this, key);
}
;
_.removeAll = function removeAll(key){
return $removeAll(this, key);
}
;
_.size_1 = function size_1(){
return this.totalSize;
}
;
_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){
return $clinit_Collections() , new Collections$UnmodifiableCollection(collection);
}
;
_.valueIterator_0 = function valueIterator(){
return new AbstractMapBasedMultimap$1(this);
}
;
_.valueSpliterator = function valueSpliterator(){
return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize);
}
;
_.wrapCollection = function wrapCollection(key, collection){
return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null);
}
;
_.totalSize = 0;
var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 730);
function $asMap(this$static){
var result;
return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result;
}
defineClass(1661, 730, $intern_5);
_.createCollection = function createCollection_0(){
return new ArrayList_0(this.expectedValuesPerKey);
}
;
_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){
return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST;
}
;
_.get_1 = function get_1(key){
return castTo($get(this, key), 16);
}
;
_.removeAll = function removeAll_0(key){
return castTo($removeAll(this, key), 16);
}
;
_.asMap_0 = function asMap_0(){
return $asMap(this);
}
;
_.equals_0 = function equals_4(object){
return equalsImpl_1(this, object);
}
;
_.get_2 = function get_2(key){
return castTo($get(this, key), 16);
}
;
_.removeAll_0 = function removeAll_1(key){
return castTo($removeAll(this, key), 16);
}
;
_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){
return unmodifiableList(castTo(collection, 16));
}
;
_.wrapCollection = function wrapCollection_0(key, collection){
return $wrapList(this, key, castTo(collection, 16), null);
}
;
var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1661);
function AbstractMapBasedMultimap$Itr(this$0){
this.this$01 = this$0;
this.keyIterator = this$0.map_0.entrySet_0().iterator_0();
this.key = null;
this.collection = null;
this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2);
}
defineClass(736, 1, $intern_6);
_.forEachRemaining = function forEachRemaining_0(consumer){
$forEachRemaining(this, consumer);
}
;
_.hasNext_0 = function hasNext_1(){
return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0();
}
;
_.next_1 = function next_2(){
var mapEntry;
if (!this.valueIterator.hasNext_0()) {
mapEntry = castTo(this.keyIterator.next_1(), 45);
this.key = mapEntry.getKey();
this.collection = castTo(mapEntry.getValue(), 18);
this.valueIterator = this.collection.iterator_0();
}
return this.output(this.key, this.valueIterator.next_1());
}
;
_.remove = function remove_2(){
this.valueIterator.remove();
castTo(requireNonNull(this.collection), 18).isEmpty() && this.keyIterator.remove();
--this.this$01.totalSize;
}
;
var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 736);
function AbstractMapBasedMultimap$1(this$0){
AbstractMapBasedMultimap$Itr.call(this, this$0);
}
defineClass(1098, 736, $intern_6, AbstractMapBasedMultimap$1);
_.output = function output_0(key, value_0){
return value_0;
}
;
var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1098);
function AbstractMapBasedMultimap$1methodref$spliterator$Type(){
}
defineClass(1099, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type);
_.apply_0 = function apply_2(arg0){
return castTo(arg0, 18).spliterator_0();
}
;
var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1099);
function AbstractMapBasedMultimap$2(this$0){
AbstractMapBasedMultimap$Itr.call(this, this$0);
}
defineClass(1100, 736, $intern_6, AbstractMapBasedMultimap$2);
_.output = function output_1(key, value_0){
return new ImmutableEntry(key, value_0);
}
;
var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1100);
function $forEach_2(this$static, consumer){
var entry, entry$iterator;
checkCriticalNotNull(consumer);
for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) {
entry = castTo(entry$iterator.next_1(), 45);
consumer.accept_1(entry.getKey(), entry.getValue());
}
}
var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map');
function $containsEntry_0(this$static, entry){
var key, ourValue, value_0;
key = entry.getKey();
value_0 = entry.getValue();
ourValue = this$static.get_3(key);
if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) {
return false;
}
if (ourValue == null && !this$static.containsKey(key)) {
return false;
}
return true;
}
function $implFindEntry(this$static, key, remove){
var entry, iter, k;
for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) {
entry = castTo(iter.next_1(), 45);
k = entry.getKey();
if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) {
if (remove) {
entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue());
iter.remove();
}
return entry;
}
}
return null;
}
function $putAll(this$static, map_0){
var e, e$iterator;
checkCriticalNotNull(map_0);
for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) {
e = castTo(e$iterator.next_1(), 45);
this$static.put(e.getKey(), e.getValue());
}
}
function $toString_0(this$static){
var entry, entry$iterator, joiner;
joiner = new StringJoiner(', ', '{', '}');
for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) {
entry = castTo(entry$iterator.next_1(), 45);
$add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue()));
}
return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix);
}
function $toString_1(this$static, o){
return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o);
}
function getEntryKeyOrNull(entry){
return !entry?null:entry.key;
}
function getEntryValueOrNull(entry){
return !entry?null:entry.getValue();
}
defineClass(2027, 1, $intern_7);
_.forEach = function forEach(consumer){
$forEach_2(this, consumer);
}
;
_.clear_0 = function clear_1(){
this.entrySet_0().clear_0();
}
;
_.containsEntry = function containsEntry(entry){
return $containsEntry_0(this, entry);
}
;
_.containsKey = function containsKey_0(key){
return !!$implFindEntry(this, key, false);
}
;
_.containsValue = function containsValue(value_0){
var entry, entry$iterator, v;
for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) {
entry = castTo(entry$iterator.next_1(), 45);
v = entry.getValue();
if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) {
return true;
}
}
return false;
}
;
_.equals_0 = function equals_5(obj){
var entry, entry$iterator, otherMap;
if (obj === this) {
return true;
}
if (!instanceOf(obj, 92)) {
return false;
}
otherMap = castTo(obj, 92);
if (this.size_1() != otherMap.size_1()) {
return false;
}
for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) {
entry = castTo(entry$iterator.next_1(), 45);
if (!this.containsEntry(entry)) {
return false;
}
}
return true;
}
;
_.get_3 = function get_3(key){
return getEntryValueOrNull($implFindEntry(this, key, false));
}
;
_.hashCode_1 = function hashCode_5(){
return hashCode_48(this.entrySet_0());
}
;
_.isEmpty = function isEmpty_0(){
return this.size_1() == 0;
}
;
_.keySet_0 = function keySet_1(){
return new AbstractMap$1(this);
}
;
_.put = function put(key, value_0){
throw toJs(new UnsupportedOperationException_0('Put not supported on this map'));
}
;
_.putAll = function putAll(map_0){
$putAll(this, map_0);
}
;
_.remove_0 = function remove_3(key){
return getEntryValueOrNull($implFindEntry(this, key, true));
}
;
_.size_1 = function size_2(){
return this.entrySet_0().size_1();
}
;
_.toString_0 = function toString_6(){
return $toString_0(this);
}
;
_.values_0 = function values_1(){
return new AbstractMap$2(this);
}
;
var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 2027);
function $entrySet(this$static){
var result;
result = this$static.entrySet;
return !result?(this$static.entrySet = this$static.createEntrySet()):result;
}
defineClass(2047, 2027, $intern_7);
_.createKeySet = function createKeySet_0(){
return new Maps$KeySet(this);
}
;
_.entrySet_0 = function entrySet(){
return $entrySet(this);
}
;
_.keySet_0 = function keySet_2(){
var result;
result = this.keySet;
return !result?(this.keySet = this.createKeySet()):result;
}
;
_.values_0 = function values_2(){
var result;
result = this.values;
return !result?(this.values = new Maps$Values(this)):result;
}
;
var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 2047);
function $get_0(this$static, key){
var collection, k;
collection = castTo(safeGet(this$static.submap, key), 18);
if (!collection) {
return null;
}
k = key;
return this$static.this$01_1.wrapCollection(k, collection);
}
function $remove_1(this$static, key){
var collection, output;
collection = castTo(this$static.submap.remove_0(key), 18);
if (!collection) {
return null;
}
output = this$static.this$01_1.createCollection();
output.addAll(collection);
this$static.this$01_1.totalSize -= collection.size_1();
collection.clear_0();
return output;
}
function $wrapEntry(this$static, entry){
var key;
key = entry.getKey();
return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 18)));
}
function AbstractMapBasedMultimap$AsMap(this$0, submap){
this.this$01_1 = this$0;
this.submap = submap;
}
defineClass(395, 2047, $intern_7, AbstractMapBasedMultimap$AsMap);
_.get_3 = function get_4(key){
return $get_0(this, key);
}
;
_.remove_0 = function remove_4(key){
return $remove_1(this, key);
}
;
_.clear_0 = function clear_2(){
this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this));
}
;
_.containsKey = function containsKey_1(key){
return safeContainsKey(this.submap, key);
}
;
_.createEntrySet_0 = function createEntrySet(){
return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this);
}
;
_.createEntrySet = function(){
return this.createEntrySet_0();
}
;
_.equals_0 = function equals_6(object){
return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object);
}
;
_.hashCode_1 = function hashCode_6(){
return hashCode__I__devirtual$(this.submap);
}
;
_.keySet_0 = function keySet_3(){
return this.this$01_1.keySet_0();
}
;
_.size_1 = function size_3(){
return this.submap.size_1();
}
;
_.toString_0 = function toString_7(){
return toString_40(this.submap);
}
;
var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 395);
function $forEach_0(this$static, action){
var t, t$iterator;
checkCriticalNotNull(action);
for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) {
t = t$iterator.next_1();
action.accept(t);
}
}
var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable');
function $addAll(this$static, c){
var changed, e, e$iterator;
checkCriticalNotNull(c);
changed = false;
for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) {
e = e$iterator.next_1();
changed = changed | this$static.add_2(e);
}
return changed;
}
function $advanceToFind(this$static, o, remove){
var e, iter;
for (iter = this$static.iterator_0(); iter.hasNext_0();) {
e = iter.next_1();
if (maskUndefined(o) === maskUndefined(e) || o != null && equals_Ljava_lang_Object__Z__devirtual$(o, e)) {
remove && iter.remove();
return true;
}
}
return false;
}
function $clear_0(this$static){
var iter;
for (iter = this$static.iterator_0(); iter.hasNext_0();) {
iter.next_1();
iter.remove();
}
}
function $containsAll(this$static, c){
var e, e$iterator;
checkCri