Files
nothoughts/public/js/main.js
2025-02-06 19:47:55 +01:00

1535 lines
4.0 MiB

var shadow$provide = {};
var CLOSURE_NO_DEPS = true;
var CLOSURE_BASE_PATH = '/js/cljs-runtime/';
var CLOSURE_DEFINES = {"shadow.cljs.devtools.client.env.repl_pprint":false,"shadow.cljs.devtools.client.env.reload_strategy":"optimized","shadow.cljs.devtools.client.env.devtools_url":"","shadow.cljs.devtools.client.env.autoload":true,"shadow.cljs.devtools.client.env.proc_id":"69c44415-dd30-4ded-b1da-64e254e18d8d","shadow.cljs.devtools.client.env.use_document_protocol":false,"goog.ENABLE_DEBUG_LOADER":false,"shadow.cljs.devtools.client.env.server_port":9630,"shadow.cljs.devtools.client.env.server_token":"4dac44ea-00b0-44e9-83a2-d367061e8f70","shadow.cljs.devtools.client.env.use_document_host":true,"shadow.cljs.devtools.client.env.module_format":"goog","goog.LOCALE":"en","shadow.cljs.devtools.client.env.build_id":"game","shadow.cljs.devtools.client.env.ignore_warnings":false,"goog.DEBUG":true,"shadow.cljs.devtools.client.env.log":true,"shadow.cljs.devtools.client.env.ssl":false,"shadow.cljs.devtools.client.env.enabled":true,"shadow.cljs.devtools.client.env.server_host":"localhost","shadow.cljs.devtools.client.env.worker_client_id":2,"goog.TRANSPILE":"never"};
var COMPILED = false;
var goog = goog || {};
goog.global = this || self;
goog.global.CLOSURE_UNCOMPILED_DEFINES;
goog.global.CLOSURE_DEFINES;
goog.exportPath_ = function(name, object, overwriteImplicit, objectToExportTo) {
var parts = name.split(".");
var cur = objectToExportTo || goog.global;
if (!(parts[0] in cur) && typeof cur.execScript != "undefined") {
cur.execScript("var " + parts[0]);
}
var part;
for (; parts.length && (part = parts.shift());) {
if (!parts.length && object !== undefined) {
if (!overwriteImplicit && goog.isObject(object) && goog.isObject(cur[part])) {
var prop;
for (prop in object) {
if (object.hasOwnProperty(prop)) {
cur[part][prop] = object[prop];
}
}
} else {
cur[part] = object;
}
} else if (cur[part] && cur[part] !== Object.prototype[part]) {
cur = cur[part];
} else {
cur = cur[part] = {};
}
}
};
goog.define = function(name, defaultValue) {
var value = defaultValue;
if (!COMPILED) {
var uncompiledDefines = goog.global.CLOSURE_UNCOMPILED_DEFINES;
var defines = goog.global.CLOSURE_DEFINES;
if (uncompiledDefines && uncompiledDefines.nodeType === undefined && Object.prototype.hasOwnProperty.call(uncompiledDefines, name)) {
value = uncompiledDefines[name];
} else if (defines && defines.nodeType === undefined && Object.prototype.hasOwnProperty.call(defines, name)) {
value = defines[name];
}
}
return value;
};
goog.FEATURESET_YEAR = goog.define("goog.FEATURESET_YEAR", 2012);
goog.DEBUG = goog.define("goog.DEBUG", true);
goog.LOCALE = goog.define("goog.LOCALE", "en");
goog.TRUSTED_SITE = goog.define("goog.TRUSTED_SITE", true);
goog.DISALLOW_TEST_ONLY_CODE = goog.define("goog.DISALLOW_TEST_ONLY_CODE", COMPILED && !goog.DEBUG);
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = goog.define("goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING", false);
goog.provide = function(name) {
if (goog.isInModuleLoader_()) {
throw new Error("goog.provide cannot be used within a module.");
}
if (!COMPILED) {
if (goog.isProvided_(name)) {
throw new Error('Namespace "' + name + '" already declared.');
}
}
goog.constructNamespace_(name);
};
goog.constructNamespace_ = function(name, object, overwriteImplicit) {
if (!COMPILED) {
delete goog.implicitNamespaces_[name];
var namespace = name;
for (; namespace = namespace.substring(0, namespace.lastIndexOf("."));) {
if (goog.getObjectByName(namespace)) {
break;
}
goog.implicitNamespaces_[namespace] = true;
}
}
goog.exportPath_(name, object, overwriteImplicit);
};
goog.NONCE_PATTERN_ = /^[\w+/_-]+[=]{0,2}$/;
goog.getScriptNonce_ = function(opt_window) {
var doc = (opt_window || goog.global).document;
var script = doc.querySelector && doc.querySelector("script[nonce]");
if (script) {
var nonce = script["nonce"] || script.getAttribute("nonce");
if (nonce && goog.NONCE_PATTERN_.test(nonce)) {
return nonce;
}
}
return "";
};
goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
goog.module = function(name) {
if (typeof name !== "string" || !name || name.search(goog.VALID_MODULE_RE_) == -1) {
throw new Error("Invalid module identifier");
}
if (!goog.isInGoogModuleLoader_()) {
throw new Error("Module " + name + " has been loaded incorrectly. Note, " + "modules cannot be loaded as normal scripts. They require some kind of " + "pre-processing step. You're likely trying to load a module via a " + "script tag or as a part of a concatenated bundle without rewriting the " + "module. For more info see: " + "https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
}
if (goog.moduleLoaderState_.moduleName) {
throw new Error("goog.module may only be called once per module.");
}
goog.moduleLoaderState_.moduleName = name;
if (!COMPILED) {
if (goog.isProvided_(name)) {
throw new Error('Namespace "' + name + '" already declared.');
}
delete goog.implicitNamespaces_[name];
}
};
goog.module.get = function(name) {
return goog.module.getInternal_(name);
};
goog.module.getInternal_ = function(name) {
if (!COMPILED) {
if (name in goog.loadedModules_) {
return goog.loadedModules_[name].exports;
} else if (!goog.implicitNamespaces_[name]) {
var ns = goog.getObjectByName(name);
return ns != null ? ns : null;
}
}
return null;
};
goog.ModuleType = {ES6:"es6", GOOG:"goog"};
goog.moduleLoaderState_ = null;
goog.isInModuleLoader_ = function() {
return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();
};
goog.isInGoogModuleLoader_ = function() {
return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG;
};
goog.isInEs6ModuleLoader_ = function() {
var inLoader = !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6;
if (inLoader) {
return true;
}
var jscomp = goog.global["$jscomp"];
if (jscomp) {
if (typeof jscomp.getCurrentModulePath != "function") {
return false;
}
return !!jscomp.getCurrentModulePath();
}
return false;
};
goog.module.declareLegacyNamespace = function() {
if (!COMPILED && !goog.isInGoogModuleLoader_()) {
throw new Error("goog.module.declareLegacyNamespace must be called from " + "within a goog.module");
}
if (!COMPILED && !goog.moduleLoaderState_.moduleName) {
throw new Error("goog.module must be called prior to " + "goog.module.declareLegacyNamespace.");
}
goog.moduleLoaderState_.declareLegacyNamespace = true;
};
goog.declareModuleId = function(namespace) {
if (!COMPILED) {
if (!goog.isInEs6ModuleLoader_()) {
throw new Error("goog.declareModuleId may only be called from " + "within an ES6 module");
}
if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) {
throw new Error("goog.declareModuleId may only be called once per module.");
}
if (namespace in goog.loadedModules_) {
throw new Error('Module with namespace "' + namespace + '" already exists.');
}
}
if (goog.moduleLoaderState_) {
goog.moduleLoaderState_.moduleName = namespace;
} else {
var jscomp = goog.global["$jscomp"];
if (!jscomp || typeof jscomp.getCurrentModulePath != "function") {
throw new Error('Module with namespace "' + namespace + '" has been loaded incorrectly.');
}
var exports = jscomp.require(jscomp.getCurrentModulePath());
goog.loadedModules_[namespace] = {exports:exports, type:goog.ModuleType.ES6, moduleId:namespace};
}
};
goog.setTestOnly = function(opt_message) {
if (goog.DISALLOW_TEST_ONLY_CODE) {
opt_message = opt_message || "";
throw new Error("Importing test-only code into non-debug environment" + (opt_message ? ": " + opt_message : "."));
}
};
goog.forwardDeclare = function(name) {
};
goog.forwardDeclare("Document");
goog.forwardDeclare("HTMLScriptElement");
goog.forwardDeclare("XMLHttpRequest");
if (!COMPILED) {
goog.isProvided_ = function(name) {
return name in goog.loadedModules_ || !goog.implicitNamespaces_[name] && goog.getObjectByName(name) != null;
};
goog.implicitNamespaces_ = {"goog.module":true};
}
goog.getObjectByName = function(name, opt_obj) {
var parts = name.split(".");
var cur = opt_obj || goog.global;
var i = 0;
for (; i < parts.length; i++) {
cur = cur[parts[i]];
if (cur == null) {
return null;
}
}
return cur;
};
goog.addDependency = function(relPath, provides, requires, opt_loadFlags) {
if (!COMPILED && goog.DEPENDENCIES_ENABLED) {
goog.debugLoader_.addDependency(relPath, provides, requires, opt_loadFlags);
}
};
goog.ENABLE_DEBUG_LOADER = goog.define("goog.ENABLE_DEBUG_LOADER", true);
goog.logToConsole_ = function(msg) {
if (goog.global.console) {
goog.global.console["error"](msg);
}
};
goog.require = function(namespace) {
if (!COMPILED) {
if (goog.ENABLE_DEBUG_LOADER) {
goog.debugLoader_.requested(namespace);
}
if (goog.isProvided_(namespace)) {
if (goog.isInModuleLoader_()) {
return goog.module.getInternal_(namespace);
}
} else if (goog.ENABLE_DEBUG_LOADER) {
var moduleLoaderState = goog.moduleLoaderState_;
goog.moduleLoaderState_ = null;
try {
goog.debugLoader_.load_(namespace);
} finally {
goog.moduleLoaderState_ = moduleLoaderState;
}
}
return null;
}
};
goog.requireType = function(namespace) {
return {};
};
goog.basePath = "";
goog.global.CLOSURE_BASE_PATH;
goog.global.CLOSURE_NO_DEPS;
goog.global.CLOSURE_IMPORT_SCRIPT;
goog.abstractMethod = function() {
throw new Error("unimplemented abstract method");
};
goog.addSingletonGetter = function(ctor) {
ctor.instance_ = undefined;
ctor.getInstance = function() {
if (ctor.instance_) {
return ctor.instance_;
}
if (goog.DEBUG) {
goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor;
}
return ctor.instance_ = new ctor();
};
};
goog.instantiatedSingletons_ = [];
goog.LOAD_MODULE_USING_EVAL = goog.define("goog.LOAD_MODULE_USING_EVAL", true);
goog.SEAL_MODULE_EXPORTS = goog.define("goog.SEAL_MODULE_EXPORTS", goog.DEBUG);
goog.loadedModules_ = {};
goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;
goog.TRANSPILE = goog.define("goog.TRANSPILE", "detect");
goog.ASSUME_ES_MODULES_TRANSPILED = goog.define("goog.ASSUME_ES_MODULES_TRANSPILED", false);
goog.TRUSTED_TYPES_POLICY_NAME = goog.define("goog.TRUSTED_TYPES_POLICY_NAME", "goog");
goog.hasBadLetScoping = null;
goog.loadModule = function(moduleDef) {
var previousState = goog.moduleLoaderState_;
try {
goog.moduleLoaderState_ = {moduleName:"", declareLegacyNamespace:false, type:goog.ModuleType.GOOG};
var origExports = {};
var exports = origExports;
if (typeof moduleDef === "function") {
exports = moduleDef.call(undefined, exports);
} else if (typeof moduleDef === "string") {
exports = goog.loadModuleFromSource_.call(undefined, exports, moduleDef);
} else {
throw new Error("Invalid module definition");
}
var moduleName = goog.moduleLoaderState_.moduleName;
if (typeof moduleName === "string" && moduleName) {
if (goog.moduleLoaderState_.declareLegacyNamespace) {
var isDefaultExport = origExports !== exports;
goog.constructNamespace_(moduleName, exports, isDefaultExport);
} else if (goog.SEAL_MODULE_EXPORTS && Object.seal && typeof exports == "object" && exports != null) {
Object.seal(exports);
}
var data = {exports:exports, type:goog.ModuleType.GOOG, moduleId:goog.moduleLoaderState_.moduleName};
goog.loadedModules_[moduleName] = data;
} else {
throw new Error('Invalid module name "' + moduleName + '"');
}
} finally {
goog.moduleLoaderState_ = previousState;
}
};
goog.loadModuleFromSource_ = function(exports) {
eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(arguments[1]));
return exports;
};
goog.normalizePath_ = function(path) {
var components = path.split("/");
var i = 0;
for (; i < components.length;) {
if (components[i] == ".") {
components.splice(i, 1);
} else if (i && components[i] == ".." && components[i - 1] && components[i - 1] != "..") {
components.splice(--i, 2);
} else {
i++;
}
}
return components.join("/");
};
goog.global.CLOSURE_LOAD_FILE_SYNC;
goog.loadFileSync_ = function(src) {
if (goog.global.CLOSURE_LOAD_FILE_SYNC) {
return goog.global.CLOSURE_LOAD_FILE_SYNC(src);
} else {
try {
var xhr = new goog.global["XMLHttpRequest"]();
xhr.open("get", src, false);
xhr.send();
return xhr.status == 0 || xhr.status == 200 ? xhr.responseText : null;
} catch (err) {
return null;
}
}
};
goog.typeOf = function(value) {
var s = typeof value;
if (s != "object") {
return s;
}
if (!value) {
return "null";
}
if (Array.isArray(value)) {
return "array";
}
return s;
};
goog.isArrayLike = function(val) {
var type = goog.typeOf(val);
return type == "array" || type == "object" && typeof val.length == "number";
};
goog.isDateLike = function(val) {
return goog.isObject(val) && typeof val.getFullYear == "function";
};
goog.isObject = function(val) {
var type = typeof val;
return type == "object" && val != null || type == "function";
};
goog.getUid = function(obj) {
return Object.prototype.hasOwnProperty.call(obj, goog.UID_PROPERTY_) && obj[goog.UID_PROPERTY_] || (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_);
};
goog.hasUid = function(obj) {
return !!obj[goog.UID_PROPERTY_];
};
goog.removeUid = function(obj) {
if (obj !== null && "removeAttribute" in obj) {
obj.removeAttribute(goog.UID_PROPERTY_);
}
try {
delete obj[goog.UID_PROPERTY_];
} catch (ex) {
}
};
goog.UID_PROPERTY_ = "closure_uid_" + (Math.random() * 1e9 >>> 0);
goog.uidCounter_ = 0;
goog.cloneObject = function(obj) {
var type = goog.typeOf(obj);
if (type == "object" || type == "array") {
if (typeof obj.clone === "function") {
return obj.clone();
}
if (typeof Map !== "undefined" && obj instanceof Map) {
return new Map(obj);
} else if (typeof Set !== "undefined" && obj instanceof Set) {
return new Set(obj);
}
var clone = type == "array" ? [] : {};
var key;
for (key in obj) {
clone[key] = goog.cloneObject(obj[key]);
}
return clone;
}
return obj;
};
goog.bindNative_ = function(fn, selfObj, var_args) {
return fn.call.apply(fn.bind, arguments);
};
goog.bindJs_ = function(fn, selfObj, var_args) {
if (!fn) {
throw new Error();
}
if (arguments.length > 2) {
var boundArgs = Array.prototype.slice.call(arguments, 2);
return function() {
var newArgs = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(newArgs, boundArgs);
return fn.apply(selfObj, newArgs);
};
} else {
return function() {
return fn.apply(selfObj, arguments);
};
}
};
goog.bind = function(fn, selfObj, var_args) {
if (Function.prototype.bind && Function.prototype.bind.toString().indexOf("native code") != -1) {
goog.bind = goog.bindNative_;
} else {
goog.bind = goog.bindJs_;
}
return goog.bind.apply(null, arguments);
};
goog.partial = function(fn, var_args) {
var args = Array.prototype.slice.call(arguments, 1);
return function() {
var newArgs = args.slice();
newArgs.push.apply(newArgs, arguments);
return fn.apply(this, newArgs);
};
};
goog.now = function() {
return Date.now();
};
goog.globalEval = function(script) {
(0,eval)(script);
};
goog.cssNameMapping_;
goog.cssNameMappingStyle_;
goog.global.CLOSURE_CSS_NAME_MAP_FN;
goog.getCssName = function(className, opt_modifier) {
if (String(className).charAt(0) == ".") {
throw new Error('className passed in goog.getCssName must not start with ".".' + " You passed: " + className);
}
var getMapping = function(cssName) {
return goog.cssNameMapping_[cssName] || cssName;
};
var renameByParts = function(cssName) {
var parts = cssName.split("-");
var mapped = [];
var i = 0;
for (; i < parts.length; i++) {
mapped.push(getMapping(parts[i]));
}
return mapped.join("-");
};
var rename;
if (goog.cssNameMapping_) {
rename = goog.cssNameMappingStyle_ == "BY_WHOLE" ? getMapping : renameByParts;
} else {
rename = function(a) {
return a;
};
}
var result = opt_modifier ? className + "-" + rename(opt_modifier) : rename(className);
if (goog.global.CLOSURE_CSS_NAME_MAP_FN) {
return goog.global.CLOSURE_CSS_NAME_MAP_FN(result);
}
return result;
};
goog.setCssNameMapping = function(mapping, opt_style) {
goog.cssNameMapping_ = mapping;
goog.cssNameMappingStyle_ = opt_style;
};
goog.global.CLOSURE_CSS_NAME_MAPPING;
if (!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING) {
goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING;
}
goog.GetMsgOptions = function() {
};
goog.GetMsgOptions.prototype.html;
goog.GetMsgOptions.prototype.unescapeHtmlEntities;
goog.GetMsgOptions.prototype.original_code;
goog.GetMsgOptions.prototype.example;
goog.getMsg = function(str, opt_values, opt_options) {
if (opt_options && opt_options.html) {
str = str.replace(/</g, "\x26lt;");
}
if (opt_options && opt_options.unescapeHtmlEntities) {
str = str.replace(/&lt;/g, "\x3c").replace(/&gt;/g, "\x3e").replace(/&apos;/g, "'").replace(/&quot;/g, '"').replace(/&amp;/g, "\x26");
}
if (opt_values) {
str = str.replace(/\{\$([^}]+)}/g, function(match, key) {
return opt_values != null && key in opt_values ? opt_values[key] : match;
});
}
return str;
};
goog.getMsgWithFallback = function(a, b) {
return a;
};
goog.exportSymbol = function(publicPath, object, objectToExportTo) {
goog.exportPath_(publicPath, object, true, objectToExportTo);
};
goog.exportProperty = function(object, publicName, symbol) {
object[publicName] = symbol;
};
goog.inherits = function(childCtor, parentCtor) {
function tempCtor() {
}
tempCtor.prototype = parentCtor.prototype;
childCtor.superClass_ = parentCtor.prototype;
childCtor.prototype = new tempCtor();
childCtor.prototype.constructor = childCtor;
childCtor.base = function(me, methodName, var_args) {
var args = new Array(arguments.length - 2);
var i = 2;
for (; i < arguments.length; i++) {
args[i - 2] = arguments[i];
}
return parentCtor.prototype[methodName].apply(me, args);
};
};
goog.scope = function(fn) {
if (goog.isInModuleLoader_()) {
throw new Error("goog.scope is not supported within a module.");
}
fn.call(goog.global);
};
if (!COMPILED) {
goog.global["COMPILED"] = COMPILED;
}
goog.defineClass = function(superClass, def) {
var constructor = def.constructor;
var statics = def.statics;
if (!constructor || constructor == Object.prototype.constructor) {
constructor = function() {
throw new Error("cannot instantiate an interface (no constructor defined).");
};
}
var cls = goog.defineClass.createSealingConstructor_(constructor, superClass);
if (superClass) {
goog.inherits(cls, superClass);
}
delete def.constructor;
delete def.statics;
goog.defineClass.applyProperties_(cls.prototype, def);
if (statics != null) {
if (statics instanceof Function) {
statics(cls);
} else {
goog.defineClass.applyProperties_(cls, statics);
}
}
return cls;
};
goog.defineClass.ClassDescriptor;
goog.defineClass.SEAL_CLASS_INSTANCES = goog.define("goog.defineClass.SEAL_CLASS_INSTANCES", goog.DEBUG);
goog.defineClass.createSealingConstructor_ = function(ctr, superClass) {
if (!goog.defineClass.SEAL_CLASS_INSTANCES) {
return ctr;
}
var wrappedCtr = function() {
var instance = ctr.apply(this, arguments) || this;
instance[goog.UID_PROPERTY_] = instance[goog.UID_PROPERTY_];
return instance;
};
return wrappedCtr;
};
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"];
goog.defineClass.applyProperties_ = function(target, source) {
var key;
for (key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
var i = 0;
for (; i < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; i++) {
key = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[i];
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
};
goog.identity_ = function(s) {
return s;
};
goog.createTrustedTypesPolicy = function(name) {
var policy = null;
var policyFactory = goog.global.trustedTypes;
if (!policyFactory || !policyFactory.createPolicy) {
return policy;
}
try {
policy = policyFactory.createPolicy(name, {createHTML:goog.identity_, createScript:goog.identity_, createScriptURL:goog.identity_});
} catch (e) {
goog.logToConsole_(e.message);
}
return policy;
};
if (!COMPILED && goog.DEPENDENCIES_ENABLED) {
goog.isEdge_ = function() {
var userAgent = goog.global.navigator && goog.global.navigator.userAgent ? goog.global.navigator.userAgent : "";
var edgeRe = /Edge\/(\d+)(\.\d)*/i;
return !!userAgent.match(edgeRe);
};
goog.inHtmlDocument_ = function() {
var doc = goog.global.document;
return doc != null && "write" in doc;
};
goog.isDocumentLoading_ = function() {
var doc = goog.global.document;
return doc.attachEvent ? doc.readyState != "complete" : doc.readyState == "loading";
};
goog.findBasePath_ = function() {
if (goog.global.CLOSURE_BASE_PATH != undefined && typeof goog.global.CLOSURE_BASE_PATH === "string") {
goog.basePath = goog.global.CLOSURE_BASE_PATH;
return;
} else if (!goog.inHtmlDocument_()) {
return;
}
var doc = goog.global.document;
var currentScript = doc.currentScript;
if (currentScript) {
var scripts = [currentScript];
} else {
scripts = doc.getElementsByTagName("SCRIPT");
}
var i = scripts.length - 1;
for (; i >= 0; --i) {
var script = scripts[i];
var src = script.src;
var qmark = src.lastIndexOf("?");
var l = qmark == -1 ? src.length : qmark;
if (src.slice(l - 7, l) == "base.js") {
goog.basePath = src.slice(0, l - 7);
return;
}
}
};
goog.findBasePath_();
goog.protectScriptTag_ = function(str) {
return str.replace(/<\/(SCRIPT)/ig, "\\x3c/$1");
};
goog.DebugLoader_ = function() {
this.dependencies_ = {};
this.idToPath_ = {};
this.written_ = {};
this.loadingDeps_ = [];
this.depsToLoad_ = [];
this.paused_ = false;
this.factory_ = new goog.DependencyFactory();
this.deferredCallbacks_ = {};
this.deferredQueue_ = [];
};
goog.DebugLoader_.prototype.bootstrap = function(namespaces, callback) {
function resolve() {
if (cb) {
goog.global.setTimeout(cb, 0);
cb = null;
}
}
var cb = callback;
if (!namespaces.length) {
resolve();
return;
}
var deps = [];
var i = 0;
for (; i < namespaces.length; i++) {
var path = this.getPathFromDeps_(namespaces[i]);
if (!path) {
throw new Error("Unregonized namespace: " + namespaces[i]);
}
deps.push(this.dependencies_[path]);
}
var require = goog.require;
var loaded = 0;
i = 0;
for (; i < namespaces.length; i++) {
require(namespaces[i]);
deps[i].onLoad(function() {
if (++loaded == namespaces.length) {
resolve();
}
});
}
};
goog.DebugLoader_.prototype.loadClosureDeps = function() {
var relPath = "deps.js";
this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath + relPath), relPath, [], [], {}));
this.loadDeps_();
};
goog.DebugLoader_.prototype.requested = function(absPathOrId, opt_force) {
var path = this.getPathFromDeps_(absPathOrId);
if (path && (opt_force || this.areDepsLoaded_(this.dependencies_[path].requires))) {
var callback = this.deferredCallbacks_[path];
if (callback) {
delete this.deferredCallbacks_[path];
callback();
}
}
};
goog.DebugLoader_.prototype.setDependencyFactory = function(factory) {
this.factory_ = factory;
};
goog.DebugLoader_.prototype.load_ = function(namespace) {
if (!this.getPathFromDeps_(namespace)) {
var errorMessage = "goog.require could not find: " + namespace;
goog.logToConsole_(errorMessage);
} else {
var loader = this;
var deps = [];
var visit = function(namespace) {
var path = loader.getPathFromDeps_(namespace);
if (!path) {
throw new Error("Bad dependency path or symbol: " + namespace);
}
if (loader.written_[path]) {
return;
}
loader.written_[path] = true;
var dep = loader.dependencies_[path];
var i = 0;
for (; i < dep.requires.length; i++) {
if (!goog.isProvided_(dep.requires[i])) {
visit(dep.requires[i]);
}
}
deps.push(dep);
};
visit(namespace);
var wasLoading = !!this.depsToLoad_.length;
this.depsToLoad_ = this.depsToLoad_.concat(deps);
if (!this.paused_ && !wasLoading) {
this.loadDeps_();
}
}
};
goog.DebugLoader_.prototype.loadDeps_ = function() {
var loader = this;
var paused = this.paused_;
for (; this.depsToLoad_.length && !paused;) {
(function() {
var loadCallDone = false;
var dep = loader.depsToLoad_.shift();
var loaded = false;
loader.loading_(dep);
var controller = {pause:function() {
if (loadCallDone) {
throw new Error("Cannot call pause after the call to load.");
} else {
paused = true;
}
}, resume:function() {
if (loadCallDone) {
loader.resume_();
} else {
paused = false;
}
}, loaded:function() {
if (loaded) {
throw new Error("Double call to loaded.");
}
loaded = true;
loader.loaded_(dep);
}, pending:function() {
var pending = [];
var i = 0;
for (; i < loader.loadingDeps_.length; i++) {
pending.push(loader.loadingDeps_[i]);
}
return pending;
}, setModuleState:function(type) {
goog.moduleLoaderState_ = {type:type, moduleName:"", declareLegacyNamespace:false};
}, registerEs6ModuleExports:function(path, exports, opt_closureNamespace) {
if (opt_closureNamespace) {
goog.loadedModules_[opt_closureNamespace] = {exports:exports, type:goog.ModuleType.ES6, moduleId:opt_closureNamespace || ""};
}
}, registerGoogModuleExports:function(moduleId, exports) {
goog.loadedModules_[moduleId] = {exports:exports, type:goog.ModuleType.GOOG, moduleId:moduleId};
}, clearModuleState:function() {
goog.moduleLoaderState_ = null;
}, defer:function(callback) {
if (loadCallDone) {
throw new Error("Cannot register with defer after the call to load.");
}
loader.defer_(dep, callback);
}, areDepsLoaded:function() {
return loader.areDepsLoaded_(dep.requires);
}};
try {
dep.load(controller);
} finally {
loadCallDone = true;
}
})();
}
if (paused) {
this.pause_();
}
};
goog.DebugLoader_.prototype.pause_ = function() {
this.paused_ = true;
};
goog.DebugLoader_.prototype.resume_ = function() {
if (this.paused_) {
this.paused_ = false;
this.loadDeps_();
}
};
goog.DebugLoader_.prototype.loading_ = function(dep) {
this.loadingDeps_.push(dep);
};
goog.DebugLoader_.prototype.loaded_ = function(dep) {
var i = 0;
for (; i < this.loadingDeps_.length; i++) {
if (this.loadingDeps_[i] == dep) {
this.loadingDeps_.splice(i, 1);
break;
}
}
i = 0;
for (; i < this.deferredQueue_.length; i++) {
if (this.deferredQueue_[i] == dep.path) {
this.deferredQueue_.splice(i, 1);
break;
}
}
if (this.loadingDeps_.length == this.deferredQueue_.length && !this.depsToLoad_.length) {
for (; this.deferredQueue_.length;) {
this.requested(this.deferredQueue_.shift(), true);
}
}
dep.loaded();
};
goog.DebugLoader_.prototype.areDepsLoaded_ = function(pathsOrIds) {
var i = 0;
for (; i < pathsOrIds.length; i++) {
var path = this.getPathFromDeps_(pathsOrIds[i]);
if (!path || !(path in this.deferredCallbacks_) && !goog.isProvided_(pathsOrIds[i])) {
return false;
}
}
return true;
};
goog.DebugLoader_.prototype.getPathFromDeps_ = function(absPathOrId) {
if (absPathOrId in this.idToPath_) {
return this.idToPath_[absPathOrId];
} else if (absPathOrId in this.dependencies_) {
return absPathOrId;
} else {
return null;
}
};
goog.DebugLoader_.prototype.defer_ = function(dependency, callback) {
this.deferredCallbacks_[dependency.path] = callback;
this.deferredQueue_.push(dependency.path);
};
goog.LoadController = function() {
};
goog.LoadController.prototype.pause = function() {
};
goog.LoadController.prototype.resume = function() {
};
goog.LoadController.prototype.loaded = function() {
};
goog.LoadController.prototype.pending = function() {
};
goog.LoadController.prototype.registerEs6ModuleExports = function(path, exports, opt_closureNamespace) {
};
goog.LoadController.prototype.setModuleState = function(type) {
};
goog.LoadController.prototype.clearModuleState = function() {
};
goog.LoadController.prototype.defer = function(callback) {
};
goog.LoadController.prototype.areDepsLoaded = function() {
};
goog.Dependency = function(path, relativePath, provides, requires, loadFlags) {
this.path = path;
this.relativePath = relativePath;
this.provides = provides;
this.requires = requires;
this.loadFlags = loadFlags;
this.loaded_ = false;
this.loadCallbacks_ = [];
};
goog.Dependency.prototype.getPathName = function() {
var pathName = this.path;
var protocolIndex = pathName.indexOf("://");
if (protocolIndex >= 0) {
pathName = pathName.substring(protocolIndex + 3);
var slashIndex = pathName.indexOf("/");
if (slashIndex >= 0) {
pathName = pathName.substring(slashIndex + 1);
}
}
return pathName;
};
goog.Dependency.prototype.onLoad = function(callback) {
if (this.loaded_) {
callback();
} else {
this.loadCallbacks_.push(callback);
}
};
goog.Dependency.prototype.loaded = function() {
this.loaded_ = true;
var callbacks = this.loadCallbacks_;
this.loadCallbacks_ = [];
var i = 0;
for (; i < callbacks.length; i++) {
callbacks[i]();
}
};
goog.Dependency.defer_ = false;
goog.Dependency.callbackMap_ = {};
goog.Dependency.registerCallback_ = function(callback) {
var key = Math.random().toString(32);
goog.Dependency.callbackMap_[key] = callback;
return key;
};
goog.Dependency.unregisterCallback_ = function(key) {
delete goog.Dependency.callbackMap_[key];
};
goog.Dependency.callback_ = function(key, var_args) {
if (key in goog.Dependency.callbackMap_) {
var callback = goog.Dependency.callbackMap_[key];
var args = [];
var i = 1;
for (; i < arguments.length; i++) {
args.push(arguments[i]);
}
callback.apply(undefined, args);
} else {
var errorMessage = "Callback key " + key + " does not exist (was base.js loaded more than once?).";
throw Error(errorMessage);
}
};
goog.Dependency.prototype.load = function(controller) {
if (goog.global.CLOSURE_IMPORT_SCRIPT) {
if (goog.global.CLOSURE_IMPORT_SCRIPT(this.path)) {
controller.loaded();
} else {
controller.pause();
}
return;
}
if (!goog.inHtmlDocument_()) {
goog.logToConsole_("Cannot use default debug loader outside of HTML documents.");
if (this.relativePath == "deps.js") {
goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, " + "or setting CLOSURE_NO_DEPS to true.");
controller.loaded();
} else {
controller.pause();
}
return;
}
var doc = goog.global.document;
if (doc.readyState == "complete" && !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {
var isDeps = /\bdeps.js$/.test(this.path);
if (isDeps) {
controller.loaded();
return;
} else {
throw Error('Cannot write "' + this.path + '" after document load');
}
}
var nonce = goog.getScriptNonce_();
if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && goog.isDocumentLoading_()) {
var key;
var callback = function(script) {
if (script.readyState && script.readyState != "complete") {
script.onload = callback;
return;
}
goog.Dependency.unregisterCallback_(key);
controller.loaded();
};
key = goog.Dependency.registerCallback_(callback);
var defer = goog.Dependency.defer_ ? " defer" : "";
var nonceAttr = nonce ? ' nonce\x3d"' + nonce + '"' : "";
var script = '\x3cscript src\x3d"' + this.path + '"' + nonceAttr + defer + ' id\x3d"script-' + key + '"\x3e\x3c/script\x3e';
script = script + ("\x3cscript" + nonceAttr + "\x3e");
if (goog.Dependency.defer_) {
script = script + ("document.getElementById('script-" + key + "').onload \x3d function() {\n" + " goog.Dependency.callback_('" + key + "', this);\n" + "};\n");
} else {
script = script + ("goog.Dependency.callback_('" + key + "', document.getElementById('script-" + key + "'));");
}
script = script + "\x3c/script\x3e";
doc.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(script) : script);
} else {
var scriptEl = doc.createElement("script");
scriptEl.defer = goog.Dependency.defer_;
scriptEl.async = false;
if (nonce) {
scriptEl.nonce = nonce;
}
scriptEl.onload = function() {
scriptEl.onload = null;
controller.loaded();
};
scriptEl.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path) : this.path;
doc.head.appendChild(scriptEl);
}
};
goog.Es6ModuleDependency = function(path, relativePath, provides, requires, loadFlags) {
goog.Es6ModuleDependency.base(this, "constructor", path, relativePath, provides, requires, loadFlags);
};
goog.inherits(goog.Es6ModuleDependency, goog.Dependency);
goog.Es6ModuleDependency.prototype.load = function(controller) {
function write(src, contents) {
var nonceAttr = "";
var nonce = goog.getScriptNonce_();
if (nonce) {
nonceAttr = ' nonce\x3d"' + nonce + '"';
}
if (contents) {
var script = '\x3cscript type\x3d"module" crossorigin' + nonceAttr + "\x3e" + contents + "\x3c/" + "script\x3e";
doc.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(script) : script);
} else {
script = '\x3cscript type\x3d"module" crossorigin src\x3d"' + src + '"' + nonceAttr + "\x3e\x3c/" + "script\x3e";
doc.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(script) : script);
}
}
function append(src, contents) {
var scriptEl = doc.createElement("script");
scriptEl.defer = true;
scriptEl.async = false;
scriptEl.type = "module";
scriptEl.setAttribute("crossorigin", true);
var nonce = goog.getScriptNonce_();
if (nonce) {
scriptEl.nonce = nonce;
}
if (contents) {
scriptEl.text = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScript(contents) : contents;
} else {
scriptEl.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(src) : src;
}
doc.head.appendChild(scriptEl);
}
if (goog.global.CLOSURE_IMPORT_SCRIPT) {
if (goog.global.CLOSURE_IMPORT_SCRIPT(this.path)) {
controller.loaded();
} else {
controller.pause();
}
return;
}
if (!goog.inHtmlDocument_()) {
goog.logToConsole_("Cannot use default debug loader outside of HTML documents.");
controller.pause();
return;
}
var doc = goog.global.document;
var dep = this;
var create;
if (goog.isDocumentLoading_()) {
create = write;
goog.Dependency.defer_ = true;
} else {
create = append;
}
var beforeKey = goog.Dependency.registerCallback_(function() {
goog.Dependency.unregisterCallback_(beforeKey);
controller.setModuleState(goog.ModuleType.ES6);
});
create(undefined, 'goog.Dependency.callback_("' + beforeKey + '")');
create(this.path, undefined);
var registerKey = goog.Dependency.registerCallback_(function(exports) {
goog.Dependency.unregisterCallback_(registerKey);
controller.registerEs6ModuleExports(dep.path, exports, goog.moduleLoaderState_.moduleName);
});
create(undefined, 'import * as m from "' + this.path + '"; goog.Dependency.callback_("' + registerKey + '", m)');
var afterKey = goog.Dependency.registerCallback_(function() {
goog.Dependency.unregisterCallback_(afterKey);
controller.clearModuleState();
controller.loaded();
});
create(undefined, 'goog.Dependency.callback_("' + afterKey + '")');
};
goog.TransformedDependency = function(path, relativePath, provides, requires, loadFlags) {
goog.TransformedDependency.base(this, "constructor", path, relativePath, provides, requires, loadFlags);
this.contents_ = null;
this.lazyFetch_ = !goog.inHtmlDocument_() || !("noModule" in goog.global.document.createElement("script"));
};
goog.inherits(goog.TransformedDependency, goog.Dependency);
goog.TransformedDependency.prototype.load = function(controller) {
function fetch() {
dep.contents_ = goog.loadFileSync_(dep.path);
if (dep.contents_) {
dep.contents_ = dep.transform(dep.contents_);
if (dep.contents_) {
dep.contents_ += "\n//# sourceURL\x3d" + dep.path;
}
}
}
function load() {
if (dep.lazyFetch_) {
fetch();
}
if (!dep.contents_) {
return;
}
if (isEs6) {
controller.setModuleState(goog.ModuleType.ES6);
}
var namespace;
try {
var contents = dep.contents_;
dep.contents_ = null;
goog.globalEval(goog.CLOSURE_EVAL_PREFILTER_.createScript(contents));
if (isEs6) {
namespace = goog.moduleLoaderState_.moduleName;
}
} finally {
if (isEs6) {
controller.clearModuleState();
}
}
if (isEs6) {
goog.global["$jscomp"]["require"]["ensure"]([dep.getPathName()], function() {
controller.registerEs6ModuleExports(dep.path, goog.global["$jscomp"]["require"](dep.getPathName()), namespace);
});
}
controller.loaded();
}
function fetchInOwnScriptThenLoad() {
var doc = goog.global.document;
var key = goog.Dependency.registerCallback_(function() {
goog.Dependency.unregisterCallback_(key);
load();
});
var nonce = goog.getScriptNonce_();
var nonceAttr = nonce ? ' nonce\x3d"' + nonce + '"' : "";
var script = "\x3cscript" + nonceAttr + "\x3e" + goog.protectScriptTag_('goog.Dependency.callback_("' + key + '");') + "\x3c/" + "script\x3e";
doc.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(script) : script);
}
var dep = this;
if (goog.global.CLOSURE_IMPORT_SCRIPT) {
fetch();
if (this.contents_ && goog.global.CLOSURE_IMPORT_SCRIPT("", this.contents_)) {
this.contents_ = null;
controller.loaded();
} else {
controller.pause();
}
return;
}
var isEs6 = this.loadFlags["module"] == goog.ModuleType.ES6;
if (!this.lazyFetch_) {
fetch();
}
var anythingElsePending = controller.pending().length > 1;
var needsAsyncLoading = goog.Dependency.defer_ && (anythingElsePending || goog.isDocumentLoading_());
if (needsAsyncLoading) {
controller.defer(function() {
load();
});
return;
}
var doc = goog.global.document;
var isInternetExplorerOrEdge = goog.inHtmlDocument_() && ("ActiveXObject" in goog.global || goog.isEdge_());
if (isEs6 && goog.inHtmlDocument_() && goog.isDocumentLoading_() && !isInternetExplorerOrEdge) {
goog.Dependency.defer_ = true;
controller.pause();
var oldCallback = doc.onreadystatechange;
doc.onreadystatechange = function() {
if (doc.readyState == "interactive") {
doc.onreadystatechange = oldCallback;
load();
controller.resume();
}
if (typeof oldCallback === "function") {
oldCallback.apply(undefined, arguments);
}
};
} else {
if (!goog.inHtmlDocument_() || !goog.isDocumentLoading_()) {
load();
} else {
fetchInOwnScriptThenLoad();
}
}
};
goog.TransformedDependency.prototype.transform = function(contents) {
};
goog.PreTranspiledEs6ModuleDependency = function(path, relativePath, provides, requires, loadFlags) {
goog.PreTranspiledEs6ModuleDependency.base(this, "constructor", path, relativePath, provides, requires, loadFlags);
};
goog.inherits(goog.PreTranspiledEs6ModuleDependency, goog.TransformedDependency);
goog.PreTranspiledEs6ModuleDependency.prototype.transform = function(contents) {
return contents;
};
goog.GoogModuleDependency = function(path, relativePath, provides, requires, loadFlags) {
goog.GoogModuleDependency.base(this, "constructor", path, relativePath, provides, requires, loadFlags);
};
goog.inherits(goog.GoogModuleDependency, goog.TransformedDependency);
goog.GoogModuleDependency.prototype.transform = function(contents) {
if (!goog.LOAD_MODULE_USING_EVAL || goog.global.JSON === undefined) {
return "" + "goog.loadModule(function(exports) {" + '"use strict";' + contents + "\n" + ";return exports" + "});" + "\n//# sourceURL\x3d" + this.path + "\n";
} else {
return "" + "goog.loadModule(" + goog.global.JSON.stringify(contents + "\n//# sourceURL\x3d" + this.path + "\n") + ");";
}
};
goog.DebugLoader_.prototype.addDependency = function(relPath, provides, requires, opt_loadFlags) {
provides = provides || [];
relPath = relPath.replace(/\\/g, "/");
var path = goog.normalizePath_(goog.basePath + relPath);
if (!opt_loadFlags || typeof opt_loadFlags === "boolean") {
opt_loadFlags = opt_loadFlags ? {"module":goog.ModuleType.GOOG} : {};
}
var dep = this.factory_.createDependency(path, relPath, provides, requires, opt_loadFlags);
this.dependencies_[path] = dep;
var i = 0;
for (; i < provides.length; i++) {
this.idToPath_[provides[i]] = path;
}
this.idToPath_[relPath] = path;
};
goog.DependencyFactory = function() {
};
goog.DependencyFactory.prototype.createDependency = function(path, relativePath, provides, requires, loadFlags) {
if (loadFlags["module"] == goog.ModuleType.GOOG) {
return new goog.GoogModuleDependency(path, relativePath, provides, requires, loadFlags);
} else {
if (loadFlags["module"] == goog.ModuleType.ES6) {
if (goog.ASSUME_ES_MODULES_TRANSPILED) {
return new goog.PreTranspiledEs6ModuleDependency(path, relativePath, provides, requires, loadFlags);
} else {
return new goog.Es6ModuleDependency(path, relativePath, provides, requires, loadFlags);
}
} else {
return new goog.Dependency(path, relativePath, provides, requires, loadFlags);
}
}
};
goog.debugLoader_ = new goog.DebugLoader_();
goog.loadClosureDeps = function() {
goog.debugLoader_.loadClosureDeps();
};
goog.setDependencyFactory = function(factory) {
goog.debugLoader_.setDependencyFactory(factory);
};
goog.TRUSTED_TYPES_POLICY_ = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#base") : null;
if (!goog.global.CLOSURE_NO_DEPS) {
goog.debugLoader_.loadClosureDeps();
}
goog.bootstrap = function(namespaces, callback) {
goog.debugLoader_.bootstrap(namespaces, callback);
};
}
if (!COMPILED) {
var isChrome87 = false;
try {
isChrome87 = eval(goog.global.trustedTypes.emptyScript) !== goog.global.trustedTypes.emptyScript;
} catch (err) {
}
goog.CLOSURE_EVAL_PREFILTER_ = goog.global.trustedTypes && isChrome87 && goog.createTrustedTypesPolicy("goog#base#devonly#eval") || {createScript:goog.identity_};
}
var SHADOW_ENV = function() {
var env = {};
var loadedFiles = env.loadedFiles = {};
var doc = goog.global.document;
if (!doc) {
throw new Error("browser bootstrap used in incorrect target");
}
var scriptBase = goog.global.window.location.origin;
if (CLOSURE_BASE_PATH[0] == '/') {
scriptBase = scriptBase + CLOSURE_BASE_PATH;
} else {
// FIXME: need to handle relative paths
scriptBase = CLOSURE_BASE_PATH;
}
env.scriptBase = scriptBase;
var wentAsync = false;
var canDocumentWrite = function() {
return !wentAsync && doc.readyState == "loading";
};
var reportError = function(path, e) {
// chrome displays e.stack in a usable way while firefox is just a garbled mess
if (e.constructor.toString().indexOf("function cljs$core$ExceptionInfo") === 0 && navigator.appVersion.indexOf("Chrome") != -1) {
console.error(e);
console.error(e.stack);
} else {
console.error(e);
}
console.warn("The above error occurred when loading \"" + path + "\". Any additional errors after that one may be the result of that failure. In general your code cannot be trusted to execute properly after such a failure. Make sure to fix the first one before looking at others.");
};
var asyncLoad = (function() {
var loadOrder = [];
var loadState = {};
function loadPending() {
for (var i = 0, len = loadOrder.length; i < len; i++) {
var uri = loadOrder[i];
var state = loadState[uri];
if (typeof state === "string") {
loadState[uri] = true;
if (state != "") {
var code = state + "\n//# sourceURL=" + uri + "\n";
try {
goog.globalEval(code);
} catch (e) {
reportError(uri, e);
}
}
} else if (state === true) {
continue;
} else {
break;
}
}
}
// ie11 doesn't have fetch, use xhr instead
// FIXME: not sure if fetch provides any benefit over xhr
if (typeof window.fetch === "undefined") {
return function asyncXhr(uri) {
loadOrder.push(uri);
loadState[uri] = false;
var req = new XMLHttpRequest();
req.onload = function(e) {
loadState[uri] = req.responseText;
loadPending();
};
req.open("GET", uri);
req.send();
}
} else {
function responseText(response) {
// FIXME: check status
return response.text();
}
function evalFetch(uri) {
return function(code) {
loadState[uri] = code;
loadPending();
};
}
return function asyncFetch(uri) {
if (loadState[uri] == undefined) {
loadState[uri] = false;
loadOrder.push(uri);
fetch(uri)
.then(responseText)
.then(evalFetch(uri));
}
};
}
})();
env.load = function(opts, paths) {
var docWrite = opts.forceAsync ? false : canDocumentWrite();
paths.forEach(function(path) {
if (!loadedFiles[path]) {
loadedFiles[path] = true;
var uri = scriptBase + path;
if (docWrite) {
document.write(
"<script src='" + uri + "' type='text/javascript'></script>"
);
} else {
// once async always async
wentAsync = true;
asyncLoad(uri);
}
}
});
};
env.isLoaded = function(path) {
return loadedFiles[path] || false; // false is better than undefined
};
env.setLoaded = function(path) {
loadedFiles[path] = true;
};
env.evalLoad = function(path, sourceMap, code) {
loadedFiles[path] = true;
code += ("\n//# sourceURL=" + scriptBase + path);
if (sourceMap) {
code += ("\n//# sourceMappingURL=" + path + ".map");
}
try {
goog.globalEval(code);
} catch (e) {
reportError(path, e);
}
}
return env;
}.call(this);
goog.global["$CLJS"] = goog.global;
SHADOW_ENV.evalLoad("goog.debug.error.js", true, "goog.loadModule(function(exports) {\n function DebugError(msg \x3d undefined, cause \x3d undefined) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, DebugError);\n } else {\n const stack \x3d (new Error()).stack;\n if (stack) {\n this.stack \x3d stack;\n }\n }\n if (msg) {\n this.message \x3d String(msg);\n }\n if (cause !\x3d\x3d undefined) {\n this.cause \x3d cause;\n }\n this.reportErrorToServer \x3d true;\n }\n \x22use strict\x22;\n goog.module(\x22goog.debug.Error\x22);\n goog.module.declareLegacyNamespace();\n goog.inherits(DebugError, Error);\n DebugError.prototype.name \x3d \x22CustomError\x22;\n exports \x3d DebugError;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.dom.nodetype.js", true, "goog.provide(\x22goog.dom.NodeType\x22);\ngoog.dom.NodeType \x3d {ELEMENT:1, ATTRIBUTE:2, TEXT:3, CDATA_SECTION:4, ENTITY_REFERENCE:5, ENTITY:6, PROCESSING_INSTRUCTION:7, COMMENT:8, DOCUMENT:9, DOCUMENT_TYPE:10, DOCUMENT_FRAGMENT:11, NOTATION:12};\n");
SHADOW_ENV.evalLoad("goog.asserts.asserts.js", true, "goog.loadModule(function(exports) {\n function AssertionError(messagePattern, messageArgs) {\n DebugError.call(this, subs(messagePattern, messageArgs));\n this.messagePattern \x3d messagePattern;\n }\n function subs(pattern, subs) {\n const splitParts \x3d pattern.split(\x22%s\x22);\n let returnString \x3d \x22\x22;\n const subLast \x3d splitParts.length - 1;\n for (let i \x3d 0; i \x3c subLast; i++) {\n const sub \x3d i \x3c subs.length ? subs[i] : \x22%s\x22;\n returnString \x3d returnString + (splitParts[i] + sub);\n }\n return returnString + splitParts[subLast];\n }\n function doAssertFailure(defaultMessage, defaultArgs, givenMessage, givenArgs) {\n let message \x3d \x22Assertion failed\x22;\n let args;\n if (givenMessage) {\n message \x3d message + (\x22: \x22 + givenMessage);\n args \x3d givenArgs;\n } else if (defaultMessage) {\n message \x3d message + (\x22: \x22 + defaultMessage);\n args \x3d defaultArgs;\n }\n const e \x3d new AssertionError(\x22\x22 + message, args || []);\n errorHandler_(e);\n }\n function getType(value) {\n if (value instanceof Function) {\n return value.displayName || value.name || \x22unknown type name\x22;\n } else if (value instanceof Object) {\n return value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value);\n } else {\n return value \x3d\x3d\x3d null ? \x22null\x22 : typeof value;\n }\n }\n \x22use strict\x22;\n goog.module(\x22goog.asserts\x22);\n goog.module.declareLegacyNamespace();\n const DebugError \x3d goog.require(\x22goog.debug.Error\x22);\n const NodeType \x3d goog.require(\x22goog.dom.NodeType\x22);\n exports.ENABLE_ASSERTS \x3d goog.define(\x22goog.asserts.ENABLE_ASSERTS\x22, goog.DEBUG);\n goog.inherits(AssertionError, DebugError);\n exports.AssertionError \x3d AssertionError;\n AssertionError.prototype.name \x3d \x22AssertionError\x22;\n exports.DEFAULT_ERROR_HANDLER \x3d function(e) {\n throw e;\n };\n let errorHandler_ \x3d exports.DEFAULT_ERROR_HANDLER;\n exports.setErrorHandler \x3d function(errorHandler) {\n if (exports.ENABLE_ASSERTS) {\n errorHandler_ \x3d errorHandler;\n }\n };\n exports.assert \x3d function(condition, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 !condition) {\n doAssertFailure(\x22\x22, null, opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return condition;\n };\n exports.assertExists \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 value \x3d\x3d null) {\n doAssertFailure(\x22Expected to exist: %s.\x22, [value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.fail \x3d function(opt_message, var_args) {\n if (exports.ENABLE_ASSERTS) {\n errorHandler_(new AssertionError(\x22Failure\x22 + (opt_message ? \x22: \x22 + opt_message : \x22\x22), Array.prototype.slice.call(arguments, 1)));\n }\n };\n exports.assertNumber \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 typeof value !\x3d\x3d \x22number\x22) {\n doAssertFailure(\x22Expected number but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertString \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 typeof value !\x3d\x3d \x22string\x22) {\n doAssertFailure(\x22Expected string but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertFunction \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 typeof value !\x3d\x3d \x22function\x22) {\n doAssertFailure(\x22Expected function but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertObject \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 !goog.isObject(value)) {\n doAssertFailure(\x22Expected object but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertArray \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 !Array.isArray(value)) {\n doAssertFailure(\x22Expected array but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertBoolean \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 typeof value !\x3d\x3d \x22boolean\x22) {\n doAssertFailure(\x22Expected boolean but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertElement \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 (!goog.isObject(value) || value.nodeType !\x3d NodeType.ELEMENT)) {\n doAssertFailure(\x22Expected Element but got %s: %s.\x22, [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n exports.assertInstanceof \x3d function(value, type, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 !(value instanceof type)) {\n doAssertFailure(\x22Expected instanceof %s but got %s.\x22, [getType(type), getType(value)], opt_message, Array.prototype.slice.call(arguments, 3));\n }\n return value;\n };\n exports.assertFinite \x3d function(value, opt_message, var_args) {\n if (exports.ENABLE_ASSERTS \x26\x26 (typeof value !\x3d \x22number\x22 || !isFinite(value))) {\n doAssertFailure(\x22Expected %s to be a finite number but it is not.\x22, [value], opt_message, Array.prototype.slice.call(arguments, 2));\n }\n return value;\n };\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.reflect.reflect.js", true, "goog.provide(\x22goog.reflect\x22);\ngoog.reflect.object \x3d function(type, object) {\n return object;\n};\ngoog.reflect.objectProperty \x3d function(prop, object) {\n return prop;\n};\ngoog.reflect.sinkValue \x3d function(x) {\n goog.reflect.sinkValue[\x22 \x22](x);\n return x;\n};\ngoog.reflect.sinkValue[\x22 \x22] \x3d function() {\n};\ngoog.reflect.canAccessProperty \x3d function(obj, prop) {\n try {\n goog.reflect.sinkValue(obj[prop]);\n return true;\n } catch (e) {\n }\n return false;\n};\ngoog.reflect.cache \x3d function(cacheObj, key, valueFn, opt_keyFn) {\n const storedKey \x3d opt_keyFn ? opt_keyFn(key) : key;\n if (Object.prototype.hasOwnProperty.call(cacheObj, storedKey)) {\n return cacheObj[storedKey];\n }\n return cacheObj[storedKey] \x3d valueFn(key);\n};\n");
SHADOW_ENV.evalLoad("goog.math.long.js", true, "goog.loadModule(function(exports) {\n function getCachedIntValue_(value) {\n return reflect.cache(IntCache_, value, function(val) {\n return new Long(val, val \x3c 0 ? -1 : 0);\n });\n }\n \x22use strict\x22;\n goog.module(\x22goog.math.Long\x22);\n goog.module.declareLegacyNamespace();\n const asserts \x3d goog.require(\x22goog.asserts\x22);\n const reflect \x3d goog.require(\x22goog.reflect\x22);\n class Long {\n constructor(low, high) {\n this.low_ \x3d low | 0;\n this.high_ \x3d high | 0;\n }\n toInt() {\n return this.low_;\n }\n toNumber() {\n return this.high_ * TWO_PWR_32_DBL_ + this.getLowBitsUnsigned();\n }\n isSafeInteger() {\n var top11Bits \x3d this.high_ \x3e\x3e 21;\n return top11Bits \x3d\x3d 0 || top11Bits \x3d\x3d -1 \x26\x26 !(this.low_ \x3d\x3d 0 \x26\x26 this.high_ \x3d\x3d (4292870144 | 0));\n }\n toString(opt_radix) {\n var radix \x3d opt_radix || 10;\n if (radix \x3c 2 || 36 \x3c radix) {\n throw new Error(\x22radix out of range: \x22 + radix);\n }\n if (this.isSafeInteger()) {\n var asNumber \x3d this.toNumber();\n return radix \x3d\x3d 10 ? \x22\x22 + asNumber : asNumber.toString(radix);\n }\n var safeDigits \x3d 14 - (radix \x3e\x3e 2);\n var radixPowSafeDigits \x3d Math.pow(radix, safeDigits);\n var radixToPower \x3d Long.fromBits(radixPowSafeDigits, radixPowSafeDigits / TWO_PWR_32_DBL_);\n var remDiv \x3d this.div(radixToPower);\n var val \x3d Math.abs(this.subtract(remDiv.multiply(radixToPower)).toNumber());\n var digits \x3d radix \x3d\x3d 10 ? \x22\x22 + val : val.toString(radix);\n if (digits.length \x3c safeDigits) {\n digits \x3d \x220000000000000\x22.slice(digits.length - safeDigits) + digits;\n }\n val \x3d remDiv.toNumber();\n return (radix \x3d\x3d 10 ? val : val.toString(radix)) + digits;\n }\n toUnsignedString(opt_radix) {\n if (this.high_ \x3e\x3d 0) {\n return this.toString(opt_radix);\n }\n var radix \x3d opt_radix || 10;\n if (radix \x3c 2 || 36 \x3c radix) {\n throw new Error(\x22radix out of range: \x22 + radix);\n }\n var longRadix \x3d Long.fromInt(radix);\n var quotient \x3d this.shiftRightUnsigned(1).div(longRadix).shiftLeft(1);\n var remainder \x3d this.subtract(quotient.multiply(longRadix));\n if (remainder.greaterThanOrEqual(longRadix)) {\n quotient \x3d quotient.add(Long.getOne());\n remainder \x3d this.subtract(quotient.multiply(longRadix));\n }\n return quotient.toString(radix) + remainder.toString(radix);\n }\n getHighBits() {\n return this.high_;\n }\n getLowBits() {\n return this.low_;\n }\n getLowBitsUnsigned() {\n return this.low_ \x3e\x3e\x3e 0;\n }\n getNumBitsAbs() {\n if (this.isNegative()) {\n if (this.equals(Long.getMinValue())) {\n return 64;\n } else {\n return this.negate().getNumBitsAbs();\n }\n } else {\n var val \x3d this.high_ !\x3d 0 ? this.high_ : this.low_;\n var bit \x3d 31;\n for (; bit \x3e 0; bit--) {\n if ((val \x26 1 \x3c\x3c bit) !\x3d 0) {\n break;\n }\n }\n return this.high_ !\x3d 0 ? bit + 33 : bit + 1;\n }\n }\n isZero() {\n return this.low_ \x3d\x3d 0 \x26\x26 this.high_ \x3d\x3d 0;\n }\n isNegative() {\n return this.high_ \x3c 0;\n }\n isOdd() {\n return (this.low_ \x26 1) \x3d\x3d 1;\n }\n hashCode() {\n return this.getLowBits() ^ this.getHighBits();\n }\n equals(other) {\n return this.low_ \x3d\x3d other.low_ \x26\x26 this.high_ \x3d\x3d other.high_;\n }\n notEquals(other) {\n return !this.equals(other);\n }\n lessThan(other) {\n return this.compare(other) \x3c 0;\n }\n lessThanOrEqual(other) {\n return this.compare(other) \x3c\x3d 0;\n }\n greaterThan(other) {\n return this.compare(other) \x3e 0;\n }\n greaterThanOrEqual(other) {\n return this.compare(other) \x3e\x3d 0;\n }\n compare(other) {\n if (this.high_ \x3d\x3d other.high_) {\n if (this.low_ \x3d\x3d other.low_) {\n return 0;\n }\n return this.getLowBitsUnsigned() \x3e other.getLowBitsUnsigned() ? 1 : -1;\n }\n return this.high_ \x3e other.high_ ? 1 : -1;\n }\n negate() {\n var negLow \x3d ~this.low_ + 1 | 0;\n var overflowFromLow \x3d !negLow;\n var negHigh \x3d ~this.high_ + overflowFromLow | 0;\n return Long.fromBits(negLow, negHigh);\n }\n add(other) {\n var a48 \x3d this.high_ \x3e\x3e\x3e 16;\n var a32 \x3d this.high_ \x26 65535;\n var a16 \x3d this.low_ \x3e\x3e\x3e 16;\n var a00 \x3d this.low_ \x26 65535;\n var b48 \x3d other.high_ \x3e\x3e\x3e 16;\n var b32 \x3d other.high_ \x26 65535;\n var b16 \x3d other.low_ \x3e\x3e\x3e 16;\n var b00 \x3d other.low_ \x26 65535;\n var c48 \x3d 0;\n var c32 \x3d 0;\n var c16 \x3d 0;\n var c00 \x3d 0;\n c00 \x3d c00 + (a00 + b00);\n c16 \x3d c16 + (c00 \x3e\x3e\x3e 16);\n c00 \x3d c00 \x26 65535;\n c16 \x3d c16 + (a16 + b16);\n c32 \x3d c32 + (c16 \x3e\x3e\x3e 16);\n c16 \x3d c16 \x26 65535;\n c32 \x3d c32 + (a32 + b32);\n c48 \x3d c48 + (c32 \x3e\x3e\x3e 16);\n c32 \x3d c32 \x26 65535;\n c48 \x3d c48 + (a48 + b48);\n c48 \x3d c48 \x26 65535;\n return Long.fromBits(c16 \x3c\x3c 16 | c00, c48 \x3c\x3c 16 | c32);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(other) {\n if (this.isZero()) {\n return this;\n }\n if (other.isZero()) {\n return other;\n }\n var a48 \x3d this.high_ \x3e\x3e\x3e 16;\n var a32 \x3d this.high_ \x26 65535;\n var a16 \x3d this.low_ \x3e\x3e\x3e 16;\n var a00 \x3d this.low_ \x26 65535;\n var b48 \x3d other.high_ \x3e\x3e\x3e 16;\n var b32 \x3d other.high_ \x26 65535;\n var b16 \x3d other.low_ \x3e\x3e\x3e 16;\n var b00 \x3d other.low_ \x26 65535;\n var c48 \x3d 0;\n var c32 \x3d 0;\n var c16 \x3d 0;\n var c00 \x3d 0;\n c00 \x3d c00 + a00 * b00;\n c16 \x3d c16 + (c00 \x3e\x3e\x3e 16);\n c00 \x3d c00 \x26 65535;\n c16 \x3d c16 + a16 * b00;\n c32 \x3d c32 + (c16 \x3e\x3e\x3e 16);\n c16 \x3d c16 \x26 65535;\n c16 \x3d c16 + a00 * b16;\n c32 \x3d c32 + (c16 \x3e\x3e\x3e 16);\n c16 \x3d c16 \x26 65535;\n c32 \x3d c32 + a32 * b00;\n c48 \x3d c48 + (c32 \x3e\x3e\x3e 16);\n c32 \x3d c32 \x26 65535;\n c32 \x3d c32 + a16 * b16;\n c48 \x3d c48 + (c32 \x3e\x3e\x3e 16);\n c32 \x3d c32 \x26 65535;\n c32 \x3d c32 + a00 * b32;\n c48 \x3d c48 + (c32 \x3e\x3e\x3e 16);\n c32 \x3d c32 \x26 65535;\n c48 \x3d c48 + (a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48);\n c48 \x3d c48 \x26 65535;\n return Long.fromBits(c16 \x3c\x3c 16 | c00, c48 \x3c\x3c 16 | c32);\n }\n div(other) {\n if (other.isZero()) {\n throw new Error(\x22division by zero\x22);\n }\n if (this.isNegative()) {\n if (this.equals(Long.getMinValue())) {\n if (other.equals(Long.getOne()) || other.equals(Long.getNegOne())) {\n return Long.getMinValue();\n }\n if (other.equals(Long.getMinValue())) {\n return Long.getOne();\n }\n var halfThis \x3d this.shiftRight(1);\n var approx \x3d halfThis.div(other).shiftLeft(1);\n if (approx.equals(Long.getZero())) {\n return other.isNegative() ? Long.getOne() : Long.getNegOne();\n }\n var rem \x3d this.subtract(other.multiply(approx));\n var result \x3d approx.add(rem.div(other));\n return result;\n }\n if (other.isNegative()) {\n return this.negate().div(other.negate());\n }\n return this.negate().div(other).negate();\n }\n if (this.isZero()) {\n return Long.getZero();\n }\n if (other.isNegative()) {\n if (other.equals(Long.getMinValue())) {\n return Long.getZero();\n }\n return this.div(other.negate()).negate();\n }\n var res \x3d Long.getZero();\n rem \x3d this;\n for (; rem.greaterThanOrEqual(other);) {\n approx \x3d Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));\n var log2 \x3d Math.ceil(Math.log(approx) / Math.LN2);\n var delta \x3d log2 \x3c\x3d 48 ? 1 : Math.pow(2, log2 - 48);\n var approxRes \x3d Long.fromNumber(approx);\n var approxRem \x3d approxRes.multiply(other);\n for (; approxRem.isNegative() || approxRem.greaterThan(rem);) {\n approx \x3d approx - delta;\n approxRes \x3d Long.fromNumber(approx);\n approxRem \x3d approxRes.multiply(other);\n }\n if (approxRes.isZero()) {\n approxRes \x3d Long.getOne();\n }\n res \x3d res.add(approxRes);\n rem \x3d rem.subtract(approxRem);\n }\n return res;\n }\n modulo(other) {\n return this.subtract(this.div(other).multiply(other));\n }\n not() {\n return Long.fromBits(~this.low_, ~this.high_);\n }\n and(other) {\n return Long.fromBits(this.low_ \x26 other.low_, this.high_ \x26 other.high_);\n }\n or(other) {\n return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_);\n }\n xor(other) {\n return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_);\n }\n shiftLeft(numBits) {\n numBits \x3d numBits \x26 63;\n if (numBits \x3d\x3d 0) {\n return this;\n } else {\n var low \x3d this.low_;\n if (numBits \x3c 32) {\n var high \x3d this.high_;\n return Long.fromBits(low \x3c\x3c numBits, high \x3c\x3c numBits | low \x3e\x3e\x3e 32 - numBits);\n } else {\n return Long.fromBits(0, low \x3c\x3c numBits - 32);\n }\n }\n }\n shiftRight(numBits) {\n numBits \x3d numBits \x26 63;\n if (numBits \x3d\x3d 0) {\n return this;\n } else {\n var high \x3d this.high_;\n if (numBits \x3c 32) {\n var low \x3d this.low_;\n return Long.fromBits(low \x3e\x3e\x3e numBits | high \x3c\x3c 32 - numBits, high \x3e\x3e numBits);\n } else {\n return Long.fromBits(high \x3e\x3e numBits - 32, high \x3e\x3d 0 ? 0 : -1);\n }\n }\n }\n shiftRightUnsigned(numBits) {\n numBits \x3d numBits \x26 63;\n if (numBits \x3d\x3d 0) {\n return this;\n } else {\n var high \x3d this.high_;\n if (numBits \x3c 32) {\n var low \x3d this.low_;\n return Long.fromBits(low \x3e\x3e\x3e numBits | high \x3c\x3c 32 - numBits, high \x3e\x3e\x3e numBits);\n } else if (numBits \x3d\x3d 32) {\n return Long.fromBits(high, 0);\n } else {\n return Long.fromBits(high \x3e\x3e\x3e numBits - 32, 0);\n }\n }\n }\n static fromInt(value) {\n var intValue \x3d value | 0;\n asserts.assert(value \x3d\x3d\x3d intValue, \x22value should be a 32-bit integer\x22);\n if (-128 \x3c\x3d intValue \x26\x26 intValue \x3c 128) {\n return getCachedIntValue_(intValue);\n } else {\n return new Long(intValue, intValue \x3c 0 ? -1 : 0);\n }\n }\n static fromNumber(value) {\n if (value \x3e 0) {\n if (value \x3e\x3d TWO_PWR_63_DBL_) {\n return Long.getMaxValue();\n }\n return new Long(value, value / TWO_PWR_32_DBL_);\n } else if (value \x3c 0) {\n if (value \x3c\x3d -TWO_PWR_63_DBL_) {\n return Long.getMinValue();\n }\n return (new Long(-value, -value / TWO_PWR_32_DBL_)).negate();\n } else {\n return Long.getZero();\n }\n }\n static fromBits(lowBits, highBits) {\n return new Long(lowBits, highBits);\n }\n static fromString(str, opt_radix) {\n if (str.charAt(0) \x3d\x3d \x22-\x22) {\n return Long.fromString(str.substring(1), opt_radix).negate();\n }\n var numberValue \x3d parseInt(str, opt_radix || 10);\n if (numberValue \x3c\x3d MAX_SAFE_INTEGER_) {\n return new Long(numberValue % TWO_PWR_32_DBL_ | 0, numberValue / TWO_PWR_32_DBL_ | 0);\n }\n if (str.length \x3d\x3d 0) {\n throw new Error(\x22number format error: empty string\x22);\n }\n if (str.indexOf(\x22-\x22) \x3e\x3d 0) {\n throw new Error(\x27number format error: interior \x22-\x22 character: \x27 + str);\n }\n var radix \x3d opt_radix || 10;\n if (radix \x3c 2 || 36 \x3c radix) {\n throw new Error(\x22radix out of range: \x22 + radix);\n }\n var radixToPower \x3d Long.fromNumber(Math.pow(radix, 8));\n var result \x3d Long.getZero();\n var i \x3d 0;\n for (; i \x3c str.length; i \x3d i + 8) {\n var size \x3d Math.min(8, str.length - i);\n var value \x3d parseInt(str.substring(i, i + size), radix);\n if (size \x3c 8) {\n var power \x3d Long.fromNumber(Math.pow(radix, size));\n result \x3d result.multiply(power).add(Long.fromNumber(value));\n } else {\n result \x3d result.multiply(radixToPower);\n result \x3d result.add(Long.fromNumber(value));\n }\n }\n return result;\n }\n static isStringInRange(str, opt_radix) {\n var radix \x3d opt_radix || 10;\n if (radix \x3c 2 || 36 \x3c radix) {\n throw new Error(\x22radix out of range: \x22 + radix);\n }\n var extremeValue \x3d str.charAt(0) \x3d\x3d \x22-\x22 ? MIN_VALUE_FOR_RADIX_[radix] : MAX_VALUE_FOR_RADIX_[radix];\n if (str.length \x3c extremeValue.length) {\n return true;\n } else if (str.length \x3d\x3d extremeValue.length \x26\x26 str \x3c\x3d extremeValue) {\n return true;\n } else {\n return false;\n }\n }\n static getZero() {\n return ZERO_;\n }\n static getOne() {\n return ONE_;\n }\n static getNegOne() {\n return NEG_ONE_;\n }\n static getMaxValue() {\n return MAX_VALUE_;\n }\n static getMinValue() {\n return MIN_VALUE_;\n }\n static getTwoPwr24() {\n return TWO_PWR_24_;\n }\n }\n exports \x3d Long;\n const IntCache_ \x3d {};\n const MAX_VALUE_FOR_RADIX_ \x3d [\x22\x22, \x22\x22, \x22111111111111111111111111111111111111111111111111111111111111111\x22, \x222021110011022210012102010021220101220221\x22, \x2213333333333333333333333333333333\x22, \x221104332401304422434310311212\x22, \x221540241003031030222122211\x22, \x2222341010611245052052300\x22, \x22777777777777777777777\x22, \x2267404283172107811827\x22, \x229223372036854775807\x22, \x221728002635214590697\x22, \x2241a792678515120367\x22, \x2210b269549075433c37\x22, \x224340724c6c71dc7a7\x22, \x22160e2ad3246366807\x22, \x227fffffffffffffff\x22, \x2233d3d8307b214008\x22, \x2216agh595df825fa7\x22, \n \x22ba643dci0ffeehh\x22, \x225cbfjia3fh26ja7\x22, \x222heiciiie82dh97\x22, \x221adaibb21dckfa7\x22, \x22i6k448cf4192c2\x22, \x22acd772jnc9l0l7\x22, \x2264ie1focnn5g77\x22, \x223igoecjbmca687\x22, \x2227c48l5b37oaop\x22, \x221bk39f3ah3dmq7\x22, \x22q1se8f0m04isb\x22, \x22hajppbc1fc207\x22, \x22bm03i95hia437\x22, \x227vvvvvvvvvvvv\x22, \x225hg4ck9jd4u37\x22, \x223tdtk1v8j6tpp\x22, \x222pijmikexrxp7\x22, \x221y2p0ij32e8e7\x22];\n const MIN_VALUE_FOR_RADIX_ \x3d [\x22\x22, \x22\x22, \x22-1000000000000000000000000000000000000000000000000000000000000000\x22, \x22-2021110011022210012102010021220101220222\x22, \x22-20000000000000000000000000000000\x22, \x22-1104332401304422434310311213\x22, \x22-1540241003031030222122212\x22, \x22-22341010611245052052301\x22, \x22-1000000000000000000000\x22, \x22-67404283172107811828\x22, \x22-9223372036854775808\x22, \x22-1728002635214590698\x22, \x22-41a792678515120368\x22, \x22-10b269549075433c38\x22, \x22-4340724c6c71dc7a8\x22, \x22-160e2ad3246366808\x22, \x22-8000000000000000\x22, \x22-33d3d8307b214009\x22, \n \x22-16agh595df825fa8\x22, \x22-ba643dci0ffeehi\x22, \x22-5cbfjia3fh26ja8\x22, \x22-2heiciiie82dh98\x22, \x22-1adaibb21dckfa8\x22, \x22-i6k448cf4192c3\x22, \x22-acd772jnc9l0l8\x22, \x22-64ie1focnn5g78\x22, \x22-3igoecjbmca688\x22, \x22-27c48l5b37oaoq\x22, \x22-1bk39f3ah3dmq8\x22, \x22-q1se8f0m04isc\x22, \x22-hajppbc1fc208\x22, \x22-bm03i95hia438\x22, \x22-8000000000000\x22, \x22-5hg4ck9jd4u38\x22, \x22-3tdtk1v8j6tpq\x22, \x22-2pijmikexrxp8\x22, \x22-1y2p0ij32e8e8\x22];\n const MAX_SAFE_INTEGER_ \x3d 9007199254740991;\n const TWO_PWR_32_DBL_ \x3d 4294967296;\n const TWO_PWR_63_DBL_ \x3d 0x7fffffffffffffff;\n const ZERO_ \x3d Long.fromBits(0, 0);\n const ONE_ \x3d Long.fromBits(1, 0);\n const NEG_ONE_ \x3d Long.fromBits(-1, -1);\n const MAX_VALUE_ \x3d Long.fromBits(4294967295, 2147483647);\n const MIN_VALUE_ \x3d Long.fromBits(0, 2147483648);\n const TWO_PWR_24_ \x3d Long.fromBits(1 \x3c\x3c 24, 0);\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.math.integer.js", true, "goog.provide(\x22goog.math.Integer\x22);\ngoog.require(\x22goog.reflect\x22);\ngoog.math.Integer \x3d function(bits, sign) {\n this.sign_ \x3d sign;\n var localBits \x3d [];\n var top \x3d true;\n var i \x3d bits.length - 1;\n for (; i \x3e\x3d 0; i--) {\n var val \x3d bits[i] | 0;\n if (!top || val !\x3d sign) {\n localBits[i] \x3d val;\n top \x3d false;\n }\n }\n this.bits_ \x3d localBits;\n};\ngoog.math.Integer.IntCache_ \x3d {};\ngoog.math.Integer.fromInt \x3d function(value) {\n if (-128 \x3c\x3d value \x26\x26 value \x3c 128) {\n return goog.reflect.cache(goog.math.Integer.IntCache_, value, function(val) {\n return new goog.math.Integer([val | 0], val \x3c 0 ? -1 : 0);\n });\n }\n return new goog.math.Integer([value | 0], value \x3c 0 ? -1 : 0);\n};\ngoog.math.Integer.fromNumber \x3d function(value) {\n if (isNaN(value) || !isFinite(value)) {\n return goog.math.Integer.ZERO;\n } else if (value \x3c 0) {\n return goog.math.Integer.fromNumber(-value).negate();\n } else {\n var bits \x3d [];\n var pow \x3d 1;\n var i \x3d 0;\n for (; value \x3e\x3d pow; i++) {\n bits[i] \x3d value / pow | 0;\n pow \x3d pow * goog.math.Integer.TWO_PWR_32_DBL_;\n }\n return new goog.math.Integer(bits, 0);\n }\n};\ngoog.math.Integer.fromBits \x3d function(bits) {\n var high \x3d bits[bits.length - 1];\n return new goog.math.Integer(bits, high \x26 1 \x3c\x3c 31 ? -1 : 0);\n};\ngoog.math.Integer.fromString \x3d function(str, opt_radix) {\n if (str.length \x3d\x3d 0) {\n throw new Error(\x22number format error: empty string\x22);\n }\n var radix \x3d opt_radix || 10;\n if (radix \x3c 2 || 36 \x3c radix) {\n throw new Error(\x22radix out of range: \x22 + radix);\n }\n if (str.charAt(0) \x3d\x3d \x22-\x22) {\n return goog.math.Integer.fromString(str.substring(1), radix).negate();\n } else if (str.indexOf(\x22-\x22) \x3e\x3d 0) {\n throw new Error(\x27number format error: interior \x22-\x22 character\x27);\n }\n var radixToPower \x3d goog.math.Integer.fromNumber(Math.pow(radix, 8));\n var result \x3d goog.math.Integer.ZERO;\n var i \x3d 0;\n for (; i \x3c str.length; i \x3d i + 8) {\n var size \x3d Math.min(8, str.length - i);\n var value \x3d parseInt(str.substring(i, i + size), radix);\n if (size \x3c 8) {\n var power \x3d goog.math.Integer.fromNumber(Math.pow(radix, size));\n result \x3d result.multiply(power).add(goog.math.Integer.fromNumber(value));\n } else {\n result \x3d result.multiply(radixToPower);\n result \x3d result.add(goog.math.Integer.fromNumber(value));\n }\n }\n return result;\n};\ngoog.math.Integer.TWO_PWR_32_DBL_ \x3d (1 \x3c\x3c 16) * (1 \x3c\x3c 16);\ngoog.math.Integer.ZERO \x3d goog.math.Integer.fromInt(0);\ngoog.math.Integer.ONE \x3d goog.math.Integer.fromInt(1);\ngoog.math.Integer.TWO_PWR_24_ \x3d goog.math.Integer.fromInt(1 \x3c\x3c 24);\ngoog.math.Integer.prototype.toInt \x3d function() {\n return this.bits_.length \x3e 0 ? this.bits_[0] : this.sign_;\n};\ngoog.math.Integer.prototype.toNumber \x3d function() {\n if (this.isNegative()) {\n return -this.negate().toNumber();\n } else {\n var val \x3d 0;\n var pow \x3d 1;\n var i \x3d 0;\n for (; i \x3c this.bits_.length; i++) {\n val \x3d val + this.getBitsUnsigned(i) * pow;\n pow \x3d pow * goog.math.Integer.TWO_PWR_32_DBL_;\n }\n return val;\n }\n};\ngoog.math.Integer.prototype.toString \x3d function(opt_radix) {\n var radix \x3d opt_radix || 10;\n if (radix \x3c 2 || 36 \x3c radix) {\n throw new Error(\x22radix out of range: \x22 + radix);\n }\n if (this.isZero()) {\n return \x220\x22;\n } else if (this.isNegative()) {\n return \x22-\x22 + this.negate().toString(radix);\n }\n var radixToPower \x3d goog.math.Integer.fromNumber(Math.pow(radix, 6));\n var rem \x3d this;\n var result \x3d \x22\x22;\n for (; true;) {\n var remDiv \x3d rem.divide(radixToPower);\n var intval \x3d rem.subtract(remDiv.multiply(radixToPower)).toInt() \x3e\x3e\x3e 0;\n var digits \x3d intval.toString(radix);\n rem \x3d remDiv;\n if (rem.isZero()) {\n return digits + result;\n } else {\n for (; digits.length \x3c 6;) {\n digits \x3d \x220\x22 + digits;\n }\n result \x3d \x22\x22 + digits + result;\n }\n }\n};\ngoog.math.Integer.prototype.getBits \x3d function(index) {\n if (index \x3c 0) {\n return 0;\n } else if (index \x3c this.bits_.length) {\n return this.bits_[index];\n } else {\n return this.sign_;\n }\n};\ngoog.math.Integer.prototype.getBitsUnsigned \x3d function(index) {\n var val \x3d this.getBits(index);\n return val \x3e\x3d 0 ? val : goog.math.Integer.TWO_PWR_32_DBL_ + val;\n};\ngoog.math.Integer.prototype.getSign \x3d function() {\n return this.sign_;\n};\ngoog.math.Integer.prototype.isZero \x3d function() {\n if (this.sign_ !\x3d 0) {\n return false;\n }\n var i \x3d 0;\n for (; i \x3c this.bits_.length; i++) {\n if (this.bits_[i] !\x3d 0) {\n return false;\n }\n }\n return true;\n};\ngoog.math.Integer.prototype.isNegative \x3d function() {\n return this.sign_ \x3d\x3d -1;\n};\ngoog.math.Integer.prototype.isOdd \x3d function() {\n return this.bits_.length \x3d\x3d 0 \x26\x26 this.sign_ \x3d\x3d -1 || this.bits_.length \x3e 0 \x26\x26 (this.bits_[0] \x26 1) !\x3d 0;\n};\ngoog.math.Integer.prototype.equals \x3d function(other) {\n if (this.sign_ !\x3d other.sign_) {\n return false;\n }\n var len \x3d Math.max(this.bits_.length, other.bits_.length);\n var i \x3d 0;\n for (; i \x3c len; i++) {\n if (this.getBits(i) !\x3d other.getBits(i)) {\n return false;\n }\n }\n return true;\n};\ngoog.math.Integer.prototype.notEquals \x3d function(other) {\n return !this.equals(other);\n};\ngoog.math.Integer.prototype.greaterThan \x3d function(other) {\n return this.compare(other) \x3e 0;\n};\ngoog.math.Integer.prototype.greaterThanOrEqual \x3d function(other) {\n return this.compare(other) \x3e\x3d 0;\n};\ngoog.math.Integer.prototype.lessThan \x3d function(other) {\n return this.compare(other) \x3c 0;\n};\ngoog.math.Integer.prototype.lessThanOrEqual \x3d function(other) {\n return this.compare(other) \x3c\x3d 0;\n};\ngoog.math.Integer.prototype.compare \x3d function(other) {\n var diff \x3d this.subtract(other);\n if (diff.isNegative()) {\n return -1;\n } else if (diff.isZero()) {\n return 0;\n } else {\n return +1;\n }\n};\ngoog.math.Integer.prototype.shorten \x3d function(numBits) {\n var arr_index \x3d numBits - 1 \x3e\x3e 5;\n var bit_index \x3d (numBits - 1) % 32;\n var bits \x3d [];\n var i \x3d 0;\n for (; i \x3c arr_index; i++) {\n bits[i] \x3d this.getBits(i);\n }\n var sigBits \x3d bit_index \x3d\x3d 31 ? 4294967295 : (1 \x3c\x3c bit_index + 1) - 1;\n var val \x3d this.getBits(arr_index) \x26 sigBits;\n if (val \x26 1 \x3c\x3c bit_index) {\n val \x3d val | 4294967295 - sigBits;\n bits[arr_index] \x3d val;\n return new goog.math.Integer(bits, -1);\n } else {\n bits[arr_index] \x3d val;\n return new goog.math.Integer(bits, 0);\n }\n};\ngoog.math.Integer.prototype.negate \x3d function() {\n return this.not().add(goog.math.Integer.ONE);\n};\ngoog.math.Integer.prototype.abs \x3d function() {\n return this.isNegative() ? this.negate() : this;\n};\ngoog.math.Integer.prototype.add \x3d function(other) {\n var len \x3d Math.max(this.bits_.length, other.bits_.length);\n var arr \x3d [];\n var carry \x3d 0;\n var i \x3d 0;\n for (; i \x3c\x3d len; i++) {\n var a1 \x3d this.getBits(i) \x3e\x3e\x3e 16;\n var a0 \x3d this.getBits(i) \x26 65535;\n var b1 \x3d other.getBits(i) \x3e\x3e\x3e 16;\n var b0 \x3d other.getBits(i) \x26 65535;\n var c0 \x3d carry + a0 + b0;\n var c1 \x3d (c0 \x3e\x3e\x3e 16) + a1 + b1;\n carry \x3d c1 \x3e\x3e\x3e 16;\n c0 \x3d c0 \x26 65535;\n c1 \x3d c1 \x26 65535;\n arr[i] \x3d c1 \x3c\x3c 16 | c0;\n }\n return goog.math.Integer.fromBits(arr);\n};\ngoog.math.Integer.prototype.subtract \x3d function(other) {\n return this.add(other.negate());\n};\ngoog.math.Integer.prototype.multiply \x3d function(other) {\n if (this.isZero()) {\n return goog.math.Integer.ZERO;\n } else if (other.isZero()) {\n return goog.math.Integer.ZERO;\n }\n if (this.isNegative()) {\n if (other.isNegative()) {\n return this.negate().multiply(other.negate());\n } else {\n return this.negate().multiply(other).negate();\n }\n } else if (other.isNegative()) {\n return this.multiply(other.negate()).negate();\n }\n if (this.lessThan(goog.math.Integer.TWO_PWR_24_) \x26\x26 other.lessThan(goog.math.Integer.TWO_PWR_24_)) {\n return goog.math.Integer.fromNumber(this.toNumber() * other.toNumber());\n }\n var len \x3d this.bits_.length + other.bits_.length;\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c 2 * len; i++) {\n arr[i] \x3d 0;\n }\n i \x3d 0;\n for (; i \x3c this.bits_.length; i++) {\n var j \x3d 0;\n for (; j \x3c other.bits_.length; j++) {\n var a1 \x3d this.getBits(i) \x3e\x3e\x3e 16;\n var a0 \x3d this.getBits(i) \x26 65535;\n var b1 \x3d other.getBits(j) \x3e\x3e\x3e 16;\n var b0 \x3d other.getBits(j) \x26 65535;\n arr[2 * i + 2 * j] +\x3d a0 * b0;\n goog.math.Integer.carry16_(arr, 2 * i + 2 * j);\n arr[2 * i + 2 * j + 1] +\x3d a1 * b0;\n goog.math.Integer.carry16_(arr, 2 * i + 2 * j + 1);\n arr[2 * i + 2 * j + 1] +\x3d a0 * b1;\n goog.math.Integer.carry16_(arr, 2 * i + 2 * j + 1);\n arr[2 * i + 2 * j + 2] +\x3d a1 * b1;\n goog.math.Integer.carry16_(arr, 2 * i + 2 * j + 2);\n }\n }\n i \x3d 0;\n for (; i \x3c len; i++) {\n arr[i] \x3d arr[2 * i + 1] \x3c\x3c 16 | arr[2 * i];\n }\n i \x3d len;\n for (; i \x3c 2 * len; i++) {\n arr[i] \x3d 0;\n }\n return new goog.math.Integer(arr, 0);\n};\ngoog.math.Integer.carry16_ \x3d function(bits, index) {\n for (; (bits[index] \x26 65535) !\x3d bits[index];) {\n bits[index + 1] +\x3d bits[index] \x3e\x3e\x3e 16;\n bits[index] \x26\x3d 65535;\n index++;\n }\n};\ngoog.math.Integer.prototype.slowDivide_ \x3d function(other) {\n if (this.isNegative() || other.isNegative()) {\n throw new Error(\x22slowDivide_ only works with positive integers.\x22);\n }\n var twoPower \x3d goog.math.Integer.ONE;\n var multiple \x3d other;\n for (; multiple.lessThanOrEqual(this);) {\n twoPower \x3d twoPower.shiftLeft(1);\n multiple \x3d multiple.shiftLeft(1);\n }\n var res \x3d twoPower.shiftRight(1);\n var total \x3d multiple.shiftRight(1);\n var total2;\n multiple \x3d multiple.shiftRight(2);\n twoPower \x3d twoPower.shiftRight(2);\n for (; !multiple.isZero();) {\n total2 \x3d total.add(multiple);\n if (total2.lessThanOrEqual(this)) {\n res \x3d res.add(twoPower);\n total \x3d total2;\n }\n multiple \x3d multiple.shiftRight(1);\n twoPower \x3d twoPower.shiftRight(1);\n }\n var remainder \x3d this.subtract(res.multiply(other));\n return new goog.math.Integer.DivisionResult(res, remainder);\n};\ngoog.math.Integer.prototype.divide \x3d function(other) {\n return this.divideAndRemainder(other).quotient;\n};\ngoog.math.Integer.DivisionResult \x3d function(quotient, remainder) {\n this.quotient \x3d quotient;\n this.remainder \x3d remainder;\n};\ngoog.math.Integer.prototype.divideAndRemainder \x3d function(other) {\n if (other.isZero()) {\n throw new Error(\x22division by zero\x22);\n } else if (this.isZero()) {\n return new goog.math.Integer.DivisionResult(goog.math.Integer.ZERO, goog.math.Integer.ZERO);\n }\n if (this.isNegative()) {\n var result \x3d this.negate().divideAndRemainder(other);\n return new goog.math.Integer.DivisionResult(result.quotient.negate(), result.remainder.negate());\n } else if (other.isNegative()) {\n result \x3d this.divideAndRemainder(other.negate());\n return new goog.math.Integer.DivisionResult(result.quotient.negate(), result.remainder);\n }\n if (this.bits_.length \x3e 30) {\n return this.slowDivide_(other);\n }\n var res \x3d goog.math.Integer.ZERO;\n var rem \x3d this;\n for (; rem.greaterThanOrEqual(other);) {\n var approx \x3d Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));\n var log2 \x3d Math.ceil(Math.log(approx) / Math.LN2);\n var delta \x3d log2 \x3c\x3d 48 ? 1 : Math.pow(2, log2 - 48);\n var approxRes \x3d goog.math.Integer.fromNumber(approx);\n var approxRem \x3d approxRes.multiply(other);\n for (; approxRem.isNegative() || approxRem.greaterThan(rem);) {\n approx \x3d approx - delta;\n approxRes \x3d goog.math.Integer.fromNumber(approx);\n approxRem \x3d approxRes.multiply(other);\n }\n if (approxRes.isZero()) {\n approxRes \x3d goog.math.Integer.ONE;\n }\n res \x3d res.add(approxRes);\n rem \x3d rem.subtract(approxRem);\n }\n return new goog.math.Integer.DivisionResult(res, rem);\n};\ngoog.math.Integer.prototype.modulo \x3d function(other) {\n return this.divideAndRemainder(other).remainder;\n};\ngoog.math.Integer.prototype.not \x3d function() {\n var len \x3d this.bits_.length;\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c len; i++) {\n arr[i] \x3d ~this.bits_[i];\n }\n return new goog.math.Integer(arr, ~this.sign_);\n};\ngoog.math.Integer.prototype.and \x3d function(other) {\n var len \x3d Math.max(this.bits_.length, other.bits_.length);\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c len; i++) {\n arr[i] \x3d this.getBits(i) \x26 other.getBits(i);\n }\n return new goog.math.Integer(arr, this.sign_ \x26 other.sign_);\n};\ngoog.math.Integer.prototype.or \x3d function(other) {\n var len \x3d Math.max(this.bits_.length, other.bits_.length);\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c len; i++) {\n arr[i] \x3d this.getBits(i) | other.getBits(i);\n }\n return new goog.math.Integer(arr, this.sign_ | other.sign_);\n};\ngoog.math.Integer.prototype.xor \x3d function(other) {\n var len \x3d Math.max(this.bits_.length, other.bits_.length);\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c len; i++) {\n arr[i] \x3d this.getBits(i) ^ other.getBits(i);\n }\n return new goog.math.Integer(arr, this.sign_ ^ other.sign_);\n};\ngoog.math.Integer.prototype.shiftLeft \x3d function(numBits) {\n var arr_delta \x3d numBits \x3e\x3e 5;\n var bit_delta \x3d numBits % 32;\n var len \x3d this.bits_.length + arr_delta + (bit_delta \x3e 0 ? 1 : 0);\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c len; i++) {\n if (bit_delta \x3e 0) {\n arr[i] \x3d this.getBits(i - arr_delta) \x3c\x3c bit_delta | this.getBits(i - arr_delta - 1) \x3e\x3e\x3e 32 - bit_delta;\n } else {\n arr[i] \x3d this.getBits(i - arr_delta);\n }\n }\n return new goog.math.Integer(arr, this.sign_);\n};\ngoog.math.Integer.prototype.shiftRight \x3d function(numBits) {\n var arr_delta \x3d numBits \x3e\x3e 5;\n var bit_delta \x3d numBits % 32;\n var len \x3d this.bits_.length - arr_delta;\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c len; i++) {\n if (bit_delta \x3e 0) {\n arr[i] \x3d this.getBits(i + arr_delta) \x3e\x3e\x3e bit_delta | this.getBits(i + arr_delta + 1) \x3c\x3c 32 - bit_delta;\n } else {\n arr[i] \x3d this.getBits(i + arr_delta);\n }\n }\n return new goog.math.Integer(arr, this.sign_);\n};\n");
SHADOW_ENV.evalLoad("goog.dom.htmlelement.js", true, "goog.provide(\x22goog.dom.HtmlElement\x22);\ngoog.dom.HtmlElement \x3d function() {\n};\n");
SHADOW_ENV.evalLoad("goog.dom.tagname.js", true, "goog.provide(\x22goog.dom.TagName\x22);\ngoog.require(\x22goog.dom.HtmlElement\x22);\ngoog.dom.TagName \x3d class {\n static cast(name, type) {\n return name;\n }\n constructor() {\n this.googDomTagName_doNotImplementThisTypeOrElse_;\n this.ensureTypeScriptRemembersTypeT_;\n }\n toString() {\n }\n};\ngoog.dom.TagName.A \x3d \x22A\x22;\ngoog.dom.TagName.ABBR \x3d \x22ABBR\x22;\ngoog.dom.TagName.ACRONYM \x3d \x22ACRONYM\x22;\ngoog.dom.TagName.ADDRESS \x3d \x22ADDRESS\x22;\ngoog.dom.TagName.APPLET \x3d \x22APPLET\x22;\ngoog.dom.TagName.AREA \x3d \x22AREA\x22;\ngoog.dom.TagName.ARTICLE \x3d \x22ARTICLE\x22;\ngoog.dom.TagName.ASIDE \x3d \x22ASIDE\x22;\ngoog.dom.TagName.AUDIO \x3d \x22AUDIO\x22;\ngoog.dom.TagName.B \x3d \x22B\x22;\ngoog.dom.TagName.BASE \x3d \x22BASE\x22;\ngoog.dom.TagName.BASEFONT \x3d \x22BASEFONT\x22;\ngoog.dom.TagName.BDI \x3d \x22BDI\x22;\ngoog.dom.TagName.BDO \x3d \x22BDO\x22;\ngoog.dom.TagName.BIG \x3d \x22BIG\x22;\ngoog.dom.TagName.BLOCKQUOTE \x3d \x22BLOCKQUOTE\x22;\ngoog.dom.TagName.BODY \x3d \x22BODY\x22;\ngoog.dom.TagName.BR \x3d \x22BR\x22;\ngoog.dom.TagName.BUTTON \x3d \x22BUTTON\x22;\ngoog.dom.TagName.CANVAS \x3d \x22CANVAS\x22;\ngoog.dom.TagName.CAPTION \x3d \x22CAPTION\x22;\ngoog.dom.TagName.CENTER \x3d \x22CENTER\x22;\ngoog.dom.TagName.CITE \x3d \x22CITE\x22;\ngoog.dom.TagName.CODE \x3d \x22CODE\x22;\ngoog.dom.TagName.COL \x3d \x22COL\x22;\ngoog.dom.TagName.COLGROUP \x3d \x22COLGROUP\x22;\ngoog.dom.TagName.COMMAND \x3d \x22COMMAND\x22;\ngoog.dom.TagName.DATA \x3d \x22DATA\x22;\ngoog.dom.TagName.DATALIST \x3d \x22DATALIST\x22;\ngoog.dom.TagName.DD \x3d \x22DD\x22;\ngoog.dom.TagName.DEL \x3d \x22DEL\x22;\ngoog.dom.TagName.DETAILS \x3d \x22DETAILS\x22;\ngoog.dom.TagName.DFN \x3d \x22DFN\x22;\ngoog.dom.TagName.DIALOG \x3d \x22DIALOG\x22;\ngoog.dom.TagName.DIR \x3d \x22DIR\x22;\ngoog.dom.TagName.DIV \x3d \x22DIV\x22;\ngoog.dom.TagName.DL \x3d \x22DL\x22;\ngoog.dom.TagName.DT \x3d \x22DT\x22;\ngoog.dom.TagName.EM \x3d \x22EM\x22;\ngoog.dom.TagName.EMBED \x3d \x22EMBED\x22;\ngoog.dom.TagName.FIELDSET \x3d \x22FIELDSET\x22;\ngoog.dom.TagName.FIGCAPTION \x3d \x22FIGCAPTION\x22;\ngoog.dom.TagName.FIGURE \x3d \x22FIGURE\x22;\ngoog.dom.TagName.FONT \x3d \x22FONT\x22;\ngoog.dom.TagName.FOOTER \x3d \x22FOOTER\x22;\ngoog.dom.TagName.FORM \x3d \x22FORM\x22;\ngoog.dom.TagName.FRAME \x3d \x22FRAME\x22;\ngoog.dom.TagName.FRAMESET \x3d \x22FRAMESET\x22;\ngoog.dom.TagName.H1 \x3d \x22H1\x22;\ngoog.dom.TagName.H2 \x3d \x22H2\x22;\ngoog.dom.TagName.H3 \x3d \x22H3\x22;\ngoog.dom.TagName.H4 \x3d \x22H4\x22;\ngoog.dom.TagName.H5 \x3d \x22H5\x22;\ngoog.dom.TagName.H6 \x3d \x22H6\x22;\ngoog.dom.TagName.HEAD \x3d \x22HEAD\x22;\ngoog.dom.TagName.HEADER \x3d \x22HEADER\x22;\ngoog.dom.TagName.HGROUP \x3d \x22HGROUP\x22;\ngoog.dom.TagName.HR \x3d \x22HR\x22;\ngoog.dom.TagName.HTML \x3d \x22HTML\x22;\ngoog.dom.TagName.I \x3d \x22I\x22;\ngoog.dom.TagName.IFRAME \x3d \x22IFRAME\x22;\ngoog.dom.TagName.IMG \x3d \x22IMG\x22;\ngoog.dom.TagName.INPUT \x3d \x22INPUT\x22;\ngoog.dom.TagName.INS \x3d \x22INS\x22;\ngoog.dom.TagName.ISINDEX \x3d \x22ISINDEX\x22;\ngoog.dom.TagName.KBD \x3d \x22KBD\x22;\ngoog.dom.TagName.KEYGEN \x3d \x22KEYGEN\x22;\ngoog.dom.TagName.LABEL \x3d \x22LABEL\x22;\ngoog.dom.TagName.LEGEND \x3d \x22LEGEND\x22;\ngoog.dom.TagName.LI \x3d \x22LI\x22;\ngoog.dom.TagName.LINK \x3d \x22LINK\x22;\ngoog.dom.TagName.MAIN \x3d \x22MAIN\x22;\ngoog.dom.TagName.MAP \x3d \x22MAP\x22;\ngoog.dom.TagName.MARK \x3d \x22MARK\x22;\ngoog.dom.TagName.MATH \x3d \x22MATH\x22;\ngoog.dom.TagName.MENU \x3d \x22MENU\x22;\ngoog.dom.TagName.MENUITEM \x3d \x22MENUITEM\x22;\ngoog.dom.TagName.META \x3d \x22META\x22;\ngoog.dom.TagName.METER \x3d \x22METER\x22;\ngoog.dom.TagName.NAV \x3d \x22NAV\x22;\ngoog.dom.TagName.NOFRAMES \x3d \x22NOFRAMES\x22;\ngoog.dom.TagName.NOSCRIPT \x3d \x22NOSCRIPT\x22;\ngoog.dom.TagName.OBJECT \x3d \x22OBJECT\x22;\ngoog.dom.TagName.OL \x3d \x22OL\x22;\ngoog.dom.TagName.OPTGROUP \x3d \x22OPTGROUP\x22;\ngoog.dom.TagName.OPTION \x3d \x22OPTION\x22;\ngoog.dom.TagName.OUTPUT \x3d \x22OUTPUT\x22;\ngoog.dom.TagName.P \x3d \x22P\x22;\ngoog.dom.TagName.PARAM \x3d \x22PARAM\x22;\ngoog.dom.TagName.PICTURE \x3d \x22PICTURE\x22;\ngoog.dom.TagName.PRE \x3d \x22PRE\x22;\ngoog.dom.TagName.PROGRESS \x3d \x22PROGRESS\x22;\ngoog.dom.TagName.Q \x3d \x22Q\x22;\ngoog.dom.TagName.RP \x3d \x22RP\x22;\ngoog.dom.TagName.RT \x3d \x22RT\x22;\ngoog.dom.TagName.RTC \x3d \x22RTC\x22;\ngoog.dom.TagName.RUBY \x3d \x22RUBY\x22;\ngoog.dom.TagName.S \x3d \x22S\x22;\ngoog.dom.TagName.SAMP \x3d \x22SAMP\x22;\ngoog.dom.TagName.SCRIPT \x3d \x22SCRIPT\x22;\ngoog.dom.TagName.SECTION \x3d \x22SECTION\x22;\ngoog.dom.TagName.SELECT \x3d \x22SELECT\x22;\ngoog.dom.TagName.SMALL \x3d \x22SMALL\x22;\ngoog.dom.TagName.SOURCE \x3d \x22SOURCE\x22;\ngoog.dom.TagName.SPAN \x3d \x22SPAN\x22;\ngoog.dom.TagName.STRIKE \x3d \x22STRIKE\x22;\ngoog.dom.TagName.STRONG \x3d \x22STRONG\x22;\ngoog.dom.TagName.STYLE \x3d \x22STYLE\x22;\ngoog.dom.TagName.SUB \x3d \x22SUB\x22;\ngoog.dom.TagName.SUMMARY \x3d \x22SUMMARY\x22;\ngoog.dom.TagName.SUP \x3d \x22SUP\x22;\ngoog.dom.TagName.SVG \x3d \x22SVG\x22;\ngoog.dom.TagName.TABLE \x3d \x22TABLE\x22;\ngoog.dom.TagName.TBODY \x3d \x22TBODY\x22;\ngoog.dom.TagName.TD \x3d \x22TD\x22;\ngoog.dom.TagName.TEMPLATE \x3d \x22TEMPLATE\x22;\ngoog.dom.TagName.TEXTAREA \x3d \x22TEXTAREA\x22;\ngoog.dom.TagName.TFOOT \x3d \x22TFOOT\x22;\ngoog.dom.TagName.TH \x3d \x22TH\x22;\ngoog.dom.TagName.THEAD \x3d \x22THEAD\x22;\ngoog.dom.TagName.TIME \x3d \x22TIME\x22;\ngoog.dom.TagName.TITLE \x3d \x22TITLE\x22;\ngoog.dom.TagName.TR \x3d \x22TR\x22;\ngoog.dom.TagName.TRACK \x3d \x22TRACK\x22;\ngoog.dom.TagName.TT \x3d \x22TT\x22;\ngoog.dom.TagName.U \x3d \x22U\x22;\ngoog.dom.TagName.UL \x3d \x22UL\x22;\ngoog.dom.TagName.VAR \x3d \x22VAR\x22;\ngoog.dom.TagName.VIDEO \x3d \x22VIDEO\x22;\ngoog.dom.TagName.WBR \x3d \x22WBR\x22;\n");
SHADOW_ENV.evalLoad("goog.dom.element.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.dom.element\x22);\n goog.module.declareLegacyNamespace();\n const NodeType \x3d goog.require(\x22goog.dom.NodeType\x22);\n const TagName \x3d goog.require(\x22goog.dom.TagName\x22);\n const HTML_NAMESPACE \x3d \x22http://www.w3.org/1999/xhtml\x22;\n const isElement \x3d value \x3d\x3e {\n return goog.isObject(value) \x26\x26 value.nodeType \x3d\x3d\x3d NodeType.ELEMENT;\n };\n const isHtmlElement \x3d value \x3d\x3e {\n return goog.isObject(value) \x26\x26 isElement(value) \x26\x26 (!value.namespaceURI || value.namespaceURI \x3d\x3d\x3d HTML_NAMESPACE);\n };\n const isHtmlElementOfType \x3d (value, tagName) \x3d\x3e {\n return goog.isObject(value) \x26\x26 isHtmlElement(value) \x26\x26 value.tagName.toUpperCase() \x3d\x3d\x3d tagName.toString();\n };\n const isHtmlAnchorElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.A);\n };\n const isHtmlButtonElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.BUTTON);\n };\n const isHtmlLinkElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.LINK);\n };\n const isHtmlImageElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.IMG);\n };\n const isHtmlAudioElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.AUDIO);\n };\n const isHtmlVideoElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.VIDEO);\n };\n const isHtmlInputElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.INPUT);\n };\n const isHtmlTextAreaElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.TEXTAREA);\n };\n const isHtmlCanvasElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.CANVAS);\n };\n const isHtmlEmbedElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.EMBED);\n };\n const isHtmlFormElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.FORM);\n };\n const isHtmlFrameElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.FRAME);\n };\n const isHtmlIFrameElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.IFRAME);\n };\n const isHtmlObjectElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.OBJECT);\n };\n const isHtmlScriptElement \x3d value \x3d\x3e {\n return isHtmlElementOfType(value, TagName.SCRIPT);\n };\n exports \x3d {isElement, isHtmlElement, isHtmlElementOfType, isHtmlAnchorElement, isHtmlButtonElement, isHtmlLinkElement, isHtmlImageElement, isHtmlAudioElement, isHtmlVideoElement, isHtmlInputElement, isHtmlTextAreaElement, isHtmlCanvasElement, isHtmlEmbedElement, isHtmlFormElement, isHtmlFrameElement, isHtmlIFrameElement, isHtmlObjectElement, isHtmlScriptElement};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.asserts.dom.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.asserts.dom\x22);\n goog.module.declareLegacyNamespace();\n const TagName \x3d goog.require(\x22goog.dom.TagName\x22);\n const asserts \x3d goog.require(\x22goog.asserts\x22);\n const element \x3d goog.require(\x22goog.dom.element\x22);\n const assertIsElement \x3d value \x3d\x3e {\n if (asserts.ENABLE_ASSERTS \x26\x26 !element.isElement(value)) {\n asserts.fail(`Argument is not an Element; got: ${debugStringForType(value)}`);\n }\n return value;\n };\n const assertIsHtmlElement \x3d value \x3d\x3e {\n if (asserts.ENABLE_ASSERTS \x26\x26 !element.isHtmlElement(value)) {\n asserts.fail(`Argument is not an HTML Element; got: ${debugStringForType(value)}`);\n }\n return value;\n };\n const assertIsHtmlElementOfType \x3d (value, tagName) \x3d\x3e {\n if (asserts.ENABLE_ASSERTS \x26\x26 !element.isHtmlElementOfType(value, tagName)) {\n asserts.fail(`Argument is not an HTML Element with tag name ` + `${tagName.toString()}; got: ${debugStringForType(value)}`);\n }\n return value;\n };\n const assertIsHtmlAnchorElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.A);\n };\n const assertIsHtmlButtonElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.BUTTON);\n };\n const assertIsHtmlLinkElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.LINK);\n };\n const assertIsHtmlImageElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.IMG);\n };\n const assertIsHtmlAudioElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.AUDIO);\n };\n const assertIsHtmlVideoElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.VIDEO);\n };\n const assertIsHtmlInputElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.INPUT);\n };\n const assertIsHtmlTextAreaElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.TEXTAREA);\n };\n const assertIsHtmlCanvasElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.CANVAS);\n };\n const assertIsHtmlEmbedElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.EMBED);\n };\n const assertIsHtmlFormElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.FORM);\n };\n const assertIsHtmlFrameElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.FRAME);\n };\n const assertIsHtmlIFrameElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.IFRAME);\n };\n const assertIsHtmlObjectElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.OBJECT);\n };\n const assertIsHtmlScriptElement \x3d value \x3d\x3e {\n return assertIsHtmlElementOfType(value, TagName.SCRIPT);\n };\n const debugStringForType \x3d value \x3d\x3e {\n if (goog.isObject(value)) {\n try {\n return value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value);\n } catch (e) {\n return \x22\\x3cobject could not be stringified\\x3e\x22;\n }\n } else {\n return value \x3d\x3d\x3d undefined ? \x22undefined\x22 : value \x3d\x3d\x3d null ? \x22null\x22 : typeof value;\n }\n };\n exports \x3d {assertIsElement, assertIsHtmlElement, assertIsHtmlElementOfType, assertIsHtmlAnchorElement, assertIsHtmlButtonElement, assertIsHtmlLinkElement, assertIsHtmlImageElement, assertIsHtmlAudioElement, assertIsHtmlVideoElement, assertIsHtmlInputElement, assertIsHtmlTextAreaElement, assertIsHtmlCanvasElement, assertIsHtmlEmbedElement, assertIsHtmlFormElement, assertIsHtmlFrameElement, assertIsHtmlIFrameElement, assertIsHtmlObjectElement, assertIsHtmlScriptElement};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.dom.asserts.js", true, "goog.provide(\x22goog.dom.asserts\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.dom.asserts.assertIsLocation \x3d function(o) {\n if (goog.asserts.ENABLE_ASSERTS) {\n var win \x3d goog.dom.asserts.getWindow_(o);\n if (win) {\n if (!o || !(o instanceof win.Location) \x26\x26 o instanceof win.Element) {\n goog.asserts.fail(\x22Argument is not a Location (or a non-Element mock); got: %s\x22, goog.dom.asserts.debugStringForType_(o));\n }\n }\n }\n return o;\n};\ngoog.dom.asserts.debugStringForType_ \x3d function(value) {\n if (goog.isObject(value)) {\n try {\n return value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value);\n } catch (e) {\n return \x22\\x3cobject could not be stringified\\x3e\x22;\n }\n } else {\n return value \x3d\x3d\x3d undefined ? \x22undefined\x22 : value \x3d\x3d\x3d null ? \x22null\x22 : typeof value;\n }\n};\ngoog.dom.asserts.getWindow_ \x3d function(o) {\n try {\n var doc \x3d o \x26\x26 o.ownerDocument;\n var win \x3d doc \x26\x26 (doc.defaultView || doc.parentWindow);\n win \x3d win || goog.global;\n if (win.Element \x26\x26 win.Location) {\n return win;\n }\n } catch (ex) {\n }\n return null;\n};\n");
SHADOW_ENV.evalLoad("goog.functions.functions.js", true, "goog.provide(\x22goog.functions\x22);\ngoog.functions.constant \x3d function(retValue) {\n return function() {\n return retValue;\n };\n};\ngoog.functions.FALSE \x3d function() {\n return false;\n};\ngoog.functions.TRUE \x3d function() {\n return true;\n};\ngoog.functions.NULL \x3d function() {\n return null;\n};\ngoog.functions.UNDEFINED \x3d function() {\n return undefined;\n};\ngoog.functions.EMPTY \x3d goog.functions.UNDEFINED;\ngoog.functions.identity \x3d function(opt_returnValue, var_args) {\n return opt_returnValue;\n};\ngoog.functions.error \x3d function(message) {\n return function() {\n throw new Error(message);\n };\n};\ngoog.functions.fail \x3d function(err) {\n return function() {\n throw err;\n };\n};\ngoog.functions.lock \x3d function(f, opt_numArgs) {\n opt_numArgs \x3d opt_numArgs || 0;\n return function() {\n const self \x3d this;\n return f.apply(self, Array.prototype.slice.call(arguments, 0, opt_numArgs));\n };\n};\ngoog.functions.nth \x3d function(n) {\n return function() {\n return arguments[n];\n };\n};\ngoog.functions.partialRight \x3d function(fn, var_args) {\n const rightArgs \x3d Array.prototype.slice.call(arguments, 1);\n return function() {\n let self \x3d this;\n if (self \x3d\x3d\x3d goog.global) {\n self \x3d undefined;\n }\n const newArgs \x3d Array.prototype.slice.call(arguments);\n newArgs.push.apply(newArgs, rightArgs);\n return fn.apply(self, newArgs);\n };\n};\ngoog.functions.withReturnValue \x3d function(f, retValue) {\n return goog.functions.sequence(f, goog.functions.constant(retValue));\n};\ngoog.functions.equalTo \x3d function(value, opt_useLooseComparison) {\n return function(other) {\n return opt_useLooseComparison ? value \x3d\x3d other : value \x3d\x3d\x3d other;\n };\n};\ngoog.functions.compose \x3d function(fn, var_args) {\n const functions \x3d arguments;\n const length \x3d functions.length;\n return function() {\n const self \x3d this;\n let result;\n if (length) {\n result \x3d functions[length - 1].apply(self, arguments);\n }\n for (let i \x3d length - 2; i \x3e\x3d 0; i--) {\n result \x3d functions[i].call(self, result);\n }\n return result;\n };\n};\ngoog.functions.sequence \x3d function(var_args) {\n const functions \x3d arguments;\n const length \x3d functions.length;\n return function() {\n const self \x3d this;\n let result;\n for (let i \x3d 0; i \x3c length; i++) {\n result \x3d functions[i].apply(self, arguments);\n }\n return result;\n };\n};\ngoog.functions.and \x3d function(var_args) {\n const functions \x3d arguments;\n const length \x3d functions.length;\n return function() {\n const self \x3d this;\n for (let i \x3d 0; i \x3c length; i++) {\n if (!functions[i].apply(self, arguments)) {\n return false;\n }\n }\n return true;\n };\n};\ngoog.functions.or \x3d function(var_args) {\n const functions \x3d arguments;\n const length \x3d functions.length;\n return function() {\n const self \x3d this;\n for (let i \x3d 0; i \x3c length; i++) {\n if (functions[i].apply(self, arguments)) {\n return true;\n }\n }\n return false;\n };\n};\ngoog.functions.not \x3d function(f) {\n return function() {\n const self \x3d this;\n return !f.apply(self, arguments);\n };\n};\ngoog.functions.create \x3d function(constructor, var_args) {\n const temp \x3d function() {\n };\n temp.prototype \x3d constructor.prototype;\n const obj \x3d new temp();\n constructor.apply(obj, Array.prototype.slice.call(arguments, 1));\n return obj;\n};\ngoog.functions.CACHE_RETURN_VALUE \x3d goog.define(\x22goog.functions.CACHE_RETURN_VALUE\x22, true);\ngoog.functions.cacheReturnValue \x3d function(fn) {\n let called \x3d false;\n let value;\n return function() {\n if (!goog.functions.CACHE_RETURN_VALUE) {\n return fn();\n }\n if (!called) {\n value \x3d fn();\n called \x3d true;\n }\n return value;\n };\n};\ngoog.functions.once \x3d function(f) {\n let inner \x3d f;\n return function() {\n if (inner) {\n const tmp \x3d inner;\n inner \x3d null;\n tmp();\n }\n };\n};\ngoog.functions.debounce \x3d function(f, interval, opt_scope) {\n let timeout \x3d 0;\n return function(var_args) {\n goog.global.clearTimeout(timeout);\n const args \x3d arguments;\n timeout \x3d goog.global.setTimeout(function() {\n f.apply(opt_scope, args);\n }, interval);\n };\n};\ngoog.functions.throttle \x3d function(f, interval, opt_scope) {\n let timeout \x3d 0;\n let shouldFire \x3d false;\n let storedArgs \x3d [];\n const handleTimeout \x3d function() {\n timeout \x3d 0;\n if (shouldFire) {\n shouldFire \x3d false;\n fire();\n }\n };\n const fire \x3d function() {\n timeout \x3d goog.global.setTimeout(handleTimeout, interval);\n let args \x3d storedArgs;\n storedArgs \x3d [];\n f.apply(opt_scope, args);\n };\n return function(var_args) {\n storedArgs \x3d arguments;\n if (!timeout) {\n fire();\n } else {\n shouldFire \x3d true;\n }\n };\n};\ngoog.functions.rateLimit \x3d function(f, interval, opt_scope) {\n let timeout \x3d 0;\n const handleTimeout \x3d function() {\n timeout \x3d 0;\n };\n return function(var_args) {\n if (!timeout) {\n timeout \x3d goog.global.setTimeout(handleTimeout, interval);\n f.apply(opt_scope, arguments);\n }\n };\n};\ngoog.functions.isFunction \x3d val \x3d\x3e {\n return typeof val \x3d\x3d\x3d \x22function\x22;\n};\n");
SHADOW_ENV.evalLoad("goog.string.typedstring.js", true, "goog.provide(\x22goog.string.TypedString\x22);\ngoog.string.TypedString \x3d function() {\n};\ngoog.string.TypedString.prototype.implementsGoogStringTypedString;\ngoog.string.TypedString.prototype.getTypedStringValue;\n");
SHADOW_ENV.evalLoad("goog.string.const.js", true, "goog.provide(\x22goog.string.Const\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.string.TypedString\x22);\ngoog.string.Const \x3d function(opt_token, opt_content) {\n this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ \x3d opt_token \x3d\x3d\x3d goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ \x26\x26 opt_content || \x22\x22;\n this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ \x3d goog.string.Const.TYPE_MARKER_;\n};\ngoog.string.Const.prototype.implementsGoogStringTypedString \x3d true;\ngoog.string.Const.prototype.getTypedStringValue \x3d function() {\n return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;\n};\nif (goog.DEBUG) {\n goog.string.Const.prototype.toString \x3d function() {\n return \x22Const{\x22 + this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ + \x22}\x22;\n };\n}\ngoog.string.Const.unwrap \x3d function(stringConst) {\n if (stringConst instanceof goog.string.Const \x26\x26 stringConst.constructor \x3d\x3d\x3d goog.string.Const \x26\x26 stringConst.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ \x3d\x3d\x3d goog.string.Const.TYPE_MARKER_) {\n return stringConst.stringConstValueWithSecurityContract__googStringSecurityPrivate_;\n } else {\n goog.asserts.fail(\x22expected object of type Const, got \x27\x22 + stringConst + \x22\x27\x22);\n return \x22type_error:Const\x22;\n }\n};\ngoog.string.Const.from \x3d function(s) {\n return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_, s);\n};\ngoog.string.Const.TYPE_MARKER_ \x3d {};\ngoog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ \x3d {};\ngoog.string.Const.EMPTY \x3d goog.string.Const.from(\x22\x22);\n");
SHADOW_ENV.evalLoad("goog.html.trustedtypes.js", true, "goog.provide(\x22goog.html.trustedtypes\x22);\ngoog.html.trustedtypes.POLICY_NAME \x3d goog.define(\x22goog.html.trustedtypes.POLICY_NAME\x22, goog.TRUSTED_TYPES_POLICY_NAME ? goog.TRUSTED_TYPES_POLICY_NAME + \x22#html\x22 : \x22\x22);\ngoog.html.trustedtypes.cachedPolicy_;\ngoog.html.trustedtypes.getPolicyPrivateDoNotAccessOrElse \x3d function() {\n if (!goog.html.trustedtypes.POLICY_NAME) {\n return null;\n }\n if (goog.html.trustedtypes.cachedPolicy_ \x3d\x3d\x3d undefined) {\n goog.html.trustedtypes.cachedPolicy_ \x3d goog.createTrustedTypesPolicy(goog.html.trustedtypes.POLICY_NAME);\n }\n return goog.html.trustedtypes.cachedPolicy_;\n};\n");
SHADOW_ENV.evalLoad("goog.html.safescript.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.html.SafeScript\x22);\n goog.module.declareLegacyNamespace();\n const Const \x3d goog.require(\x22goog.string.Const\x22);\n const TypedString \x3d goog.require(\x22goog.string.TypedString\x22);\n const trustedtypes \x3d goog.require(\x22goog.html.trustedtypes\x22);\n const {fail} \x3d goog.require(\x22goog.asserts\x22);\n const CONSTRUCTOR_TOKEN_PRIVATE \x3d {};\n class SafeScript {\n constructor(value, token) {\n this.privateDoNotAccessOrElseSafeScriptWrappedValue_ \x3d token \x3d\x3d\x3d CONSTRUCTOR_TOKEN_PRIVATE ? value : \x22\x22;\n this.implementsGoogStringTypedString \x3d true;\n }\n toString() {\n return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString();\n }\n static fromConstant(script) {\n const scriptString \x3d Const.unwrap(script);\n if (scriptString.length \x3d\x3d\x3d 0) {\n return SafeScript.EMPTY;\n }\n return SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(scriptString);\n }\n static fromJson(val) {\n return SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(SafeScript.stringify_(val));\n }\n getTypedStringValue() {\n return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString();\n }\n static unwrap(safeScript) {\n return SafeScript.unwrapTrustedScript(safeScript).toString();\n }\n static unwrapTrustedScript(safeScript) {\n if (safeScript instanceof SafeScript \x26\x26 safeScript.constructor \x3d\x3d\x3d SafeScript) {\n return safeScript.privateDoNotAccessOrElseSafeScriptWrappedValue_;\n } else {\n fail(\x22expected object of type SafeScript, got \x27\x22 + safeScript + \x22\x27 of type \x22 + goog.typeOf(safeScript));\n return \x22type_error:SafeScript\x22;\n }\n }\n static stringify_(val) {\n const json \x3d JSON.stringify(val);\n return json.replace(/\x3c/g, \x22\\\\x3c\x22);\n }\n static createSafeScriptSecurityPrivateDoNotAccessOrElse(script) {\n const noinlineScript \x3d script;\n const policy \x3d trustedtypes.getPolicyPrivateDoNotAccessOrElse();\n const trustedScript \x3d policy ? policy.createScript(noinlineScript) : noinlineScript;\n return new SafeScript(trustedScript, CONSTRUCTOR_TOKEN_PRIVATE);\n }\n }\n SafeScript.EMPTY \x3d {valueOf:function() {\n return SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(\x22\x22);\n }}.valueOf();\n exports \x3d SafeScript;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.fs.url.js", true, "goog.provide(\x22goog.fs.url\x22);\ngoog.fs.url.createObjectUrl \x3d function(obj) {\n return goog.fs.url.getUrlObject_().createObjectURL(obj);\n};\ngoog.fs.url.revokeObjectUrl \x3d function(url) {\n goog.fs.url.getUrlObject_().revokeObjectURL(url);\n};\ngoog.fs.url.UrlObject_ \x3d function() {\n};\ngoog.fs.url.UrlObject_.prototype.createObjectURL \x3d function(arg) {\n};\ngoog.fs.url.UrlObject_.prototype.revokeObjectURL \x3d function(s) {\n};\ngoog.fs.url.getUrlObject_ \x3d function() {\n const urlObject \x3d goog.fs.url.findUrlObject_();\n if (urlObject !\x3d null) {\n return urlObject;\n } else {\n throw new Error(\x22This browser doesn\x27t seem to support blob URLs\x22);\n }\n};\ngoog.fs.url.findUrlObject_ \x3d function() {\n if (goog.global.URL !\x3d\x3d undefined \x26\x26 goog.global.URL.createObjectURL !\x3d\x3d undefined) {\n return goog.global.URL;\n } else if (goog.global.createObjectURL !\x3d\x3d undefined) {\n return goog.global;\n } else {\n return null;\n }\n};\ngoog.fs.url.browserSupportsObjectUrls \x3d function() {\n return goog.fs.url.findUrlObject_() !\x3d null;\n};\n");
SHADOW_ENV.evalLoad("goog.fs.blob.js", true, "goog.provide(\x22goog.fs.blob\x22);\ngoog.fs.blob.getBlob \x3d function(var_args) {\n const BlobBuilder \x3d goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;\n if (BlobBuilder !\x3d\x3d undefined) {\n const bb \x3d new BlobBuilder();\n for (let i \x3d 0; i \x3c arguments.length; i++) {\n bb.append(arguments[i]);\n }\n return bb.getBlob();\n } else {\n return goog.fs.blob.getBlobWithProperties(Array.prototype.slice.call(arguments));\n }\n};\ngoog.fs.blob.getBlobWithProperties \x3d function(parts, opt_type, opt_endings) {\n const BlobBuilder \x3d goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;\n if (BlobBuilder !\x3d\x3d undefined) {\n const bb \x3d new BlobBuilder();\n for (let i \x3d 0; i \x3c parts.length; i++) {\n bb.append(parts[i], opt_endings);\n }\n return bb.getBlob(opt_type);\n } else if (goog.global.Blob !\x3d\x3d undefined) {\n const properties \x3d {};\n if (opt_type) {\n properties[\x22type\x22] \x3d opt_type;\n }\n if (opt_endings) {\n properties[\x22endings\x22] \x3d opt_endings;\n }\n return new Blob(parts, properties);\n } else {\n throw new Error(\x22This browser doesn\x27t seem to support creating Blobs\x22);\n }\n};\n");
SHADOW_ENV.evalLoad("goog.html.trustedresourceurl.js", true, "goog.provide(\x22goog.html.TrustedResourceUrl\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.fs.blob\x22);\ngoog.require(\x22goog.fs.url\x22);\ngoog.require(\x22goog.html.SafeScript\x22);\ngoog.require(\x22goog.html.trustedtypes\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.string.TypedString\x22);\ngoog.html.TrustedResourceUrl \x3d class {\n constructor(value, token) {\n this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ \x3d token \x3d\x3d\x3d goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ ? value : \x22\x22;\n }\n toString() {\n return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ + \x22\x22;\n }\n};\ngoog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString \x3d true;\ngoog.html.TrustedResourceUrl.prototype.getTypedStringValue \x3d function() {\n return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString();\n};\ngoog.html.TrustedResourceUrl.prototype.cloneWithParams \x3d function(searchParams, opt_hashParams) {\n var url \x3d goog.html.TrustedResourceUrl.unwrap(this);\n var parts \x3d goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(url);\n var urlBase \x3d parts[1];\n var urlSearch \x3d parts[2] || \x22\x22;\n var urlHash \x3d parts[3] || \x22\x22;\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(urlBase + goog.html.TrustedResourceUrl.stringifyParams_(\x22?\x22, urlSearch, searchParams) + goog.html.TrustedResourceUrl.stringifyParams_(\x22#\x22, urlHash, opt_hashParams));\n};\ngoog.html.TrustedResourceUrl.unwrap \x3d function(trustedResourceUrl) {\n return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(trustedResourceUrl).toString();\n};\ngoog.html.TrustedResourceUrl.unwrapTrustedScriptURL \x3d function(trustedResourceUrl) {\n if (trustedResourceUrl instanceof goog.html.TrustedResourceUrl \x26\x26 trustedResourceUrl.constructor \x3d\x3d\x3d goog.html.TrustedResourceUrl) {\n return trustedResourceUrl.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;\n } else {\n goog.asserts.fail(\x22expected object of type TrustedResourceUrl, got \x27\x22 + trustedResourceUrl + \x22\x27 of type \x22 + goog.typeOf(trustedResourceUrl));\n return \x22type_error:TrustedResourceUrl\x22;\n }\n};\ngoog.html.TrustedResourceUrl.format \x3d function(format, args) {\n var formatStr \x3d goog.string.Const.unwrap(format);\n if (!goog.html.TrustedResourceUrl.BASE_URL_.test(formatStr)) {\n throw new Error(\x22Invalid TrustedResourceUrl format: \x22 + formatStr);\n }\n var result \x3d formatStr.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_, function(match, id) {\n if (!Object.prototype.hasOwnProperty.call(args, id)) {\n throw new Error(\x27Found marker, \x22\x27 + id + \x27\x22, in format string, \x22\x27 + formatStr + \x27\x22, but no valid label mapping found \x27 + \x22in args: \x22 + JSON.stringify(args));\n }\n var arg \x3d args[id];\n if (arg instanceof goog.string.Const) {\n return goog.string.Const.unwrap(arg);\n } else {\n return encodeURIComponent(String(arg));\n }\n });\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(result);\n};\ngoog.html.TrustedResourceUrl.FORMAT_MARKER_ \x3d /%{(\\w+)}/g;\ngoog.html.TrustedResourceUrl.BASE_URL_ \x3d new RegExp(\x22^((https:)?//[0-9a-z.:[\\\\]-]+/\x22 + \x22|/[^/\\\\\\\\]\x22 + \x22|[^:/\\\\\\\\%]+/\x22 + \x22|[^:/\\\\\\\\%]*[?#]\x22 + \x22|about:blank#\x22 + \x22)\x22, \x22i\x22);\ngoog.html.TrustedResourceUrl.URL_PARAM_PARSER_ \x3d /^([^?#]*)(\\?[^#]*)?(#[\\s\\S]*)?/;\ngoog.html.TrustedResourceUrl.formatWithParams \x3d function(format, args, searchParams, opt_hashParams) {\n var url \x3d goog.html.TrustedResourceUrl.format(format, args);\n return url.cloneWithParams(searchParams, opt_hashParams);\n};\ngoog.html.TrustedResourceUrl.fromConstant \x3d function(url) {\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(url));\n};\ngoog.html.TrustedResourceUrl.fromConstants \x3d function(parts) {\n var unwrapped \x3d \x22\x22;\n var i \x3d 0;\n for (; i \x3c parts.length; i++) {\n unwrapped \x3d unwrapped + goog.string.Const.unwrap(parts[i]);\n }\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(unwrapped);\n};\ngoog.html.TrustedResourceUrl.fromSafeScript \x3d function(safeScript) {\n var blob \x3d goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(safeScript)], \x22text/javascript\x22);\n var url \x3d goog.fs.url.createObjectUrl(blob);\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ \x3d {};\ngoog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse \x3d function(url) {\n const noinlineUrl \x3d url;\n const policy \x3d goog.html.trustedtypes.getPolicyPrivateDoNotAccessOrElse();\n const value \x3d policy ? policy.createScriptURL(noinlineUrl) : noinlineUrl;\n return new goog.html.TrustedResourceUrl(value, goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_);\n};\ngoog.html.TrustedResourceUrl.stringifyParams_ \x3d function(prefix, currentString, params) {\n if (params \x3d\x3d null) {\n return currentString;\n }\n if (typeof params \x3d\x3d\x3d \x22string\x22) {\n return params ? prefix + encodeURIComponent(params) : \x22\x22;\n }\n var key;\n for (key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n var value \x3d params[key];\n var outputValues \x3d Array.isArray(value) ? value : [value];\n var i \x3d 0;\n for (; i \x3c outputValues.length; i++) {\n var outputValue \x3d outputValues[i];\n if (outputValue !\x3d null) {\n if (!currentString) {\n currentString \x3d prefix;\n }\n currentString \x3d currentString + ((currentString.length \x3e prefix.length ? \x22\\x26\x22 : \x22\x22) + encodeURIComponent(key) + \x22\\x3d\x22 + encodeURIComponent(String(outputValue)));\n }\n }\n }\n }\n return currentString;\n};\n");
SHADOW_ENV.evalLoad("goog.string.internal.js", true, "goog.provide(\x22goog.string.internal\x22);\ngoog.string.internal.startsWith \x3d function(str, prefix) {\n return str.lastIndexOf(prefix, 0) \x3d\x3d 0;\n};\ngoog.string.internal.endsWith \x3d function(str, suffix) {\n const l \x3d str.length - suffix.length;\n return l \x3e\x3d 0 \x26\x26 str.indexOf(suffix, l) \x3d\x3d l;\n};\ngoog.string.internal.caseInsensitiveStartsWith \x3d function(str, prefix) {\n return goog.string.internal.caseInsensitiveCompare(prefix, str.slice(0, prefix.length)) \x3d\x3d 0;\n};\ngoog.string.internal.caseInsensitiveEndsWith \x3d function(str, suffix) {\n return goog.string.internal.caseInsensitiveCompare(suffix, str.slice(str.length - suffix.length)) \x3d\x3d 0;\n};\ngoog.string.internal.caseInsensitiveEquals \x3d function(str1, str2) {\n return str1.toLowerCase() \x3d\x3d str2.toLowerCase();\n};\ngoog.string.internal.isEmptyOrWhitespace \x3d function(str) {\n return /^[\\s\\xa0]*$/.test(str);\n};\ngoog.string.internal.trim \x3d goog.TRUSTED_SITE \x26\x26 String.prototype.trim ? function(str) {\n return str.trim();\n} : function(str) {\n return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(str)[1];\n};\ngoog.string.internal.caseInsensitiveCompare \x3d function(str1, str2) {\n const test1 \x3d String(str1).toLowerCase();\n const test2 \x3d String(str2).toLowerCase();\n if (test1 \x3c test2) {\n return -1;\n } else if (test1 \x3d\x3d test2) {\n return 0;\n } else {\n return 1;\n }\n};\ngoog.string.internal.newLineToBr \x3d function(str, opt_xml) {\n return str.replace(/(\\r\\n|\\r|\\n)/g, opt_xml ? \x22\\x3cbr /\\x3e\x22 : \x22\\x3cbr\\x3e\x22);\n};\ngoog.string.internal.htmlEscape \x3d function(str, opt_isLikelyToContainHtmlChars) {\n if (opt_isLikelyToContainHtmlChars) {\n str \x3d str.replace(goog.string.internal.AMP_RE_, \x22\\x26amp;\x22).replace(goog.string.internal.LT_RE_, \x22\\x26lt;\x22).replace(goog.string.internal.GT_RE_, \x22\\x26gt;\x22).replace(goog.string.internal.QUOT_RE_, \x22\\x26quot;\x22).replace(goog.string.internal.SINGLE_QUOTE_RE_, \x22\\x26#39;\x22).replace(goog.string.internal.NULL_RE_, \x22\\x26#0;\x22);\n return str;\n } else {\n if (!goog.string.internal.ALL_RE_.test(str)) {\n return str;\n }\n if (str.indexOf(\x22\\x26\x22) !\x3d -1) {\n str \x3d str.replace(goog.string.internal.AMP_RE_, \x22\\x26amp;\x22);\n }\n if (str.indexOf(\x22\\x3c\x22) !\x3d -1) {\n str \x3d str.replace(goog.string.internal.LT_RE_, \x22\\x26lt;\x22);\n }\n if (str.indexOf(\x22\\x3e\x22) !\x3d -1) {\n str \x3d str.replace(goog.string.internal.GT_RE_, \x22\\x26gt;\x22);\n }\n if (str.indexOf(\x27\x22\x27) !\x3d -1) {\n str \x3d str.replace(goog.string.internal.QUOT_RE_, \x22\\x26quot;\x22);\n }\n if (str.indexOf(\x22\x27\x22) !\x3d -1) {\n str \x3d str.replace(goog.string.internal.SINGLE_QUOTE_RE_, \x22\\x26#39;\x22);\n }\n if (str.indexOf(\x22\\x00\x22) !\x3d -1) {\n str \x3d str.replace(goog.string.internal.NULL_RE_, \x22\\x26#0;\x22);\n }\n return str;\n }\n};\ngoog.string.internal.AMP_RE_ \x3d /\x26/g;\ngoog.string.internal.LT_RE_ \x3d /\x3c/g;\ngoog.string.internal.GT_RE_ \x3d /\x3e/g;\ngoog.string.internal.QUOT_RE_ \x3d /\x22/g;\ngoog.string.internal.SINGLE_QUOTE_RE_ \x3d /\x27/g;\ngoog.string.internal.NULL_RE_ \x3d /\\x00/g;\ngoog.string.internal.ALL_RE_ \x3d /[\\x00\x26\x3c\x3e\x22\x27]/;\ngoog.string.internal.whitespaceEscape \x3d function(str, opt_xml) {\n return goog.string.internal.newLineToBr(str.replace(/ /g, \x22 \\x26#160;\x22), opt_xml);\n};\ngoog.string.internal.contains \x3d function(str, subString) {\n return str.indexOf(subString) !\x3d -1;\n};\ngoog.string.internal.caseInsensitiveContains \x3d function(str, subString) {\n return goog.string.internal.contains(str.toLowerCase(), subString.toLowerCase());\n};\ngoog.string.internal.compareVersions \x3d function(version1, version2) {\n let order \x3d 0;\n const v1Subs \x3d goog.string.internal.trim(String(version1)).split(\x22.\x22);\n const v2Subs \x3d goog.string.internal.trim(String(version2)).split(\x22.\x22);\n const subCount \x3d Math.max(v1Subs.length, v2Subs.length);\n for (let subIdx \x3d 0; order \x3d\x3d 0 \x26\x26 subIdx \x3c subCount; subIdx++) {\n let v1Sub \x3d v1Subs[subIdx] || \x22\x22;\n let v2Sub \x3d v2Subs[subIdx] || \x22\x22;\n do {\n const v1Comp \x3d /(\\d*)(\\D*)(.*)/.exec(v1Sub) || [\x22\x22, \x22\x22, \x22\x22, \x22\x22];\n const v2Comp \x3d /(\\d*)(\\D*)(.*)/.exec(v2Sub) || [\x22\x22, \x22\x22, \x22\x22, \x22\x22];\n if (v1Comp[0].length \x3d\x3d 0 \x26\x26 v2Comp[0].length \x3d\x3d 0) {\n break;\n }\n const v1CompNum \x3d v1Comp[1].length \x3d\x3d 0 ? 0 : parseInt(v1Comp[1], 10);\n const v2CompNum \x3d v2Comp[1].length \x3d\x3d 0 ? 0 : parseInt(v2Comp[1], 10);\n order \x3d goog.string.internal.compareElements_(v1CompNum, v2CompNum) || goog.string.internal.compareElements_(v1Comp[2].length \x3d\x3d 0, v2Comp[2].length \x3d\x3d 0) || goog.string.internal.compareElements_(v1Comp[2], v2Comp[2]);\n v1Sub \x3d v1Comp[3];\n v2Sub \x3d v2Comp[3];\n } while (order \x3d\x3d 0);\n }\n return order;\n};\ngoog.string.internal.compareElements_ \x3d function(left, right) {\n if (left \x3c right) {\n return -1;\n } else if (left \x3e right) {\n return 1;\n }\n return 0;\n};\n");
SHADOW_ENV.evalLoad("goog.html.safeurl.js", true, "goog.provide(\x22goog.html.SafeUrl\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.fs.url\x22);\ngoog.require(\x22goog.html.TrustedResourceUrl\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.string.TypedString\x22);\ngoog.require(\x22goog.string.internal\x22);\ngoog.html.SafeUrl \x3d class {\n constructor(value, token) {\n this.privateDoNotAccessOrElseSafeUrlWrappedValue_ \x3d token \x3d\x3d\x3d goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ ? value : \x22\x22;\n }\n toString() {\n return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString();\n }\n};\ngoog.html.SafeUrl.INNOCUOUS_STRING \x3d \x22about:invalid#zClosurez\x22;\ngoog.html.SafeUrl.prototype.implementsGoogStringTypedString \x3d true;\ngoog.html.SafeUrl.prototype.getTypedStringValue \x3d function() {\n return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString();\n};\ngoog.html.SafeUrl.unwrap \x3d function(safeUrl) {\n if (safeUrl instanceof goog.html.SafeUrl \x26\x26 safeUrl.constructor \x3d\x3d\x3d goog.html.SafeUrl) {\n return safeUrl.privateDoNotAccessOrElseSafeUrlWrappedValue_;\n } else {\n goog.asserts.fail(\x22expected object of type SafeUrl, got \x27\x22 + safeUrl + \x22\x27 of type \x22 + goog.typeOf(safeUrl));\n return \x22type_error:SafeUrl\x22;\n }\n};\ngoog.html.SafeUrl.fromConstant \x3d function(url) {\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(url));\n};\ngoog.html.SAFE_MIME_TYPE_PATTERN_ \x3d new RegExp(\x22^(?:audio/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|\x22 + \x22font/\\\\w+|\x22 + \x22image/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon|heic|heif)|\x22 + \x22video/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))\x22 + \x27(?:;\\\\w+\\x3d(?:\\\\w+|\x22[\\\\w;,\\x3d ]+\x22))*$\x27, \x22i\x22);\ngoog.html.SafeUrl.isSafeMimeType \x3d function(mimeType) {\n return goog.html.SAFE_MIME_TYPE_PATTERN_.test(mimeType);\n};\ngoog.html.SafeUrl.fromBlob \x3d function(blob) {\n var url \x3d goog.html.SafeUrl.isSafeMimeType(blob.type) ? goog.fs.url.createObjectUrl(blob) : goog.html.SafeUrl.INNOCUOUS_STRING;\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.SafeUrl.revokeObjectUrl \x3d function(safeUrl) {\n var url \x3d safeUrl.getTypedStringValue();\n if (url !\x3d\x3d goog.html.SafeUrl.INNOCUOUS_STRING) {\n goog.fs.url.revokeObjectUrl(url);\n }\n};\ngoog.html.SafeUrl.fromMediaSource \x3d function(mediaSource) {\n goog.asserts.assert(\x22MediaSource\x22 in goog.global, \x22No support for MediaSource\x22);\n const url \x3d mediaSource instanceof MediaSource ? goog.fs.url.createObjectUrl(mediaSource) : goog.html.SafeUrl.INNOCUOUS_STRING;\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.DATA_URL_PATTERN_ \x3d /^data:(.*);base64,[a-z0-9+\\/]+\x3d*$/i;\ngoog.html.SafeUrl.tryFromDataUrl \x3d function(dataUrl) {\n dataUrl \x3d String(dataUrl);\n var filteredDataUrl \x3d dataUrl.replace(/(%0A|%0D)/g, \x22\x22);\n var match \x3d filteredDataUrl.match(goog.html.DATA_URL_PATTERN_);\n if (match) {\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(filteredDataUrl);\n }\n return null;\n};\ngoog.html.SafeUrl.fromDataUrl \x3d function(dataUrl) {\n return goog.html.SafeUrl.tryFromDataUrl(dataUrl) || goog.html.SafeUrl.INNOCUOUS_URL;\n};\ngoog.html.SafeUrl.fromTelUrl \x3d function(telUrl) {\n if (!goog.string.internal.caseInsensitiveStartsWith(telUrl, \x22tel:\x22)) {\n telUrl \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(telUrl);\n};\ngoog.html.SIP_URL_PATTERN_ \x3d new RegExp(\x22^sip[s]?:[+a-z0-9_.!$%\\x26\x27*\\\\/\\x3d^`{|}~-]+@([a-z0-9-]+\\\\.)+[a-z0-9]{2,63}$\x22, \x22i\x22);\ngoog.html.SafeUrl.fromSipUrl \x3d function(sipUrl) {\n if (!goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(sipUrl))) {\n sipUrl \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(sipUrl);\n};\ngoog.html.SafeUrl.fromFacebookMessengerUrl \x3d function(facebookMessengerUrl) {\n if (!goog.string.internal.caseInsensitiveStartsWith(facebookMessengerUrl, \x22fb-messenger://share\x22)) {\n facebookMessengerUrl \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(facebookMessengerUrl);\n};\ngoog.html.SafeUrl.fromWhatsAppUrl \x3d function(whatsAppUrl) {\n if (!goog.string.internal.caseInsensitiveStartsWith(whatsAppUrl, \x22whatsapp://send\x22)) {\n whatsAppUrl \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(whatsAppUrl);\n};\ngoog.html.SafeUrl.fromSmsUrl \x3d function(smsUrl) {\n if (!goog.string.internal.caseInsensitiveStartsWith(smsUrl, \x22sms:\x22) || !goog.html.SafeUrl.isSmsUrlBodyValid_(smsUrl)) {\n smsUrl \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(smsUrl);\n};\ngoog.html.SafeUrl.isSmsUrlBodyValid_ \x3d function(smsUrl) {\n var hash \x3d smsUrl.indexOf(\x22#\x22);\n if (hash \x3e 0) {\n smsUrl \x3d smsUrl.substring(0, hash);\n }\n var bodyParams \x3d smsUrl.match(/[?\x26]body\x3d/gi);\n if (!bodyParams) {\n return true;\n }\n if (bodyParams.length \x3e 1) {\n return false;\n }\n var bodyValue \x3d smsUrl.match(/[?\x26]body\x3d([^\x26]*)/)[1];\n if (!bodyValue) {\n return true;\n }\n try {\n decodeURIComponent(bodyValue);\n } catch (error) {\n return false;\n }\n return /^(?:[a-z0-9\\-_.~]|%[0-9a-f]{2})+$/i.test(bodyValue);\n};\ngoog.html.SafeUrl.fromSshUrl \x3d function(sshUrl) {\n if (!goog.string.internal.caseInsensitiveStartsWith(sshUrl, \x22ssh://\x22)) {\n sshUrl \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(sshUrl);\n};\ngoog.html.SafeUrl.sanitizeChromeExtensionUrl \x3d function(url, extensionId) {\n return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\\/\\/([^\\/]+)\\//, url, extensionId);\n};\ngoog.html.SafeUrl.sanitizeFirefoxExtensionUrl \x3d function(url, extensionId) {\n return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\\/\\/([^\\/]+)\\//, url, extensionId);\n};\ngoog.html.SafeUrl.sanitizeEdgeExtensionUrl \x3d function(url, extensionId) {\n return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\\/\\/([^\\/]+)\\//, url, extensionId);\n};\ngoog.html.SafeUrl.sanitizeExtensionUrl_ \x3d function(scheme, url, extensionId) {\n var matches \x3d scheme.exec(url);\n if (!matches) {\n url \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n } else {\n var extractedExtensionId \x3d matches[1];\n var acceptedExtensionIds;\n if (extensionId instanceof goog.string.Const) {\n acceptedExtensionIds \x3d [goog.string.Const.unwrap(extensionId)];\n } else {\n acceptedExtensionIds \x3d extensionId.map(function unwrap(x) {\n return goog.string.Const.unwrap(x);\n });\n }\n if (acceptedExtensionIds.indexOf(extractedExtensionId) \x3d\x3d -1) {\n url \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.SafeUrl.fromTrustedResourceUrl \x3d function(trustedResourceUrl) {\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(trustedResourceUrl));\n};\ngoog.html.SAFE_URL_PATTERN_ \x3d /^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;\ngoog.html.SafeUrl.SAFE_URL_PATTERN \x3d goog.html.SAFE_URL_PATTERN_;\ngoog.html.SafeUrl.trySanitize \x3d function(url) {\n if (url instanceof goog.html.SafeUrl) {\n return url;\n }\n if (typeof url \x3d\x3d \x22object\x22 \x26\x26 url.implementsGoogStringTypedString) {\n url \x3d url.getTypedStringValue();\n } else {\n url \x3d String(url);\n }\n if (!goog.html.SAFE_URL_PATTERN_.test(url)) {\n return goog.html.SafeUrl.tryFromDataUrl(url);\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.SafeUrl.sanitize \x3d function(url) {\n return goog.html.SafeUrl.trySanitize(url) || goog.html.SafeUrl.INNOCUOUS_URL;\n};\ngoog.html.SafeUrl.sanitizeAssertUnchanged \x3d function(url, opt_allowDataUrl) {\n if (url instanceof goog.html.SafeUrl) {\n return url;\n } else if (typeof url \x3d\x3d \x22object\x22 \x26\x26 url.implementsGoogStringTypedString) {\n url \x3d url.getTypedStringValue();\n } else {\n url \x3d String(url);\n }\n if (opt_allowDataUrl \x26\x26 /^data:/i.test(url)) {\n var safeUrl \x3d goog.html.SafeUrl.fromDataUrl(url);\n if (safeUrl.getTypedStringValue() \x3d\x3d url) {\n return safeUrl;\n }\n }\n if (!goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(url), \x22%s does not match the safe URL pattern\x22, url)) {\n url \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.SafeUrl.extractScheme \x3d function(url) {\n let parsedUrl;\n try {\n parsedUrl \x3d new URL(url);\n } catch (e) {\n return \x22https:\x22;\n }\n return parsedUrl.protocol;\n};\ngoog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged \x3d function(url) {\n if (url instanceof goog.html.SafeUrl) {\n return url;\n } else if (typeof url \x3d\x3d \x22object\x22 \x26\x26 url.implementsGoogStringTypedString) {\n url \x3d url.getTypedStringValue();\n } else {\n url \x3d String(url);\n }\n const parsedScheme \x3d goog.html.SafeUrl.extractScheme(url);\n if (!goog.asserts.assert(parsedScheme !\x3d\x3d \x22javascript:\x22, \x22%s is a javascript: URL\x22, url)) {\n url \x3d goog.html.SafeUrl.INNOCUOUS_STRING;\n }\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ \x3d {};\ngoog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse \x3d function(url) {\n return new goog.html.SafeUrl(url, goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_);\n};\ngoog.html.SafeUrl.INNOCUOUS_URL \x3d goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.SafeUrl.INNOCUOUS_STRING);\ngoog.html.SafeUrl.ABOUT_BLANK \x3d goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(\x22about:blank\x22);\n");
SHADOW_ENV.evalLoad("goog.html.safestyle.js", true, "goog.loadModule(function(exports) {\n function sanitizePropertyValue(value) {\n if (value instanceof SafeUrl) {\n const url \x3d SafeUrl.unwrap(value);\n return \x27url(\x22\x27 + url.replace(/\x3c/g, \x22%3c\x22).replace(/[\\\\\x22]/g, \x22\\\\$\\x26\x22) + \x27\x22)\x27;\n }\n const result \x3d value instanceof Const ? Const.unwrap(value) : sanitizePropertyValueString(String(value));\n if (/[{;}]/.test(result)) {\n throw new AssertionError(\x22Value does not allow [{;}], got: %s.\x22, [result]);\n }\n return result;\n }\n function sanitizePropertyValueString(value) {\n const valueWithoutFunctions \x3d value.replace(FUNCTIONS_RE, \x22$1\x22).replace(FUNCTIONS_RE, \x22$1\x22).replace(URL_RE, \x22url\x22);\n if (!VALUE_RE.test(valueWithoutFunctions)) {\n fail(`String value allows only ${VALUE_ALLOWED_CHARS}` + \x22 and simple functions, got: \x22 + value);\n return SafeStyle.INNOCUOUS_STRING;\n } else if (COMMENT_RE.test(value)) {\n fail(`String value disallows comments, got: ${value}`);\n return SafeStyle.INNOCUOUS_STRING;\n } else if (!hasBalancedQuotes(value)) {\n fail(`String value requires balanced quotes, got: ${value}`);\n return SafeStyle.INNOCUOUS_STRING;\n } else if (!hasBalancedSquareBrackets(value)) {\n fail(\x22String value requires balanced square brackets and one\x22 + \x22 identifier per pair of brackets, got: \x22 + value);\n return SafeStyle.INNOCUOUS_STRING;\n }\n return sanitizeUrl(value);\n }\n function hasBalancedQuotes(value) {\n let outsideSingle \x3d true;\n let outsideDouble \x3d true;\n for (let i \x3d 0; i \x3c value.length; i++) {\n const c \x3d value.charAt(i);\n if (c \x3d\x3d \x22\x27\x22 \x26\x26 outsideDouble) {\n outsideSingle \x3d !outsideSingle;\n } else if (c \x3d\x3d \x27\x22\x27 \x26\x26 outsideSingle) {\n outsideDouble \x3d !outsideDouble;\n }\n }\n return outsideSingle \x26\x26 outsideDouble;\n }\n function hasBalancedSquareBrackets(value) {\n let outside \x3d true;\n const tokenRe \x3d /^[-_a-zA-Z0-9]$/;\n for (let i \x3d 0; i \x3c value.length; i++) {\n const c \x3d value.charAt(i);\n if (c \x3d\x3d \x22]\x22) {\n if (outside) {\n return false;\n }\n outside \x3d true;\n } else if (c \x3d\x3d \x22[\x22) {\n if (!outside) {\n return false;\n }\n outside \x3d false;\n } else if (!outside \x26\x26 !tokenRe.test(c)) {\n return false;\n }\n }\n return outside;\n }\n function sanitizeUrl(value) {\n return value.replace(URL_RE, (match, before, url, after) \x3d\x3e {\n let quote \x3d \x22\x22;\n url \x3d url.replace(/^([\x27\x22])(.*)\\1$/, (match, start, inside) \x3d\x3e {\n quote \x3d start;\n return inside;\n });\n const sanitized \x3d SafeUrl.sanitize(url).getTypedStringValue();\n return before + quote + sanitized + quote + after;\n });\n }\n \x22use strict\x22;\n goog.module(\x22goog.html.SafeStyle\x22);\n goog.module.declareLegacyNamespace();\n const Const \x3d goog.require(\x22goog.string.Const\x22);\n const SafeUrl \x3d goog.require(\x22goog.html.SafeUrl\x22);\n const TypedString \x3d goog.require(\x22goog.string.TypedString\x22);\n const {AssertionError, assert, fail} \x3d goog.require(\x22goog.asserts\x22);\n const {contains, endsWith} \x3d goog.require(\x22goog.string.internal\x22);\n const CONSTRUCTOR_TOKEN_PRIVATE \x3d {};\n class SafeStyle {\n constructor(value, token) {\n this.privateDoNotAccessOrElseSafeStyleWrappedValue_ \x3d token \x3d\x3d\x3d CONSTRUCTOR_TOKEN_PRIVATE ? value : \x22\x22;\n this.implementsGoogStringTypedString \x3d true;\n }\n static fromConstant(style) {\n const styleString \x3d Const.unwrap(style);\n if (styleString.length \x3d\x3d\x3d 0) {\n return SafeStyle.EMPTY;\n }\n assert(endsWith(styleString, \x22;\x22), `Last character of style string is not \x27;\x27: ${styleString}`);\n assert(contains(styleString, \x22:\x22), \x22Style string must contain at least one \x27:\x27, to \x22 + \x27specify a \x22name: value\x22 pair: \x27 + styleString);\n return SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(styleString);\n }\n getTypedStringValue() {\n return this.privateDoNotAccessOrElseSafeStyleWrappedValue_;\n }\n toString() {\n return this.privateDoNotAccessOrElseSafeStyleWrappedValue_.toString();\n }\n static unwrap(safeStyle) {\n if (safeStyle instanceof SafeStyle \x26\x26 safeStyle.constructor \x3d\x3d\x3d SafeStyle) {\n return safeStyle.privateDoNotAccessOrElseSafeStyleWrappedValue_;\n } else {\n fail(`expected object of type SafeStyle, got \x27${safeStyle}` + \x22\x27 of type \x22 + goog.typeOf(safeStyle));\n return \x22type_error:SafeStyle\x22;\n }\n }\n static createSafeStyleSecurityPrivateDoNotAccessOrElse(style) {\n return new SafeStyle(style, CONSTRUCTOR_TOKEN_PRIVATE);\n }\n static create(map) {\n let style \x3d \x22\x22;\n for (let name in map) {\n if (Object.prototype.hasOwnProperty.call(map, name)) {\n if (!/^[-_a-zA-Z0-9]+$/.test(name)) {\n throw new Error(`Name allows only [-_a-zA-Z0-9], got: ${name}`);\n }\n let value \x3d map[name];\n if (value \x3d\x3d null) {\n continue;\n }\n if (Array.isArray(value)) {\n value \x3d value.map(sanitizePropertyValue).join(\x22 \x22);\n } else {\n value \x3d sanitizePropertyValue(value);\n }\n style \x3d style + `${name}:${value};`;\n }\n }\n if (!style) {\n return SafeStyle.EMPTY;\n }\n return SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(style);\n }\n static concat(var_args) {\n let style \x3d \x22\x22;\n const addArgument \x3d argument \x3d\x3e {\n if (Array.isArray(argument)) {\n argument.forEach(addArgument);\n } else {\n style \x3d style + SafeStyle.unwrap(argument);\n }\n };\n Array.prototype.forEach.call(arguments, addArgument);\n if (!style) {\n return SafeStyle.EMPTY;\n }\n return SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(style);\n }\n }\n SafeStyle.EMPTY \x3d SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(\x22\x22);\n SafeStyle.INNOCUOUS_STRING \x3d \x22zClosurez\x22;\n SafeStyle.PropertyValue;\n SafeStyle.PropertyMap;\n const VALUE_ALLOWED_CHARS \x3d \x22[-+,.\\\x22\x27%_!#/ a-zA-Z0-9\\\\[\\\\]]\x22;\n const VALUE_RE \x3d new RegExp(`^${VALUE_ALLOWED_CHARS}+\\$`);\n const URL_RE \x3d new RegExp(\x22\\\\b(url\\\\([ \\t\\n]*)(\x22 + \x22\x27[ -\\x26(-\\\\[\\\\]-~]*\x27\x22 + \x27|\x22[ !#-\\\\[\\\\]-~]*\x22\x27 + \x22|[!#-\\x26*-\\\\[\\\\]-~]*\x22 + \x22)([ \\t\\n]*\\\\))\x22, \x22g\x22);\n const ALLOWED_FUNCTIONS \x3d [\x22calc\x22, \x22cubic-bezier\x22, \x22fit-content\x22, \x22hsl\x22, \x22hsla\x22, \x22linear-gradient\x22, \x22matrix\x22, \x22minmax\x22, \x22radial-gradient\x22, \x22repeat\x22, \x22rgb\x22, \x22rgba\x22, \x22(rotate|scale|translate)(X|Y|Z|3d)?\x22, \x22steps\x22, \x22var\x22];\n const FUNCTIONS_RE \x3d new RegExp(\x22\\\\b(\x22 + ALLOWED_FUNCTIONS.join(\x22|\x22) + \x22)\x22 + \x22\\\\([-+*/0-9a-zA-Z.%#\\\\[\\\\], ]+\\\\)\x22, \x22g\x22);\n const COMMENT_RE \x3d /\\/\\*/;\n exports \x3d SafeStyle;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.object.object.js", true, "goog.loadModule(function(exports) {\n function forEach(obj, f, opt_obj) {\n for (const key in obj) {\n f.call(opt_obj, obj[key], key, obj);\n }\n }\n function filter(obj, f, opt_obj) {\n const res \x3d {};\n for (const key in obj) {\n if (f.call(opt_obj, obj[key], key, obj)) {\n res[key] \x3d obj[key];\n }\n }\n return res;\n }\n function map(obj, f, opt_obj) {\n const res \x3d {};\n for (const key in obj) {\n res[key] \x3d f.call(opt_obj, obj[key], key, obj);\n }\n return res;\n }\n function some(obj, f, opt_obj) {\n for (const key in obj) {\n if (f.call(opt_obj, obj[key], key, obj)) {\n return true;\n }\n }\n return false;\n }\n function every(obj, f, opt_obj) {\n for (const key in obj) {\n if (!f.call(opt_obj, obj[key], key, obj)) {\n return false;\n }\n }\n return true;\n }\n function getCount(obj) {\n let rv \x3d 0;\n for (const key in obj) {\n rv++;\n }\n return rv;\n }\n function getAnyKey(obj) {\n for (const key in obj) {\n return key;\n }\n }\n function getAnyValue(obj) {\n for (const key in obj) {\n return obj[key];\n }\n }\n function contains(obj, val) {\n return containsValue(obj, val);\n }\n function getValues(obj) {\n const res \x3d [];\n let i \x3d 0;\n for (const key in obj) {\n res[i++] \x3d obj[key];\n }\n return res;\n }\n function getKeys(obj) {\n const res \x3d [];\n let i \x3d 0;\n for (const key in obj) {\n res[i++] \x3d key;\n }\n return res;\n }\n function getValueByKeys(obj, var_args) {\n const isArrayLike \x3d goog.isArrayLike(var_args);\n const keys \x3d isArrayLike ? var_args : arguments;\n for (let i \x3d isArrayLike ? 0 : 1; i \x3c keys.length; i++) {\n if (obj \x3d\x3d null) {\n return undefined;\n }\n obj \x3d obj[keys[i]];\n }\n return obj;\n }\n function containsKey(obj, key) {\n return obj !\x3d\x3d null \x26\x26 key in obj;\n }\n function containsValue(obj, val) {\n for (const key in obj) {\n if (obj[key] \x3d\x3d val) {\n return true;\n }\n }\n return false;\n }\n function findKey(obj, f, thisObj \x3d undefined) {\n for (const key in obj) {\n if (f.call(thisObj, obj[key], key, obj)) {\n return key;\n }\n }\n return undefined;\n }\n function findValue(obj, f, thisObj \x3d undefined) {\n const key \x3d findKey(obj, f, thisObj);\n return key \x26\x26 obj[key];\n }\n function isEmpty(obj) {\n for (const key in obj) {\n return false;\n }\n return true;\n }\n function clear(obj) {\n for (const i in obj) {\n delete obj[i];\n }\n }\n function remove(obj, key) {\n let rv;\n if (rv \x3d key in obj) {\n delete obj[key];\n }\n return rv;\n }\n function add(obj, key, val) {\n if (obj !\x3d\x3d null \x26\x26 key in obj) {\n throw new Error(`The object already contains the key \x22${key}\x22`);\n }\n set(obj, key, val);\n }\n function get(obj, key, val \x3d undefined) {\n if (obj !\x3d\x3d null \x26\x26 key in obj) {\n return obj[key];\n }\n return val;\n }\n function set(obj, key, value) {\n obj[key] \x3d value;\n }\n function setIfUndefined(obj, key, value) {\n return key in obj ? obj[key] : obj[key] \x3d value;\n }\n function setWithReturnValueIfNotSet(obj, key, f) {\n if (key in obj) {\n return obj[key];\n }\n const val \x3d f();\n obj[key] \x3d val;\n return val;\n }\n function equals(a, b) {\n for (const k in a) {\n if (!(k in b) || a[k] !\x3d\x3d b[k]) {\n return false;\n }\n }\n for (const k in b) {\n if (!(k in a)) {\n return false;\n }\n }\n return true;\n }\n function clone(obj) {\n const res \x3d {};\n for (const key in obj) {\n res[key] \x3d obj[key];\n }\n return res;\n }\n function unsafeClone(obj) {\n if (!obj || typeof obj !\x3d\x3d \x22object\x22) {\n return obj;\n }\n if (typeof obj.clone \x3d\x3d\x3d \x22function\x22) {\n return obj.clone();\n }\n if (typeof Map !\x3d\x3d \x22undefined\x22 \x26\x26 obj instanceof Map) {\n return new Map(obj);\n } else if (typeof Set !\x3d\x3d \x22undefined\x22 \x26\x26 obj instanceof Set) {\n return new Set(obj);\n } else if (obj instanceof Date) {\n return new Date(obj.getTime());\n }\n const clone \x3d Array.isArray(obj) ? [] : typeof ArrayBuffer \x3d\x3d\x3d \x22function\x22 \x26\x26 typeof ArrayBuffer.isView \x3d\x3d\x3d \x22function\x22 \x26\x26 ArrayBuffer.isView(obj) \x26\x26 !(obj instanceof DataView) ? new obj.constructor(obj.length) : {};\n for (const key in obj) {\n clone[key] \x3d unsafeClone(obj[key]);\n }\n return clone;\n }\n function transpose(obj) {\n const transposed \x3d {};\n for (const key in obj) {\n transposed[obj[key]] \x3d key;\n }\n return transposed;\n }\n function extend(target, var_args) {\n let key;\n let source;\n for (let i \x3d 1; i \x3c arguments.length; i++) {\n source \x3d arguments[i];\n for (key in source) {\n target[key] \x3d source[key];\n }\n for (let j \x3d 0; j \x3c PROTOTYPE_FIELDS.length; j++) {\n key \x3d PROTOTYPE_FIELDS[j];\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] \x3d source[key];\n }\n }\n }\n }\n function create(var_args) {\n const argLength \x3d arguments.length;\n if (argLength \x3d\x3d 1 \x26\x26 Array.isArray(arguments[0])) {\n return create.apply(null, arguments[0]);\n }\n if (argLength % 2) {\n throw new Error(\x22Uneven number of arguments\x22);\n }\n const rv \x3d {};\n for (let i \x3d 0; i \x3c argLength; i \x3d i + 2) {\n rv[arguments[i]] \x3d arguments[i + 1];\n }\n return rv;\n }\n function createSet(var_args) {\n const argLength \x3d arguments.length;\n if (argLength \x3d\x3d 1 \x26\x26 Array.isArray(arguments[0])) {\n return createSet.apply(null, arguments[0]);\n }\n const rv \x3d {};\n for (let i \x3d 0; i \x3c argLength; i++) {\n rv[arguments[i]] \x3d true;\n }\n return rv;\n }\n function createImmutableView(obj) {\n let result \x3d obj;\n if (Object.isFrozen \x26\x26 !Object.isFrozen(obj)) {\n result \x3d Object.create(obj);\n Object.freeze(result);\n }\n return result;\n }\n function isImmutableView(obj) {\n return !!Object.isFrozen \x26\x26 Object.isFrozen(obj);\n }\n function getAllPropertyNames(obj, includeObjectPrototype \x3d undefined, includeFunctionPrototype \x3d undefined) {\n if (!obj) {\n return [];\n }\n if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {\n return getKeys(obj);\n }\n const visitedSet \x3d {};\n let proto \x3d obj;\n for (; proto \x26\x26 (proto !\x3d\x3d Object.prototype || !!includeObjectPrototype) \x26\x26 (proto !\x3d\x3d Function.prototype || !!includeFunctionPrototype);) {\n const names \x3d Object.getOwnPropertyNames(proto);\n for (let i \x3d 0; i \x3c names.length; i++) {\n visitedSet[names[i]] \x3d true;\n }\n proto \x3d Object.getPrototypeOf(proto);\n }\n return getKeys(visitedSet);\n }\n function getSuperClass(constructor) {\n const proto \x3d Object.getPrototypeOf(constructor.prototype);\n return proto \x26\x26 proto.constructor;\n }\n \x22use strict\x22;\n goog.module(\x22goog.object\x22);\n goog.module.declareLegacyNamespace();\n const PROTOTYPE_FIELDS \x3d [\x22constructor\x22, \x22hasOwnProperty\x22, \x22isPrototypeOf\x22, \x22propertyIsEnumerable\x22, \x22toLocaleString\x22, \x22toString\x22, \x22valueOf\x22];\n exports \x3d {add, clear, clone, contains, containsKey, containsValue, create, createImmutableView, createSet, equals, every, extend, filter, findKey, findValue, forEach, get, getAllPropertyNames, getAnyKey, getAnyValue, getCount, getKeys, getSuperClass, getValueByKeys, getValues, isEmpty, isImmutableView, map, remove, set, setIfUndefined, setWithReturnValueIfNotSet, some, transpose, unsafeClone};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.html.safestylesheet.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.html.SafeStyleSheet\x22);\n goog.module.declareLegacyNamespace();\n const Const \x3d goog.require(\x22goog.string.Const\x22);\n const SafeStyle \x3d goog.require(\x22goog.html.SafeStyle\x22);\n const TypedString \x3d goog.require(\x22goog.string.TypedString\x22);\n const googObject \x3d goog.require(\x22goog.object\x22);\n const {assert, fail} \x3d goog.require(\x22goog.asserts\x22);\n const {contains} \x3d goog.require(\x22goog.string.internal\x22);\n const CONSTRUCTOR_TOKEN_PRIVATE \x3d {};\n class SafeStyleSheet {\n constructor(value, token) {\n this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ \x3d token \x3d\x3d\x3d CONSTRUCTOR_TOKEN_PRIVATE ? value : \x22\x22;\n this.implementsGoogStringTypedString \x3d true;\n }\n toString() {\n return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_.toString();\n }\n static createRule(selector, style) {\n if (contains(selector, \x22\\x3c\x22)) {\n throw new Error(`Selector does not allow \x27\x3c\x27, got: ${selector}`);\n }\n const selectorToCheck \x3d selector.replace(/(\x27|\x22)((?!\\1)[^\\r\\n\\f\\\\]|\\\\[\\s\\S])*\\1/g, \x22\x22);\n if (!/^[-_a-zA-Z0-9#.:* ,\x3e+~[\\]()\x3d^$|]+$/.test(selectorToCheck)) {\n throw new Error(\x22Selector allows only [-_a-zA-Z0-9#.:* ,\\x3e+~[\\\\]()\\x3d^$|] and \x22 + \x22strings, got: \x22 + selector);\n }\n if (!SafeStyleSheet.hasBalancedBrackets_(selectorToCheck)) {\n throw new Error(\x22() and [] in selector must be balanced, got: \x22 + selector);\n }\n if (!(style instanceof SafeStyle)) {\n style \x3d SafeStyle.create(style);\n }\n const styleSheet \x3d `${selector}{` + SafeStyle.unwrap(style).replace(/\x3c/g, \x22\\\\3C \x22) + \x22}\x22;\n return SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(styleSheet);\n }\n static hasBalancedBrackets_(s) {\n const brackets \x3d {\x22(\x22:\x22)\x22, \x22[\x22:\x22]\x22};\n const expectedBrackets \x3d [];\n for (let i \x3d 0; i \x3c s.length; i++) {\n const ch \x3d s[i];\n if (brackets[ch]) {\n expectedBrackets.push(brackets[ch]);\n } else if (googObject.contains(brackets, ch)) {\n if (expectedBrackets.pop() !\x3d ch) {\n return false;\n }\n }\n }\n return expectedBrackets.length \x3d\x3d 0;\n }\n static concat(var_args) {\n let result \x3d \x22\x22;\n const addArgument \x3d argument \x3d\x3e {\n if (Array.isArray(argument)) {\n argument.forEach(addArgument);\n } else {\n result \x3d result + SafeStyleSheet.unwrap(argument);\n }\n };\n Array.prototype.forEach.call(arguments, addArgument);\n return SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(result);\n }\n static fromConstant(styleSheet) {\n const styleSheetString \x3d Const.unwrap(styleSheet);\n if (styleSheetString.length \x3d\x3d\x3d 0) {\n return SafeStyleSheet.EMPTY;\n }\n assert(!contains(styleSheetString, \x22\\x3c\x22), `Forbidden \x27\x3c\x27 character in style sheet string: ${styleSheetString}`);\n return SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(styleSheetString);\n }\n getTypedStringValue() {\n return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;\n }\n static unwrap(safeStyleSheet) {\n if (safeStyleSheet instanceof SafeStyleSheet \x26\x26 safeStyleSheet.constructor \x3d\x3d\x3d SafeStyleSheet) {\n return safeStyleSheet.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;\n } else {\n fail(\x22expected object of type SafeStyleSheet, got \x27\x22 + safeStyleSheet + \x22\x27 of type \x22 + goog.typeOf(safeStyleSheet));\n return \x22type_error:SafeStyleSheet\x22;\n }\n }\n static createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(styleSheet) {\n return new SafeStyleSheet(styleSheet, CONSTRUCTOR_TOKEN_PRIVATE);\n }\n }\n SafeStyleSheet.EMPTY \x3d SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(\x22\x22);\n exports \x3d SafeStyleSheet;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.flags.flags.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.flags\x22);\n goog.module.declareLegacyNamespace();\n exports.USE_USER_AGENT_CLIENT_HINTS \x3d false;\n exports.ASYNC_THROW_ON_UNICODE_TO_BYTE \x3d false;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.useragent.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent\x22);\n goog.module.declareLegacyNamespace();\n const flags \x3d goog.require(\x22goog.flags\x22);\n const USE_CLIENT_HINTS_OVERRIDE \x3d goog.define(\x22goog.labs.userAgent.USE_CLIENT_HINTS_OVERRIDE\x22, \x22\x22);\n const USE_CLIENT_HINTS \x3d goog.define(\x22goog.labs.userAgent.USE_CLIENT_HINTS\x22, false);\n let forceClientHintsInTests \x3d false;\n exports.setUseClientHintsForTesting \x3d use \x3d\x3e {\n forceClientHintsInTests \x3d use;\n };\n const useClientHintsRuntimeOverride \x3d USE_CLIENT_HINTS_OVERRIDE ? !!goog.getObjectByName(USE_CLIENT_HINTS_OVERRIDE) : false;\n exports.useClientHints \x3d () \x3d\x3e {\n return flags.USE_USER_AGENT_CLIENT_HINTS || USE_CLIENT_HINTS || useClientHintsRuntimeOverride || forceClientHintsInTests;\n };\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.util.js", true, "goog.loadModule(function(exports) {\n function getNativeUserAgentString() {\n const navigator \x3d getNavigator();\n if (navigator) {\n const userAgent \x3d navigator.userAgent;\n if (userAgent) {\n return userAgent;\n }\n }\n return \x22\x22;\n }\n function getNativeUserAgentData() {\n const navigator \x3d getNavigator();\n if (navigator) {\n return navigator.userAgentData || null;\n }\n return null;\n }\n function getNavigator() {\n return goog.global.navigator;\n }\n function setUserAgent(userAgent \x3d undefined) {\n userAgentInternal \x3d typeof userAgent \x3d\x3d\x3d \x22string\x22 ? userAgent : getNativeUserAgentString();\n }\n function getUserAgent() {\n return userAgentInternal \x3d\x3d null ? getNativeUserAgentString() : userAgentInternal;\n }\n function setUserAgentData(userAgentData) {\n userAgentDataInternal \x3d userAgentData;\n }\n function resetUserAgentData() {\n userAgentDataInternal \x3d getNativeUserAgentData();\n }\n function getUserAgentData() {\n return userAgentDataInternal;\n }\n function matchUserAgentDataBrand(str) {\n if (!useClientHints()) {\n return false;\n }\n const data \x3d getUserAgentData();\n if (!data) {\n return false;\n }\n return data.brands.some(({brand}) \x3d\x3e {\n return brand \x26\x26 contains(brand, str);\n });\n }\n function matchUserAgent(str) {\n const userAgent \x3d getUserAgent();\n return contains(userAgent, str);\n }\n function matchUserAgentIgnoreCase(str) {\n const userAgent \x3d getUserAgent();\n return caseInsensitiveContains(userAgent, str);\n }\n function extractVersionTuples(userAgent) {\n const versionRegExp \x3d new RegExp(\x22([A-Z][\\\\w ]+)\x22 + \x22/\x22 + \x22([^\\\\s]+)\x22 + \x22\\\\s*\x22 + \x22(?:\\\\((.*?)\\\\))?\x22, \x22g\x22);\n const data \x3d [];\n let match;\n for (; match \x3d versionRegExp.exec(userAgent);) {\n data.push([match[1], match[2], match[3] || undefined]);\n }\n return data;\n }\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent.util\x22);\n goog.module.declareLegacyNamespace();\n const {caseInsensitiveContains, contains} \x3d goog.require(\x22goog.string.internal\x22);\n const {useClientHints} \x3d goog.require(\x22goog.labs.userAgent\x22);\n const ASSUME_CLIENT_HINTS_SUPPORT \x3d false;\n let userAgentInternal \x3d null;\n let userAgentDataInternal \x3d getNativeUserAgentData();\n exports \x3d {ASSUME_CLIENT_HINTS_SUPPORT, extractVersionTuples, getNativeUserAgentString, getUserAgent, getUserAgentData, matchUserAgent, matchUserAgentDataBrand, matchUserAgentIgnoreCase, resetUserAgentData, setUserAgent, setUserAgentData};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.highentropy.highentropyvalue.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent.highEntropy.highEntropyValue\x22);\n const util \x3d goog.require(\x22goog.labs.userAgent.util\x22);\n const {compareVersions} \x3d goog.require(\x22goog.string.internal\x22);\n class AsyncValue {\n getIfLoaded() {\n }\n load() {\n }\n }\n exports.AsyncValue \x3d AsyncValue;\n class HighEntropyValue {\n constructor(key) {\n this.key_ \x3d key;\n this.value_ \x3d undefined;\n this.promise_ \x3d undefined;\n this.pending_ \x3d false;\n }\n getIfLoaded() {\n const userAgentData \x3d util.getUserAgentData();\n if (!userAgentData) {\n return undefined;\n }\n return this.value_;\n }\n async load() {\n const userAgentData \x3d util.getUserAgentData();\n if (!userAgentData) {\n return undefined;\n }\n if (!this.promise_) {\n this.pending_ \x3d true;\n this.promise_ \x3d (async() \x3d\x3e {\n try {\n const dataValues \x3d await userAgentData.getHighEntropyValues([this.key_]);\n this.value_ \x3d dataValues[this.key_];\n return this.value_;\n } finally {\n this.pending_ \x3d false;\n }\n })();\n }\n return await this.promise_;\n }\n resetForTesting() {\n if (this.pending_) {\n throw new Error(\x22Unsafe call to resetForTesting\x22);\n }\n this.promise_ \x3d undefined;\n this.value_ \x3d undefined;\n this.pending_ \x3d false;\n }\n }\n exports.HighEntropyValue \x3d HighEntropyValue;\n class Version {\n constructor(versionString) {\n this.versionString_ \x3d versionString;\n }\n toVersionStringForLogging() {\n return this.versionString_;\n }\n isAtLeast(version) {\n return compareVersions(this.versionString_, version) \x3e\x3d 0;\n }\n }\n exports.Version \x3d Version;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.highentropy.highentropydata.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent.highEntropy.highEntropyData\x22);\n const {HighEntropyValue} \x3d goog.require(\x22goog.labs.userAgent.highEntropy.highEntropyValue\x22);\n const fullVersionList \x3d new HighEntropyValue(\x22fullVersionList\x22);\n exports.fullVersionList \x3d fullVersionList;\n const platformVersion \x3d new HighEntropyValue(\x22platformVersion\x22);\n exports.platformVersion \x3d platformVersion;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.browser.js", true, "goog.loadModule(function(exports) {\n function useUserAgentDataBrand(ignoreClientHintsFlag \x3d false) {\n if (util.ASSUME_CLIENT_HINTS_SUPPORT) {\n return true;\n }\n if (!ignoreClientHintsFlag \x26\x26 !useClientHints()) {\n return false;\n }\n const userAgentData \x3d util.getUserAgentData();\n return !!userAgentData \x26\x26 userAgentData.brands.length \x3e 0;\n }\n function hasFullVersionList() {\n return isAtLeast(Brand.CHROMIUM, 98);\n }\n function matchOpera() {\n if (useUserAgentDataBrand()) {\n return false;\n }\n return util.matchUserAgent(\x22Opera\x22);\n }\n function matchIE() {\n if (useUserAgentDataBrand()) {\n return false;\n }\n return util.matchUserAgent(\x22Trident\x22) || util.matchUserAgent(\x22MSIE\x22);\n }\n function matchEdgeHtml() {\n if (useUserAgentDataBrand()) {\n return false;\n }\n return util.matchUserAgent(\x22Edge\x22);\n }\n function matchEdgeChromium() {\n if (useUserAgentDataBrand()) {\n return util.matchUserAgentDataBrand(Brand.EDGE);\n }\n return util.matchUserAgent(\x22Edg/\x22);\n }\n function matchOperaChromium() {\n if (useUserAgentDataBrand()) {\n return util.matchUserAgentDataBrand(Brand.OPERA);\n }\n return util.matchUserAgent(\x22OPR\x22);\n }\n function matchFirefox() {\n return util.matchUserAgent(\x22Firefox\x22) || util.matchUserAgent(\x22FxiOS\x22);\n }\n function matchSafari() {\n return util.matchUserAgent(\x22Safari\x22) \x26\x26 !(matchChrome() || matchCoast() || matchOpera() || matchEdgeHtml() || matchEdgeChromium() || matchOperaChromium() || matchFirefox() || isSilk() || util.matchUserAgent(\x22Android\x22));\n }\n function matchCoast() {\n if (useUserAgentDataBrand()) {\n return false;\n }\n return util.matchUserAgent(\x22Coast\x22);\n }\n function matchIosWebview() {\n return (util.matchUserAgent(\x22iPad\x22) || util.matchUserAgent(\x22iPhone\x22)) \x26\x26 !matchSafari() \x26\x26 !matchChrome() \x26\x26 !matchCoast() \x26\x26 !matchFirefox() \x26\x26 util.matchUserAgent(\x22AppleWebKit\x22);\n }\n function matchChrome() {\n if (useUserAgentDataBrand()) {\n return util.matchUserAgentDataBrand(Brand.CHROMIUM);\n }\n return (util.matchUserAgent(\x22Chrome\x22) || util.matchUserAgent(\x22CriOS\x22)) \x26\x26 !matchEdgeHtml() || isSilk();\n }\n function matchAndroidBrowser() {\n return util.matchUserAgent(\x22Android\x22) \x26\x26 !(isChrome() || isFirefox() || isOpera() || isSilk());\n }\n function isSilk() {\n return util.matchUserAgent(\x22Silk\x22);\n }\n function createVersionMap(versionTuples) {\n const versionMap \x3d {};\n versionTuples.forEach(tuple \x3d\x3e {\n const key \x3d tuple[0];\n const value \x3d tuple[1];\n versionMap[key] \x3d value;\n });\n return keys \x3d\x3e {\n return versionMap[keys.find(key \x3d\x3e {\n return key in versionMap;\n })] || \x22\x22;\n };\n }\n function getVersion() {\n const userAgentString \x3d util.getUserAgent();\n if (isIE()) {\n return getIEVersion(userAgentString);\n }\n const versionTuples \x3d util.extractVersionTuples(userAgentString);\n const lookUpValueWithKeys \x3d createVersionMap(versionTuples);\n if (isOpera()) {\n return lookUpValueWithKeys([\x22Version\x22, \x22Opera\x22]);\n }\n if (isEdge()) {\n return lookUpValueWithKeys([\x22Edge\x22]);\n }\n if (isEdgeChromium()) {\n return lookUpValueWithKeys([\x22Edg\x22]);\n }\n if (isSilk()) {\n return lookUpValueWithKeys([\x22Silk\x22]);\n }\n if (isChrome()) {\n return lookUpValueWithKeys([\x22Chrome\x22, \x22CriOS\x22, \x22HeadlessChrome\x22]);\n }\n const tuple \x3d versionTuples[2];\n return tuple \x26\x26 tuple[1] || \x22\x22;\n }\n function isVersionOrHigher(version) {\n return compareVersions(getVersion(), version) \x3e\x3d 0;\n }\n function getIEVersion(userAgent) {\n const rv \x3d /rv: *([\\d\\.]*)/.exec(userAgent);\n if (rv \x26\x26 rv[1]) {\n return rv[1];\n }\n let version \x3d \x22\x22;\n const msie \x3d /MSIE +([\\d\\.]+)/.exec(userAgent);\n if (msie \x26\x26 msie[1]) {\n const tridentVersion \x3d /Trident\\/(\\d.\\d)/.exec(userAgent);\n if (msie[1] \x3d\x3d \x227.0\x22) {\n if (tridentVersion \x26\x26 tridentVersion[1]) {\n switch(tridentVersion[1]) {\n case \x224.0\x22:\n version \x3d \x228.0\x22;\n break;\n case \x225.0\x22:\n version \x3d \x229.0\x22;\n break;\n case \x226.0\x22:\n version \x3d \x2210.0\x22;\n break;\n case \x227.0\x22:\n version \x3d \x2211.0\x22;\n break;\n }\n } else {\n version \x3d \x227.0\x22;\n }\n } else {\n version \x3d msie[1];\n }\n }\n return version;\n }\n function getFullVersionFromUserAgentString(browser) {\n const userAgentString \x3d util.getUserAgent();\n if (browser \x3d\x3d\x3d Brand.IE) {\n return isIE() ? getIEVersion(userAgentString) : \x22\x22;\n }\n const versionTuples \x3d util.extractVersionTuples(userAgentString);\n const lookUpValueWithKeys \x3d createVersionMap(versionTuples);\n switch(browser) {\n case Brand.OPERA:\n if (isOpera()) {\n return lookUpValueWithKeys([\x22Version\x22, \x22Opera\x22]);\n } else if (isOperaChromium()) {\n return lookUpValueWithKeys([\x22OPR\x22]);\n }\n break;\n case Brand.EDGE:\n if (isEdge()) {\n return lookUpValueWithKeys([\x22Edge\x22]);\n } else if (isEdgeChromium()) {\n return lookUpValueWithKeys([\x22Edg\x22]);\n }\n break;\n case Brand.CHROMIUM:\n if (isChrome()) {\n return lookUpValueWithKeys([\x22Chrome\x22, \x22CriOS\x22, \x22HeadlessChrome\x22]);\n }\n break;\n }\n if (browser \x3d\x3d\x3d Brand.FIREFOX \x26\x26 isFirefox() || browser \x3d\x3d\x3d Brand.SAFARI \x26\x26 isSafari() || browser \x3d\x3d\x3d Brand.ANDROID_BROWSER \x26\x26 isAndroidBrowser() || browser \x3d\x3d\x3d Brand.SILK \x26\x26 isSilk()) {\n const tuple \x3d versionTuples[2];\n return tuple \x26\x26 tuple[1] || \x22\x22;\n }\n return \x22\x22;\n }\n function versionOf_(browser) {\n let versionParts;\n if (useUserAgentDataBrand() \x26\x26 browser !\x3d\x3d Brand.SILK) {\n const data \x3d util.getUserAgentData();\n const matchingBrand \x3d data.brands.find(({brand}) \x3d\x3e {\n return brand \x3d\x3d\x3d browser;\n });\n if (!matchingBrand || !matchingBrand.version) {\n return NaN;\n }\n versionParts \x3d matchingBrand.version.split(\x22.\x22);\n } else {\n const fullVersion \x3d getFullVersionFromUserAgentString(browser);\n if (fullVersion \x3d\x3d\x3d \x22\x22) {\n return NaN;\n }\n versionParts \x3d fullVersion.split(\x22.\x22);\n }\n if (versionParts.length \x3d\x3d\x3d 0) {\n return NaN;\n }\n const majorVersion \x3d versionParts[0];\n return Number(majorVersion);\n }\n function isAtLeast(brand, majorVersion) {\n assert(Math.floor(majorVersion) \x3d\x3d\x3d majorVersion, \x22Major version must be an integer\x22);\n return versionOf_(brand) \x3e\x3d majorVersion;\n }\n function isAtMost(brand, majorVersion) {\n assert(Math.floor(majorVersion) \x3d\x3d\x3d majorVersion, \x22Major version must be an integer\x22);\n return versionOf_(brand) \x3c\x3d majorVersion;\n }\n async function loadFullVersions() {\n if (useUserAgentDataBrand(true)) {\n await fullVersionList.load();\n }\n preUachHasLoaded \x3d true;\n }\n function fullVersionOf(browser) {\n let fallbackVersionString \x3d \x22\x22;\n if (!hasFullVersionList()) {\n fallbackVersionString \x3d getFullVersionFromUserAgentString(browser);\n }\n const useUach \x3d browser !\x3d\x3d Brand.SILK \x26\x26 useUserAgentDataBrand(true);\n if (useUach) {\n const data \x3d util.getUserAgentData();\n if (!data.brands.find(({brand}) \x3d\x3e {\n return brand \x3d\x3d\x3d browser;\n })) {\n return undefined;\n }\n } else if (fallbackVersionString \x3d\x3d\x3d \x22\x22) {\n return undefined;\n }\n return new HighEntropyBrandVersion(browser, useUach, fallbackVersionString);\n }\n function getVersionStringForLogging(browser) {\n if (useUserAgentDataBrand(true)) {\n const fullVersionObj \x3d fullVersionOf(browser);\n if (fullVersionObj) {\n const fullVersion \x3d fullVersionObj.getIfLoaded();\n if (fullVersion) {\n return fullVersion.toVersionStringForLogging();\n }\n const data \x3d util.getUserAgentData();\n const matchingBrand \x3d data.brands.find(({brand}) \x3d\x3e {\n return brand \x3d\x3d\x3d browser;\n });\n assertExists(matchingBrand);\n return matchingBrand.version;\n }\n return \x22\x22;\n } else {\n return getFullVersionFromUserAgentString(browser);\n }\n }\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent.browser\x22);\n goog.module.declareLegacyNamespace();\n const util \x3d goog.require(\x22goog.labs.userAgent.util\x22);\n const {AsyncValue, Version} \x3d goog.require(\x22goog.labs.userAgent.highEntropy.highEntropyValue\x22);\n const {assert, assertExists} \x3d goog.require(\x22goog.asserts\x22);\n const {compareVersions} \x3d goog.require(\x22goog.string.internal\x22);\n const {fullVersionList} \x3d goog.require(\x22goog.labs.userAgent.highEntropy.highEntropyData\x22);\n const {useClientHints} \x3d goog.require(\x22goog.labs.userAgent\x22);\n const Brand \x3d {ANDROID_BROWSER:\x22Android Browser\x22, CHROMIUM:\x22Chromium\x22, EDGE:\x22Microsoft Edge\x22, FIREFOX:\x22Firefox\x22, IE:\x22Internet Explorer\x22, OPERA:\x22Opera\x22, SAFARI:\x22Safari\x22, SILK:\x22Silk\x22};\n exports.Brand \x3d Brand;\n const isOpera \x3d matchOpera;\n exports.isOpera \x3d isOpera;\n const isIE \x3d matchIE;\n exports.isIE \x3d isIE;\n const isEdge \x3d matchEdgeHtml;\n exports.isEdge \x3d isEdge;\n const isEdgeChromium \x3d matchEdgeChromium;\n exports.isEdgeChromium \x3d isEdgeChromium;\n const isOperaChromium \x3d matchOperaChromium;\n exports.isOperaChromium \x3d isOperaChromium;\n const isFirefox \x3d matchFirefox;\n exports.isFirefox \x3d isFirefox;\n const isSafari \x3d matchSafari;\n exports.isSafari \x3d isSafari;\n const isCoast \x3d matchCoast;\n exports.isCoast \x3d isCoast;\n const isIosWebview \x3d matchIosWebview;\n exports.isIosWebview \x3d isIosWebview;\n const isChrome \x3d matchChrome;\n exports.isChrome \x3d isChrome;\n const isAndroidBrowser \x3d matchAndroidBrowser;\n exports.isAndroidBrowser \x3d isAndroidBrowser;\n exports.isSilk \x3d isSilk;\n exports.getVersion \x3d getVersion;\n exports.isVersionOrHigher \x3d isVersionOrHigher;\n exports.isAtLeast \x3d isAtLeast;\n exports.isAtMost \x3d isAtMost;\n class HighEntropyBrandVersion {\n constructor(brand, useUach, fallbackVersion) {\n this.brand_ \x3d brand;\n this.version_ \x3d new Version(fallbackVersion);\n this.useUach_ \x3d useUach;\n }\n getIfLoaded() {\n if (this.useUach_) {\n const loadedVersionList \x3d fullVersionList.getIfLoaded();\n if (loadedVersionList !\x3d\x3d undefined) {\n const matchingBrand \x3d loadedVersionList.find(({brand}) \x3d\x3e {\n return this.brand_ \x3d\x3d\x3d brand;\n });\n assertExists(matchingBrand);\n return new Version(matchingBrand.version);\n }\n }\n if (preUachHasLoaded) {\n return this.version_;\n }\n return;\n }\n async load() {\n if (this.useUach_) {\n const loadedVersionList \x3d await fullVersionList.load();\n if (loadedVersionList !\x3d\x3d undefined) {\n const matchingBrand \x3d loadedVersionList.find(({brand}) \x3d\x3e {\n return this.brand_ \x3d\x3d\x3d brand;\n });\n assertExists(matchingBrand);\n return new Version(matchingBrand.version);\n }\n } else {\n await 0;\n }\n preUachHasLoaded \x3d true;\n return this.version_;\n }\n }\n let preUachHasLoaded \x3d false;\n exports.loadFullVersions \x3d loadFullVersions;\n exports.resetForTesting \x3d () \x3d\x3e {\n preUachHasLoaded \x3d false;\n fullVersionList.resetForTesting();\n };\n exports.fullVersionOf \x3d fullVersionOf;\n exports.getVersionStringForLogging \x3d getVersionStringForLogging;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.array.array.js", true, "goog.loadModule(function(exports) {\n function peek(array) {\n return array[array.length - 1];\n }\n function forEachRight(arr, f, opt_obj) {\n const l \x3d arr.length;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d l - 1; i \x3e\x3d 0; --i) {\n if (i in arr2) {\n f.call(opt_obj, arr2[i], i, arr);\n }\n }\n }\n function count(arr, f, opt_obj) {\n let count \x3d 0;\n forEach(arr, function(element, index, arr) {\n if (f.call(opt_obj, element, index, arr)) {\n ++count;\n }\n }, opt_obj);\n return count;\n }\n function find(arr, f, opt_obj) {\n const i \x3d findIndex(arr, f, opt_obj);\n return i \x3c 0 ? null : typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.charAt(i) : arr[i];\n }\n function findIndex(arr, f, opt_obj) {\n const l \x3d arr.length;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d 0; i \x3c l; i++) {\n if (i in arr2 \x26\x26 f.call(opt_obj, arr2[i], i, arr)) {\n return i;\n }\n }\n return -1;\n }\n function findRight(arr, f, opt_obj) {\n const i \x3d findIndexRight(arr, f, opt_obj);\n return i \x3c 0 ? null : typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.charAt(i) : arr[i];\n }\n function findIndexRight(arr, f, opt_obj) {\n const l \x3d arr.length;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d l - 1; i \x3e\x3d 0; i--) {\n if (i in arr2 \x26\x26 f.call(opt_obj, arr2[i], i, arr)) {\n return i;\n }\n }\n return -1;\n }\n function contains(arr, obj) {\n return indexOf(arr, obj) \x3e\x3d 0;\n }\n function isEmpty(arr) {\n return arr.length \x3d\x3d 0;\n }\n function clear(arr) {\n if (!Array.isArray(arr)) {\n for (let i \x3d arr.length - 1; i \x3e\x3d 0; i--) {\n delete arr[i];\n }\n }\n arr.length \x3d 0;\n }\n function insert(arr, obj) {\n if (!contains(arr, obj)) {\n arr.push(obj);\n }\n }\n function insertAt(arr, obj, opt_i) {\n splice(arr, opt_i, 0, obj);\n }\n function insertArrayAt(arr, elementsToAdd, opt_i) {\n goog.partial(splice, arr, opt_i, 0).apply(null, elementsToAdd);\n }\n function insertBefore(arr, obj, opt_obj2) {\n let i;\n if (arguments.length \x3d\x3d 2 || (i \x3d indexOf(arr, opt_obj2)) \x3c 0) {\n arr.push(obj);\n } else {\n insertAt(arr, obj, i);\n }\n }\n function remove(arr, obj) {\n const i \x3d indexOf(arr, obj);\n let rv;\n if (rv \x3d i \x3e\x3d 0) {\n removeAt(arr, i);\n }\n return rv;\n }\n function removeLast(arr, obj) {\n const i \x3d lastIndexOf(arr, obj);\n if (i \x3e\x3d 0) {\n removeAt(arr, i);\n return true;\n }\n return false;\n }\n function removeAt(arr, i) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.splice.call(arr, i, 1).length \x3d\x3d 1;\n }\n function removeIf(arr, f, opt_obj) {\n const i \x3d findIndex(arr, f, opt_obj);\n if (i \x3e\x3d 0) {\n removeAt(arr, i);\n return true;\n }\n return false;\n }\n function removeAllIf(arr, f, opt_obj) {\n let removedCount \x3d 0;\n forEachRight(arr, function(val, index) {\n if (f.call(opt_obj, val, index, arr)) {\n if (removeAt(arr, index)) {\n removedCount++;\n }\n }\n });\n return removedCount;\n }\n function concat(var_args) {\n return Array.prototype.concat.apply([], arguments);\n }\n function join(var_args) {\n return Array.prototype.concat.apply([], arguments);\n }\n function toArray(object) {\n const length \x3d object.length;\n if (length \x3e 0) {\n const rv \x3d new Array(length);\n for (let i \x3d 0; i \x3c length; i++) {\n rv[i] \x3d object[i];\n }\n return rv;\n }\n return [];\n }\n function extend(arr1, var_args) {\n for (let i \x3d 1; i \x3c arguments.length; i++) {\n const arr2 \x3d arguments[i];\n if (goog.isArrayLike(arr2)) {\n const len1 \x3d arr1.length || 0;\n const len2 \x3d arr2.length || 0;\n arr1.length \x3d len1 + len2;\n for (let j \x3d 0; j \x3c len2; j++) {\n arr1[len1 + j] \x3d arr2[j];\n }\n } else {\n arr1.push(arr2);\n }\n }\n }\n function splice(arr, index, howMany, var_args) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.splice.apply(arr, slice(arguments, 1));\n }\n function slice(arr, start, opt_end) {\n asserts.assert(arr.length !\x3d null);\n if (arguments.length \x3c\x3d 2) {\n return Array.prototype.slice.call(arr, start);\n } else {\n return Array.prototype.slice.call(arr, start, opt_end);\n }\n }\n function removeDuplicates(arr, opt_rv, opt_hashFn) {\n const returnArray \x3d opt_rv || arr;\n const defaultHashFn \x3d function(item) {\n return goog.isObject(item) ? \x22o\x22 + goog.getUid(item) : (typeof item).charAt(0) + item;\n };\n const hashFn \x3d opt_hashFn || defaultHashFn;\n let cursorInsert \x3d 0;\n let cursorRead \x3d 0;\n const seen \x3d {};\n for (; cursorRead \x3c arr.length;) {\n const current \x3d arr[cursorRead++];\n const key \x3d hashFn(current);\n if (!Object.prototype.hasOwnProperty.call(seen, key)) {\n seen[key] \x3d true;\n returnArray[cursorInsert++] \x3d current;\n }\n }\n returnArray.length \x3d cursorInsert;\n }\n function binarySearch(arr, target, opt_compareFn) {\n return binarySearch_(arr, opt_compareFn || defaultCompare, false, target);\n }\n function binarySelect(arr, evaluator, opt_obj) {\n return binarySearch_(arr, evaluator, true, undefined, opt_obj);\n }\n function binarySearch_(arr, compareFn, isEvaluator, opt_target, opt_selfObj) {\n let left \x3d 0;\n let right \x3d arr.length;\n let found;\n for (; left \x3c right;) {\n const middle \x3d left + (right - left \x3e\x3e\x3e 1);\n let compareResult;\n if (isEvaluator) {\n compareResult \x3d compareFn.call(opt_selfObj, arr[middle], middle, arr);\n } else {\n compareResult \x3d compareFn(opt_target, arr[middle]);\n }\n if (compareResult \x3e 0) {\n left \x3d middle + 1;\n } else {\n right \x3d middle;\n found \x3d !compareResult;\n }\n }\n return found ? left : -left - 1;\n }\n function sort(arr, opt_compareFn) {\n arr.sort(opt_compareFn || defaultCompare);\n }\n function stableSort(arr, opt_compareFn) {\n function stableCompareFn(obj1, obj2) {\n return valueCompareFn(obj1.value, obj2.value) || obj1.index - obj2.index;\n }\n const compArr \x3d new Array(arr.length);\n for (let i \x3d 0; i \x3c arr.length; i++) {\n compArr[i] \x3d {index:i, value:arr[i]};\n }\n const valueCompareFn \x3d opt_compareFn || defaultCompare;\n sort(compArr, stableCompareFn);\n for (let i \x3d 0; i \x3c arr.length; i++) {\n arr[i] \x3d compArr[i].value;\n }\n }\n function sortByKey(arr, keyFn, opt_compareFn) {\n const keyCompareFn \x3d opt_compareFn || defaultCompare;\n sort(arr, function(a, b) {\n return keyCompareFn(keyFn(a), keyFn(b));\n });\n }\n function sortObjectsByKey(arr, key, opt_compareFn) {\n sortByKey(arr, function(obj) {\n return obj[key];\n }, opt_compareFn);\n }\n function isSorted(arr, opt_compareFn, opt_strict) {\n const compare \x3d opt_compareFn || defaultCompare;\n for (let i \x3d 1; i \x3c arr.length; i++) {\n const compareResult \x3d compare(arr[i - 1], arr[i]);\n if (compareResult \x3e 0 || compareResult \x3d\x3d 0 \x26\x26 opt_strict) {\n return false;\n }\n }\n return true;\n }\n function equals(arr1, arr2, opt_equalsFn) {\n if (!goog.isArrayLike(arr1) || !goog.isArrayLike(arr2) || arr1.length !\x3d arr2.length) {\n return false;\n }\n const l \x3d arr1.length;\n const equalsFn \x3d opt_equalsFn || defaultCompareEquality;\n for (let i \x3d 0; i \x3c l; i++) {\n if (!equalsFn(arr1[i], arr2[i])) {\n return false;\n }\n }\n return true;\n }\n function compare3(arr1, arr2, opt_compareFn) {\n const compare \x3d opt_compareFn || defaultCompare;\n const l \x3d Math.min(arr1.length, arr2.length);\n for (let i \x3d 0; i \x3c l; i++) {\n const result \x3d compare(arr1[i], arr2[i]);\n if (result !\x3d 0) {\n return result;\n }\n }\n return defaultCompare(arr1.length, arr2.length);\n }\n function defaultCompare(a, b) {\n return a \x3e b ? 1 : a \x3c b ? -1 : 0;\n }\n function inverseDefaultCompare(a, b) {\n return -defaultCompare(a, b);\n }\n function defaultCompareEquality(a, b) {\n return a \x3d\x3d\x3d b;\n }\n function binaryInsert(array, value, opt_compareFn) {\n const index \x3d binarySearch(array, value, opt_compareFn);\n if (index \x3c 0) {\n insertAt(array, value, -(index + 1));\n return true;\n }\n return false;\n }\n function binaryRemove(array, value, opt_compareFn) {\n const index \x3d binarySearch(array, value, opt_compareFn);\n return index \x3e\x3d 0 ? removeAt(array, index) : false;\n }\n function bucket(array, sorter, opt_obj) {\n const buckets \x3d {};\n for (let i \x3d 0; i \x3c array.length; i++) {\n const value \x3d array[i];\n const key \x3d sorter.call(opt_obj, value, i, array);\n if (key !\x3d\x3d undefined) {\n const bucket \x3d buckets[key] || (buckets[key] \x3d []);\n bucket.push(value);\n }\n }\n return buckets;\n }\n function bucketToMap(array, sorter) {\n const buckets \x3d new Map();\n for (let i \x3d 0; i \x3c array.length; i++) {\n const value \x3d array[i];\n const key \x3d sorter(value, i, array);\n if (key !\x3d\x3d undefined) {\n let bucket \x3d buckets.get(key);\n if (!bucket) {\n bucket \x3d [];\n buckets.set(key, bucket);\n }\n bucket.push(value);\n }\n }\n return buckets;\n }\n function toObject(arr, keyFunc, opt_obj) {\n const ret \x3d {};\n forEach(arr, function(element, index) {\n ret[keyFunc.call(opt_obj, element, index, arr)] \x3d element;\n });\n return ret;\n }\n function toMap(arr, keyFunc) {\n const map \x3d new Map();\n for (let i \x3d 0; i \x3c arr.length; i++) {\n const element \x3d arr[i];\n map.set(keyFunc(element, i, arr), element);\n }\n return map;\n }\n function range(startOrEnd, opt_end, opt_step) {\n const array \x3d [];\n let start \x3d 0;\n let end \x3d startOrEnd;\n const step \x3d opt_step || 1;\n if (opt_end !\x3d\x3d undefined) {\n start \x3d startOrEnd;\n end \x3d opt_end;\n }\n if (step * (end - start) \x3c 0) {\n return [];\n }\n if (step \x3e 0) {\n for (let i \x3d start; i \x3c end; i \x3d i + step) {\n array.push(i);\n }\n } else {\n for (let i \x3d start; i \x3e end; i \x3d i + step) {\n array.push(i);\n }\n }\n return array;\n }\n function repeat(value, n) {\n const array \x3d [];\n for (let i \x3d 0; i \x3c n; i++) {\n array[i] \x3d value;\n }\n return array;\n }\n function flatten(var_args) {\n const CHUNK_SIZE \x3d 8192;\n const result \x3d [];\n for (let i \x3d 0; i \x3c arguments.length; i++) {\n const element \x3d arguments[i];\n if (Array.isArray(element)) {\n for (let c \x3d 0; c \x3c element.length; c \x3d c + CHUNK_SIZE) {\n const chunk \x3d slice(element, c, c + CHUNK_SIZE);\n const recurseResult \x3d flatten.apply(null, chunk);\n for (let r \x3d 0; r \x3c recurseResult.length; r++) {\n result.push(recurseResult[r]);\n }\n }\n } else {\n result.push(element);\n }\n }\n return result;\n }\n function rotate(array, n) {\n asserts.assert(array.length !\x3d null);\n if (array.length) {\n n \x3d n % array.length;\n if (n \x3e 0) {\n Array.prototype.unshift.apply(array, array.splice(-n, n));\n } else if (n \x3c 0) {\n Array.prototype.push.apply(array, array.splice(0, -n));\n }\n }\n return array;\n }\n function moveItem(arr, fromIndex, toIndex) {\n asserts.assert(fromIndex \x3e\x3d 0 \x26\x26 fromIndex \x3c arr.length);\n asserts.assert(toIndex \x3e\x3d 0 \x26\x26 toIndex \x3c arr.length);\n const removedItems \x3d Array.prototype.splice.call(arr, fromIndex, 1);\n Array.prototype.splice.call(arr, toIndex, 0, removedItems[0]);\n }\n function zip(var_args) {\n if (!arguments.length) {\n return [];\n }\n const result \x3d [];\n let minLen \x3d arguments[0].length;\n for (let i \x3d 1; i \x3c arguments.length; i++) {\n if (arguments[i].length \x3c minLen) {\n minLen \x3d arguments[i].length;\n }\n }\n for (let i \x3d 0; i \x3c minLen; i++) {\n const value \x3d [];\n for (let j \x3d 0; j \x3c arguments.length; j++) {\n value.push(arguments[j][i]);\n }\n result.push(value);\n }\n return result;\n }\n function shuffle(arr, opt_randFn) {\n const randFn \x3d opt_randFn || Math.random;\n for (let i \x3d arr.length - 1; i \x3e 0; i--) {\n const j \x3d Math.floor(randFn() * (i + 1));\n const tmp \x3d arr[i];\n arr[i] \x3d arr[j];\n arr[j] \x3d tmp;\n }\n }\n function copyByIndex(arr, index_arr) {\n const result \x3d [];\n forEach(index_arr, function(index) {\n result.push(arr[index]);\n });\n return result;\n }\n function concatMap(arr, f, opt_obj) {\n return concat.apply([], map(arr, f, opt_obj));\n }\n \x22use strict\x22;\n goog.module(\x22goog.array\x22);\n goog.module.declareLegacyNamespace();\n const asserts \x3d goog.require(\x22goog.asserts\x22);\n goog.NATIVE_ARRAY_PROTOTYPES \x3d goog.define(\x22goog.NATIVE_ARRAY_PROTOTYPES\x22, goog.TRUSTED_SITE);\n const ASSUME_NATIVE_FUNCTIONS \x3d goog.define(\x22goog.array.ASSUME_NATIVE_FUNCTIONS\x22, goog.FEATURESET_YEAR \x3e 2012);\n exports.ASSUME_NATIVE_FUNCTIONS \x3d ASSUME_NATIVE_FUNCTIONS;\n exports.peek \x3d peek;\n exports.last \x3d peek;\n const indexOf \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf) ? function(arr, obj, opt_fromIndex) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.indexOf.call(arr, obj, opt_fromIndex);\n } : function(arr, obj, opt_fromIndex) {\n const fromIndex \x3d opt_fromIndex \x3d\x3d null ? 0 : opt_fromIndex \x3c 0 ? Math.max(0, arr.length + opt_fromIndex) : opt_fromIndex;\n if (typeof arr \x3d\x3d\x3d \x22string\x22) {\n if (typeof obj !\x3d\x3d \x22string\x22 || obj.length !\x3d 1) {\n return -1;\n }\n return arr.indexOf(obj, fromIndex);\n }\n for (let i \x3d fromIndex; i \x3c arr.length; i++) {\n if (i in arr \x26\x26 arr[i] \x3d\x3d\x3d obj) {\n return i;\n }\n }\n return -1;\n };\n exports.indexOf \x3d indexOf;\n const lastIndexOf \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf) ? function(arr, obj, opt_fromIndex) {\n asserts.assert(arr.length !\x3d null);\n const fromIndex \x3d opt_fromIndex \x3d\x3d null ? arr.length - 1 : opt_fromIndex;\n return Array.prototype.lastIndexOf.call(arr, obj, fromIndex);\n } : function(arr, obj, opt_fromIndex) {\n let fromIndex \x3d opt_fromIndex \x3d\x3d null ? arr.length - 1 : opt_fromIndex;\n if (fromIndex \x3c 0) {\n fromIndex \x3d Math.max(0, arr.length + fromIndex);\n }\n if (typeof arr \x3d\x3d\x3d \x22string\x22) {\n if (typeof obj !\x3d\x3d \x22string\x22 || obj.length !\x3d 1) {\n return -1;\n }\n return arr.lastIndexOf(obj, fromIndex);\n }\n for (let i \x3d fromIndex; i \x3e\x3d 0; i--) {\n if (i in arr \x26\x26 arr[i] \x3d\x3d\x3d obj) {\n return i;\n }\n }\n return -1;\n };\n exports.lastIndexOf \x3d lastIndexOf;\n const forEach \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach) ? function(arr, f, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n Array.prototype.forEach.call(arr, f, opt_obj);\n } : function(arr, f, opt_obj) {\n const l \x3d arr.length;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d 0; i \x3c l; i++) {\n if (i in arr2) {\n f.call(opt_obj, arr2[i], i, arr);\n }\n }\n };\n exports.forEach \x3d forEach;\n exports.forEachRight \x3d forEachRight;\n const filter \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter) ? function(arr, f, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.filter.call(arr, f, opt_obj);\n } : function(arr, f, opt_obj) {\n const l \x3d arr.length;\n const res \x3d [];\n let resLength \x3d 0;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d 0; i \x3c l; i++) {\n if (i in arr2) {\n const val \x3d arr2[i];\n if (f.call(opt_obj, val, i, arr)) {\n res[resLength++] \x3d val;\n }\n }\n }\n return res;\n };\n exports.filter \x3d filter;\n const map \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.map) ? function(arr, f, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.map.call(arr, f, opt_obj);\n } : function(arr, f, opt_obj) {\n const l \x3d arr.length;\n const res \x3d new Array(l);\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d 0; i \x3c l; i++) {\n if (i in arr2) {\n res[i] \x3d f.call(opt_obj, arr2[i], i, arr);\n }\n }\n return res;\n };\n exports.map \x3d map;\n const reduce \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function(arr, f, val, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n if (opt_obj) {\n f \x3d goog.bind(f, opt_obj);\n }\n return Array.prototype.reduce.call(arr, f, val);\n } : function(arr, f, val, opt_obj) {\n let rval \x3d val;\n forEach(arr, function(val, index) {\n rval \x3d f.call(opt_obj, rval, val, index, arr);\n });\n return rval;\n };\n exports.reduce \x3d reduce;\n const reduceRight \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function(arr, f, val, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n asserts.assert(f !\x3d null);\n if (opt_obj) {\n f \x3d goog.bind(f, opt_obj);\n }\n return Array.prototype.reduceRight.call(arr, f, val);\n } : function(arr, f, val, opt_obj) {\n let rval \x3d val;\n forEachRight(arr, function(val, index) {\n rval \x3d f.call(opt_obj, rval, val, index, arr);\n });\n return rval;\n };\n exports.reduceRight \x3d reduceRight;\n const some \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.some) ? function(arr, f, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.some.call(arr, f, opt_obj);\n } : function(arr, f, opt_obj) {\n const l \x3d arr.length;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d 0; i \x3c l; i++) {\n if (i in arr2 \x26\x26 f.call(opt_obj, arr2[i], i, arr)) {\n return true;\n }\n }\n return false;\n };\n exports.some \x3d some;\n const every \x3d goog.NATIVE_ARRAY_PROTOTYPES \x26\x26 (ASSUME_NATIVE_FUNCTIONS || Array.prototype.every) ? function(arr, f, opt_obj) {\n asserts.assert(arr.length !\x3d null);\n return Array.prototype.every.call(arr, f, opt_obj);\n } : function(arr, f, opt_obj) {\n const l \x3d arr.length;\n const arr2 \x3d typeof arr \x3d\x3d\x3d \x22string\x22 ? arr.split(\x22\x22) : arr;\n for (let i \x3d 0; i \x3c l; i++) {\n if (i in arr2 \x26\x26 !f.call(opt_obj, arr2[i], i, arr)) {\n return false;\n }\n }\n return true;\n };\n exports.every \x3d every;\n exports.count \x3d count;\n exports.find \x3d find;\n exports.findIndex \x3d findIndex;\n exports.findRight \x3d findRight;\n exports.findIndexRight \x3d findIndexRight;\n exports.contains \x3d contains;\n exports.isEmpty \x3d isEmpty;\n exports.clear \x3d clear;\n exports.insert \x3d insert;\n exports.insertAt \x3d insertAt;\n exports.insertArrayAt \x3d insertArrayAt;\n exports.insertBefore \x3d insertBefore;\n exports.remove \x3d remove;\n exports.removeLast \x3d removeLast;\n exports.removeAt \x3d removeAt;\n exports.removeIf \x3d removeIf;\n exports.removeAllIf \x3d removeAllIf;\n exports.concat \x3d concat;\n exports.join \x3d join;\n exports.toArray \x3d toArray;\n const clone \x3d toArray;\n exports.clone \x3d clone;\n exports.extend \x3d extend;\n exports.splice \x3d splice;\n exports.slice \x3d slice;\n exports.removeDuplicates \x3d removeDuplicates;\n exports.binarySearch \x3d binarySearch;\n exports.binarySelect \x3d binarySelect;\n exports.sort \x3d sort;\n exports.stableSort \x3d stableSort;\n exports.sortByKey \x3d sortByKey;\n exports.sortObjectsByKey \x3d sortObjectsByKey;\n exports.isSorted \x3d isSorted;\n exports.equals \x3d equals;\n exports.compare3 \x3d compare3;\n exports.defaultCompare \x3d defaultCompare;\n exports.inverseDefaultCompare \x3d inverseDefaultCompare;\n exports.defaultCompareEquality \x3d defaultCompareEquality;\n exports.binaryInsert \x3d binaryInsert;\n exports.binaryRemove \x3d binaryRemove;\n exports.bucket \x3d bucket;\n exports.bucketToMap \x3d bucketToMap;\n exports.toObject \x3d toObject;\n exports.toMap \x3d toMap;\n exports.range \x3d range;\n exports.repeat \x3d repeat;\n exports.flatten \x3d flatten;\n exports.rotate \x3d rotate;\n exports.moveItem \x3d moveItem;\n exports.zip \x3d zip;\n exports.shuffle \x3d shuffle;\n exports.copyByIndex \x3d copyByIndex;\n exports.concatMap \x3d concatMap;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.dom.tags.js", true, "goog.provide(\x22goog.dom.tags\x22);\ngoog.require(\x22goog.object\x22);\ngoog.dom.tags.VOID_TAGS_ \x3d goog.object.createSet(\x22area\x22, \x22base\x22, \x22br\x22, \x22col\x22, \x22command\x22, \x22embed\x22, \x22hr\x22, \x22img\x22, \x22input\x22, \x22keygen\x22, \x22link\x22, \x22meta\x22, \x22param\x22, \x22source\x22, \x22track\x22, \x22wbr\x22);\ngoog.dom.tags.isVoidTag \x3d function(tagName) {\n return goog.dom.tags.VOID_TAGS_[tagName] \x3d\x3d\x3d true;\n};\n");
SHADOW_ENV.evalLoad("goog.html.safehtml.js", true, "goog.loadModule(function(exports) {\n function getAttrNameAndValue(tagName, name, value) {\n if (value instanceof Const) {\n value \x3d Const.unwrap(value);\n } else if (name.toLowerCase() \x3d\x3d \x22style\x22) {\n if (SafeHtml.SUPPORT_STYLE_ATTRIBUTE) {\n value \x3d getStyleValue(value);\n } else {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? \x27Attribute \x22style\x22 not supported.\x27 : \x22\x22);\n }\n } else if (/^on/i.test(name)) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Attribute \x22${name}` + \x27\x22 requires goog.string.Const value, \x22\x27 + value + \x27\x22 given.\x27 : \x22\x22);\n } else if (name.toLowerCase() in URL_ATTRIBUTES) {\n if (value instanceof TrustedResourceUrl) {\n value \x3d TrustedResourceUrl.unwrap(value);\n } else if (value instanceof SafeUrl) {\n value \x3d SafeUrl.unwrap(value);\n } else if (typeof value \x3d\x3d\x3d \x22string\x22) {\n value \x3d SafeUrl.sanitize(value).getTypedStringValue();\n } else {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Attribute \x22${name}\x22 on tag \x22${tagName}` + \x27\x22 requires goog.html.SafeUrl, goog.string.Const, or\x27 + \x27 string, value \x22\x27 + value + \x27\x22 given.\x27 : \x22\x22);\n }\n }\n if (value.implementsGoogStringTypedString) {\n value \x3d value.getTypedStringValue();\n }\n asserts.assert(typeof value \x3d\x3d\x3d \x22string\x22 || typeof value \x3d\x3d\x3d \x22number\x22, \x22String or number value expected, got \x22 + typeof value + \x22 with value: \x22 + value);\n return `${name}\x3d\x22` + internal.htmlEscape(String(value)) + \x27\x22\x27;\n }\n function getStyleValue(value) {\n if (!goog.isObject(value)) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? \x27The \x22style\x22 attribute requires goog.html.SafeStyle or map \x27 + \x22of style properties, \x22 + typeof value + \x22 given: \x22 + value : \x22\x22);\n }\n if (!(value instanceof SafeStyle)) {\n value \x3d SafeStyle.create(value);\n }\n return SafeStyle.unwrap(value);\n }\n \x22use strict\x22;\n goog.module(\x22goog.html.SafeHtml\x22);\n goog.module.declareLegacyNamespace();\n const Const \x3d goog.require(\x22goog.string.Const\x22);\n const SafeScript \x3d goog.require(\x22goog.html.SafeScript\x22);\n const SafeStyle \x3d goog.require(\x22goog.html.SafeStyle\x22);\n const SafeStyleSheet \x3d goog.require(\x22goog.html.SafeStyleSheet\x22);\n const SafeUrl \x3d goog.require(\x22goog.html.SafeUrl\x22);\n const TagName \x3d goog.require(\x22goog.dom.TagName\x22);\n const TrustedResourceUrl \x3d goog.require(\x22goog.html.TrustedResourceUrl\x22);\n const TypedString \x3d goog.require(\x22goog.string.TypedString\x22);\n const asserts \x3d goog.require(\x22goog.asserts\x22);\n const browser \x3d goog.require(\x22goog.labs.userAgent.browser\x22);\n const googArray \x3d goog.require(\x22goog.array\x22);\n const googObject \x3d goog.require(\x22goog.object\x22);\n const internal \x3d goog.require(\x22goog.string.internal\x22);\n const tags \x3d goog.require(\x22goog.dom.tags\x22);\n const trustedtypes \x3d goog.require(\x22goog.html.trustedtypes\x22);\n const CONSTRUCTOR_TOKEN_PRIVATE \x3d {};\n class SafeHtml {\n constructor(value, token) {\n this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ \x3d token \x3d\x3d\x3d CONSTRUCTOR_TOKEN_PRIVATE ? value : \x22\x22;\n this.implementsGoogStringTypedString \x3d true;\n }\n getTypedStringValue() {\n return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString();\n }\n toString() {\n return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString();\n }\n static unwrap(safeHtml) {\n return SafeHtml.unwrapTrustedHTML(safeHtml).toString();\n }\n static unwrapTrustedHTML(safeHtml) {\n if (safeHtml instanceof SafeHtml \x26\x26 safeHtml.constructor \x3d\x3d\x3d SafeHtml) {\n return safeHtml.privateDoNotAccessOrElseSafeHtmlWrappedValue_;\n } else {\n asserts.fail(`expected object of type SafeHtml, got \x27${safeHtml}\x27 of type ` + goog.typeOf(safeHtml));\n return \x22type_error:SafeHtml\x22;\n }\n }\n static htmlEscape(textOrHtml) {\n if (textOrHtml instanceof SafeHtml) {\n return textOrHtml;\n }\n const textIsObject \x3d typeof textOrHtml \x3d\x3d \x22object\x22;\n let textAsString;\n if (textIsObject \x26\x26 textOrHtml.implementsGoogStringTypedString) {\n textAsString \x3d textOrHtml.getTypedStringValue();\n } else {\n textAsString \x3d String(textOrHtml);\n }\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(internal.htmlEscape(textAsString));\n }\n static htmlEscapePreservingNewlines(textOrHtml) {\n if (textOrHtml instanceof SafeHtml) {\n return textOrHtml;\n }\n const html \x3d SafeHtml.htmlEscape(textOrHtml);\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(internal.newLineToBr(SafeHtml.unwrap(html)));\n }\n static htmlEscapePreservingNewlinesAndSpaces(textOrHtml) {\n if (textOrHtml instanceof SafeHtml) {\n return textOrHtml;\n }\n const html \x3d SafeHtml.htmlEscape(textOrHtml);\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(internal.whitespaceEscape(SafeHtml.unwrap(html)));\n }\n static comment(text) {\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\x22\\x3c!--\x22 + internal.htmlEscape(text) + \x22--\\x3e\x22);\n }\n static create(tagName, attributes \x3d undefined, content \x3d undefined) {\n SafeHtml.verifyTagName(String(tagName));\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(tagName), attributes, content);\n }\n static verifyTagName(tagName) {\n if (!VALID_NAMES_IN_TAG.test(tagName)) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Invalid tag name \x3c${tagName}\x3e.` : \x22\x22);\n }\n if (tagName.toUpperCase() in NOT_ALLOWED_TAG_NAMES) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Tag name \x3c${tagName}\x3e is not allowed for SafeHtml.` : \x22\x22);\n }\n }\n static createIframe(src \x3d undefined, srcdoc \x3d undefined, attributes \x3d undefined, content \x3d undefined) {\n if (src) {\n TrustedResourceUrl.unwrap(src);\n }\n const fixedAttributes \x3d {};\n fixedAttributes[\x22src\x22] \x3d src || null;\n fixedAttributes[\x22srcdoc\x22] \x3d srcdoc \x26\x26 SafeHtml.unwrap(srcdoc);\n const defaultAttributes \x3d {\x22sandbox\x22:\x22\x22};\n const combinedAttrs \x3d SafeHtml.combineAttributes(fixedAttributes, defaultAttributes, attributes);\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\x22iframe\x22, combinedAttrs, content);\n }\n static createSandboxIframe(src \x3d undefined, srcdoc \x3d undefined, attributes \x3d undefined, content \x3d undefined) {\n if (!SafeHtml.canUseSandboxIframe()) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? \x22The browser does not support sandboxed iframes.\x22 : \x22\x22);\n }\n const fixedAttributes \x3d {};\n if (src) {\n fixedAttributes[\x22src\x22] \x3d SafeUrl.unwrap(SafeUrl.sanitize(src));\n } else {\n fixedAttributes[\x22src\x22] \x3d null;\n }\n fixedAttributes[\x22srcdoc\x22] \x3d srcdoc || null;\n fixedAttributes[\x22sandbox\x22] \x3d \x22\x22;\n const combinedAttrs \x3d SafeHtml.combineAttributes(fixedAttributes, {}, attributes);\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\x22iframe\x22, combinedAttrs, content);\n }\n static canUseSandboxIframe() {\n return goog.global[\x22HTMLIFrameElement\x22] \x26\x26 \x22sandbox\x22 in goog.global[\x22HTMLIFrameElement\x22].prototype;\n }\n static createScriptSrc(src, attributes \x3d undefined) {\n TrustedResourceUrl.unwrap(src);\n const fixedAttributes \x3d {\x22src\x22:src};\n const defaultAttributes \x3d {};\n const combinedAttrs \x3d SafeHtml.combineAttributes(fixedAttributes, defaultAttributes, attributes);\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\x22script\x22, combinedAttrs);\n }\n static createScript(script, attributes \x3d undefined) {\n for (let attr in attributes) {\n if (Object.prototype.hasOwnProperty.call(attributes, attr)) {\n const attrLower \x3d attr.toLowerCase();\n if (attrLower \x3d\x3d \x22language\x22 || attrLower \x3d\x3d \x22src\x22 || attrLower \x3d\x3d \x22text\x22) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Cannot set \x22${attrLower}\x22 attribute` : \x22\x22);\n }\n }\n }\n let content \x3d \x22\x22;\n script \x3d googArray.concat(script);\n for (let i \x3d 0; i \x3c script.length; i++) {\n content \x3d content + SafeScript.unwrap(script[i]);\n }\n const htmlContent \x3d SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(content);\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\x22script\x22, attributes, htmlContent);\n }\n static createStyle(styleSheet, attributes \x3d undefined) {\n const fixedAttributes \x3d {\x22type\x22:\x22text/css\x22};\n const defaultAttributes \x3d {};\n const combinedAttrs \x3d SafeHtml.combineAttributes(fixedAttributes, defaultAttributes, attributes);\n let content \x3d \x22\x22;\n styleSheet \x3d googArray.concat(styleSheet);\n for (let i \x3d 0; i \x3c styleSheet.length; i++) {\n content \x3d content + SafeStyleSheet.unwrap(styleSheet[i]);\n }\n const htmlContent \x3d SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(content);\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\x22style\x22, combinedAttrs, htmlContent);\n }\n static createMetaRefresh(url, secs \x3d undefined) {\n let unwrappedUrl \x3d SafeUrl.unwrap(SafeUrl.sanitize(url));\n if (browser.isIE() || browser.isEdge()) {\n if (internal.contains(unwrappedUrl, \x22;\x22)) {\n unwrappedUrl \x3d \x22\x27\x22 + unwrappedUrl.replace(/\x27/g, \x22%27\x22) + \x22\x27\x22;\n }\n }\n const attributes \x3d {\x22http-equiv\x22:\x22refresh\x22, \x22content\x22:(secs || 0) + \x22; url\\x3d\x22 + unwrappedUrl};\n return SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\x22meta\x22, attributes);\n }\n static join(separator, parts) {\n const separatorHtml \x3d SafeHtml.htmlEscape(separator);\n const content \x3d [];\n const addArgument \x3d argument \x3d\x3e {\n if (Array.isArray(argument)) {\n argument.forEach(addArgument);\n } else {\n const html \x3d SafeHtml.htmlEscape(argument);\n content.push(SafeHtml.unwrap(html));\n }\n };\n parts.forEach(addArgument);\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(content.join(SafeHtml.unwrap(separatorHtml)));\n }\n static concat(var_args) {\n return SafeHtml.join(SafeHtml.EMPTY, Array.prototype.slice.call(arguments));\n }\n static createSafeHtmlSecurityPrivateDoNotAccessOrElse(html) {\n const noinlineHtml \x3d html;\n const policy \x3d trustedtypes.getPolicyPrivateDoNotAccessOrElse();\n const trustedHtml \x3d policy ? policy.createHTML(noinlineHtml) : noinlineHtml;\n return new SafeHtml(trustedHtml, CONSTRUCTOR_TOKEN_PRIVATE);\n }\n static createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(tagName, attributes \x3d undefined, content \x3d undefined) {\n let result \x3d `\x3c${tagName}`;\n result \x3d result + SafeHtml.stringifyAttributes(tagName, attributes);\n if (content \x3d\x3d null) {\n content \x3d [];\n } else if (!Array.isArray(content)) {\n content \x3d [content];\n }\n if (tags.isVoidTag(tagName.toLowerCase())) {\n asserts.assert(!content.length, `Void tag \x3c${tagName}\x3e does not allow content.`);\n result \x3d result + \x22\\x3e\x22;\n } else {\n const html \x3d SafeHtml.concat(content);\n result \x3d result + (\x22\\x3e\x22 + SafeHtml.unwrap(html) + \x22\\x3c/\x22 + tagName + \x22\\x3e\x22);\n }\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(result);\n }\n static stringifyAttributes(tagName, attributes \x3d undefined) {\n let result \x3d \x22\x22;\n if (attributes) {\n for (let name in attributes) {\n if (Object.prototype.hasOwnProperty.call(attributes, name)) {\n if (!VALID_NAMES_IN_TAG.test(name)) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Invalid attribute name \x22${name}\x22.` : \x22\x22);\n }\n const value \x3d attributes[name];\n if (value \x3d\x3d null) {\n continue;\n }\n result \x3d result + (\x22 \x22 + getAttrNameAndValue(tagName, name, value));\n }\n }\n }\n return result;\n }\n static combineAttributes(fixedAttributes, defaultAttributes, attributes \x3d undefined) {\n const combinedAttributes \x3d {};\n for (const name in fixedAttributes) {\n if (Object.prototype.hasOwnProperty.call(fixedAttributes, name)) {\n asserts.assert(name.toLowerCase() \x3d\x3d name, \x22Must be lower case\x22);\n combinedAttributes[name] \x3d fixedAttributes[name];\n }\n }\n for (const name in defaultAttributes) {\n if (Object.prototype.hasOwnProperty.call(defaultAttributes, name)) {\n asserts.assert(name.toLowerCase() \x3d\x3d name, \x22Must be lower case\x22);\n combinedAttributes[name] \x3d defaultAttributes[name];\n }\n }\n if (attributes) {\n for (const name in attributes) {\n if (Object.prototype.hasOwnProperty.call(attributes, name)) {\n const nameLower \x3d name.toLowerCase();\n if (nameLower in fixedAttributes) {\n throw new Error(SafeHtml.ENABLE_ERROR_MESSAGES ? `Cannot override \x22${nameLower}\x22 attribute, got \x22` + name + \x27\x22 with value \x22\x27 + attributes[name] + \x27\x22\x27 : \x22\x22);\n }\n if (nameLower in defaultAttributes) {\n delete combinedAttributes[nameLower];\n }\n combinedAttributes[name] \x3d attributes[name];\n }\n }\n }\n return combinedAttributes;\n }\n }\n SafeHtml.ENABLE_ERROR_MESSAGES \x3d goog.define(\x22goog.html.SafeHtml.ENABLE_ERROR_MESSAGES\x22, goog.DEBUG);\n SafeHtml.SUPPORT_STYLE_ATTRIBUTE \x3d goog.define(\x22goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE\x22, true);\n SafeHtml.TextOrHtml_;\n SafeHtml.from \x3d SafeHtml.htmlEscape;\n const VALID_NAMES_IN_TAG \x3d /^[a-zA-Z0-9-]+$/;\n const URL_ATTRIBUTES \x3d googObject.createSet(\x22action\x22, \x22cite\x22, \x22data\x22, \x22formaction\x22, \x22href\x22, \x22manifest\x22, \x22poster\x22, \x22src\x22);\n const NOT_ALLOWED_TAG_NAMES \x3d googObject.createSet(TagName.APPLET, TagName.BASE, TagName.EMBED, TagName.IFRAME, TagName.LINK, TagName.MATH, TagName.META, TagName.OBJECT, TagName.SCRIPT, TagName.STYLE, TagName.SVG, TagName.TEMPLATE);\n SafeHtml.AttributeValue;\n SafeHtml.DOCTYPE_HTML \x3d {valueOf:function() {\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\x22\\x3c!DOCTYPE html\\x3e\x22);\n }}.valueOf();\n SafeHtml.EMPTY \x3d new SafeHtml(goog.global.trustedTypes \x26\x26 goog.global.trustedTypes.emptyHTML || \x22\x22, CONSTRUCTOR_TOKEN_PRIVATE);\n SafeHtml.BR \x3d {valueOf:function() {\n return SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\x22\\x3cbr\\x3e\x22);\n }}.valueOf();\n exports \x3d SafeHtml;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.html.uncheckedconversions.js", true, "goog.provide(\x22goog.html.uncheckedconversions\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.html.SafeHtml\x22);\ngoog.require(\x22goog.html.SafeScript\x22);\ngoog.require(\x22goog.html.SafeStyle\x22);\ngoog.require(\x22goog.html.SafeStyleSheet\x22);\ngoog.require(\x22goog.html.SafeUrl\x22);\ngoog.require(\x22goog.html.TrustedResourceUrl\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.string.internal\x22);\ngoog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract \x3d function(justification, html) {\n goog.asserts.assertString(goog.string.Const.unwrap(justification), \x22must provide justification\x22);\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(justification)), \x22must provide non-empty justification\x22);\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(html);\n};\ngoog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract \x3d function(justification, script) {\n goog.asserts.assertString(goog.string.Const.unwrap(justification), \x22must provide justification\x22);\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(justification)), \x22must provide non-empty justification\x22);\n return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(script);\n};\ngoog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract \x3d function(justification, style) {\n goog.asserts.assertString(goog.string.Const.unwrap(justification), \x22must provide justification\x22);\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(justification)), \x22must provide non-empty justification\x22);\n return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(style);\n};\ngoog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract \x3d function(justification, styleSheet) {\n goog.asserts.assertString(goog.string.Const.unwrap(justification), \x22must provide justification\x22);\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(justification)), \x22must provide non-empty justification\x22);\n return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(styleSheet);\n};\ngoog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract \x3d function(justification, url) {\n goog.asserts.assertString(goog.string.Const.unwrap(justification), \x22must provide justification\x22);\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(justification)), \x22must provide non-empty justification\x22);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(url);\n};\ngoog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract \x3d function(justification, url) {\n goog.asserts.assertString(goog.string.Const.unwrap(justification), \x22must provide justification\x22);\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(justification)), \x22must provide non-empty justification\x22);\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(url);\n};\n");
SHADOW_ENV.evalLoad("goog.dom.safe.js", true, "goog.provide(\x22goog.dom.safe\x22);\ngoog.provide(\x22goog.dom.safe.InsertAdjacentHtmlPosition\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.asserts.dom\x22);\ngoog.require(\x22goog.dom.asserts\x22);\ngoog.require(\x22goog.functions\x22);\ngoog.require(\x22goog.html.SafeHtml\x22);\ngoog.require(\x22goog.html.SafeScript\x22);\ngoog.require(\x22goog.html.SafeStyle\x22);\ngoog.require(\x22goog.html.SafeUrl\x22);\ngoog.require(\x22goog.html.TrustedResourceUrl\x22);\ngoog.require(\x22goog.html.uncheckedconversions\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.string.internal\x22);\ngoog.dom.safe.InsertAdjacentHtmlPosition \x3d {AFTERBEGIN:\x22afterbegin\x22, AFTEREND:\x22afterend\x22, BEFOREBEGIN:\x22beforebegin\x22, BEFOREEND:\x22beforeend\x22};\ngoog.dom.safe.insertAdjacentHtml \x3d function(node, position, html) {\n node.insertAdjacentHTML(position, goog.html.SafeHtml.unwrapTrustedHTML(html));\n};\ngoog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_ \x3d {\x22MATH\x22:true, \x22SCRIPT\x22:true, \x22STYLE\x22:true, \x22SVG\x22:true, \x22TEMPLATE\x22:true};\ngoog.dom.safe.isInnerHtmlCleanupRecursive_ \x3d goog.functions.cacheReturnValue(function() {\n if (goog.DEBUG \x26\x26 typeof document \x3d\x3d\x3d \x22undefined\x22) {\n return false;\n }\n var div \x3d document.createElement(\x22div\x22);\n var childDiv \x3d document.createElement(\x22div\x22);\n childDiv.appendChild(document.createElement(\x22div\x22));\n div.appendChild(childDiv);\n if (goog.DEBUG \x26\x26 !div.firstChild) {\n return false;\n }\n var innerChild \x3d div.firstChild.firstChild;\n div.innerHTML \x3d goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);\n return !innerChild.parentElement;\n});\ngoog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse \x3d function(elem, html) {\n if (goog.dom.safe.isInnerHtmlCleanupRecursive_()) {\n for (; elem.lastChild;) {\n elem.removeChild(elem.lastChild);\n }\n }\n elem.innerHTML \x3d goog.html.SafeHtml.unwrapTrustedHTML(html);\n};\ngoog.dom.safe.setInnerHtml \x3d function(elem, html) {\n if (goog.asserts.ENABLE_ASSERTS \x26\x26 elem.tagName) {\n var tagName \x3d elem.tagName.toUpperCase();\n if (goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[tagName]) {\n throw new Error(\x22goog.dom.safe.setInnerHtml cannot be used to set content of \x22 + elem.tagName + \x22.\x22);\n }\n }\n goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(elem, html);\n};\ngoog.dom.safe.setInnerHtmlFromConstant \x3d function(element, constHtml) {\n goog.dom.safe.setInnerHtml(element, goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\x22Constant HTML to be immediatelly used.\x22), goog.string.Const.unwrap(constHtml)));\n};\ngoog.dom.safe.setOuterHtml \x3d function(elem, html) {\n elem.outerHTML \x3d goog.html.SafeHtml.unwrapTrustedHTML(html);\n};\ngoog.dom.safe.setFormElementAction \x3d function(form, url) {\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n goog.asserts.dom.assertIsHtmlFormElement(form).action \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.setButtonFormAction \x3d function(button, url) {\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n goog.asserts.dom.assertIsHtmlButtonElement(button).formAction \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.setInputFormAction \x3d function(input, url) {\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n goog.asserts.dom.assertIsHtmlInputElement(input).formAction \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.setStyle \x3d function(elem, style) {\n elem.style.cssText \x3d goog.html.SafeStyle.unwrap(style);\n};\ngoog.dom.safe.documentWrite \x3d function(doc, html) {\n doc.write(goog.html.SafeHtml.unwrapTrustedHTML(html));\n};\ngoog.dom.safe.setAnchorHref \x3d function(anchor, url) {\n goog.asserts.dom.assertIsHtmlAnchorElement(anchor);\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n anchor.href \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.setAudioSrc \x3d function(audioElement, url) {\n goog.asserts.dom.assertIsHtmlAudioElement(audioElement);\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n audioElement.src \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.setVideoSrc \x3d function(videoElement, url) {\n goog.asserts.dom.assertIsHtmlVideoElement(videoElement);\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n videoElement.src \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.setEmbedSrc \x3d function(embed, url) {\n goog.asserts.dom.assertIsHtmlEmbedElement(embed);\n embed.src \x3d goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(url);\n};\ngoog.dom.safe.setFrameSrc \x3d function(frame, url) {\n goog.asserts.dom.assertIsHtmlFrameElement(frame);\n frame.src \x3d goog.html.TrustedResourceUrl.unwrap(url);\n};\ngoog.dom.safe.setIframeSrc \x3d function(iframe, url) {\n goog.asserts.dom.assertIsHtmlIFrameElement(iframe);\n iframe.src \x3d goog.html.TrustedResourceUrl.unwrap(url);\n};\ngoog.dom.safe.setIframeSrcdoc \x3d function(iframe, html) {\n goog.asserts.dom.assertIsHtmlIFrameElement(iframe);\n iframe.srcdoc \x3d goog.html.SafeHtml.unwrapTrustedHTML(html);\n};\ngoog.dom.safe.setLinkHrefAndRel \x3d function(link, url, rel) {\n goog.asserts.dom.assertIsHtmlLinkElement(link);\n link.rel \x3d rel;\n if (goog.string.internal.caseInsensitiveContains(rel, \x22stylesheet\x22)) {\n goog.asserts.assert(url instanceof goog.html.TrustedResourceUrl, \x27URL must be TrustedResourceUrl because \x22rel\x22 contains \x22stylesheet\x22\x27);\n link.href \x3d goog.html.TrustedResourceUrl.unwrap(url);\n const win \x3d link.ownerDocument \x26\x26 link.ownerDocument.defaultView;\n const nonce \x3d goog.dom.safe.getStyleNonce(win);\n if (nonce) {\n link.setAttribute(\x22nonce\x22, nonce);\n }\n } else if (url instanceof goog.html.TrustedResourceUrl) {\n link.href \x3d goog.html.TrustedResourceUrl.unwrap(url);\n } else if (url instanceof goog.html.SafeUrl) {\n link.href \x3d goog.html.SafeUrl.unwrap(url);\n } else {\n link.href \x3d goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url));\n }\n};\ngoog.dom.safe.setObjectData \x3d function(object, url) {\n goog.asserts.dom.assertIsHtmlObjectElement(object);\n object.data \x3d goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(url);\n};\ngoog.dom.safe.setScriptSrc \x3d function(script, url) {\n goog.asserts.dom.assertIsHtmlScriptElement(script);\n goog.dom.safe.setNonceForScriptElement_(script);\n script.src \x3d goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(url);\n};\ngoog.dom.safe.setScriptContent \x3d function(script, content) {\n goog.asserts.dom.assertIsHtmlScriptElement(script);\n goog.dom.safe.setNonceForScriptElement_(script);\n script.textContent \x3d goog.html.SafeScript.unwrapTrustedScript(content);\n};\ngoog.dom.safe.setNonceForScriptElement_ \x3d function(script) {\n var win \x3d script.ownerDocument \x26\x26 script.ownerDocument.defaultView;\n const nonce \x3d goog.dom.safe.getScriptNonce(win);\n if (nonce) {\n script.setAttribute(\x22nonce\x22, nonce);\n }\n};\ngoog.dom.safe.setLocationHref \x3d function(loc, url) {\n goog.dom.asserts.assertIsLocation(loc);\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n loc.href \x3d goog.html.SafeUrl.unwrap(safeUrl);\n};\ngoog.dom.safe.assignLocation \x3d function(loc, url) {\n goog.dom.asserts.assertIsLocation(loc);\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n loc.assign(goog.html.SafeUrl.unwrap(safeUrl));\n};\ngoog.dom.safe.replaceLocation \x3d function(loc, url) {\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n loc.replace(goog.html.SafeUrl.unwrap(safeUrl));\n};\ngoog.dom.safe.openInWindow \x3d function(url, opt_openerWin, opt_name, opt_specs) {\n var safeUrl;\n if (url instanceof goog.html.SafeUrl) {\n safeUrl \x3d url;\n } else {\n safeUrl \x3d goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(url);\n }\n var win \x3d opt_openerWin || goog.global;\n var name \x3d opt_name instanceof goog.string.Const ? goog.string.Const.unwrap(opt_name) : opt_name || \x22\x22;\n if (opt_specs !\x3d\x3d undefined) {\n return win.open(goog.html.SafeUrl.unwrap(safeUrl), name, opt_specs);\n } else {\n return win.open(goog.html.SafeUrl.unwrap(safeUrl), name);\n }\n};\ngoog.dom.safe.parseFromStringHtml \x3d function(parser, html) {\n return goog.dom.safe.parseFromString(parser, html, \x22text/html\x22);\n};\ngoog.dom.safe.parseFromString \x3d function(parser, content, type) {\n return parser.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(content), type);\n};\ngoog.dom.safe.createImageFromBlob \x3d function(blob) {\n if (!/^image\\/.*/g.test(blob.type)) {\n throw new Error(\x22goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.\x22);\n }\n var objectUrl \x3d goog.global.URL.createObjectURL(blob);\n var image \x3d new goog.global.Image();\n image.onload \x3d function() {\n goog.global.URL.revokeObjectURL(objectUrl);\n };\n image.src \x3d objectUrl;\n return image;\n};\ngoog.dom.safe.createContextualFragment \x3d function(range, html) {\n return range.createContextualFragment(goog.html.SafeHtml.unwrapTrustedHTML(html));\n};\ngoog.dom.safe.getScriptNonce \x3d function(opt_window) {\n return goog.dom.safe.getNonce_(\x22script[nonce]\x22, opt_window);\n};\ngoog.dom.safe.getStyleNonce \x3d function(opt_window) {\n return goog.dom.safe.getNonce_(\x27style[nonce],link[rel\\x3d\x22stylesheet\x22][nonce]\x27, opt_window);\n};\ngoog.dom.safe.NONCE_PATTERN_ \x3d /^[\\w+/_-]+[\x3d]{0,2}$/;\ngoog.dom.safe.getNonce_ \x3d function(selector, win) {\n const doc \x3d (win || goog.global).document;\n if (!doc.querySelector) {\n return \x22\x22;\n }\n let el \x3d doc.querySelector(selector);\n if (el) {\n const nonce \x3d el[\x22nonce\x22] || el.getAttribute(\x22nonce\x22);\n if (nonce \x26\x26 goog.dom.safe.NONCE_PATTERN_.test(nonce)) {\n return nonce;\n }\n }\n return \x22\x22;\n};\n");
SHADOW_ENV.evalLoad("goog.string.string.js", true, "goog.provide(\x22goog.string\x22);\ngoog.provide(\x22goog.string.Unicode\x22);\ngoog.require(\x22goog.dom.safe\x22);\ngoog.require(\x22goog.html.uncheckedconversions\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.string.internal\x22);\ngoog.string.DETECT_DOUBLE_ESCAPING \x3d goog.define(\x22goog.string.DETECT_DOUBLE_ESCAPING\x22, false);\ngoog.string.FORCE_NON_DOM_HTML_UNESCAPING \x3d goog.define(\x22goog.string.FORCE_NON_DOM_HTML_UNESCAPING\x22, false);\ngoog.string.Unicode \x3d {NBSP:\x22\xa0\x22, ZERO_WIDTH_SPACE:\x22\u200b\x22};\ngoog.string.startsWith \x3d goog.string.internal.startsWith;\ngoog.string.endsWith \x3d goog.string.internal.endsWith;\ngoog.string.caseInsensitiveStartsWith \x3d goog.string.internal.caseInsensitiveStartsWith;\ngoog.string.caseInsensitiveEndsWith \x3d goog.string.internal.caseInsensitiveEndsWith;\ngoog.string.caseInsensitiveEquals \x3d goog.string.internal.caseInsensitiveEquals;\ngoog.string.subs \x3d function(str, var_args) {\n const splitParts \x3d str.split(\x22%s\x22);\n let returnString \x3d \x22\x22;\n const subsArguments \x3d Array.prototype.slice.call(arguments, 1);\n for (; subsArguments.length \x26\x26 splitParts.length \x3e 1;) {\n returnString \x3d returnString + (splitParts.shift() + subsArguments.shift());\n }\n return returnString + splitParts.join(\x22%s\x22);\n};\ngoog.string.collapseWhitespace \x3d function(str) {\n return str.replace(/[\\s\\xa0]+/g, \x22 \x22).replace(/^\\s+|\\s+$/g, \x22\x22);\n};\ngoog.string.isEmptyOrWhitespace \x3d goog.string.internal.isEmptyOrWhitespace;\ngoog.string.isEmptyString \x3d function(str) {\n return str.length \x3d\x3d 0;\n};\ngoog.string.isEmpty \x3d goog.string.isEmptyOrWhitespace;\ngoog.string.isEmptyOrWhitespaceSafe \x3d function(str) {\n return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(str));\n};\ngoog.string.isEmptySafe \x3d goog.string.isEmptyOrWhitespaceSafe;\ngoog.string.isBreakingWhitespace \x3d function(str) {\n return !/[^\\t\\n\\r ]/.test(str);\n};\ngoog.string.isAlpha \x3d function(str) {\n return !/[^a-zA-Z]/.test(str);\n};\ngoog.string.isNumeric \x3d function(str) {\n return !/[^0-9]/.test(str);\n};\ngoog.string.isAlphaNumeric \x3d function(str) {\n return !/[^a-zA-Z0-9]/.test(str);\n};\ngoog.string.isSpace \x3d function(ch) {\n return ch \x3d\x3d \x22 \x22;\n};\ngoog.string.isUnicodeChar \x3d function(ch) {\n return ch.length \x3d\x3d 1 \x26\x26 ch \x3e\x3d \x22 \x22 \x26\x26 ch \x3c\x3d \x22~\x22 || ch \x3e\x3d \x22\x80\x22 \x26\x26 ch \x3c\x3d \x22\ufffd\x22;\n};\ngoog.string.stripNewlines \x3d function(str) {\n return str.replace(/(\\r\\n|\\r|\\n)+/g, \x22 \x22);\n};\ngoog.string.canonicalizeNewlines \x3d function(str) {\n return str.replace(/(\\r\\n|\\r|\\n)/g, \x22\\n\x22);\n};\ngoog.string.normalizeWhitespace \x3d function(str) {\n return str.replace(/\\xa0|\\s/g, \x22 \x22);\n};\ngoog.string.normalizeSpaces \x3d function(str) {\n return str.replace(/\\xa0|[ \\t]+/g, \x22 \x22);\n};\ngoog.string.collapseBreakingSpaces \x3d function(str) {\n return str.replace(/[\\t\\r\\n ]+/g, \x22 \x22).replace(/^[\\t\\r\\n ]+|[\\t\\r\\n ]+$/g, \x22\x22);\n};\ngoog.string.trim \x3d goog.string.internal.trim;\ngoog.string.trimLeft \x3d function(str) {\n return str.replace(/^[\\s\\xa0]+/, \x22\x22);\n};\ngoog.string.trimRight \x3d function(str) {\n return str.replace(/[\\s\\xa0]+$/, \x22\x22);\n};\ngoog.string.caseInsensitiveCompare \x3d goog.string.internal.caseInsensitiveCompare;\ngoog.string.numberAwareCompare_ \x3d function(str1, str2, tokenizerRegExp) {\n if (str1 \x3d\x3d str2) {\n return 0;\n }\n if (!str1) {\n return -1;\n }\n if (!str2) {\n return 1;\n }\n const tokens1 \x3d str1.toLowerCase().match(tokenizerRegExp);\n const tokens2 \x3d str2.toLowerCase().match(tokenizerRegExp);\n const count \x3d Math.min(tokens1.length, tokens2.length);\n for (let i \x3d 0; i \x3c count; i++) {\n const a \x3d tokens1[i];\n const b \x3d tokens2[i];\n if (a !\x3d b) {\n const num1 \x3d parseInt(a, 10);\n if (!isNaN(num1)) {\n const num2 \x3d parseInt(b, 10);\n if (!isNaN(num2) \x26\x26 num1 - num2) {\n return num1 - num2;\n }\n }\n return a \x3c b ? -1 : 1;\n }\n }\n if (tokens1.length !\x3d tokens2.length) {\n return tokens1.length - tokens2.length;\n }\n return str1 \x3c str2 ? -1 : 1;\n};\ngoog.string.intAwareCompare \x3d function(str1, str2) {\n return goog.string.numberAwareCompare_(str1, str2, /\\d+|\\D+/g);\n};\ngoog.string.floatAwareCompare \x3d function(str1, str2) {\n return goog.string.numberAwareCompare_(str1, str2, /\\d+|\\.\\d+|\\D+/g);\n};\ngoog.string.numerateCompare \x3d goog.string.floatAwareCompare;\ngoog.string.urlEncode \x3d function(str) {\n return encodeURIComponent(String(str));\n};\ngoog.string.urlDecode \x3d function(str) {\n return decodeURIComponent(str.replace(/\\+/g, \x22 \x22));\n};\ngoog.string.newLineToBr \x3d goog.string.internal.newLineToBr;\ngoog.string.htmlEscape \x3d function(str, opt_isLikelyToContainHtmlChars) {\n str \x3d goog.string.internal.htmlEscape(str, opt_isLikelyToContainHtmlChars);\n if (goog.string.DETECT_DOUBLE_ESCAPING) {\n str \x3d str.replace(goog.string.E_RE_, \x22\\x26#101;\x22);\n }\n return str;\n};\ngoog.string.E_RE_ \x3d /e/g;\ngoog.string.unescapeEntities \x3d function(str) {\n if (goog.string.contains(str, \x22\\x26\x22)) {\n if (!goog.string.FORCE_NON_DOM_HTML_UNESCAPING \x26\x26 \x22document\x22 in goog.global) {\n return goog.string.unescapeEntitiesUsingDom_(str);\n } else {\n return goog.string.unescapePureXmlEntities_(str);\n }\n }\n return str;\n};\ngoog.string.unescapeEntitiesWithDocument \x3d function(str, document) {\n if (goog.string.contains(str, \x22\\x26\x22)) {\n return goog.string.unescapeEntitiesUsingDom_(str, document);\n }\n return str;\n};\ngoog.string.unescapeEntitiesUsingDom_ \x3d function(str, opt_document) {\n const seen \x3d {\x22\\x26amp;\x22:\x22\\x26\x22, \x22\\x26lt;\x22:\x22\\x3c\x22, \x22\\x26gt;\x22:\x22\\x3e\x22, \x22\\x26quot;\x22:\x27\x22\x27};\n let div;\n if (opt_document) {\n div \x3d opt_document.createElement(\x22div\x22);\n } else {\n div \x3d goog.global.document.createElement(\x22div\x22);\n }\n return str.replace(goog.string.HTML_ENTITY_PATTERN_, function(s, entity) {\n let value \x3d seen[s];\n if (value) {\n return value;\n }\n if (entity.charAt(0) \x3d\x3d \x22#\x22) {\n const n \x3d Number(\x220\x22 + entity.slice(1));\n if (!isNaN(n)) {\n value \x3d String.fromCharCode(n);\n }\n }\n if (!value) {\n goog.dom.safe.setInnerHtml(div, goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\x22Single HTML entity.\x22), s + \x22 \x22));\n value \x3d div.firstChild.nodeValue.slice(0, -1);\n }\n return seen[s] \x3d value;\n });\n};\ngoog.string.unescapePureXmlEntities_ \x3d function(str) {\n return str.replace(/\x26([^;]+);/g, function(s, entity) {\n switch(entity) {\n case \x22amp\x22:\n return \x22\\x26\x22;\n case \x22lt\x22:\n return \x22\\x3c\x22;\n case \x22gt\x22:\n return \x22\\x3e\x22;\n case \x22quot\x22:\n return \x27\x22\x27;\n default:\n if (entity.charAt(0) \x3d\x3d \x22#\x22) {\n const n \x3d Number(\x220\x22 + entity.slice(1));\n if (!isNaN(n)) {\n return String.fromCharCode(n);\n }\n }\n return s;\n }\n });\n};\ngoog.string.HTML_ENTITY_PATTERN_ \x3d /\x26([^;\\s\x3c\x26]+);?/g;\ngoog.string.whitespaceEscape \x3d function(str, opt_xml) {\n return goog.string.newLineToBr(str.replace(/ /g, \x22 \\x26#160;\x22), opt_xml);\n};\ngoog.string.preserveSpaces \x3d function(str) {\n return str.replace(/(^|[\\n ]) /g, \x22$1\x22 + goog.string.Unicode.NBSP);\n};\ngoog.string.stripQuotes \x3d function(str, quoteChars) {\n const length \x3d quoteChars.length;\n for (let i \x3d 0; i \x3c length; i++) {\n const quoteChar \x3d length \x3d\x3d 1 ? quoteChars : quoteChars.charAt(i);\n if (str.charAt(0) \x3d\x3d quoteChar \x26\x26 str.charAt(str.length - 1) \x3d\x3d quoteChar) {\n return str.substring(1, str.length - 1);\n }\n }\n return str;\n};\ngoog.string.truncate \x3d function(str, chars, opt_protectEscapedCharacters) {\n if (opt_protectEscapedCharacters) {\n str \x3d goog.string.unescapeEntities(str);\n }\n if (str.length \x3e chars) {\n str \x3d str.substring(0, chars - 3) + \x22...\x22;\n }\n if (opt_protectEscapedCharacters) {\n str \x3d goog.string.htmlEscape(str);\n }\n return str;\n};\ngoog.string.truncateMiddle \x3d function(str, chars, opt_protectEscapedCharacters, opt_trailingChars) {\n if (opt_protectEscapedCharacters) {\n str \x3d goog.string.unescapeEntities(str);\n }\n if (opt_trailingChars \x26\x26 str.length \x3e chars) {\n if (opt_trailingChars \x3e chars) {\n opt_trailingChars \x3d chars;\n }\n const endPoint \x3d str.length - opt_trailingChars;\n const startPoint \x3d chars - opt_trailingChars;\n str \x3d str.substring(0, startPoint) + \x22...\x22 + str.substring(endPoint);\n } else if (str.length \x3e chars) {\n let half \x3d Math.floor(chars / 2);\n const endPos \x3d str.length - half;\n half \x3d half + chars % 2;\n str \x3d str.substring(0, half) + \x22...\x22 + str.substring(endPos);\n }\n if (opt_protectEscapedCharacters) {\n str \x3d goog.string.htmlEscape(str);\n }\n return str;\n};\ngoog.string.specialEscapeChars_ \x3d {\x22\\x00\x22:\x22\\\\0\x22, \x22\\b\x22:\x22\\\\b\x22, \x22\\f\x22:\x22\\\\f\x22, \x22\\n\x22:\x22\\\\n\x22, \x22\\r\x22:\x22\\\\r\x22, \x22\\t\x22:\x22\\\\t\x22, \x22\\v\x22:\x22\\\\x0B\x22, \x27\x22\x27:\x27\\\\\x22\x27, \x22\\\\\x22:\x22\\\\\\\\\x22, \x22\\x3c\x22:\x22\\\\u003C\x22};\ngoog.string.jsEscapeCache_ \x3d {\x22\x27\x22:\x22\\\\\x27\x22};\ngoog.string.quote \x3d function(s) {\n s \x3d String(s);\n const sb \x3d [\x27\x22\x27];\n for (let i \x3d 0; i \x3c s.length; i++) {\n const ch \x3d s.charAt(i);\n const cc \x3d ch.charCodeAt(0);\n sb[i + 1] \x3d goog.string.specialEscapeChars_[ch] || (cc \x3e 31 \x26\x26 cc \x3c 127 ? ch : goog.string.escapeChar(ch));\n }\n sb.push(\x27\x22\x27);\n return sb.join(\x22\x22);\n};\ngoog.string.escapeString \x3d function(str) {\n const sb \x3d [];\n for (let i \x3d 0; i \x3c str.length; i++) {\n sb[i] \x3d goog.string.escapeChar(str.charAt(i));\n }\n return sb.join(\x22\x22);\n};\ngoog.string.escapeChar \x3d function(c) {\n if (c in goog.string.jsEscapeCache_) {\n return goog.string.jsEscapeCache_[c];\n }\n if (c in goog.string.specialEscapeChars_) {\n return goog.string.jsEscapeCache_[c] \x3d goog.string.specialEscapeChars_[c];\n }\n let rv \x3d c;\n const cc \x3d c.charCodeAt(0);\n if (cc \x3e 31 \x26\x26 cc \x3c 127) {\n rv \x3d c;\n } else {\n if (cc \x3c 256) {\n rv \x3d \x22\\\\x\x22;\n if (cc \x3c 16 || cc \x3e 256) {\n rv \x3d rv + \x220\x22;\n }\n } else {\n rv \x3d \x22\\\\u\x22;\n if (cc \x3c 4096) {\n rv \x3d rv + \x220\x22;\n }\n }\n rv \x3d rv + cc.toString(16).toUpperCase();\n }\n return goog.string.jsEscapeCache_[c] \x3d rv;\n};\ngoog.string.contains \x3d goog.string.internal.contains;\ngoog.string.caseInsensitiveContains \x3d goog.string.internal.caseInsensitiveContains;\ngoog.string.countOf \x3d function(s, ss) {\n return s \x26\x26 ss ? s.split(ss).length - 1 : 0;\n};\ngoog.string.removeAt \x3d function(s, index, stringLength) {\n let resultStr \x3d s;\n if (index \x3e\x3d 0 \x26\x26 index \x3c s.length \x26\x26 stringLength \x3e 0) {\n resultStr \x3d s.slice(0, index) + s.slice(index + stringLength);\n }\n return resultStr;\n};\ngoog.string.remove \x3d function(str, substr) {\n return str.replace(substr, \x22\x22);\n};\ngoog.string.removeAll \x3d function(s, ss) {\n const re \x3d new RegExp(goog.string.regExpEscape(ss), \x22g\x22);\n return s.replace(re, \x22\x22);\n};\ngoog.string.replaceAll \x3d function(s, ss, replacement) {\n const re \x3d new RegExp(goog.string.regExpEscape(ss), \x22g\x22);\n return s.replace(re, replacement.replace(/\\$/g, \x22$$$$\x22));\n};\ngoog.string.regExpEscape \x3d function(s) {\n return String(s).replace(/([-()\\[\\]{}+?*.$\\^|,:#\x3c!\\\\])/g, \x22\\\\$1\x22).replace(/\\x08/g, \x22\\\\x08\x22);\n};\ngoog.string.repeat \x3d String.prototype.repeat ? function(string, length) {\n return string.repeat(length);\n} : function(string, length) {\n return (new Array(length + 1)).join(string);\n};\ngoog.string.padNumber \x3d function(num, length, opt_precision) {\n if (!Number.isFinite(num)) {\n return String(num);\n }\n let s \x3d opt_precision !\x3d\x3d undefined ? num.toFixed(opt_precision) : String(num);\n let index \x3d s.indexOf(\x22.\x22);\n if (index \x3d\x3d\x3d -1) {\n index \x3d s.length;\n }\n const sign \x3d s[0] \x3d\x3d\x3d \x22-\x22 ? \x22-\x22 : \x22\x22;\n if (sign) {\n s \x3d s.substring(1);\n }\n return sign + goog.string.repeat(\x220\x22, Math.max(0, length - index)) + s;\n};\ngoog.string.makeSafe \x3d function(obj) {\n return obj \x3d\x3d null ? \x22\x22 : String(obj);\n};\ngoog.string.getRandomString \x3d function() {\n const x \x3d 2147483648;\n return Math.floor(Math.random() * x).toString(36) + Math.abs(Math.floor(Math.random() * x) ^ goog.now()).toString(36);\n};\ngoog.string.compareVersions \x3d goog.string.internal.compareVersions;\ngoog.string.hashCode \x3d function(str) {\n let result \x3d 0;\n for (let i \x3d 0; i \x3c str.length; ++i) {\n result \x3d 31 * result + str.charCodeAt(i) \x3e\x3e\x3e 0;\n }\n return result;\n};\ngoog.string.uniqueStringCounter_ \x3d Math.random() * 2147483648 | 0;\ngoog.string.createUniqueString \x3d function() {\n return \x22goog_\x22 + goog.string.uniqueStringCounter_++;\n};\ngoog.string.toNumber \x3d function(str) {\n const num \x3d Number(str);\n if (num \x3d\x3d 0 \x26\x26 goog.string.isEmptyOrWhitespace(str)) {\n return NaN;\n }\n return num;\n};\ngoog.string.isLowerCamelCase \x3d function(str) {\n return /^[a-z]+([A-Z][a-z]*)*$/.test(str);\n};\ngoog.string.isUpperCamelCase \x3d function(str) {\n return /^([A-Z][a-z]*)+$/.test(str);\n};\ngoog.string.toCamelCase \x3d function(str) {\n return String(str).replace(/\\-([a-z])/g, function(all, match) {\n return match.toUpperCase();\n });\n};\ngoog.string.toSelectorCase \x3d function(str) {\n return String(str).replace(/([A-Z])/g, \x22-$1\x22).toLowerCase();\n};\ngoog.string.toTitleCase \x3d function(str, opt_delimiters) {\n let delimiters \x3d typeof opt_delimiters \x3d\x3d\x3d \x22string\x22 ? goog.string.regExpEscape(opt_delimiters) : \x22\\\\s\x22;\n delimiters \x3d delimiters ? \x22|[\x22 + delimiters + \x22]+\x22 : \x22\x22;\n const regexp \x3d new RegExp(\x22(^\x22 + delimiters + \x22)([a-z])\x22, \x22g\x22);\n return str.replace(regexp, function(all, p1, p2) {\n return p1 + p2.toUpperCase();\n });\n};\ngoog.string.capitalize \x3d function(str) {\n return String(str.charAt(0)).toUpperCase() + String(str.slice(1)).toLowerCase();\n};\ngoog.string.parseInt \x3d function(value) {\n if (isFinite(value)) {\n value \x3d String(value);\n }\n if (typeof value \x3d\x3d\x3d \x22string\x22) {\n return /^\\s*-?0x/i.test(value) ? parseInt(value, 16) : parseInt(value, 10);\n }\n return NaN;\n};\ngoog.string.splitLimit \x3d function(str, separator, limit) {\n const parts \x3d str.split(separator);\n const returnVal \x3d [];\n for (; limit \x3e 0 \x26\x26 parts.length;) {\n returnVal.push(parts.shift());\n limit--;\n }\n if (parts.length) {\n returnVal.push(parts.join(separator));\n }\n return returnVal;\n};\ngoog.string.lastComponent \x3d function(str, separators) {\n if (!separators) {\n return str;\n } else if (typeof separators \x3d\x3d \x22string\x22) {\n separators \x3d [separators];\n }\n let lastSeparatorIndex \x3d -1;\n for (let i \x3d 0; i \x3c separators.length; i++) {\n if (separators[i] \x3d\x3d \x22\x22) {\n continue;\n }\n const currentSeparatorIndex \x3d str.lastIndexOf(separators[i]);\n if (currentSeparatorIndex \x3e lastSeparatorIndex) {\n lastSeparatorIndex \x3d currentSeparatorIndex;\n }\n }\n if (lastSeparatorIndex \x3d\x3d -1) {\n return str;\n }\n return str.slice(lastSeparatorIndex + 1);\n};\ngoog.string.editDistance \x3d function(a, b) {\n const v0 \x3d [];\n const v1 \x3d [];\n if (a \x3d\x3d b) {\n return 0;\n }\n if (!a.length || !b.length) {\n return Math.max(a.length, b.length);\n }\n for (let i \x3d 0; i \x3c b.length + 1; i++) {\n v0[i] \x3d i;\n }\n for (let i \x3d 0; i \x3c a.length; i++) {\n v1[0] \x3d i + 1;\n for (let j \x3d 0; j \x3c b.length; j++) {\n const cost \x3d Number(a[i] !\x3d b[j]);\n v1[j + 1] \x3d Math.min(v1[j] + 1, v0[j + 1] + 1, v0[j] + cost);\n }\n for (let j \x3d 0; j \x3c v0.length; j++) {\n v0[j] \x3d v1[j];\n }\n }\n return v1[b.length];\n};\n");
SHADOW_ENV.evalLoad("goog.collections.maps.js", true, "goog.loadModule(function(exports) {\n function setAll(map, entries) {\n if (!entries) {\n return;\n }\n for (const [k, v] of entries) {\n map.set(k, v);\n }\n }\n function hasValue(map, val, valueEqualityFn \x3d defaultEqualityFn) {\n for (const v of map.values()) {\n if (valueEqualityFn(v, val)) {\n return true;\n }\n }\n return false;\n }\n function equals(map, otherMap, valueEqualityFn \x3d defaultEqualityFn) {\n if (map \x3d\x3d\x3d otherMap) {\n return true;\n }\n if (map.size !\x3d\x3d otherMap.size) {\n return false;\n }\n for (const key of map.keys()) {\n if (!otherMap.has(key)) {\n return false;\n }\n if (!valueEqualityFn(map.get(key), otherMap.get(key))) {\n return false;\n }\n }\n return true;\n }\n function transpose(map) {\n const transposed \x3d new Map();\n for (const key of map.keys()) {\n const val \x3d map.get(key);\n transposed.set(val, key);\n }\n return transposed;\n }\n function toObject(map) {\n const obj \x3d {};\n for (const key of map.keys()) {\n obj[key] \x3d map.get(key);\n }\n return obj;\n }\n \x22use strict\x22;\n goog.module(\x22goog.collections.maps\x22);\n goog.module.declareLegacyNamespace();\n class MapLike {\n constructor() {\n this.size;\n }\n set(key, val) {\n }\n get(key) {\n }\n keys() {\n }\n values() {\n }\n has(key) {\n }\n }\n exports.MapLike \x3d MapLike;\n exports.setAll \x3d setAll;\n exports.hasValue \x3d hasValue;\n const defaultEqualityFn \x3d (a, b) \x3d\x3e {\n return a \x3d\x3d\x3d b;\n };\n exports.equals \x3d equals;\n exports.transpose \x3d transpose;\n exports.toObject \x3d toObject;\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.structs.structs.js", true, "goog.provide(\x22goog.structs\x22);\ngoog.require(\x22goog.array\x22);\ngoog.require(\x22goog.object\x22);\ngoog.structs.getCount \x3d function(col) {\n if (col.getCount \x26\x26 typeof col.getCount \x3d\x3d \x22function\x22) {\n return col.getCount();\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return col.length;\n }\n return goog.object.getCount(col);\n};\ngoog.structs.getValues \x3d function(col) {\n if (col.getValues \x26\x26 typeof col.getValues \x3d\x3d \x22function\x22) {\n return col.getValues();\n }\n if (typeof Map !\x3d\x3d \x22undefined\x22 \x26\x26 col instanceof Map || typeof Set !\x3d\x3d \x22undefined\x22 \x26\x26 col instanceof Set) {\n return Array.from(col.values());\n }\n if (typeof col \x3d\x3d\x3d \x22string\x22) {\n return col.split(\x22\x22);\n }\n if (goog.isArrayLike(col)) {\n var rv \x3d [];\n var l \x3d col.length;\n var i \x3d 0;\n for (; i \x3c l; i++) {\n rv.push(col[i]);\n }\n return rv;\n }\n return goog.object.getValues(col);\n};\ngoog.structs.getKeys \x3d function(col) {\n if (col.getKeys \x26\x26 typeof col.getKeys \x3d\x3d \x22function\x22) {\n return col.getKeys();\n }\n if (col.getValues \x26\x26 typeof col.getValues \x3d\x3d \x22function\x22) {\n return undefined;\n }\n if (typeof Map !\x3d\x3d \x22undefined\x22 \x26\x26 col instanceof Map) {\n return Array.from(col.keys());\n }\n if (typeof Set !\x3d\x3d \x22undefined\x22 \x26\x26 col instanceof Set) {\n return undefined;\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n var rv \x3d [];\n var l \x3d col.length;\n var i \x3d 0;\n for (; i \x3c l; i++) {\n rv.push(i);\n }\n return rv;\n }\n return goog.object.getKeys(col);\n};\ngoog.structs.contains \x3d function(col, val) {\n if (col.contains \x26\x26 typeof col.contains \x3d\x3d \x22function\x22) {\n return col.contains(val);\n }\n if (col.containsValue \x26\x26 typeof col.containsValue \x3d\x3d \x22function\x22) {\n return col.containsValue(val);\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return goog.array.contains(col, val);\n }\n return goog.object.containsValue(col, val);\n};\ngoog.structs.isEmpty \x3d function(col) {\n if (col.isEmpty \x26\x26 typeof col.isEmpty \x3d\x3d \x22function\x22) {\n return col.isEmpty();\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return col.length \x3d\x3d\x3d 0;\n }\n return goog.object.isEmpty(col);\n};\ngoog.structs.clear \x3d function(col) {\n if (col.clear \x26\x26 typeof col.clear \x3d\x3d \x22function\x22) {\n col.clear();\n } else if (goog.isArrayLike(col)) {\n goog.array.clear(col);\n } else {\n goog.object.clear(col);\n }\n};\ngoog.structs.forEach \x3d function(col, f, opt_obj) {\n if (col.forEach \x26\x26 typeof col.forEach \x3d\x3d \x22function\x22) {\n col.forEach(f, opt_obj);\n } else if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n Array.prototype.forEach.call(col, f, opt_obj);\n } else {\n var keys \x3d goog.structs.getKeys(col);\n var values \x3d goog.structs.getValues(col);\n var l \x3d values.length;\n var i \x3d 0;\n for (; i \x3c l; i++) {\n f.call(opt_obj, values[i], keys \x26\x26 keys[i], col);\n }\n }\n};\ngoog.structs.filter \x3d function(col, f, opt_obj) {\n if (typeof col.filter \x3d\x3d \x22function\x22) {\n return col.filter(f, opt_obj);\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return Array.prototype.filter.call(col, f, opt_obj);\n }\n var rv;\n var keys \x3d goog.structs.getKeys(col);\n var values \x3d goog.structs.getValues(col);\n var l \x3d values.length;\n if (keys) {\n rv \x3d {};\n var i \x3d 0;\n for (; i \x3c l; i++) {\n if (f.call(opt_obj, values[i], keys[i], col)) {\n rv[keys[i]] \x3d values[i];\n }\n }\n } else {\n rv \x3d [];\n i \x3d 0;\n for (; i \x3c l; i++) {\n if (f.call(opt_obj, values[i], undefined, col)) {\n rv.push(values[i]);\n }\n }\n }\n return rv;\n};\ngoog.structs.map \x3d function(col, f, opt_obj) {\n if (typeof col.map \x3d\x3d \x22function\x22) {\n return col.map(f, opt_obj);\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return Array.prototype.map.call(col, f, opt_obj);\n }\n var rv;\n var keys \x3d goog.structs.getKeys(col);\n var values \x3d goog.structs.getValues(col);\n var l \x3d values.length;\n if (keys) {\n rv \x3d {};\n var i \x3d 0;\n for (; i \x3c l; i++) {\n rv[keys[i]] \x3d f.call(opt_obj, values[i], keys[i], col);\n }\n } else {\n rv \x3d [];\n i \x3d 0;\n for (; i \x3c l; i++) {\n rv[i] \x3d f.call(opt_obj, values[i], undefined, col);\n }\n }\n return rv;\n};\ngoog.structs.some \x3d function(col, f, opt_obj) {\n if (typeof col.some \x3d\x3d \x22function\x22) {\n return col.some(f, opt_obj);\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return Array.prototype.some.call(col, f, opt_obj);\n }\n var keys \x3d goog.structs.getKeys(col);\n var values \x3d goog.structs.getValues(col);\n var l \x3d values.length;\n var i \x3d 0;\n for (; i \x3c l; i++) {\n if (f.call(opt_obj, values[i], keys \x26\x26 keys[i], col)) {\n return true;\n }\n }\n return false;\n};\ngoog.structs.every \x3d function(col, f, opt_obj) {\n if (typeof col.every \x3d\x3d \x22function\x22) {\n return col.every(f, opt_obj);\n }\n if (goog.isArrayLike(col) || typeof col \x3d\x3d\x3d \x22string\x22) {\n return Array.prototype.every.call(col, f, opt_obj);\n }\n var keys \x3d goog.structs.getKeys(col);\n var values \x3d goog.structs.getValues(col);\n var l \x3d values.length;\n var i \x3d 0;\n for (; i \x3c l; i++) {\n if (!f.call(opt_obj, values[i], keys \x26\x26 keys[i], col)) {\n return false;\n }\n }\n return true;\n};\n");
SHADOW_ENV.evalLoad("goog.uri.utils.js", true, "goog.provide(\x22goog.uri.utils\x22);\ngoog.provide(\x22goog.uri.utils.ComponentIndex\x22);\ngoog.provide(\x22goog.uri.utils.QueryArray\x22);\ngoog.provide(\x22goog.uri.utils.QueryValue\x22);\ngoog.provide(\x22goog.uri.utils.StandardQueryParam\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.string\x22);\ngoog.uri.utils.CharCode_ \x3d {AMPERSAND:38, EQUAL:61, HASH:35, QUESTION:63};\ngoog.uri.utils.buildFromEncodedParts \x3d function(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {\n var out \x3d \x22\x22;\n if (opt_scheme) {\n out \x3d out + (opt_scheme + \x22:\x22);\n }\n if (opt_domain) {\n out \x3d out + \x22//\x22;\n if (opt_userInfo) {\n out \x3d out + (opt_userInfo + \x22@\x22);\n }\n out \x3d out + opt_domain;\n if (opt_port) {\n out \x3d out + (\x22:\x22 + opt_port);\n }\n }\n if (opt_path) {\n out \x3d out + opt_path;\n }\n if (opt_queryData) {\n out \x3d out + (\x22?\x22 + opt_queryData);\n }\n if (opt_fragment) {\n out \x3d out + (\x22#\x22 + opt_fragment);\n }\n return out;\n};\ngoog.uri.utils.splitRe_ \x3d new RegExp(\x22^\x22 + \x22(?:\x22 + \x22([^:/?#.]+)\x22 + \x22:)?\x22 + \x22(?://\x22 + \x22(?:([^\\\\\\\\/?#]*)@)?\x22 + \x22([^\\\\\\\\/?#]*?)\x22 + \x22(?::([0-9]+))?\x22 + \x22(?\\x3d[\\\\\\\\/?#]|$)\x22 + \x22)?\x22 + \x22([^?#]+)?\x22 + \x22(?:\\\\?([^#]*))?\x22 + \x22(?:#([\\\\s\\\\S]*))?\x22 + \x22$\x22);\ngoog.uri.utils.ComponentIndex \x3d {SCHEME:1, USER_INFO:2, DOMAIN:3, PORT:4, PATH:5, QUERY_DATA:6, FRAGMENT:7};\ngoog.uri.utils.urlPackageSupportLoggingHandler_ \x3d null;\ngoog.uri.utils.setUrlPackageSupportLoggingHandler \x3d function(handler) {\n goog.uri.utils.urlPackageSupportLoggingHandler_ \x3d handler;\n};\ngoog.uri.utils.split \x3d function(uri) {\n var result \x3d uri.match(goog.uri.utils.splitRe_);\n if (goog.uri.utils.urlPackageSupportLoggingHandler_ \x26\x26 [\x22http\x22, \x22https\x22, \x22ws\x22, \x22wss\x22, \x22ftp\x22].indexOf(result[goog.uri.utils.ComponentIndex.SCHEME]) \x3e\x3d 0) {\n goog.uri.utils.urlPackageSupportLoggingHandler_(uri);\n }\n return result;\n};\ngoog.uri.utils.decodeIfPossible_ \x3d function(uri, opt_preserveReserved) {\n if (!uri) {\n return uri;\n }\n return opt_preserveReserved ? decodeURI(uri) : decodeURIComponent(uri);\n};\ngoog.uri.utils.getComponentByIndex_ \x3d function(componentIndex, uri) {\n return goog.uri.utils.split(uri)[componentIndex] || null;\n};\ngoog.uri.utils.getScheme \x3d function(uri) {\n return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME, uri);\n};\ngoog.uri.utils.getEffectiveScheme \x3d function(uri) {\n var scheme \x3d goog.uri.utils.getScheme(uri);\n if (!scheme \x26\x26 goog.global.self \x26\x26 goog.global.self.location) {\n var protocol \x3d goog.global.self.location.protocol;\n scheme \x3d protocol.slice(0, -1);\n }\n return scheme ? scheme.toLowerCase() : \x22\x22;\n};\ngoog.uri.utils.getUserInfoEncoded \x3d function(uri) {\n return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO, uri);\n};\ngoog.uri.utils.getUserInfo \x3d function(uri) {\n return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(uri));\n};\ngoog.uri.utils.getDomainEncoded \x3d function(uri) {\n return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN, uri);\n};\ngoog.uri.utils.getDomain \x3d function(uri) {\n return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(uri), true);\n};\ngoog.uri.utils.getPort \x3d function(uri) {\n return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT, uri)) || null;\n};\ngoog.uri.utils.getPathEncoded \x3d function(uri) {\n return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH, uri);\n};\ngoog.uri.utils.getPath \x3d function(uri) {\n return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(uri), true);\n};\ngoog.uri.utils.getQueryData \x3d function(uri) {\n return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA, uri);\n};\ngoog.uri.utils.getFragmentEncoded \x3d function(uri) {\n var hashIndex \x3d uri.indexOf(\x22#\x22);\n return hashIndex \x3c 0 ? null : uri.slice(hashIndex + 1);\n};\ngoog.uri.utils.setFragmentEncoded \x3d function(uri, fragment) {\n return goog.uri.utils.removeFragment(uri) + (fragment ? \x22#\x22 + fragment : \x22\x22);\n};\ngoog.uri.utils.getFragment \x3d function(uri) {\n return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(uri));\n};\ngoog.uri.utils.getHost \x3d function(uri) {\n var pieces \x3d goog.uri.utils.split(uri);\n return goog.uri.utils.buildFromEncodedParts(pieces[goog.uri.utils.ComponentIndex.SCHEME], pieces[goog.uri.utils.ComponentIndex.USER_INFO], pieces[goog.uri.utils.ComponentIndex.DOMAIN], pieces[goog.uri.utils.ComponentIndex.PORT]);\n};\ngoog.uri.utils.getOrigin \x3d function(uri) {\n var pieces \x3d goog.uri.utils.split(uri);\n return goog.uri.utils.buildFromEncodedParts(pieces[goog.uri.utils.ComponentIndex.SCHEME], null, pieces[goog.uri.utils.ComponentIndex.DOMAIN], pieces[goog.uri.utils.ComponentIndex.PORT]);\n};\ngoog.uri.utils.getPathAndAfter \x3d function(uri) {\n var pieces \x3d goog.uri.utils.split(uri);\n return goog.uri.utils.buildFromEncodedParts(null, null, null, null, pieces[goog.uri.utils.ComponentIndex.PATH], pieces[goog.uri.utils.ComponentIndex.QUERY_DATA], pieces[goog.uri.utils.ComponentIndex.FRAGMENT]);\n};\ngoog.uri.utils.removeFragment \x3d function(uri) {\n var hashIndex \x3d uri.indexOf(\x22#\x22);\n return hashIndex \x3c 0 ? uri : uri.slice(0, hashIndex);\n};\ngoog.uri.utils.haveSameDomain \x3d function(uri1, uri2) {\n var pieces1 \x3d goog.uri.utils.split(uri1);\n var pieces2 \x3d goog.uri.utils.split(uri2);\n return pieces1[goog.uri.utils.ComponentIndex.DOMAIN] \x3d\x3d pieces2[goog.uri.utils.ComponentIndex.DOMAIN] \x26\x26 pieces1[goog.uri.utils.ComponentIndex.SCHEME] \x3d\x3d pieces2[goog.uri.utils.ComponentIndex.SCHEME] \x26\x26 pieces1[goog.uri.utils.ComponentIndex.PORT] \x3d\x3d pieces2[goog.uri.utils.ComponentIndex.PORT];\n};\ngoog.uri.utils.assertNoFragmentsOrQueries_ \x3d function(uri) {\n goog.asserts.assert(uri.indexOf(\x22#\x22) \x3c 0 \x26\x26 uri.indexOf(\x22?\x22) \x3c 0, \x22goog.uri.utils: Fragment or query identifiers are not supported: [%s]\x22, uri);\n};\ngoog.uri.utils.QueryValue;\ngoog.uri.utils.QueryArray;\ngoog.uri.utils.parseQueryData \x3d function(encodedQuery, callback) {\n if (!encodedQuery) {\n return;\n }\n var pairs \x3d encodedQuery.split(\x22\\x26\x22);\n var i \x3d 0;\n for (; i \x3c pairs.length; i++) {\n var indexOfEquals \x3d pairs[i].indexOf(\x22\\x3d\x22);\n var name \x3d null;\n var value \x3d null;\n if (indexOfEquals \x3e\x3d 0) {\n name \x3d pairs[i].substring(0, indexOfEquals);\n value \x3d pairs[i].substring(indexOfEquals + 1);\n } else {\n name \x3d pairs[i];\n }\n callback(name, value ? goog.string.urlDecode(value) : \x22\x22);\n }\n};\ngoog.uri.utils.splitQueryData_ \x3d function(uri) {\n var hashIndex \x3d uri.indexOf(\x22#\x22);\n if (hashIndex \x3c 0) {\n hashIndex \x3d uri.length;\n }\n var questionIndex \x3d uri.indexOf(\x22?\x22);\n var queryData;\n if (questionIndex \x3c 0 || questionIndex \x3e hashIndex) {\n questionIndex \x3d hashIndex;\n queryData \x3d \x22\x22;\n } else {\n queryData \x3d uri.substring(questionIndex + 1, hashIndex);\n }\n return [uri.slice(0, questionIndex), queryData, uri.slice(hashIndex)];\n};\ngoog.uri.utils.joinQueryData_ \x3d function(parts) {\n return parts[0] + (parts[1] ? \x22?\x22 + parts[1] : \x22\x22) + parts[2];\n};\ngoog.uri.utils.appendQueryData_ \x3d function(queryData, newData) {\n if (!newData) {\n return queryData;\n }\n return queryData ? queryData + \x22\\x26\x22 + newData : newData;\n};\ngoog.uri.utils.appendQueryDataToUri_ \x3d function(uri, queryData) {\n if (!queryData) {\n return uri;\n }\n var parts \x3d goog.uri.utils.splitQueryData_(uri);\n parts[1] \x3d goog.uri.utils.appendQueryData_(parts[1], queryData);\n return goog.uri.utils.joinQueryData_(parts);\n};\ngoog.uri.utils.appendKeyValuePairs_ \x3d function(key, value, pairs) {\n goog.asserts.assertString(key);\n if (Array.isArray(value)) {\n goog.asserts.assertArray(value);\n var j \x3d 0;\n for (; j \x3c value.length; j++) {\n goog.uri.utils.appendKeyValuePairs_(key, String(value[j]), pairs);\n }\n } else if (value !\x3d null) {\n pairs.push(key + (value \x3d\x3d\x3d \x22\x22 ? \x22\x22 : \x22\\x3d\x22 + goog.string.urlEncode(value)));\n }\n};\ngoog.uri.utils.buildQueryData \x3d function(keysAndValues, opt_startIndex) {\n goog.asserts.assert(Math.max(keysAndValues.length - (opt_startIndex || 0), 0) % 2 \x3d\x3d 0, \x22goog.uri.utils: Key/value lists must be even in length.\x22);\n var params \x3d [];\n var i \x3d opt_startIndex || 0;\n for (; i \x3c keysAndValues.length; i \x3d i + 2) {\n var key \x3d keysAndValues[i];\n goog.uri.utils.appendKeyValuePairs_(key, keysAndValues[i + 1], params);\n }\n return params.join(\x22\\x26\x22);\n};\ngoog.uri.utils.buildQueryDataFromMap \x3d function(map) {\n var params \x3d [];\n var key;\n for (key in map) {\n goog.uri.utils.appendKeyValuePairs_(key, map[key], params);\n }\n return params.join(\x22\\x26\x22);\n};\ngoog.uri.utils.appendParams \x3d function(uri, var_args) {\n var queryData \x3d arguments.length \x3d\x3d 2 ? goog.uri.utils.buildQueryData(arguments[1], 0) : goog.uri.utils.buildQueryData(arguments, 1);\n return goog.uri.utils.appendQueryDataToUri_(uri, queryData);\n};\ngoog.uri.utils.appendParamsFromMap \x3d function(uri, map) {\n var queryData \x3d goog.uri.utils.buildQueryDataFromMap(map);\n return goog.uri.utils.appendQueryDataToUri_(uri, queryData);\n};\ngoog.uri.utils.appendParam \x3d function(uri, key, opt_value) {\n var value \x3d opt_value !\x3d null ? \x22\\x3d\x22 + goog.string.urlEncode(opt_value) : \x22\x22;\n return goog.uri.utils.appendQueryDataToUri_(uri, key + value);\n};\ngoog.uri.utils.findParam_ \x3d function(uri, startIndex, keyEncoded, hashOrEndIndex) {\n var index \x3d startIndex;\n var keyLength \x3d keyEncoded.length;\n for (; (index \x3d uri.indexOf(keyEncoded, index)) \x3e\x3d 0 \x26\x26 index \x3c hashOrEndIndex;) {\n var precedingChar \x3d uri.charCodeAt(index - 1);\n if (precedingChar \x3d\x3d goog.uri.utils.CharCode_.AMPERSAND || precedingChar \x3d\x3d goog.uri.utils.CharCode_.QUESTION) {\n var followingChar \x3d uri.charCodeAt(index + keyLength);\n if (!followingChar || followingChar \x3d\x3d goog.uri.utils.CharCode_.EQUAL || followingChar \x3d\x3d goog.uri.utils.CharCode_.AMPERSAND || followingChar \x3d\x3d goog.uri.utils.CharCode_.HASH) {\n return index;\n }\n }\n index \x3d index + (keyLength + 1);\n }\n return -1;\n};\ngoog.uri.utils.hashOrEndRe_ \x3d /#|$/;\ngoog.uri.utils.hasParam \x3d function(uri, keyEncoded) {\n return goog.uri.utils.findParam_(uri, 0, keyEncoded, uri.search(goog.uri.utils.hashOrEndRe_)) \x3e\x3d 0;\n};\ngoog.uri.utils.getParamValue \x3d function(uri, keyEncoded) {\n var hashOrEndIndex \x3d uri.search(goog.uri.utils.hashOrEndRe_);\n var foundIndex \x3d goog.uri.utils.findParam_(uri, 0, keyEncoded, hashOrEndIndex);\n if (foundIndex \x3c 0) {\n return null;\n } else {\n var endPosition \x3d uri.indexOf(\x22\\x26\x22, foundIndex);\n if (endPosition \x3c 0 || endPosition \x3e hashOrEndIndex) {\n endPosition \x3d hashOrEndIndex;\n }\n foundIndex \x3d foundIndex + (keyEncoded.length + 1);\n return goog.string.urlDecode(uri.slice(foundIndex, endPosition !\x3d\x3d -1 ? endPosition : 0));\n }\n};\ngoog.uri.utils.getParamValues \x3d function(uri, keyEncoded) {\n var hashOrEndIndex \x3d uri.search(goog.uri.utils.hashOrEndRe_);\n var position \x3d 0;\n var foundIndex;\n var result \x3d [];\n for (; (foundIndex \x3d goog.uri.utils.findParam_(uri, position, keyEncoded, hashOrEndIndex)) \x3e\x3d 0;) {\n position \x3d uri.indexOf(\x22\\x26\x22, foundIndex);\n if (position \x3c 0 || position \x3e hashOrEndIndex) {\n position \x3d hashOrEndIndex;\n }\n foundIndex \x3d foundIndex + (keyEncoded.length + 1);\n result.push(goog.string.urlDecode(uri.slice(foundIndex, Math.max(position, 0))));\n }\n return result;\n};\ngoog.uri.utils.trailingQueryPunctuationRe_ \x3d /[?\x26]($|#)/;\ngoog.uri.utils.removeParam \x3d function(uri, keyEncoded) {\n var hashOrEndIndex \x3d uri.search(goog.uri.utils.hashOrEndRe_);\n var position \x3d 0;\n var foundIndex;\n var buffer \x3d [];\n for (; (foundIndex \x3d goog.uri.utils.findParam_(uri, position, keyEncoded, hashOrEndIndex)) \x3e\x3d 0;) {\n buffer.push(uri.substring(position, foundIndex));\n position \x3d Math.min(uri.indexOf(\x22\\x26\x22, foundIndex) + 1 || hashOrEndIndex, hashOrEndIndex);\n }\n buffer.push(uri.slice(position));\n return buffer.join(\x22\x22).replace(goog.uri.utils.trailingQueryPunctuationRe_, \x22$1\x22);\n};\ngoog.uri.utils.setParam \x3d function(uri, keyEncoded, value) {\n return goog.uri.utils.appendParam(goog.uri.utils.removeParam(uri, keyEncoded), keyEncoded, value);\n};\ngoog.uri.utils.setParamsFromMap \x3d function(uri, params) {\n var parts \x3d goog.uri.utils.splitQueryData_(uri);\n var queryData \x3d parts[1];\n var buffer \x3d [];\n if (queryData) {\n queryData.split(\x22\\x26\x22).forEach(function(pair) {\n var indexOfEquals \x3d pair.indexOf(\x22\\x3d\x22);\n var name \x3d indexOfEquals \x3e\x3d 0 ? pair.slice(0, indexOfEquals) : pair;\n if (!params.hasOwnProperty(name)) {\n buffer.push(pair);\n }\n });\n }\n parts[1] \x3d goog.uri.utils.appendQueryData_(buffer.join(\x22\\x26\x22), goog.uri.utils.buildQueryDataFromMap(params));\n return goog.uri.utils.joinQueryData_(parts);\n};\ngoog.uri.utils.appendPath \x3d function(baseUri, path) {\n goog.uri.utils.assertNoFragmentsOrQueries_(baseUri);\n if (goog.string.endsWith(baseUri, \x22/\x22)) {\n baseUri \x3d baseUri.slice(0, -1);\n }\n if (goog.string.startsWith(path, \x22/\x22)) {\n path \x3d path.slice(1);\n }\n return \x22\x22 + baseUri + \x22/\x22 + path;\n};\ngoog.uri.utils.setPath \x3d function(uri, path) {\n if (!goog.string.startsWith(path, \x22/\x22)) {\n path \x3d \x22/\x22 + path;\n }\n var parts \x3d goog.uri.utils.split(uri);\n return goog.uri.utils.buildFromEncodedParts(parts[goog.uri.utils.ComponentIndex.SCHEME], parts[goog.uri.utils.ComponentIndex.USER_INFO], parts[goog.uri.utils.ComponentIndex.DOMAIN], parts[goog.uri.utils.ComponentIndex.PORT], path, parts[goog.uri.utils.ComponentIndex.QUERY_DATA], parts[goog.uri.utils.ComponentIndex.FRAGMENT]);\n};\ngoog.uri.utils.StandardQueryParam \x3d {RANDOM:\x22zx\x22};\ngoog.uri.utils.makeUnique \x3d function(uri) {\n return goog.uri.utils.setParam(uri, goog.uri.utils.StandardQueryParam.RANDOM, goog.string.getRandomString());\n};\n");
SHADOW_ENV.evalLoad("goog.uri.uri.js", true, "goog.provide(\x22goog.Uri\x22);\ngoog.provide(\x22goog.Uri.QueryData\x22);\ngoog.require(\x22goog.array\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.collections.maps\x22);\ngoog.require(\x22goog.string\x22);\ngoog.require(\x22goog.structs\x22);\ngoog.require(\x22goog.uri.utils\x22);\ngoog.require(\x22goog.uri.utils.ComponentIndex\x22);\ngoog.require(\x22goog.uri.utils.StandardQueryParam\x22);\ngoog.Uri \x3d function(opt_uri, opt_ignoreCase) {\n this.scheme_ \x3d \x22\x22;\n this.userInfo_ \x3d \x22\x22;\n this.domain_ \x3d \x22\x22;\n this.port_ \x3d null;\n this.path_ \x3d \x22\x22;\n this.fragment_ \x3d \x22\x22;\n this.isReadOnly_ \x3d false;\n this.ignoreCase_ \x3d false;\n this.queryData_;\n var m;\n if (opt_uri instanceof goog.Uri) {\n this.ignoreCase_ \x3d opt_ignoreCase !\x3d\x3d undefined ? opt_ignoreCase : opt_uri.getIgnoreCase();\n this.setScheme(opt_uri.getScheme());\n this.setUserInfo(opt_uri.getUserInfo());\n this.setDomain(opt_uri.getDomain());\n this.setPort(opt_uri.getPort());\n this.setPath(opt_uri.getPath());\n this.setQueryData(opt_uri.getQueryData().clone());\n this.setFragment(opt_uri.getFragment());\n } else if (opt_uri \x26\x26 (m \x3d goog.uri.utils.split(String(opt_uri)))) {\n this.ignoreCase_ \x3d !!opt_ignoreCase;\n this.setScheme(m[goog.uri.utils.ComponentIndex.SCHEME] || \x22\x22, true);\n this.setUserInfo(m[goog.uri.utils.ComponentIndex.USER_INFO] || \x22\x22, true);\n this.setDomain(m[goog.uri.utils.ComponentIndex.DOMAIN] || \x22\x22, true);\n this.setPort(m[goog.uri.utils.ComponentIndex.PORT]);\n this.setPath(m[goog.uri.utils.ComponentIndex.PATH] || \x22\x22, true);\n this.setQueryData(m[goog.uri.utils.ComponentIndex.QUERY_DATA] || \x22\x22, true);\n this.setFragment(m[goog.uri.utils.ComponentIndex.FRAGMENT] || \x22\x22, true);\n } else {\n this.ignoreCase_ \x3d !!opt_ignoreCase;\n this.queryData_ \x3d new goog.Uri.QueryData(null, this.ignoreCase_);\n }\n};\ngoog.Uri.RANDOM_PARAM \x3d goog.uri.utils.StandardQueryParam.RANDOM;\ngoog.Uri.prototype.toString \x3d function() {\n var out \x3d [];\n var scheme \x3d this.getScheme();\n if (scheme) {\n out.push(goog.Uri.encodeSpecialChars_(scheme, goog.Uri.reDisallowedInSchemeOrUserInfo_, true), \x22:\x22);\n }\n var domain \x3d this.getDomain();\n if (domain || scheme \x3d\x3d \x22file\x22) {\n out.push(\x22//\x22);\n var userInfo \x3d this.getUserInfo();\n if (userInfo) {\n out.push(goog.Uri.encodeSpecialChars_(userInfo, goog.Uri.reDisallowedInSchemeOrUserInfo_, true), \x22@\x22);\n }\n out.push(goog.Uri.removeDoubleEncoding_(goog.string.urlEncode(domain)));\n var port \x3d this.getPort();\n if (port !\x3d null) {\n out.push(\x22:\x22, String(port));\n }\n }\n var path \x3d this.getPath();\n if (path) {\n if (this.hasDomain() \x26\x26 path.charAt(0) !\x3d \x22/\x22) {\n out.push(\x22/\x22);\n }\n out.push(goog.Uri.encodeSpecialChars_(path, path.charAt(0) \x3d\x3d \x22/\x22 ? goog.Uri.reDisallowedInAbsolutePath_ : goog.Uri.reDisallowedInRelativePath_, true));\n }\n var query \x3d this.getEncodedQuery();\n if (query) {\n out.push(\x22?\x22, query);\n }\n var fragment \x3d this.getFragment();\n if (fragment) {\n out.push(\x22#\x22, goog.Uri.encodeSpecialChars_(fragment, goog.Uri.reDisallowedInFragment_));\n }\n return out.join(\x22\x22);\n};\ngoog.Uri.prototype.resolve \x3d function(relativeUri) {\n var absoluteUri \x3d this.clone();\n var overridden \x3d relativeUri.hasScheme();\n if (overridden) {\n absoluteUri.setScheme(relativeUri.getScheme());\n } else {\n overridden \x3d relativeUri.hasUserInfo();\n }\n if (overridden) {\n absoluteUri.setUserInfo(relativeUri.getUserInfo());\n } else {\n overridden \x3d relativeUri.hasDomain();\n }\n if (overridden) {\n absoluteUri.setDomain(relativeUri.getDomain());\n } else {\n overridden \x3d relativeUri.hasPort();\n }\n var path \x3d relativeUri.getPath();\n if (overridden) {\n absoluteUri.setPort(relativeUri.getPort());\n } else {\n overridden \x3d relativeUri.hasPath();\n if (overridden) {\n if (path.charAt(0) !\x3d \x22/\x22) {\n if (this.hasDomain() \x26\x26 !this.hasPath()) {\n path \x3d \x22/\x22 + path;\n } else {\n var lastSlashIndex \x3d absoluteUri.getPath().lastIndexOf(\x22/\x22);\n if (lastSlashIndex !\x3d -1) {\n path \x3d absoluteUri.getPath().slice(0, lastSlashIndex + 1) + path;\n }\n }\n }\n path \x3d goog.Uri.removeDotSegments(path);\n }\n }\n if (overridden) {\n absoluteUri.setPath(path);\n } else {\n overridden \x3d relativeUri.hasQuery();\n }\n if (overridden) {\n absoluteUri.setQueryData(relativeUri.getQueryData().clone());\n } else {\n overridden \x3d relativeUri.hasFragment();\n }\n if (overridden) {\n absoluteUri.setFragment(relativeUri.getFragment());\n }\n return absoluteUri;\n};\ngoog.Uri.prototype.clone \x3d function() {\n return new goog.Uri(this);\n};\ngoog.Uri.prototype.getScheme \x3d function() {\n return this.scheme_;\n};\ngoog.Uri.prototype.setScheme \x3d function(newScheme, opt_decode) {\n this.enforceReadOnly();\n this.scheme_ \x3d opt_decode ? goog.Uri.decodeOrEmpty_(newScheme, true) : newScheme;\n if (this.scheme_) {\n this.scheme_ \x3d this.scheme_.replace(/:$/, \x22\x22);\n }\n return this;\n};\ngoog.Uri.prototype.hasScheme \x3d function() {\n return !!this.scheme_;\n};\ngoog.Uri.prototype.getUserInfo \x3d function() {\n return this.userInfo_;\n};\ngoog.Uri.prototype.setUserInfo \x3d function(newUserInfo, opt_decode) {\n this.enforceReadOnly();\n this.userInfo_ \x3d opt_decode ? goog.Uri.decodeOrEmpty_(newUserInfo) : newUserInfo;\n return this;\n};\ngoog.Uri.prototype.hasUserInfo \x3d function() {\n return !!this.userInfo_;\n};\ngoog.Uri.prototype.getDomain \x3d function() {\n return this.domain_;\n};\ngoog.Uri.prototype.setDomain \x3d function(newDomain, opt_decode) {\n this.enforceReadOnly();\n this.domain_ \x3d opt_decode ? goog.Uri.decodeOrEmpty_(newDomain, true) : newDomain;\n return this;\n};\ngoog.Uri.prototype.hasDomain \x3d function() {\n return !!this.domain_;\n};\ngoog.Uri.prototype.getPort \x3d function() {\n return this.port_;\n};\ngoog.Uri.prototype.setPort \x3d function(newPort) {\n this.enforceReadOnly();\n if (newPort) {\n newPort \x3d Number(newPort);\n if (isNaN(newPort) || newPort \x3c 0) {\n throw new Error(\x22Bad port number \x22 + newPort);\n }\n this.port_ \x3d newPort;\n } else {\n this.port_ \x3d null;\n }\n return this;\n};\ngoog.Uri.prototype.hasPort \x3d function() {\n return this.port_ !\x3d null;\n};\ngoog.Uri.prototype.getPath \x3d function() {\n return this.path_;\n};\ngoog.Uri.prototype.setPath \x3d function(newPath, opt_decode) {\n this.enforceReadOnly();\n this.path_ \x3d opt_decode ? goog.Uri.decodeOrEmpty_(newPath, true) : newPath;\n return this;\n};\ngoog.Uri.prototype.hasPath \x3d function() {\n return !!this.path_;\n};\ngoog.Uri.prototype.hasQuery \x3d function() {\n return this.queryData_.toString() !\x3d\x3d \x22\x22;\n};\ngoog.Uri.prototype.setQueryData \x3d function(queryData, opt_decode) {\n this.enforceReadOnly();\n if (queryData instanceof goog.Uri.QueryData) {\n this.queryData_ \x3d queryData;\n this.queryData_.setIgnoreCase(this.ignoreCase_);\n } else {\n if (!opt_decode) {\n queryData \x3d goog.Uri.encodeSpecialChars_(queryData, goog.Uri.reDisallowedInQuery_);\n }\n this.queryData_ \x3d new goog.Uri.QueryData(queryData, this.ignoreCase_);\n }\n return this;\n};\ngoog.Uri.prototype.setQuery \x3d function(newQuery, opt_decode) {\n return this.setQueryData(newQuery, opt_decode);\n};\ngoog.Uri.prototype.getEncodedQuery \x3d function() {\n return this.queryData_.toString();\n};\ngoog.Uri.prototype.getDecodedQuery \x3d function() {\n return this.queryData_.toDecodedString();\n};\ngoog.Uri.prototype.getQueryData \x3d function() {\n return this.queryData_;\n};\ngoog.Uri.prototype.getQuery \x3d function() {\n return this.getEncodedQuery();\n};\ngoog.Uri.prototype.setParameterValue \x3d function(key, value) {\n this.enforceReadOnly();\n this.queryData_.set(key, value);\n return this;\n};\ngoog.Uri.prototype.setParameterValues \x3d function(key, values) {\n this.enforceReadOnly();\n if (!Array.isArray(values)) {\n values \x3d [String(values)];\n }\n this.queryData_.setValues(key, values);\n return this;\n};\ngoog.Uri.prototype.getParameterValues \x3d function(name) {\n return this.queryData_.getValues(name);\n};\ngoog.Uri.prototype.getParameterValue \x3d function(paramName) {\n return this.queryData_.get(paramName);\n};\ngoog.Uri.prototype.getFragment \x3d function() {\n return this.fragment_;\n};\ngoog.Uri.prototype.setFragment \x3d function(newFragment, opt_decode) {\n this.enforceReadOnly();\n this.fragment_ \x3d opt_decode ? goog.Uri.decodeOrEmpty_(newFragment) : newFragment;\n return this;\n};\ngoog.Uri.prototype.hasFragment \x3d function() {\n return !!this.fragment_;\n};\ngoog.Uri.prototype.hasSameDomainAs \x3d function(uri2) {\n return (!this.hasDomain() \x26\x26 !uri2.hasDomain() || this.getDomain() \x3d\x3d uri2.getDomain()) \x26\x26 (!this.hasPort() \x26\x26 !uri2.hasPort() || this.getPort() \x3d\x3d uri2.getPort());\n};\ngoog.Uri.prototype.makeUnique \x3d function() {\n this.enforceReadOnly();\n this.setParameterValue(goog.Uri.RANDOM_PARAM, goog.string.getRandomString());\n return this;\n};\ngoog.Uri.prototype.removeParameter \x3d function(key) {\n this.enforceReadOnly();\n this.queryData_.remove(key);\n return this;\n};\ngoog.Uri.prototype.setReadOnly \x3d function(isReadOnly) {\n this.isReadOnly_ \x3d isReadOnly;\n return this;\n};\ngoog.Uri.prototype.isReadOnly \x3d function() {\n return this.isReadOnly_;\n};\ngoog.Uri.prototype.enforceReadOnly \x3d function() {\n if (this.isReadOnly_) {\n throw new Error(\x22Tried to modify a read-only Uri\x22);\n }\n};\ngoog.Uri.prototype.setIgnoreCase \x3d function(ignoreCase) {\n this.ignoreCase_ \x3d ignoreCase;\n if (this.queryData_) {\n this.queryData_.setIgnoreCase(ignoreCase);\n }\n return this;\n};\ngoog.Uri.prototype.getIgnoreCase \x3d function() {\n return this.ignoreCase_;\n};\ngoog.Uri.parse \x3d function(uri, opt_ignoreCase) {\n return uri instanceof goog.Uri ? uri.clone() : new goog.Uri(uri, opt_ignoreCase);\n};\ngoog.Uri.create \x3d function(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_query, opt_fragment, opt_ignoreCase) {\n var uri \x3d new goog.Uri(null, opt_ignoreCase);\n opt_scheme \x26\x26 uri.setScheme(opt_scheme);\n opt_userInfo \x26\x26 uri.setUserInfo(opt_userInfo);\n opt_domain \x26\x26 uri.setDomain(opt_domain);\n opt_port \x26\x26 uri.setPort(opt_port);\n opt_path \x26\x26 uri.setPath(opt_path);\n opt_query \x26\x26 uri.setQueryData(opt_query);\n opt_fragment \x26\x26 uri.setFragment(opt_fragment);\n return uri;\n};\ngoog.Uri.resolve \x3d function(base, rel) {\n if (!(base instanceof goog.Uri)) {\n base \x3d goog.Uri.parse(base);\n }\n if (!(rel instanceof goog.Uri)) {\n rel \x3d goog.Uri.parse(rel);\n }\n return base.resolve(rel);\n};\ngoog.Uri.removeDotSegments \x3d function(path) {\n if (path \x3d\x3d \x22..\x22 || path \x3d\x3d \x22.\x22) {\n return \x22\x22;\n } else if (!goog.string.contains(path, \x22./\x22) \x26\x26 !goog.string.contains(path, \x22/.\x22)) {\n return path;\n } else {\n var leadingSlash \x3d goog.string.startsWith(path, \x22/\x22);\n var segments \x3d path.split(\x22/\x22);\n var out \x3d [];\n var pos \x3d 0;\n for (; pos \x3c segments.length;) {\n var segment \x3d segments[pos++];\n if (segment \x3d\x3d \x22.\x22) {\n if (leadingSlash \x26\x26 pos \x3d\x3d segments.length) {\n out.push(\x22\x22);\n }\n } else if (segment \x3d\x3d \x22..\x22) {\n if (out.length \x3e 1 || out.length \x3d\x3d 1 \x26\x26 out[0] !\x3d \x22\x22) {\n out.pop();\n }\n if (leadingSlash \x26\x26 pos \x3d\x3d segments.length) {\n out.push(\x22\x22);\n }\n } else {\n out.push(segment);\n leadingSlash \x3d true;\n }\n }\n return out.join(\x22/\x22);\n }\n};\ngoog.Uri.decodeOrEmpty_ \x3d function(val, opt_preserveReserved) {\n if (!val) {\n return \x22\x22;\n }\n return opt_preserveReserved ? decodeURI(val.replace(/%25/g, \x22%2525\x22)) : decodeURIComponent(val);\n};\ngoog.Uri.encodeSpecialChars_ \x3d function(unescapedPart, extra, opt_removeDoubleEncoding) {\n if (typeof unescapedPart \x3d\x3d\x3d \x22string\x22) {\n var encoded \x3d encodeURI(unescapedPart).replace(extra, goog.Uri.encodeChar_);\n if (opt_removeDoubleEncoding) {\n encoded \x3d goog.Uri.removeDoubleEncoding_(encoded);\n }\n return encoded;\n }\n return null;\n};\ngoog.Uri.encodeChar_ \x3d function(ch) {\n var n \x3d ch.charCodeAt(0);\n return \x22%\x22 + (n \x3e\x3e 4 \x26 15).toString(16) + (n \x26 15).toString(16);\n};\ngoog.Uri.removeDoubleEncoding_ \x3d function(doubleEncodedString) {\n return doubleEncodedString.replace(/%25([0-9a-fA-F]{2})/g, \x22%$1\x22);\n};\ngoog.Uri.reDisallowedInSchemeOrUserInfo_ \x3d /[#\\/\\?@]/g;\ngoog.Uri.reDisallowedInRelativePath_ \x3d /[#\\?:]/g;\ngoog.Uri.reDisallowedInAbsolutePath_ \x3d /[#\\?]/g;\ngoog.Uri.reDisallowedInQuery_ \x3d /[#\\?@]/g;\ngoog.Uri.reDisallowedInFragment_ \x3d /#/g;\ngoog.Uri.haveSameDomain \x3d function(uri1String, uri2String) {\n var pieces1 \x3d goog.uri.utils.split(uri1String);\n var pieces2 \x3d goog.uri.utils.split(uri2String);\n return pieces1[goog.uri.utils.ComponentIndex.DOMAIN] \x3d\x3d pieces2[goog.uri.utils.ComponentIndex.DOMAIN] \x26\x26 pieces1[goog.uri.utils.ComponentIndex.PORT] \x3d\x3d pieces2[goog.uri.utils.ComponentIndex.PORT];\n};\ngoog.Uri.QueryData \x3d function(opt_query, opt_ignoreCase) {\n this.keyMap_ \x3d null;\n this.count_ \x3d null;\n this.encodedQuery_ \x3d opt_query || null;\n this.ignoreCase_ \x3d !!opt_ignoreCase;\n};\ngoog.Uri.QueryData.prototype.ensureKeyMapInitialized_ \x3d function() {\n if (!this.keyMap_) {\n this.keyMap_ \x3d new Map();\n this.count_ \x3d 0;\n if (this.encodedQuery_) {\n var self \x3d this;\n goog.uri.utils.parseQueryData(this.encodedQuery_, function(name, value) {\n self.add(goog.string.urlDecode(name), value);\n });\n }\n }\n};\ngoog.Uri.QueryData.createFromMap \x3d function(map, opt_ignoreCase) {\n var keys \x3d goog.structs.getKeys(map);\n if (typeof keys \x3d\x3d \x22undefined\x22) {\n throw new Error(\x22Keys are undefined\x22);\n }\n var queryData \x3d new goog.Uri.QueryData(null, opt_ignoreCase);\n var values \x3d goog.structs.getValues(map);\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n var key \x3d keys[i];\n var value \x3d values[i];\n if (!Array.isArray(value)) {\n queryData.add(key, value);\n } else {\n queryData.setValues(key, value);\n }\n }\n return queryData;\n};\ngoog.Uri.QueryData.createFromKeysValues \x3d function(keys, values, opt_ignoreCase) {\n if (keys.length !\x3d values.length) {\n throw new Error(\x22Mismatched lengths for keys/values\x22);\n }\n var queryData \x3d new goog.Uri.QueryData(null, opt_ignoreCase);\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n queryData.add(keys[i], values[i]);\n }\n return queryData;\n};\ngoog.Uri.QueryData.prototype.getCount \x3d function() {\n this.ensureKeyMapInitialized_();\n return this.count_;\n};\ngoog.Uri.QueryData.prototype.add \x3d function(key, value) {\n this.ensureKeyMapInitialized_();\n this.invalidateCache_();\n key \x3d this.getKeyName_(key);\n var values \x3d this.keyMap_.get(key);\n if (!values) {\n this.keyMap_.set(key, values \x3d []);\n }\n values.push(value);\n this.count_ \x3d goog.asserts.assertNumber(this.count_) + 1;\n return this;\n};\ngoog.Uri.QueryData.prototype.remove \x3d function(key) {\n this.ensureKeyMapInitialized_();\n key \x3d this.getKeyName_(key);\n if (this.keyMap_.has(key)) {\n this.invalidateCache_();\n this.count_ \x3d goog.asserts.assertNumber(this.count_) - this.keyMap_.get(key).length;\n return this.keyMap_.delete(key);\n }\n return false;\n};\ngoog.Uri.QueryData.prototype.clear \x3d function() {\n this.invalidateCache_();\n this.keyMap_ \x3d null;\n this.count_ \x3d 0;\n};\ngoog.Uri.QueryData.prototype.isEmpty \x3d function() {\n this.ensureKeyMapInitialized_();\n return this.count_ \x3d\x3d 0;\n};\ngoog.Uri.QueryData.prototype.containsKey \x3d function(key) {\n this.ensureKeyMapInitialized_();\n key \x3d this.getKeyName_(key);\n return this.keyMap_.has(key);\n};\ngoog.Uri.QueryData.prototype.containsValue \x3d function(value) {\n var vals \x3d this.getValues();\n return goog.array.contains(vals, value);\n};\ngoog.Uri.QueryData.prototype.forEach \x3d function(f, opt_scope) {\n this.ensureKeyMapInitialized_();\n this.keyMap_.forEach(function(values, key) {\n values.forEach(function(value) {\n f.call(opt_scope, value, key, this);\n }, this);\n }, this);\n};\ngoog.Uri.QueryData.prototype.getKeys \x3d function() {\n this.ensureKeyMapInitialized_();\n const vals \x3d Array.from(this.keyMap_.values());\n const keys \x3d Array.from(this.keyMap_.keys());\n const rv \x3d [];\n for (let i \x3d 0; i \x3c keys.length; i++) {\n const val \x3d vals[i];\n for (let j \x3d 0; j \x3c val.length; j++) {\n rv.push(keys[i]);\n }\n }\n return rv;\n};\ngoog.Uri.QueryData.prototype.getValues \x3d function(opt_key) {\n this.ensureKeyMapInitialized_();\n let rv \x3d [];\n if (typeof opt_key \x3d\x3d\x3d \x22string\x22) {\n if (this.containsKey(opt_key)) {\n rv \x3d rv.concat(this.keyMap_.get(this.getKeyName_(opt_key)));\n }\n } else {\n const values \x3d Array.from(this.keyMap_.values());\n for (let i \x3d 0; i \x3c values.length; i++) {\n rv \x3d rv.concat(values[i]);\n }\n }\n return rv;\n};\ngoog.Uri.QueryData.prototype.set \x3d function(key, value) {\n this.ensureKeyMapInitialized_();\n this.invalidateCache_();\n key \x3d this.getKeyName_(key);\n if (this.containsKey(key)) {\n this.count_ \x3d goog.asserts.assertNumber(this.count_) - this.keyMap_.get(key).length;\n }\n this.keyMap_.set(key, [value]);\n this.count_ \x3d goog.asserts.assertNumber(this.count_) + 1;\n return this;\n};\ngoog.Uri.QueryData.prototype.get \x3d function(key, opt_default) {\n if (!key) {\n return opt_default;\n }\n var values \x3d this.getValues(key);\n return values.length \x3e 0 ? String(values[0]) : opt_default;\n};\ngoog.Uri.QueryData.prototype.setValues \x3d function(key, values) {\n this.remove(key);\n if (values.length \x3e 0) {\n this.invalidateCache_();\n this.keyMap_.set(this.getKeyName_(key), goog.array.clone(values));\n this.count_ \x3d goog.asserts.assertNumber(this.count_) + values.length;\n }\n};\ngoog.Uri.QueryData.prototype.toString \x3d function() {\n if (this.encodedQuery_) {\n return this.encodedQuery_;\n }\n if (!this.keyMap_) {\n return \x22\x22;\n }\n const sb \x3d [];\n const keys \x3d Array.from(this.keyMap_.keys());\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n const key \x3d keys[i];\n const encodedKey \x3d goog.string.urlEncode(key);\n const val \x3d this.getValues(key);\n var j \x3d 0;\n for (; j \x3c val.length; j++) {\n var param \x3d encodedKey;\n if (val[j] !\x3d\x3d \x22\x22) {\n param \x3d param + (\x22\\x3d\x22 + goog.string.urlEncode(val[j]));\n }\n sb.push(param);\n }\n }\n return this.encodedQuery_ \x3d sb.join(\x22\\x26\x22);\n};\ngoog.Uri.QueryData.prototype.toDecodedString \x3d function() {\n return goog.Uri.decodeOrEmpty_(this.toString());\n};\ngoog.Uri.QueryData.prototype.invalidateCache_ \x3d function() {\n this.encodedQuery_ \x3d null;\n};\ngoog.Uri.QueryData.prototype.filterKeys \x3d function(keys) {\n this.ensureKeyMapInitialized_();\n this.keyMap_.forEach(function(value, key) {\n if (!goog.array.contains(keys, key)) {\n this.remove(key);\n }\n }, this);\n return this;\n};\ngoog.Uri.QueryData.prototype.clone \x3d function() {\n var rv \x3d new goog.Uri.QueryData();\n rv.encodedQuery_ \x3d this.encodedQuery_;\n if (this.keyMap_) {\n rv.keyMap_ \x3d new Map(this.keyMap_);\n rv.count_ \x3d this.count_;\n }\n return rv;\n};\ngoog.Uri.QueryData.prototype.getKeyName_ \x3d function(arg) {\n var keyName \x3d String(arg);\n if (this.ignoreCase_) {\n keyName \x3d keyName.toLowerCase();\n }\n return keyName;\n};\ngoog.Uri.QueryData.prototype.setIgnoreCase \x3d function(ignoreCase) {\n var resetKeys \x3d ignoreCase \x26\x26 !this.ignoreCase_;\n if (resetKeys) {\n this.ensureKeyMapInitialized_();\n this.invalidateCache_();\n this.keyMap_.forEach(function(value, key) {\n var lowerCase \x3d key.toLowerCase();\n if (key !\x3d lowerCase) {\n this.remove(key);\n this.setValues(lowerCase, value);\n }\n }, this);\n }\n this.ignoreCase_ \x3d ignoreCase;\n};\ngoog.Uri.QueryData.prototype.extend \x3d function(var_args) {\n var i \x3d 0;\n for (; i \x3c arguments.length; i++) {\n var data \x3d arguments[i];\n goog.structs.forEach(data, function(value, key) {\n this.add(key, value);\n }, this);\n }\n};\n");
SHADOW_ENV.evalLoad("goog.string.stringbuffer.js", true, "goog.provide(\x22goog.string.StringBuffer\x22);\ngoog.string.StringBuffer \x3d function(opt_a1, var_args) {\n if (opt_a1 !\x3d null) {\n this.append.apply(this, arguments);\n }\n};\ngoog.string.StringBuffer.prototype.buffer_ \x3d \x22\x22;\ngoog.string.StringBuffer.prototype.set \x3d function(s) {\n this.buffer_ \x3d \x22\x22 + s;\n};\ngoog.string.StringBuffer.prototype.append \x3d function(a1, opt_a2, var_args) {\n this.buffer_ +\x3d String(a1);\n if (opt_a2 !\x3d null) {\n for (let i \x3d 1; i \x3c arguments.length; i++) {\n this.buffer_ +\x3d arguments[i];\n }\n }\n return this;\n};\ngoog.string.StringBuffer.prototype.clear \x3d function() {\n this.buffer_ \x3d \x22\x22;\n};\ngoog.string.StringBuffer.prototype.getLength \x3d function() {\n return this.buffer_.length;\n};\ngoog.string.StringBuffer.prototype.toString \x3d function() {\n return this.buffer_;\n};\n");
SHADOW_ENV.evalLoad("cljs.core.js", true, "goog.provide(\x27cljs.core\x27);\ngoog.scope(function(){\n cljs.core.goog$module$goog$math$Long \x3d goog.module.get(\x27goog.math.Long\x27);\n cljs.core.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n cljs.core.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\ncljs.core._STAR_clojurescript_version_STAR_ \x3d \x221.11.132\x22;\ncljs.core._STAR_unchecked_if_STAR_ \x3d false;\ncljs.core._STAR_unchecked_arrays_STAR_ \x3d false;\ncljs.core._STAR_warn_on_infer_STAR_ \x3d false;\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.PROTOCOL_SENTINEL !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.core.PROTOCOL_SENTINEL \x3d ({});\n}\ncljs.core.MODULE_URIS \x3d null;\ncljs.core.MODULE_INFOS \x3d null;\n/**\n * Var bound to the name value of the compiler build :target option.\n * For example, if the compiler build :target is :nodejs, *target* will be bound\n * to \x22nodejs\x22. *target* is a Google Closure define and can be set by compiler\n * :closure-defines option.\n * @define {string}\n */\ncljs.core._STAR_target_STAR_ \x3d goog.define(\x22cljs.core._STAR_target_STAR_\x22,\x22default\x22);\n/**\n * Manually set the JavaScript global context. Only \x22window\x22, \x22self\x22\n * , and \x22global\x22 supported. \n * @define {string}\n */\ncljs.core._STAR_global_STAR_ \x3d goog.define(\x22cljs.core._STAR_global_STAR_\x22,\x22default\x22);\n/**\n * Var bound to the current namespace. Only used for bootstrapping.\n * @type {*}\n */\ncljs.core._STAR_ns_STAR_ \x3d null;\n/**\n * @type {*}\n */\ncljs.core._STAR_out_STAR_ \x3d null;\ncljs.core._STAR_assert_STAR_ \x3d true;\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core._STAR_print_fn_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Each runtime environment provides a different way to print output.\n * Whatever function *print-fn* is bound to will be passed any\n * Strings which should be printed.\n */\ncljs.core._STAR_print_fn_STAR_ \x3d null;\n}\n/**\n * Arranges to have tap functions executed via the supplied f, a\n * function of no arguments. Returns true if successful, false otherwise.\n */\ncljs.core._STAR_exec_tap_fn_STAR_ \x3d (function cljs$core$_STAR_exec_tap_fn_STAR_(f){\nvar and__5000__auto__ \x3d (typeof setTimeout !\x3d\x3d \x27undefined\x27);\nif(and__5000__auto__){\nvar G__17381 \x3d setTimeout(f,(0));\nreturn (cljs.core.boolean$.cljs$core$IFn$_invoke$arity$1 ? cljs.core.boolean$.cljs$core$IFn$_invoke$arity$1(G__17381) : cljs.core.boolean$.call(null, G__17381));\n} else {\nreturn and__5000__auto__;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core._STAR_print_err_fn_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Each runtime environment provides a different way to print error output.\n * Whatever function *print-err-fn* is bound to will be passed any\n * Strings which should be printed.\n */\ncljs.core._STAR_print_err_fn_STAR_ \x3d null;\n}\n/**\n * Set *print-fn* to f.\n */\ncljs.core.set_print_fn_BANG_ \x3d (function cljs$core$set_print_fn_BANG_(f){\nreturn (cljs.core._STAR_print_fn_STAR_ \x3d f);\n});\n/**\n * Set *print-err-fn* to f.\n */\ncljs.core.set_print_err_fn_BANG_ \x3d (function cljs$core$set_print_err_fn_BANG_(f){\nreturn (cljs.core._STAR_print_err_fn_STAR_ \x3d f);\n});\n/**\n * When set to true, output will be flushed whenever a newline is printed.\n * \n * Defaults to true.\n */\ncljs.core._STAR_flush_on_newline_STAR_ \x3d true;\n/**\n * When set to logical false will drop newlines from printing calls.\n * This is to work around the implicit newlines emitted by standard JavaScript\n * console objects.\n */\ncljs.core._STAR_print_newline_STAR_ \x3d true;\n/**\n * When set to logical false, strings and characters will be printed with\n * non-alphanumeric characters converted to the appropriate escape sequences.\n * \n * Defaults to true\n */\ncljs.core._STAR_print_readably_STAR_ \x3d true;\n/**\n * If set to logical true, when printing an object, its metadata will also\n * be printed in a form that can be read back by the reader.\n * \n * Defaults to false.\n */\ncljs.core._STAR_print_meta_STAR_ \x3d false;\n/**\n * When set to logical true, objects will be printed in a way that preserves\n * their type when read in later.\n * \n * Defaults to false.\n */\ncljs.core._STAR_print_dup_STAR_ \x3d false;\n/**\n * *print-namespace-maps* controls whether the printer will print\n * namespace map literal syntax.\n * \n * Defaults to false, but the REPL binds it to true.\n */\ncljs.core._STAR_print_namespace_maps_STAR_ \x3d false;\n/**\n * *print-length* controls how many items of each collection the\n * printer will print. If it is bound to logical false, there is no\n * limit. Otherwise, it must be bound to an integer indicating the maximum\n * number of items of each collection to print. If a collection contains\n * more items, the printer will print items up to the limit followed by\n * \x27...\x27 to represent the remaining items. The root binding is nil\n * indicating no limit.\n * @type {null|number}\n */\ncljs.core._STAR_print_length_STAR_ \x3d null;\n/**\n * *print-level* controls how many levels deep the printer will\n * print nested objects. If it is bound to logical false, there is no\n * limit. Otherwise, it must be bound to an integer indicating the maximum\n * level to print. Each argument to print is at level 0; if an argument is a\n * collection, its items are at level 1; and so on. If an object is a\n * collection and is at a level greater than or equal to the value bound to\n * *print-level*, the printer prints \x27#\x27 to represent it. The root binding\n * is nil indicating no limit.\n * @type {null|number}\n */\ncljs.core._STAR_print_level_STAR_ \x3d null;\n/**\n * *print-fns-bodies* controls whether functions print their source or\n * only their names.\n */\ncljs.core._STAR_print_fn_bodies_STAR_ \x3d false;\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core._STAR_loaded_libs_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * @type {*}\n */\ncljs.core._STAR_loaded_libs_STAR_ \x3d null;\n}\ncljs.core.pr_opts \x3d (function cljs$core$pr_opts(){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22flush-on-newline\x22,\x22flush-on-newline\x22,-151457939),cljs.core._STAR_flush_on_newline_STAR_,new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760),cljs.core._STAR_print_readably_STAR_,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964),cljs.core._STAR_print_meta_STAR_,new cljs.core.Keyword(null,\x22dup\x22,\x22dup\x22,556298533),cljs.core._STAR_print_dup_STAR_,new cljs.core.Keyword(null,\x22print-length\x22,\x22print-length\x22,1931866356),cljs.core._STAR_print_length_STAR_], null);\n});\n/**\n * Set *print-fn* to console.log\n */\ncljs.core.enable_console_print_BANG_ \x3d (function cljs$core$enable_console_print_BANG_(){\n(cljs.core._STAR_print_newline_STAR_ \x3d false);\n\ncljs.core.set_print_fn_BANG_((function (){\nvar xs \x3d arguments;\nreturn console.log.apply(console,cljs.core.goog$module$goog$array.clone(xs));\n}));\n\ncljs.core.set_print_err_fn_BANG_((function (){\nvar xs \x3d arguments;\nreturn console.error.apply(console,cljs.core.goog$module$goog$array.clone(xs));\n}));\n\nreturn null;\n});\n/**\n * Internal - do not use!\n */\ncljs.core.truth_ \x3d (function cljs$core$truth_(x){\nreturn (x !\x3d null \x26\x26 x !\x3d\x3d false);\n});\ncljs.core.not_native \x3d null;\n\n/**\n * Tests if 2 arguments are the same object\n */\ncljs.core.identical_QMARK_ \x3d (function cljs$core$identical_QMARK_(x,y){\nreturn (x \x3d\x3d\x3d y);\n});\n/**\n * Returns true if x is nil, false otherwise.\n */\ncljs.core.nil_QMARK_ \x3d (function cljs$core$nil_QMARK_(x){\nreturn (x \x3d\x3d null);\n});\n/**\n * Returns true if x is a JavaScript array.\n */\ncljs.core.array_QMARK_ \x3d (function cljs$core$array_QMARK_(x){\nif((cljs.core._STAR_target_STAR_ \x3d\x3d\x3d \x22nodejs\x22)){\nreturn Array.isArray(x);\n} else {\nreturn (x instanceof Array);\n}\n});\n/**\n * Returns true if x is a JavaScript number.\n */\ncljs.core.number_QMARK_ \x3d (function cljs$core$number_QMARK_(x){\nreturn typeof x \x3d\x3d\x3d \x27number\x27;\n});\n/**\n * Returns true if x is logical false, false otherwise.\n */\ncljs.core.not \x3d (function cljs$core$not(x){\nif((x \x3d\x3d null)){\nreturn true;\n} else {\nif(x \x3d\x3d\x3d false){\nreturn true;\n} else {\nreturn false;\n\n}\n}\n});\n/**\n * Returns true if x is not nil, false otherwise.\n */\ncljs.core.some_QMARK_ \x3d (function cljs$core$some_QMARK_(x){\nreturn (!((x \x3d\x3d null)));\n});\n/**\n * Returns true if x\x27s constructor is Object\n */\ncljs.core.object_QMARK_ \x3d (function cljs$core$object_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nreturn (x.constructor \x3d\x3d\x3d Object);\n} else {\nreturn false;\n}\n});\n/**\n * Returns true if x is a JavaScript string.\n */\ncljs.core.string_QMARK_ \x3d (function cljs$core$string_QMARK_(x){\nreturn (\x22string\x22 \x3d\x3d\x3d goog.typeOf(x));\n});\n/**\n * Returns true if x is a JavaScript string of length one.\n */\ncljs.core.char_QMARK_ \x3d (function cljs$core$char_QMARK_(x){\nreturn ((typeof x \x3d\x3d\x3d \x27string\x27) \x26\x26 (((1) \x3d\x3d\x3d x.length)));\n});\n/**\n * Returns true if given any argument.\n */\ncljs.core.any_QMARK_ \x3d (function cljs$core$any_QMARK_(x){\nreturn true;\n});\n/**\n * Internal - do not use!\n */\ncljs.core.native_satisfies_QMARK_ \x3d (function cljs$core$native_satisfies_QMARK_(p,x){\nvar x__$1 \x3d (((x \x3d\x3d null))?null:x);\nif((p[goog.typeOf(x__$1)])){\nreturn true;\n} else {\nif((p[\x22_\x22])){\nreturn true;\n} else {\nreturn false;\n\n}\n}\n});\ncljs.core.is_proto_ \x3d (function cljs$core$is_proto_(x){\nreturn (x.constructor.prototype \x3d\x3d\x3d x);\n});\n/**\n * When compiled for a command-line target, whatever function\n * *main-cli-fn* is set to will be called with the command-line\n * argv as arguments\n */\ncljs.core._STAR_main_cli_fn_STAR_ \x3d null;\n/**\n * A sequence of the supplied command line arguments, or nil if\n * none were supplied\n */\ncljs.core._STAR_command_line_args_STAR_ \x3d null;\n/**\n * Return x\x27s constructor.\n */\ncljs.core.type \x3d (function cljs$core$type(x){\nif((x \x3d\x3d null)){\nreturn null;\n} else {\nreturn x.constructor;\n}\n});\ncljs.core.missing_protocol \x3d (function cljs$core$missing_protocol(proto,obj){\nvar ty \x3d cljs.core.type(obj);\nvar ty__$1 \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d ty;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn ty.cljs$lang$type;\n} else {\nreturn and__5000__auto__;\n}\n})())?ty.cljs$lang$ctorStr:goog.typeOf(obj));\nreturn (new Error([\x22No protocol method \x22,proto,\x22 defined for type \x22,ty__$1,\x22: \x22,obj].join(\x22\x22)));\n});\ncljs.core.type__GT_str \x3d (function cljs$core$type__GT_str(ty){\nvar temp__5802__auto__ \x3d ty.cljs$lang$ctorStr;\nif(cljs.core.truth_(temp__5802__auto__)){\nvar s \x3d temp__5802__auto__;\nreturn s;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(ty);\n}\n});\ncljs.core.load_file \x3d (function cljs$core$load_file(file){\nif(cljs.core.truth_(COMPILED)){\nreturn null;\n} else {\nreturn goog.nodeGlobalRequire(file);\n}\n});\nif((((typeof Symbol !\x3d\x3d \x27undefined\x27)) \x26\x26 ((goog.typeOf(Symbol) \x3d\x3d\x3d \x22function\x22)))){\ncljs.core.ITER_SYMBOL \x3d Symbol.iterator;\n} else {\ncljs.core.ITER_SYMBOL \x3d \x22@@iterator\x22;\n}\n/**\n * @enum {string}\n */\ncljs.core.CHAR_MAP \x3d ({\x22]\x22: \x22_RBRACK_\x22, \x22\x27\x22: \x22_SINGLEQUOTE_\x22, \x22\x3d\x22: \x22_EQ_\x22, \x22\\\x22\x22: \x22_DOUBLEQUOTE_\x22, \x22!\x22: \x22_BANG_\x22, \x22*\x22: \x22_STAR_\x22, \x22%\x22: \x22_PERCENT_\x22, \x22|\x22: \x22_BAR_\x22, \x22~\x22: \x22_TILDE_\x22, \x22/\x22: \x22_SLASH_\x22, \x22\\\\\x22: \x22_BSLASH_\x22, \x22-\x22: \x22_\x22, \x22?\x22: \x22_QMARK_\x22, \x22\x26\x22: \x22_AMPERSAND_\x22, \x22:\x22: \x22_COLON_\x22, \x22\x3c\x22: \x22_LT_\x22, \x22{\x22: \x22_LBRACE_\x22, \x22}\x22: \x22_RBRACE_\x22, \x22[\x22: \x22_LBRACK_\x22, \x22#\x22: \x22_SHARP_\x22, \x22^\x22: \x22_CARET_\x22, \x22+\x22: \x22_PLUS_\x22, \x22@\x22: \x22_CIRCA_\x22, \x22\x3e\x22: \x22_GT_\x22});\n/**\n * @enum {string}\n */\ncljs.core.DEMUNGE_MAP \x3d ({\x22_RBRACE_\x22: \x22}\x22, \x22_COLON_\x22: \x22:\x22, \x22_BANG_\x22: \x22!\x22, \x22_QMARK_\x22: \x22?\x22, \x22_BSLASH_\x22: \x22\\\\\\\\\x22, \x22_SLASH_\x22: \x22/\x22, \x22_PERCENT_\x22: \x22%\x22, \x22_PLUS_\x22: \x22+\x22, \x22_SHARP_\x22: \x22#\x22, \x22_LBRACE_\x22: \x22{\x22, \x22_BAR_\x22: \x22|\x22, \x22_LBRACK_\x22: \x22[\x22, \x22_EQ_\x22: \x22\x3d\x22, \x22_\x22: \x22-\x22, \x22_TILDE_\x22: \x22~\x22, \x22_RBRACK_\x22: \x22]\x22, \x22_GT_\x22: \x22\x3e\x22, \x22_SINGLEQUOTE_\x22: \x22\x27\x22, \x22_CIRCA_\x22: \x22@\x22, \x22_AMPERSAND_\x22: \x22\x26\x22, \x22_DOUBLEQUOTE_\x22: \x22\\\\\\\x22\x22, \x22_CARET_\x22: \x22^\x22, \x22_LT_\x22: \x22\x3c\x22, \x22_STAR_\x22: \x22*\x22});\ncljs.core.DEMUNGE_PATTERN \x3d null;\n/**\n * Returns highest resolution time offered by host in milliseconds.\n */\ncljs.core.system_time \x3d (function cljs$core$system_time(){\nif((((typeof performance !\x3d\x3d \x27undefined\x27)) \x26\x26 ((!((performance.now \x3d\x3d null)))))){\nreturn performance.now();\n} else {\nif((((typeof process !\x3d\x3d \x27undefined\x27)) \x26\x26 ((!((process.hrtime \x3d\x3d null)))))){\nvar t \x3d process.hrtime();\nreturn ((((t[(0)]) * 1.0E9) + (t[(1)])) / 1000000.0);\n} else {\nreturn (new Date()).getTime();\n\n}\n}\n});\n/**\n * Construct a JavaScript array of the specified dimensions. Accepts ignored\n * type argument for compatibility with Clojure. Note that there is no efficient\n * way to allocate multi-dimensional arrays in JavaScript; as such, this function\n * will run in polynomial time when called with 3 or more arguments.\n */\ncljs.core.make_array \x3d (function cljs$core$make_array(var_args){\nvar G__17386 \x3d arguments.length;\nswitch (G__17386) {\ncase 1:\nreturn cljs.core.make_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.make_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19948 \x3d arguments.length;\nvar i__5727__auto___19949 \x3d (0);\nwhile(true){\nif((i__5727__auto___19949 \x3c len__5726__auto___19948)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19949]));\n\nvar G__19954 \x3d (i__5727__auto___19949 + (1));\ni__5727__auto___19949 \x3d G__19954;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.make_array.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.make_array.cljs$core$IFn$_invoke$arity$1 \x3d (function (size){\nreturn (new Array(size));\n}));\n\n(cljs.core.make_array.cljs$core$IFn$_invoke$arity$2 \x3d (function (type,size){\nreturn (new Array(size));\n}));\n\n(cljs.core.make_array.cljs$core$IFn$_invoke$arity$variadic \x3d (function (type,size,more_sizes){\nvar dims \x3d more_sizes;\nvar dimarray \x3d (new Array(size));\nvar n__5593__auto___19957 \x3d dimarray.length;\nvar i_19958 \x3d (0);\nwhile(true){\nif((i_19958 \x3c n__5593__auto___19957)){\n(dimarray[i_19958] \x3d (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.make_array,null,dims) : cljs.core.apply.call(null, cljs.core.make_array,null,dims)));\n\nvar G__19959 \x3d (i_19958 + (1));\ni_19958 \x3d G__19959;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn dimarray;\n}));\n\n/** @this {Function} */\n(cljs.core.make_array.cljs$lang$applyTo \x3d (function (seq17383){\nvar G__17384 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17383) : cljs.core.first.call(null, seq17383));\nvar seq17383__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17383) : cljs.core.next.call(null, seq17383));\nvar G__17385 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17383__$1) : cljs.core.first.call(null, seq17383__$1));\nvar seq17383__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17383__$1) : cljs.core.next.call(null, seq17383__$1));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17384,G__17385,seq17383__$2);\n}));\n\n(cljs.core.make_array.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns a javascript array, cloned from the passed in array\n */\ncljs.core.aclone \x3d (function cljs$core$aclone(arr){\nvar len \x3d arr.length;\nvar new_arr \x3d (new Array(len));\nvar n__5593__auto___19968 \x3d len;\nvar i_19970 \x3d (0);\nwhile(true){\nif((i_19970 \x3c n__5593__auto___19968)){\n(new_arr[i_19970] \x3d (arr[i_19970]));\n\nvar G__19971 \x3d (i_19970 + (1));\ni_19970 \x3d G__19971;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn new_arr;\n});\n/**\n * Creates a new javascript array.\n * @param {...*} var_args\n */\ncljs.core.array \x3d (function cljs$core$array(var_args){\nvar a \x3d (new Array(arguments.length));\nvar i \x3d (0);\nwhile(true){\nif((i \x3c a.length)){\n(a[i] \x3d (arguments[i]));\n\nvar G__19973 \x3d (i + (1));\ni \x3d G__19973;\ncontinue;\n} else {\nreturn a;\n}\nbreak;\n}\n});\ncljs.core.maybe_warn \x3d (function cljs$core$maybe_warn(e){\nif(cljs.core.truth_(cljs.core._STAR_print_err_fn_STAR_)){\nreturn cljs.core._STAR_print_err_fn_STAR_.call(null, e);\n} else {\nreturn null;\n}\n});\ncljs.core.checked_aget \x3d (function cljs$core$checked_aget(var_args){\nvar G__17391 \x3d arguments.length;\nswitch (G__17391) {\ncase 2:\nreturn cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19977 \x3d arguments.length;\nvar i__5727__auto___19978 \x3d (0);\nwhile(true){\nif((i__5727__auto___19978 \x3c len__5726__auto___19977)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19978]));\n\nvar G__19979 \x3d (i__5727__auto___19978 + (1));\ni__5727__auto___19978 \x3d G__19979;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2 \x3d (function (array,idx){\ntry{if(cljs.core.truth_((function (){var or__5002__auto__ \x3d cljs.core.array_QMARK_(array);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\x22Assert failed: (or (array? array) (goog/isArrayLike array))\x22));\n}\n\nif(typeof idx \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? idx)\x22));\n}\n\nif((!((idx \x3c (0))))){\n} else {\nthrow (new Error(\x22Assert failed: (not (neg? idx))\x22));\n}\n\nif((idx \x3c array.length)){\n} else {\nthrow (new Error(\x22Assert failed: (\x3c idx (alength array))\x22));\n}\n}catch (e17392){var e_19980 \x3d e17392;\ncljs.core.maybe_warn(e_19980);\n}\nreturn (array[idx]);\n}));\n\n(cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$variadic \x3d (function (array,idx,idxs){\nvar G__17393 \x3d cljs.core.checked_aget;\nvar G__17394 \x3d cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__17395 \x3d idxs;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(G__17393,G__17394,G__17395) : cljs.core.apply.call(null, G__17393,G__17394,G__17395));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aget.cljs$lang$applyTo \x3d (function (seq17388){\nvar G__17389 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17388) : cljs.core.first.call(null, seq17388));\nvar seq17388__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17388) : cljs.core.next.call(null, seq17388));\nvar G__17390 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17388__$1) : cljs.core.first.call(null, seq17388__$1));\nvar seq17388__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17388__$1) : cljs.core.next.call(null, seq17388__$1));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17389,G__17390,seq17388__$2);\n}));\n\n(cljs.core.checked_aget.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.core.checked_aset \x3d (function cljs$core$checked_aset(var_args){\nvar G__17401 \x3d arguments.length;\nswitch (G__17401) {\ncase 3:\nreturn cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19983 \x3d arguments.length;\nvar i__5727__auto___19985 \x3d (0);\nwhile(true){\nif((i__5727__auto___19985 \x3c len__5726__auto___19983)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19985]));\n\nvar G__19986 \x3d (i__5727__auto___19985 + (1));\ni__5727__auto___19985 \x3d G__19986;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3 \x3d (function (array,idx,val){\ntry{if(cljs.core.truth_((function (){var or__5002__auto__ \x3d cljs.core.array_QMARK_(array);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\x22Assert failed: (or (array? array) (goog/isArrayLike array))\x22));\n}\n\nif(typeof idx \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? idx)\x22));\n}\n\nif((!((idx \x3c (0))))){\n} else {\nthrow (new Error(\x22Assert failed: (not (neg? idx))\x22));\n}\n\nif((idx \x3c array.length)){\n} else {\nthrow (new Error(\x22Assert failed: (\x3c idx (alength array))\x22));\n}\n}catch (e17402){var e_19987 \x3d e17402;\ncljs.core.maybe_warn(e_19987);\n}\nreturn (array[idx] \x3d val);\n}));\n\n(cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (array,idx,idx2,idxv){\nvar G__17403 \x3d cljs.core.checked_aset;\nvar G__17404 \x3d cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__17405 \x3d idx2;\nvar G__17406 \x3d idxv;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$4 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$4(G__17403,G__17404,G__17405,G__17406) : cljs.core.apply.call(null, G__17403,G__17404,G__17405,G__17406));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aset.cljs$lang$applyTo \x3d (function (seq17397){\nvar G__17398 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17397) : cljs.core.first.call(null, seq17397));\nvar seq17397__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17397) : cljs.core.next.call(null, seq17397));\nvar G__17399 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17397__$1) : cljs.core.first.call(null, seq17397__$1));\nvar seq17397__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17397__$1) : cljs.core.next.call(null, seq17397__$1));\nvar G__17400 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17397__$2) : cljs.core.first.call(null, seq17397__$2));\nvar seq17397__$3 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17397__$2) : cljs.core.next.call(null, seq17397__$2));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17398,G__17399,G__17400,seq17397__$3);\n}));\n\n(cljs.core.checked_aset.cljs$lang$maxFixedArity \x3d (3));\n\ncljs.core.checked_aget_SINGLEQUOTE_ \x3d (function cljs$core$checked_aget_SINGLEQUOTE_(var_args){\nvar G__17411 \x3d arguments.length;\nswitch (G__17411) {\ncase 2:\nreturn cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19992 \x3d arguments.length;\nvar i__5727__auto___19993 \x3d (0);\nwhile(true){\nif((i__5727__auto___19993 \x3c len__5726__auto___19992)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19993]));\n\nvar G__19994 \x3d (i__5727__auto___19993 + (1));\ni__5727__auto___19993 \x3d G__19994;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 \x3d (function (array,idx){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d cljs.core.array_QMARK_(array);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\x22Assert failed: (or (array? array) (goog/isArrayLike array))\x22));\n}\n\nif(typeof idx \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? idx)\x22));\n}\n\nif((!((idx \x3c (0))))){\n} else {\nthrow (new Error(\x22Assert failed: (not (neg? idx))\x22));\n}\n\nif((idx \x3c array.length)){\n} else {\nthrow (new Error(\x22Assert failed: (\x3c idx (alength array))\x22));\n}\n\nreturn (array[idx]);\n}));\n\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (array,idx,idxs){\nvar G__17412 \x3d cljs.core.checked_aget_SINGLEQUOTE_;\nvar G__17413 \x3d cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__17414 \x3d idxs;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(G__17412,G__17413,G__17414) : cljs.core.apply.call(null, G__17412,G__17413,G__17414));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq17408){\nvar G__17409 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17408) : cljs.core.first.call(null, seq17408));\nvar seq17408__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17408) : cljs.core.next.call(null, seq17408));\nvar G__17410 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17408__$1) : cljs.core.first.call(null, seq17408__$1));\nvar seq17408__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17408__$1) : cljs.core.next.call(null, seq17408__$1));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17409,G__17410,seq17408__$2);\n}));\n\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.core.checked_aset_SINGLEQUOTE_ \x3d (function cljs$core$checked_aset_SINGLEQUOTE_(var_args){\nvar G__17420 \x3d arguments.length;\nswitch (G__17420) {\ncase 3:\nreturn cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20016 \x3d arguments.length;\nvar i__5727__auto___20017 \x3d (0);\nwhile(true){\nif((i__5727__auto___20017 \x3c len__5726__auto___20016)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20017]));\n\nvar G__20018 \x3d (i__5727__auto___20017 + (1));\ni__5727__auto___20017 \x3d G__20018;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 \x3d (function (array,idx,val){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d cljs.core.array_QMARK_(array);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\x22Assert failed: (or (array? array) (goog/isArrayLike array))\x22));\n}\n\nif(typeof idx \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? idx)\x22));\n}\n\nif((!((idx \x3c (0))))){\n} else {\nthrow (new Error(\x22Assert failed: (not (neg? idx))\x22));\n}\n\nif((idx \x3c array.length)){\n} else {\nthrow (new Error(\x22Assert failed: (\x3c idx (alength array))\x22));\n}\n\nreturn (array[idx] \x3d val);\n}));\n\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (array,idx,idx2,idxv){\nvar G__17421 \x3d cljs.core.checked_aset_SINGLEQUOTE_;\nvar G__17422 \x3d cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__17423 \x3d idx2;\nvar G__17424 \x3d idxv;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$4 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$4(G__17421,G__17422,G__17423,G__17424) : cljs.core.apply.call(null, G__17421,G__17422,G__17423,G__17424));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$lang$applyTo \x3d (function (seq17416){\nvar G__17417 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17416) : cljs.core.first.call(null, seq17416));\nvar seq17416__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17416) : cljs.core.next.call(null, seq17416));\nvar G__17418 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17416__$1) : cljs.core.first.call(null, seq17416__$1));\nvar seq17416__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17416__$1) : cljs.core.next.call(null, seq17416__$1));\nvar G__17419 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17416__$2) : cljs.core.first.call(null, seq17416__$2));\nvar seq17416__$3 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17416__$2) : cljs.core.next.call(null, seq17416__$2));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17417,G__17418,G__17419,seq17416__$3);\n}));\n\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns the value at the index/indices. Works on JavaScript arrays.\n */\ncljs.core.aget \x3d (function cljs$core$aget(var_args){\nvar G__17429 \x3d arguments.length;\nswitch (G__17429) {\ncase 2:\nreturn cljs.core.aget.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20028 \x3d arguments.length;\nvar i__5727__auto___20029 \x3d (0);\nwhile(true){\nif((i__5727__auto___20029 \x3c len__5726__auto___20028)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20029]));\n\nvar G__20031 \x3d (i__5727__auto___20029 + (1));\ni__5727__auto___20029 \x3d G__20031;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.aget.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.aget.cljs$core$IFn$_invoke$arity$2 \x3d (function (array,idx){\nreturn (array[idx]);\n}));\n\n(cljs.core.aget.cljs$core$IFn$_invoke$arity$variadic \x3d (function (array,idx,idxs){\nvar G__17430 \x3d cljs.core.aget;\nvar G__17431 \x3d (array[idx]);\nvar G__17432 \x3d idxs;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(G__17430,G__17431,G__17432) : cljs.core.apply.call(null, G__17430,G__17431,G__17432));\n}));\n\n/** @this {Function} */\n(cljs.core.aget.cljs$lang$applyTo \x3d (function (seq17426){\nvar G__17427 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17426) : cljs.core.first.call(null, seq17426));\nvar seq17426__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17426) : cljs.core.next.call(null, seq17426));\nvar G__17428 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17426__$1) : cljs.core.first.call(null, seq17426__$1));\nvar seq17426__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17426__$1) : cljs.core.next.call(null, seq17426__$1));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17427,G__17428,seq17426__$2);\n}));\n\n(cljs.core.aget.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Sets the value at the index/indices. Works on JavaScript arrays.\n * Returns val.\n */\ncljs.core.aset \x3d (function cljs$core$aset(var_args){\nvar G__17438 \x3d arguments.length;\nswitch (G__17438) {\ncase 3:\nreturn cljs.core.aset.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20043 \x3d arguments.length;\nvar i__5727__auto___20044 \x3d (0);\nwhile(true){\nif((i__5727__auto___20044 \x3c len__5726__auto___20043)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20044]));\n\nvar G__20045 \x3d (i__5727__auto___20044 + (1));\ni__5727__auto___20044 \x3d G__20045;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.aset.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.aset.cljs$core$IFn$_invoke$arity$3 \x3d (function (array,idx,val){\nreturn (array[idx] \x3d val);\n}));\n\n(cljs.core.aset.cljs$core$IFn$_invoke$arity$variadic \x3d (function (array,idx,idx2,idxv){\nvar G__17439 \x3d cljs.core.aset;\nvar G__17440 \x3d (array[idx]);\nvar G__17441 \x3d idx2;\nvar G__17442 \x3d idxv;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$4 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$4(G__17439,G__17440,G__17441,G__17442) : cljs.core.apply.call(null, G__17439,G__17440,G__17441,G__17442));\n}));\n\n/** @this {Function} */\n(cljs.core.aset.cljs$lang$applyTo \x3d (function (seq17434){\nvar G__17435 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17434) : cljs.core.first.call(null, seq17434));\nvar seq17434__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17434) : cljs.core.next.call(null, seq17434));\nvar G__17436 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17434__$1) : cljs.core.first.call(null, seq17434__$1));\nvar seq17434__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17434__$1) : cljs.core.next.call(null, seq17434__$1));\nvar G__17437 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17434__$2) : cljs.core.first.call(null, seq17434__$2));\nvar seq17434__$3 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17434__$2) : cljs.core.next.call(null, seq17434__$2));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17435,G__17436,G__17437,seq17434__$3);\n}));\n\n(cljs.core.aset.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns the length of the array. Works on arrays of all types.\n */\ncljs.core.alength \x3d (function cljs$core$alength(array){\nreturn array.length;\n});\n/**\n * Returns an array with components set to the values in aseq. Optional type\n * argument accepted for compatibility with Clojure.\n */\ncljs.core.into_array \x3d (function cljs$core$into_array(var_args){\nvar G__17444 \x3d arguments.length;\nswitch (G__17444) {\ncase 1:\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1 \x3d (function (aseq){\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$2(null,aseq);\n}));\n\n(cljs.core.into_array.cljs$core$IFn$_invoke$arity$2 \x3d (function (type,aseq){\nvar G__17445 \x3d (function (a,x){\na.push(x);\n\nreturn a;\n});\nvar G__17446 \x3d [];\nvar G__17447 \x3d aseq;\nreturn (cljs.core.reduce.cljs$core$IFn$_invoke$arity$3 ? cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(G__17445,G__17446,G__17447) : cljs.core.reduce.call(null, G__17445,G__17446,G__17447));\n}));\n\n(cljs.core.into_array.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Invoke JavaScript object method via string. Needed when the\n * string is not a valid unquoted property name.\n */\ncljs.core.js_invoke \x3d (function cljs$core$js_invoke(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___20060 \x3d arguments.length;\nvar i__5727__auto___20061 \x3d (0);\nwhile(true){\nif((i__5727__auto___20061 \x3c len__5726__auto___20060)){\nargs__5732__auto__.push((arguments[i__5727__auto___20061]));\n\nvar G__20065 \x3d (i__5727__auto___20061 + (1));\ni__5727__auto___20061 \x3d G__20065;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.js_invoke.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(cljs.core.js_invoke.cljs$core$IFn$_invoke$arity$variadic \x3d (function (obj,s,args){\nreturn (obj[s]).apply(obj,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(args));\n}));\n\n(cljs.core.js_invoke.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(cljs.core.js_invoke.cljs$lang$applyTo \x3d (function (seq17448){\nvar G__17449 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17448) : cljs.core.first.call(null, seq17448));\nvar seq17448__$1 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17448) : cljs.core.next.call(null, seq17448));\nvar G__17450 \x3d (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq17448__$1) : cljs.core.first.call(null, seq17448__$1));\nvar seq17448__$2 \x3d (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq17448__$1) : cljs.core.next.call(null, seq17448__$1));\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17449,G__17450,seq17448__$2);\n}));\n\n/**\n * Returns true if x is an instance of Symbol\n */\ncljs.core.js_symbol_QMARK_ \x3d (function cljs$core$js_symbol_QMARK_(x){\nreturn (((goog.typeOf(x) \x3d\x3d\x3d \x22symbol\x22)) || ((((typeof Symbol !\x3d\x3d \x27undefined\x27)) \x26\x26 ((x instanceof Symbol)))));\n});\n\n/**\n * Marker protocol\n * @interface\n */\ncljs.core.Fn \x3d function(){};\n\n\n/**\n * Protocol for adding the ability to invoke an object as a function.\n * For example, a vector can also be used to look up a value:\n * ([1 2 3 4] 1) \x3d\x3e 2\n * @interface\n */\ncljs.core.IFn \x3d function(){};\n\nvar cljs$core$IFn$_invoke$dyn_20077 \x3d (function() {\nvar G__20080 \x3d null;\nvar G__20080__1 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__2 \x3d (function (this$,a){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5351__auto__.call(null, this$,a));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__5349__auto__.call(null, this$,a));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__3 \x3d (function (this$,a,b){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,a,b) : m__5351__auto__.call(null, this$,a,b));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,a,b) : m__5349__auto__.call(null, this$,a,b));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__4 \x3d (function (this$,a,b,c){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$4(this$,a,b,c) : m__5351__auto__.call(null, this$,a,b,c));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$4(this$,a,b,c) : m__5349__auto__.call(null, this$,a,b,c));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__5 \x3d (function (this$,a,b,c,d){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$5(this$,a,b,c,d) : m__5351__auto__.call(null, this$,a,b,c,d));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$5(this$,a,b,c,d) : m__5349__auto__.call(null, this$,a,b,c,d));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__6 \x3d (function (this$,a,b,c,d,e){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$6(this$,a,b,c,d,e) : m__5351__auto__.call(null, this$,a,b,c,d,e));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$6(this$,a,b,c,d,e) : m__5349__auto__.call(null, this$,a,b,c,d,e));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__7 \x3d (function (this$,a,b,c,d,e,f){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$7 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$7(this$,a,b,c,d,e,f) : m__5351__auto__.call(null, this$,a,b,c,d,e,f));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$7 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$7(this$,a,b,c,d,e,f) : m__5349__auto__.call(null, this$,a,b,c,d,e,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__8 \x3d (function (this$,a,b,c,d,e,f,g){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$8 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$8(this$,a,b,c,d,e,f,g) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$8 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$8(this$,a,b,c,d,e,f,g) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__9 \x3d (function (this$,a,b,c,d,e,f,g,h){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$9 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$9(this$,a,b,c,d,e,f,g,h) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$9 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$9(this$,a,b,c,d,e,f,g,h) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__10 \x3d (function (this$,a,b,c,d,e,f,g,h,i){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$10 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$10(this$,a,b,c,d,e,f,g,h,i) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$10 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$10(this$,a,b,c,d,e,f,g,h,i) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__11 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$11 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$11(this$,a,b,c,d,e,f,g,h,i,j) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$11 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$11(this$,a,b,c,d,e,f,g,h,i,j) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__12 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$12 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$12(this$,a,b,c,d,e,f,g,h,i,j,k) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$12 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$12(this$,a,b,c,d,e,f,g,h,i,j,k) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__13 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$13 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$13(this$,a,b,c,d,e,f,g,h,i,j,k,l) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$13 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$13(this$,a,b,c,d,e,f,g,h,i,j,k,l) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__14 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$14 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$14(this$,a,b,c,d,e,f,g,h,i,j,k,l,m) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$14 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$14(this$,a,b,c,d,e,f,g,h,i,j,k,l,m) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__15 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$15 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$15(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$15 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$15(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__16 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$16 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$16(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$16 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$16(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__17 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$17 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$17(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$17 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$17(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__18 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$18 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$18(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$18 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$18(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__19 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$19 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$19(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$19 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$19(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__20 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$20 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$20(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$20 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$20(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__21 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$21 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$21(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s, new cljs.core.IndexedSeq([t],0,null)) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$21 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$21(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s, new cljs.core.IndexedSeq([t],0,null)) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nvar G__20080__22 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$21 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$21(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s, new cljs.core.IndexedSeq([t,rest],0,null)) : m__5351__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$21 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$21(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s, new cljs.core.IndexedSeq([t,rest],0,null)) : m__5349__auto__.call(null, this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest));\n} else {\nthrow cljs.core.missing_protocol(\x22IFn.-invoke\x22,this$);\n}\n}\n});\nG__20080 \x3d function(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nswitch(arguments.length){\ncase 1:\nreturn G__20080__1.call(this,this$);\ncase 2:\nreturn G__20080__2.call(this,this$,a);\ncase 3:\nreturn G__20080__3.call(this,this$,a,b);\ncase 4:\nreturn G__20080__4.call(this,this$,a,b,c);\ncase 5:\nreturn G__20080__5.call(this,this$,a,b,c,d);\ncase 6:\nreturn G__20080__6.call(this,this$,a,b,c,d,e);\ncase 7:\nreturn G__20080__7.call(this,this$,a,b,c,d,e,f);\ncase 8:\nreturn G__20080__8.call(this,this$,a,b,c,d,e,f,g);\ncase 9:\nreturn G__20080__9.call(this,this$,a,b,c,d,e,f,g,h);\ncase 10:\nreturn G__20080__10.call(this,this$,a,b,c,d,e,f,g,h,i);\ncase 11:\nreturn G__20080__11.call(this,this$,a,b,c,d,e,f,g,h,i,j);\ncase 12:\nreturn G__20080__12.call(this,this$,a,b,c,d,e,f,g,h,i,j,k);\ncase 13:\nreturn G__20080__13.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l);\ncase 14:\nreturn G__20080__14.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m);\ncase 15:\nreturn G__20080__15.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n);\ncase 16:\nreturn G__20080__16.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);\ncase 17:\nreturn G__20080__17.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);\ncase 18:\nreturn G__20080__18.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q);\ncase 19:\nreturn G__20080__19.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r);\ncase 20:\nreturn G__20080__20.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s);\ncase 21:\nreturn G__20080__21.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t);\ncase 22:\nreturn G__20080__22.call(this,this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20080.cljs$core$IFn$_invoke$arity$1 \x3d G__20080__1;\nG__20080.cljs$core$IFn$_invoke$arity$2 \x3d G__20080__2;\nG__20080.cljs$core$IFn$_invoke$arity$3 \x3d G__20080__3;\nG__20080.cljs$core$IFn$_invoke$arity$4 \x3d G__20080__4;\nG__20080.cljs$core$IFn$_invoke$arity$5 \x3d G__20080__5;\nG__20080.cljs$core$IFn$_invoke$arity$6 \x3d G__20080__6;\nG__20080.cljs$core$IFn$_invoke$arity$7 \x3d G__20080__7;\nG__20080.cljs$core$IFn$_invoke$arity$8 \x3d G__20080__8;\nG__20080.cljs$core$IFn$_invoke$arity$9 \x3d G__20080__9;\nG__20080.cljs$core$IFn$_invoke$arity$10 \x3d G__20080__10;\nG__20080.cljs$core$IFn$_invoke$arity$11 \x3d G__20080__11;\nG__20080.cljs$core$IFn$_invoke$arity$12 \x3d G__20080__12;\nG__20080.cljs$core$IFn$_invoke$arity$13 \x3d G__20080__13;\nG__20080.cljs$core$IFn$_invoke$arity$14 \x3d G__20080__14;\nG__20080.cljs$core$IFn$_invoke$arity$15 \x3d G__20080__15;\nG__20080.cljs$core$IFn$_invoke$arity$16 \x3d G__20080__16;\nG__20080.cljs$core$IFn$_invoke$arity$17 \x3d G__20080__17;\nG__20080.cljs$core$IFn$_invoke$arity$18 \x3d G__20080__18;\nG__20080.cljs$core$IFn$_invoke$arity$19 \x3d G__20080__19;\nG__20080.cljs$core$IFn$_invoke$arity$20 \x3d G__20080__20;\nG__20080.cljs$core$IFn$_invoke$arity$21 \x3d G__20080__21;\nG__20080.cljs$core$IFn$_invoke$arity$22 \x3d G__20080__22;\nreturn G__20080;\n})()\n;\ncljs.core._invoke \x3d (function cljs$core$_invoke(var_args){\nvar G__17452 \x3d arguments.length;\nswitch (G__17452) {\ncase 1:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase 7:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$7((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase 8:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$8((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]));\n\nbreak;\ncase 9:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$9((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ncase 10:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$10((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ncase 11:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$11((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]));\n\nbreak;\ncase 12:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$12((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]));\n\nbreak;\ncase 13:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$13((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]));\n\nbreak;\ncase 14:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$14((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]));\n\nbreak;\ncase 15:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$15((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]));\n\nbreak;\ncase 16:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$16((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]));\n\nbreak;\ncase 17:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$17((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]));\n\nbreak;\ncase 18:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$18((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]));\n\nbreak;\ncase 19:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$19((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]));\n\nbreak;\ncase 20:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$20((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]));\n\nbreak;\ncase 21:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$21((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]));\n\nbreak;\ncase 22:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$22((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]),(arguments[(21)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$1 \x3d (function (this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$1 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$1(this$);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$2 \x3d (function (this$,a){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$2 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$2(this$,a);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$3 \x3d (function (this$,a,b){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$3 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$3(this$,a,b);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$4 \x3d (function (this$,a,b,c){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$4 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$4(this$,a,b,c);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$5 \x3d (function (this$,a,b,c,d){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$5 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$5(this$,a,b,c,d);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$6 \x3d (function (this$,a,b,c,d,e){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$6 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$6(this$,a,b,c,d,e);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$7 \x3d (function (this$,a,b,c,d,e,f){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$7 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$7(this$,a,b,c,d,e,f);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$8 \x3d (function (this$,a,b,c,d,e,f,g){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$8 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$8(this$,a,b,c,d,e,f,g);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$9 \x3d (function (this$,a,b,c,d,e,f,g,h){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$9 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$9(this$,a,b,c,d,e,f,g,h);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$10 \x3d (function (this$,a,b,c,d,e,f,g,h,i){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$10 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$10(this$,a,b,c,d,e,f,g,h,i);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$11 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$11 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$11(this$,a,b,c,d,e,f,g,h,i,j);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$12 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$12 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$12(this$,a,b,c,d,e,f,g,h,i,j,k);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$13 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$13 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$13(this$,a,b,c,d,e,f,g,h,i,j,k,l);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$14 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$14 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$14(this$,a,b,c,d,e,f,g,h,i,j,k,l,m);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$15 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$15 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$15(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$16 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$16 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$16(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$17 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$17 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$17(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$18 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$18 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$18(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$19 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$19 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$19(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$20 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$20 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$20(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$21 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$21 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$21(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t);\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$22 \x3d (function (this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IFn$_invoke$arity$22 \x3d\x3d null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$22(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest);\n} else {\nreturn cljs$core$IFn$_invoke$dyn_20077(this$,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest);\n}\n}));\n\n(cljs.core._invoke.cljs$lang$maxFixedArity \x3d 22);\n\n\n\n/**\n * Protocol for cloning a value.\n * @interface\n */\ncljs.core.ICloneable \x3d function(){};\n\nvar cljs$core$ICloneable$_clone$dyn_20395 \x3d (function (value){\nvar x__5350__auto__ \x3d (((value \x3d\x3d null))?null:value);\nvar m__5351__auto__ \x3d (cljs.core._clone[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5351__auto__.call(null, value));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._clone[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5349__auto__.call(null, value));\n} else {\nthrow cljs.core.missing_protocol(\x22ICloneable.-clone\x22,value);\n}\n}\n});\n/**\n * Creates a clone of value.\n */\ncljs.core._clone \x3d (function cljs$core$_clone(value){\nif((((!((value \x3d\x3d null)))) \x26\x26 ((!((value.cljs$core$ICloneable$_clone$arity$1 \x3d\x3d null)))))){\nreturn value.cljs$core$ICloneable$_clone$arity$1(value);\n} else {\nreturn cljs$core$ICloneable$_clone$dyn_20395(value);\n}\n});\n\n\n/**\n * Protocol for adding the ability to count a collection in constant time.\n * @interface\n */\ncljs.core.ICounted \x3d function(){};\n\nvar cljs$core$ICounted$_count$dyn_20397 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._count[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._count[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22ICounted.-count\x22,coll);\n}\n}\n});\n/**\n * Calculates the count of coll in constant time. Used by cljs.core/count.\n */\ncljs.core._count \x3d (function cljs$core$_count(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ICounted$_count$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$ICounted$_count$arity$1(coll);\n} else {\nreturn cljs$core$ICounted$_count$dyn_20397(coll);\n}\n});\n\n\n/**\n * Protocol for creating an empty collection.\n * @interface\n */\ncljs.core.IEmptyableCollection \x3d function(){};\n\nvar cljs$core$IEmptyableCollection$_empty$dyn_20402 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._empty[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._empty[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IEmptyableCollection.-empty\x22,coll);\n}\n}\n});\n/**\n * Returns an empty collection of the same category as coll. Used\n * by cljs.core/empty.\n */\ncljs.core._empty \x3d (function cljs$core$_empty(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll);\n} else {\nreturn cljs$core$IEmptyableCollection$_empty$dyn_20402(coll);\n}\n});\n\n\n/**\n * Protocol for adding to a collection.\n * @interface\n */\ncljs.core.ICollection \x3d function(){};\n\nvar cljs$core$ICollection$_conj$dyn_20405 \x3d (function (coll,o){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._conj[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,o) : m__5351__auto__.call(null, coll,o));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._conj[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,o) : m__5349__auto__.call(null, coll,o));\n} else {\nthrow cljs.core.missing_protocol(\x22ICollection.-conj\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll with o added to it. The new item\n * should be added to the most efficient place, e.g.\n * (conj [1 2 3 4] 5) \x3d\x3e [1 2 3 4 5]\n * (conj \x27(2 3 4 5) 1) \x3d\x3e \x27(1 2 3 4 5)\n */\ncljs.core._conj \x3d (function cljs$core$_conj(coll,o){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ICollection$_conj$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$ICollection$_conj$arity$2(coll,o);\n} else {\nreturn cljs$core$ICollection$_conj$dyn_20405(coll,o);\n}\n});\n\n\n/**\n * Protocol for collections to provide indexed-based access to their items.\n * @interface\n */\ncljs.core.IIndexed \x3d function(){};\n\nvar cljs$core$IIndexed$_nth$dyn_20408 \x3d (function() {\nvar G__20409 \x3d null;\nvar G__20409__2 \x3d (function (coll,n){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._nth[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,n) : m__5351__auto__.call(null, coll,n));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._nth[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,n) : m__5349__auto__.call(null, coll,n));\n} else {\nthrow cljs.core.missing_protocol(\x22IIndexed.-nth\x22,coll);\n}\n}\n});\nvar G__20409__3 \x3d (function (coll,n,not_found){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._nth[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,n,not_found) : m__5351__auto__.call(null, coll,n,not_found));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._nth[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,n,not_found) : m__5349__auto__.call(null, coll,n,not_found));\n} else {\nthrow cljs.core.missing_protocol(\x22IIndexed.-nth\x22,coll);\n}\n}\n});\nG__20409 \x3d function(coll,n,not_found){\nswitch(arguments.length){\ncase 2:\nreturn G__20409__2.call(this,coll,n);\ncase 3:\nreturn G__20409__3.call(this,coll,n,not_found);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20409.cljs$core$IFn$_invoke$arity$2 \x3d G__20409__2;\nG__20409.cljs$core$IFn$_invoke$arity$3 \x3d G__20409__3;\nreturn G__20409;\n})()\n;\n/**\n * Returns the value at the index n in the collection coll.\n * Returns not-found if index n is out of bounds and not-found is supplied.\n */\ncljs.core._nth \x3d (function cljs$core$_nth(var_args){\nvar G__17454 \x3d arguments.length;\nswitch (G__17454) {\ncase 2:\nreturn cljs.core._nth.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._nth.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._nth.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,n){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IIndexed$_nth$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$IIndexed$_nth$arity$2(coll,n);\n} else {\nreturn cljs$core$IIndexed$_nth$dyn_20408(coll,n);\n}\n}));\n\n(cljs.core._nth.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,n,not_found){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IIndexed$_nth$arity$3 \x3d\x3d null)))))){\nreturn coll.cljs$core$IIndexed$_nth$arity$3(coll,n,not_found);\n} else {\nreturn cljs$core$IIndexed$_nth$dyn_20408(coll,n,not_found);\n}\n}));\n\n(cljs.core._nth.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Marker protocol indicating an array sequence.\n * @interface\n */\ncljs.core.ASeq \x3d function(){};\n\n\n/**\n * Protocol for collections to provide access to their items as sequences.\n * @interface\n */\ncljs.core.ISeq \x3d function(){};\n\nvar cljs$core$ISeq$_first$dyn_20429 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._first[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._first[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22ISeq.-first\x22,coll);\n}\n}\n});\n/**\n * Returns the first item in the collection coll. Used by cljs.core/first.\n */\ncljs.core._first \x3d (function cljs$core$_first(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISeq$_first$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISeq$_first$arity$1(coll);\n} else {\nreturn cljs$core$ISeq$_first$dyn_20429(coll);\n}\n});\n\nvar cljs$core$ISeq$_rest$dyn_20433 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._rest[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._rest[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22ISeq.-rest\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll without the first item. It should\n * always return a seq, e.g.\n * (rest []) \x3d\x3e ()\n * (rest nil) \x3d\x3e ()\n */\ncljs.core._rest \x3d (function cljs$core$_rest(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISeq$_rest$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISeq$_rest$arity$1(coll);\n} else {\nreturn cljs$core$ISeq$_rest$dyn_20433(coll);\n}\n});\n\n\n/**\n * Protocol for accessing the next items of a collection.\n * @interface\n */\ncljs.core.INext \x3d function(){};\n\nvar cljs$core$INext$_next$dyn_20436 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._next[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._next[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22INext.-next\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll without the first item. In contrast to\n * rest, it should return nil if there are no more items, e.g.\n * (next []) \x3d\x3e nil\n * (next nil) \x3d\x3e nil\n */\ncljs.core._next \x3d (function cljs$core$_next(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$INext$_next$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$INext$_next$arity$1(coll);\n} else {\nreturn cljs$core$INext$_next$dyn_20436(coll);\n}\n});\n\n\n/**\n * Protocol for looking up a value in a data structure.\n * @interface\n */\ncljs.core.ILookup \x3d function(){};\n\nvar cljs$core$ILookup$_lookup$dyn_20439 \x3d (function() {\nvar G__20440 \x3d null;\nvar G__20440__2 \x3d (function (o,k){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._lookup[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(o,k) : m__5351__auto__.call(null, o,k));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._lookup[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(o,k) : m__5349__auto__.call(null, o,k));\n} else {\nthrow cljs.core.missing_protocol(\x22ILookup.-lookup\x22,o);\n}\n}\n});\nvar G__20440__3 \x3d (function (o,k,not_found){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._lookup[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(o,k,not_found) : m__5351__auto__.call(null, o,k,not_found));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._lookup[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(o,k,not_found) : m__5349__auto__.call(null, o,k,not_found));\n} else {\nthrow cljs.core.missing_protocol(\x22ILookup.-lookup\x22,o);\n}\n}\n});\nG__20440 \x3d function(o,k,not_found){\nswitch(arguments.length){\ncase 2:\nreturn G__20440__2.call(this,o,k);\ncase 3:\nreturn G__20440__3.call(this,o,k,not_found);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20440.cljs$core$IFn$_invoke$arity$2 \x3d G__20440__2;\nG__20440.cljs$core$IFn$_invoke$arity$3 \x3d G__20440__3;\nreturn G__20440;\n})()\n;\n/**\n * Use k to look up a value in o. If not-found is supplied and k is not\n * a valid value that can be used for look up, not-found is returned.\n */\ncljs.core._lookup \x3d (function cljs$core$_lookup(var_args){\nvar G__17456 \x3d arguments.length;\nswitch (G__17456) {\ncase 2:\nreturn cljs.core._lookup.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._lookup.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._lookup.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,k){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ILookup$_lookup$arity$2 \x3d\x3d null)))))){\nreturn o.cljs$core$ILookup$_lookup$arity$2(o,k);\n} else {\nreturn cljs$core$ILookup$_lookup$dyn_20439(o,k);\n}\n}));\n\n(cljs.core._lookup.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,k,not_found){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ILookup$_lookup$arity$3 \x3d\x3d null)))))){\nreturn o.cljs$core$ILookup$_lookup$arity$3(o,k,not_found);\n} else {\nreturn cljs$core$ILookup$_lookup$dyn_20439(o,k,not_found);\n}\n}));\n\n(cljs.core._lookup.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Protocol for adding associativity to collections.\n * @interface\n */\ncljs.core.IAssociative \x3d function(){};\n\nvar cljs$core$IAssociative$_contains_key_QMARK_$dyn_20451 \x3d (function (coll,k){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._contains_key_QMARK_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,k) : m__5351__auto__.call(null, coll,k));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._contains_key_QMARK_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,k) : m__5349__auto__.call(null, coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IAssociative.-contains-key?\x22,coll);\n}\n}\n});\n/**\n * Returns true if k is a key in coll.\n */\ncljs.core._contains_key_QMARK_ \x3d (function cljs$core$_contains_key_QMARK_(coll,k){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2(coll,k);\n} else {\nreturn cljs$core$IAssociative$_contains_key_QMARK_$dyn_20451(coll,k);\n}\n});\n\nvar cljs$core$IAssociative$_assoc$dyn_20453 \x3d (function (coll,k,v){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._assoc[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,v) : m__5351__auto__.call(null, coll,k,v));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._assoc[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,v) : m__5349__auto__.call(null, coll,k,v));\n} else {\nthrow cljs.core.missing_protocol(\x22IAssociative.-assoc\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll with a mapping from key k to\n * value v added to it.\n */\ncljs.core._assoc \x3d (function cljs$core$_assoc(coll,k,v){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IAssociative$_assoc$arity$3 \x3d\x3d null)))))){\nreturn coll.cljs$core$IAssociative$_assoc$arity$3(coll,k,v);\n} else {\nreturn cljs$core$IAssociative$_assoc$dyn_20453(coll,k,v);\n}\n});\n\n\n/**\n * Protocol for implementing entry finding in collections.\n * @interface\n */\ncljs.core.IFind \x3d function(){};\n\nvar cljs$core$IFind$_find$dyn_20459 \x3d (function (coll,k){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._find[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,k) : m__5351__auto__.call(null, coll,k));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._find[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,k) : m__5349__auto__.call(null, coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IFind.-find\x22,coll);\n}\n}\n});\n/**\n * Returns the map entry for key, or nil if key not present.\n */\ncljs.core._find \x3d (function cljs$core$_find(coll,k){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IFind$_find$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$IFind$_find$arity$2(coll,k);\n} else {\nreturn cljs$core$IFind$_find$dyn_20459(coll,k);\n}\n});\n\n\n/**\n * Protocol for adding mapping functionality to collections.\n * @interface\n */\ncljs.core.IMap \x3d function(){};\n\nvar cljs$core$IMap$_dissoc$dyn_20462 \x3d (function (coll,k){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._dissoc[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,k) : m__5351__auto__.call(null, coll,k));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._dissoc[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,k) : m__5349__auto__.call(null, coll,k));\n} else {\nthrow cljs.core.missing_protocol(\x22IMap.-dissoc\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll without the mapping for key k.\n */\ncljs.core._dissoc \x3d (function cljs$core$_dissoc(coll,k){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IMap$_dissoc$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$IMap$_dissoc$arity$2(coll,k);\n} else {\nreturn cljs$core$IMap$_dissoc$dyn_20462(coll,k);\n}\n});\n\n\n/**\n * Protocol for examining a map entry.\n * @interface\n */\ncljs.core.IMapEntry \x3d function(){};\n\nvar cljs$core$IMapEntry$_key$dyn_20473 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._key[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._key[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IMapEntry.-key\x22,coll);\n}\n}\n});\n/**\n * Returns the key of the map entry.\n */\ncljs.core._key \x3d (function cljs$core$_key(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IMapEntry$_key$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IMapEntry$_key$arity$1(coll);\n} else {\nreturn cljs$core$IMapEntry$_key$dyn_20473(coll);\n}\n});\n\nvar cljs$core$IMapEntry$_val$dyn_20474 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._val[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._val[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IMapEntry.-val\x22,coll);\n}\n}\n});\n/**\n * Returns the value of the map entry.\n */\ncljs.core._val \x3d (function cljs$core$_val(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IMapEntry$_val$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IMapEntry$_val$arity$1(coll);\n} else {\nreturn cljs$core$IMapEntry$_val$dyn_20474(coll);\n}\n});\n\n\n/**\n * Protocol for adding set functionality to a collection.\n * @interface\n */\ncljs.core.ISet \x3d function(){};\n\nvar cljs$core$ISet$_disjoin$dyn_20478 \x3d (function (coll,v){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._disjoin[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,v) : m__5351__auto__.call(null, coll,v));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._disjoin[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,v) : m__5349__auto__.call(null, coll,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ISet.-disjoin\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll that does not contain v.\n */\ncljs.core._disjoin \x3d (function cljs$core$_disjoin(coll,v){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISet$_disjoin$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISet$_disjoin$arity$2(coll,v);\n} else {\nreturn cljs$core$ISet$_disjoin$dyn_20478(coll,v);\n}\n});\n\n\n/**\n * Protocol for collections to provide access to their items as stacks. The top\n * of the stack should be accessed in the most efficient way for the different\n * data structures.\n * @interface\n */\ncljs.core.IStack \x3d function(){};\n\nvar cljs$core$IStack$_peek$dyn_20481 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._peek[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._peek[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IStack.-peek\x22,coll);\n}\n}\n});\n/**\n * Returns the item from the top of the stack. Is used by cljs.core/peek.\n */\ncljs.core._peek \x3d (function cljs$core$_peek(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IStack$_peek$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IStack$_peek$arity$1(coll);\n} else {\nreturn cljs$core$IStack$_peek$dyn_20481(coll);\n}\n});\n\nvar cljs$core$IStack$_pop$dyn_20484 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._pop[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._pop[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IStack.-pop\x22,coll);\n}\n}\n});\n/**\n * Returns a new stack without the item on top of the stack. Is used\n * by cljs.core/pop.\n */\ncljs.core._pop \x3d (function cljs$core$_pop(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IStack$_pop$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IStack$_pop$arity$1(coll);\n} else {\nreturn cljs$core$IStack$_pop$dyn_20484(coll);\n}\n});\n\n\n/**\n * Protocol for adding vector functionality to collections.\n * @interface\n */\ncljs.core.IVector \x3d function(){};\n\nvar cljs$core$IVector$_assoc_n$dyn_20487 \x3d (function (coll,n,val){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._assoc_n[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,n,val) : m__5351__auto__.call(null, coll,n,val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._assoc_n[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,n,val) : m__5349__auto__.call(null, coll,n,val));\n} else {\nthrow cljs.core.missing_protocol(\x22IVector.-assoc-n\x22,coll);\n}\n}\n});\n/**\n * Returns a new vector with value val added at position n.\n */\ncljs.core._assoc_n \x3d (function cljs$core$_assoc_n(coll,n,val){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IVector$_assoc_n$arity$3 \x3d\x3d null)))))){\nreturn coll.cljs$core$IVector$_assoc_n$arity$3(coll,n,val);\n} else {\nreturn cljs$core$IVector$_assoc_n$dyn_20487(coll,n,val);\n}\n});\n\n\n/**\n * Protocol for adding dereference functionality to a reference.\n * @interface\n */\ncljs.core.IDeref \x3d function(){};\n\nvar cljs$core$IDeref$_deref$dyn_20489 \x3d (function (o){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._deref[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5351__auto__.call(null, o));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._deref[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5349__auto__.call(null, o));\n} else {\nthrow cljs.core.missing_protocol(\x22IDeref.-deref\x22,o);\n}\n}\n});\n/**\n * Returns the value of the reference o.\n */\ncljs.core._deref \x3d (function cljs$core$_deref(o){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IDeref$_deref$arity$1 \x3d\x3d null)))))){\nreturn o.cljs$core$IDeref$_deref$arity$1(o);\n} else {\nreturn cljs$core$IDeref$_deref$dyn_20489(o);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.core.IDerefWithTimeout \x3d function(){};\n\nvar cljs$core$IDerefWithTimeout$_deref_with_timeout$dyn_20493 \x3d (function (o,msec,timeout_val){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._deref_with_timeout[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(o,msec,timeout_val) : m__5351__auto__.call(null, o,msec,timeout_val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._deref_with_timeout[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(o,msec,timeout_val) : m__5349__auto__.call(null, o,msec,timeout_val));\n} else {\nthrow cljs.core.missing_protocol(\x22IDerefWithTimeout.-deref-with-timeout\x22,o);\n}\n}\n});\ncljs.core._deref_with_timeout \x3d (function cljs$core$_deref_with_timeout(o,msec,timeout_val){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3 \x3d\x3d null)))))){\nreturn o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3(o,msec,timeout_val);\n} else {\nreturn cljs$core$IDerefWithTimeout$_deref_with_timeout$dyn_20493(o,msec,timeout_val);\n}\n});\n\n\n/**\n * Protocol for accessing the metadata of an object.\n * @interface\n */\ncljs.core.IMeta \x3d function(){};\n\nvar cljs$core$IMeta$_meta$dyn_20502 \x3d (function (o){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._meta[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5351__auto__.call(null, o));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._meta[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5349__auto__.call(null, o));\n} else {\nthrow cljs.core.missing_protocol(\x22IMeta.-meta\x22,o);\n}\n}\n});\n/**\n * Returns the metadata of object o.\n */\ncljs.core._meta \x3d (function cljs$core$_meta(o){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IMeta$_meta$arity$1 \x3d\x3d null)))))){\nreturn o.cljs$core$IMeta$_meta$arity$1(o);\n} else {\nreturn cljs$core$IMeta$_meta$dyn_20502(o);\n}\n});\n\n\n/**\n * Protocol for adding metadata to an object.\n * @interface\n */\ncljs.core.IWithMeta \x3d function(){};\n\nvar cljs$core$IWithMeta$_with_meta$dyn_20503 \x3d (function (o,meta){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._with_meta[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(o,meta) : m__5351__auto__.call(null, o,meta));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._with_meta[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(o,meta) : m__5349__auto__.call(null, o,meta));\n} else {\nthrow cljs.core.missing_protocol(\x22IWithMeta.-with-meta\x22,o);\n}\n}\n});\n/**\n * Returns a new object with value of o and metadata meta added to it.\n */\ncljs.core._with_meta \x3d (function cljs$core$_with_meta(o,meta){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IWithMeta$_with_meta$arity$2 \x3d\x3d null)))))){\nreturn o.cljs$core$IWithMeta$_with_meta$arity$2(o,meta);\n} else {\nreturn cljs$core$IWithMeta$_with_meta$dyn_20503(o,meta);\n}\n});\n\n\n/**\n * Protocol for seq types that can reduce themselves.\n * Called by cljs.core/reduce.\n * @interface\n */\ncljs.core.IReduce \x3d function(){};\n\nvar cljs$core$IReduce$_reduce$dyn_20507 \x3d (function() {\nvar G__20508 \x3d null;\nvar G__20508__2 \x3d (function (coll,f){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._reduce[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,f) : m__5351__auto__.call(null, coll,f));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._reduce[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,f) : m__5349__auto__.call(null, coll,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IReduce.-reduce\x22,coll);\n}\n}\n});\nvar G__20508__3 \x3d (function (coll,f,start){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._reduce[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,f,start) : m__5351__auto__.call(null, coll,f,start));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._reduce[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,f,start) : m__5349__auto__.call(null, coll,f,start));\n} else {\nthrow cljs.core.missing_protocol(\x22IReduce.-reduce\x22,coll);\n}\n}\n});\nG__20508 \x3d function(coll,f,start){\nswitch(arguments.length){\ncase 2:\nreturn G__20508__2.call(this,coll,f);\ncase 3:\nreturn G__20508__3.call(this,coll,f,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20508.cljs$core$IFn$_invoke$arity$2 \x3d G__20508__2;\nG__20508.cljs$core$IFn$_invoke$arity$3 \x3d G__20508__3;\nreturn G__20508;\n})()\n;\n/**\n * f should be a function of 2 arguments. If start is not supplied,\n * returns the result of applying f to the first 2 items in coll, then\n * applying f to that result and the 3rd item, etc.\n */\ncljs.core._reduce \x3d (function cljs$core$_reduce(var_args){\nvar G__17458 \x3d arguments.length;\nswitch (G__17458) {\ncase 2:\nreturn cljs.core._reduce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._reduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._reduce.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,f){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IReduce$_reduce$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$IReduce$_reduce$arity$2(coll,f);\n} else {\nreturn cljs$core$IReduce$_reduce$dyn_20507(coll,f);\n}\n}));\n\n(cljs.core._reduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,f,start){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IReduce$_reduce$arity$3 \x3d\x3d null)))))){\nreturn coll.cljs$core$IReduce$_reduce$arity$3(coll,f,start);\n} else {\nreturn cljs$core$IReduce$_reduce$dyn_20507(coll,f,start);\n}\n}));\n\n(cljs.core._reduce.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * Protocol for associative types that can reduce themselves\n * via a function of key and val. Called by cljs.core/reduce-kv.\n * @interface\n */\ncljs.core.IKVReduce \x3d function(){};\n\nvar cljs$core$IKVReduce$_kv_reduce$dyn_20514 \x3d (function (coll,f,init){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._kv_reduce[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,f,init) : m__5351__auto__.call(null, coll,f,init));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._kv_reduce[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,f,init) : m__5349__auto__.call(null, coll,f,init));\n} else {\nthrow cljs.core.missing_protocol(\x22IKVReduce.-kv-reduce\x22,coll);\n}\n}\n});\n/**\n * Reduces an associative collection and returns the result. f should be\n * a function that takes three arguments.\n */\ncljs.core._kv_reduce \x3d (function cljs$core$_kv_reduce(coll,f,init){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d\x3d null)))))){\nreturn coll.cljs$core$IKVReduce$_kv_reduce$arity$3(coll,f,init);\n} else {\nreturn cljs$core$IKVReduce$_kv_reduce$dyn_20514(coll,f,init);\n}\n});\n\n\n/**\n * Protocol for adding value comparison functionality to a type.\n * @interface\n */\ncljs.core.IEquiv \x3d function(){};\n\nvar cljs$core$IEquiv$_equiv$dyn_20517 \x3d (function (o,other){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._equiv[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(o,other) : m__5351__auto__.call(null, o,other));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._equiv[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(o,other) : m__5349__auto__.call(null, o,other));\n} else {\nthrow cljs.core.missing_protocol(\x22IEquiv.-equiv\x22,o);\n}\n}\n});\n/**\n * Returns true if o and other are equal, false otherwise.\n */\ncljs.core._equiv \x3d (function cljs$core$_equiv(o,other){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IEquiv$_equiv$arity$2 \x3d\x3d null)))))){\nreturn o.cljs$core$IEquiv$_equiv$arity$2(o,other);\n} else {\nreturn cljs$core$IEquiv$_equiv$dyn_20517(o,other);\n}\n});\n\n\n/**\n * Protocol for adding hashing functionality to a type.\n * @interface\n */\ncljs.core.IHash \x3d function(){};\n\nvar cljs$core$IHash$_hash$dyn_20519 \x3d (function (o){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._hash[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5351__auto__.call(null, o));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._hash[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5349__auto__.call(null, o));\n} else {\nthrow cljs.core.missing_protocol(\x22IHash.-hash\x22,o);\n}\n}\n});\n/**\n * Returns the hash code of o.\n */\ncljs.core._hash \x3d (function cljs$core$_hash(o){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IHash$_hash$arity$1 \x3d\x3d null)))))){\nreturn o.cljs$core$IHash$_hash$arity$1(o);\n} else {\nreturn cljs$core$IHash$_hash$dyn_20519(o);\n}\n});\n\n\n/**\n * Protocol for adding the ability to a type to be transformed into a sequence.\n * @interface\n */\ncljs.core.ISeqable \x3d function(){};\n\nvar cljs$core$ISeqable$_seq$dyn_20524 \x3d (function (o){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._seq[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5351__auto__.call(null, o));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._seq[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5349__auto__.call(null, o));\n} else {\nthrow cljs.core.missing_protocol(\x22ISeqable.-seq\x22,o);\n}\n}\n});\n/**\n * Returns a seq of o, or nil if o is empty.\n */\ncljs.core._seq \x3d (function cljs$core$_seq(o){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ISeqable$_seq$arity$1 \x3d\x3d null)))))){\nreturn o.cljs$core$ISeqable$_seq$arity$1(o);\n} else {\nreturn cljs$core$ISeqable$_seq$dyn_20524(o);\n}\n});\n\n\n/**\n * Marker interface indicating a persistent collection of sequential items\n * @interface\n */\ncljs.core.ISequential \x3d function(){};\n\n\n/**\n * Marker interface indicating a persistent list\n * @interface\n */\ncljs.core.IList \x3d function(){};\n\n\n/**\n * Marker interface indicating a record object\n * @interface\n */\ncljs.core.IRecord \x3d function(){};\n\n\n/**\n * Protocol for reversing a seq.\n * @interface\n */\ncljs.core.IReversible \x3d function(){};\n\nvar cljs$core$IReversible$_rseq$dyn_20529 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._rseq[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._rseq[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IReversible.-rseq\x22,coll);\n}\n}\n});\n/**\n * Returns a seq of the items in coll in reversed order.\n */\ncljs.core._rseq \x3d (function cljs$core$_rseq(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IReversible$_rseq$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IReversible$_rseq$arity$1(coll);\n} else {\nreturn cljs$core$IReversible$_rseq$dyn_20529(coll);\n}\n});\n\n\n/**\n * Protocol for a collection which can represent their items\n * in a sorted manner. \n * @interface\n */\ncljs.core.ISorted \x3d function(){};\n\nvar cljs$core$ISorted$_sorted_seq$dyn_20531 \x3d (function (coll,ascending_QMARK_){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._sorted_seq[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,ascending_QMARK_) : m__5351__auto__.call(null, coll,ascending_QMARK_));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._sorted_seq[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,ascending_QMARK_) : m__5349__auto__.call(null, coll,ascending_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISorted.-sorted-seq\x22,coll);\n}\n}\n});\n/**\n * Returns a sorted seq from coll in either ascending or descending order.\n */\ncljs.core._sorted_seq \x3d (function cljs$core$_sorted_seq(coll,ascending_QMARK_){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISorted$_sorted_seq$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISorted$_sorted_seq$arity$2(coll,ascending_QMARK_);\n} else {\nreturn cljs$core$ISorted$_sorted_seq$dyn_20531(coll,ascending_QMARK_);\n}\n});\n\nvar cljs$core$ISorted$_sorted_seq_from$dyn_20532 \x3d (function (coll,k,ascending_QMARK_){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._sorted_seq_from[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,ascending_QMARK_) : m__5351__auto__.call(null, coll,k,ascending_QMARK_));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._sorted_seq_from[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,ascending_QMARK_) : m__5349__auto__.call(null, coll,k,ascending_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22ISorted.-sorted-seq-from\x22,coll);\n}\n}\n});\n/**\n * Returns a sorted seq from coll in either ascending or descending order.\n * If ascending is true, the result should contain all items which are \x3e or \x3e\x3d\n * than k. If ascending is false, the result should contain all items which\n * are \x3c or \x3c\x3d than k, e.g.\n * (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 true) \x3d\x3e (3 4 5)\n * (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 false) \x3d\x3e (3 2 1)\n */\ncljs.core._sorted_seq_from \x3d (function cljs$core$_sorted_seq_from(coll,k,ascending_QMARK_){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISorted$_sorted_seq_from$arity$3 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISorted$_sorted_seq_from$arity$3(coll,k,ascending_QMARK_);\n} else {\nreturn cljs$core$ISorted$_sorted_seq_from$dyn_20532(coll,k,ascending_QMARK_);\n}\n});\n\nvar cljs$core$ISorted$_entry_key$dyn_20536 \x3d (function (coll,entry){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._entry_key[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,entry) : m__5351__auto__.call(null, coll,entry));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._entry_key[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,entry) : m__5349__auto__.call(null, coll,entry));\n} else {\nthrow cljs.core.missing_protocol(\x22ISorted.-entry-key\x22,coll);\n}\n}\n});\n/**\n * Returns the key for entry.\n */\ncljs.core._entry_key \x3d (function cljs$core$_entry_key(coll,entry){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISorted$_entry_key$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISorted$_entry_key$arity$2(coll,entry);\n} else {\nreturn cljs$core$ISorted$_entry_key$dyn_20536(coll,entry);\n}\n});\n\nvar cljs$core$ISorted$_comparator$dyn_20547 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._comparator[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._comparator[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22ISorted.-comparator\x22,coll);\n}\n}\n});\n/**\n * Returns the comparator for coll.\n */\ncljs.core._comparator \x3d (function cljs$core$_comparator(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$ISorted$_comparator$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$ISorted$_comparator$arity$1(coll);\n} else {\nreturn cljs$core$ISorted$_comparator$dyn_20547(coll);\n}\n});\n\n\n/**\n * Protocol for writing. Currently only implemented by StringBufferWriter.\n * @interface\n */\ncljs.core.IWriter \x3d function(){};\n\nvar cljs$core$IWriter$_write$dyn_20548 \x3d (function (writer,s){\nvar x__5350__auto__ \x3d (((writer \x3d\x3d null))?null:writer);\nvar m__5351__auto__ \x3d (cljs.core._write[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(writer,s) : m__5351__auto__.call(null, writer,s));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._write[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(writer,s) : m__5349__auto__.call(null, writer,s));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriter.-write\x22,writer);\n}\n}\n});\n/**\n * Writes s with writer and returns the result.\n */\ncljs.core._write \x3d (function cljs$core$_write(writer,s){\nif((((!((writer \x3d\x3d null)))) \x26\x26 ((!((writer.cljs$core$IWriter$_write$arity$2 \x3d\x3d null)))))){\nreturn writer.cljs$core$IWriter$_write$arity$2(writer,s);\n} else {\nreturn cljs$core$IWriter$_write$dyn_20548(writer,s);\n}\n});\n\nvar cljs$core$IWriter$_flush$dyn_20550 \x3d (function (writer){\nvar x__5350__auto__ \x3d (((writer \x3d\x3d null))?null:writer);\nvar m__5351__auto__ \x3d (cljs.core._flush[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(writer) : m__5351__auto__.call(null, writer));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._flush[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(writer) : m__5349__auto__.call(null, writer));\n} else {\nthrow cljs.core.missing_protocol(\x22IWriter.-flush\x22,writer);\n}\n}\n});\n/**\n * Flush writer.\n */\ncljs.core._flush \x3d (function cljs$core$_flush(writer){\nif((((!((writer \x3d\x3d null)))) \x26\x26 ((!((writer.cljs$core$IWriter$_flush$arity$1 \x3d\x3d null)))))){\nreturn writer.cljs$core$IWriter$_flush$arity$1(writer);\n} else {\nreturn cljs$core$IWriter$_flush$dyn_20550(writer);\n}\n});\n\n\n/**\n * The old IPrintable protocol\x27s implementation consisted of building a giant\n * list of strings to concatenate. This involved lots of concat calls,\n * intermediate vectors, and lazy-seqs, and was very slow in some older JS\n * engines. IPrintWithWriter implements printing via the IWriter protocol, so it\n * be implemented efficiently in terms of e.g. a StringBuffer append.\n * @interface\n */\ncljs.core.IPrintWithWriter \x3d function(){};\n\nvar cljs$core$IPrintWithWriter$_pr_writer$dyn_20553 \x3d (function (o,writer,opts){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._pr_writer[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(o,writer,opts) : m__5351__auto__.call(null, o,writer,opts));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._pr_writer[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(o,writer,opts) : m__5349__auto__.call(null, o,writer,opts));\n} else {\nthrow cljs.core.missing_protocol(\x22IPrintWithWriter.-pr-writer\x22,o);\n}\n}\n});\ncljs.core._pr_writer \x3d (function cljs$core$_pr_writer(o,writer,opts){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d\x3d null)))))){\nreturn o.cljs$core$IPrintWithWriter$_pr_writer$arity$3(o,writer,opts);\n} else {\nreturn cljs$core$IPrintWithWriter$_pr_writer$dyn_20553(o,writer,opts);\n}\n});\n\n\n/**\n * Protocol for types which can have a deferred realization. Currently only\n * implemented by Delay and LazySeq.\n * @interface\n */\ncljs.core.IPending \x3d function(){};\n\nvar cljs$core$IPending$_realized_QMARK_$dyn_20556 \x3d (function (x){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._realized_QMARK_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._realized_QMARK_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));\n} else {\nthrow cljs.core.missing_protocol(\x22IPending.-realized?\x22,x);\n}\n}\n});\n/**\n * Returns true if a value for x has been produced, false otherwise.\n */\ncljs.core._realized_QMARK_ \x3d (function cljs$core$_realized_QMARK_(x){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn x.cljs$core$IPending$_realized_QMARK_$arity$1(x);\n} else {\nreturn cljs$core$IPending$_realized_QMARK_$dyn_20556(x);\n}\n});\n\n\n/**\n * Protocol for types that can be watched. Currently only implemented by Atom.\n * @interface\n */\ncljs.core.IWatchable \x3d function(){};\n\nvar cljs$core$IWatchable$_notify_watches$dyn_20559 \x3d (function (this$,oldval,newval){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._notify_watches[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,oldval,newval) : m__5351__auto__.call(null, this$,oldval,newval));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._notify_watches[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,oldval,newval) : m__5349__auto__.call(null, this$,oldval,newval));\n} else {\nthrow cljs.core.missing_protocol(\x22IWatchable.-notify-watches\x22,this$);\n}\n}\n});\n/**\n * Calls all watchers with this, oldval and newval.\n */\ncljs.core._notify_watches \x3d (function cljs$core$_notify_watches(this$,oldval,newval){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IWatchable$_notify_watches$arity$3 \x3d\x3d null)))))){\nreturn this$.cljs$core$IWatchable$_notify_watches$arity$3(this$,oldval,newval);\n} else {\nreturn cljs$core$IWatchable$_notify_watches$dyn_20559(this$,oldval,newval);\n}\n});\n\nvar cljs$core$IWatchable$_add_watch$dyn_20560 \x3d (function (this$,key,f){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._add_watch[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,f) : m__5351__auto__.call(null, this$,key,f));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._add_watch[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,key,f) : m__5349__auto__.call(null, this$,key,f));\n} else {\nthrow cljs.core.missing_protocol(\x22IWatchable.-add-watch\x22,this$);\n}\n}\n});\n/**\n * Adds a watcher function f to this. Keys must be unique per reference,\n * and can be used to remove the watch with -remove-watch.\n */\ncljs.core._add_watch \x3d (function cljs$core$_add_watch(this$,key,f){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IWatchable$_add_watch$arity$3 \x3d\x3d null)))))){\nreturn this$.cljs$core$IWatchable$_add_watch$arity$3(this$,key,f);\n} else {\nreturn cljs$core$IWatchable$_add_watch$dyn_20560(this$,key,f);\n}\n});\n\nvar cljs$core$IWatchable$_remove_watch$dyn_20563 \x3d (function (this$,key){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core._remove_watch[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,key) : m__5351__auto__.call(null, this$,key));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._remove_watch[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,key) : m__5349__auto__.call(null, this$,key));\n} else {\nthrow cljs.core.missing_protocol(\x22IWatchable.-remove-watch\x22,this$);\n}\n}\n});\n/**\n * Removes watcher that corresponds to key from this.\n */\ncljs.core._remove_watch \x3d (function cljs$core$_remove_watch(this$,key){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$IWatchable$_remove_watch$arity$2 \x3d\x3d null)))))){\nreturn this$.cljs$core$IWatchable$_remove_watch$arity$2(this$,key);\n} else {\nreturn cljs$core$IWatchable$_remove_watch$dyn_20563(this$,key);\n}\n});\n\n\n/**\n * Protocol for collections which can transformed to transients.\n * @interface\n */\ncljs.core.IEditableCollection \x3d function(){};\n\nvar cljs$core$IEditableCollection$_as_transient$dyn_20564 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._as_transient[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._as_transient[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IEditableCollection.-as-transient\x22,coll);\n}\n}\n});\n/**\n * Returns a new, transient version of the collection, in constant time.\n */\ncljs.core._as_transient \x3d (function cljs$core$_as_transient(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IEditableCollection$_as_transient$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IEditableCollection$_as_transient$arity$1(coll);\n} else {\nreturn cljs$core$IEditableCollection$_as_transient$dyn_20564(coll);\n}\n});\n\n\n/**\n * Protocol for adding basic functionality to transient collections.\n * @interface\n */\ncljs.core.ITransientCollection \x3d function(){};\n\nvar cljs$core$ITransientCollection$_conj_BANG_$dyn_20566 \x3d (function (tcoll,val){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._conj_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(tcoll,val) : m__5351__auto__.call(null, tcoll,val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._conj_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(tcoll,val) : m__5349__auto__.call(null, tcoll,val));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientCollection.-conj!\x22,tcoll);\n}\n}\n});\n/**\n * Adds value val to tcoll and returns tcoll.\n */\ncljs.core._conj_BANG_ \x3d (function cljs$core$_conj_BANG_(tcoll,val){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2(tcoll,val);\n} else {\nreturn cljs$core$ITransientCollection$_conj_BANG_$dyn_20566(tcoll,val);\n}\n});\n\nvar cljs$core$ITransientCollection$_persistent_BANG_$dyn_20570 \x3d (function (tcoll){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._persistent_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(tcoll) : m__5351__auto__.call(null, tcoll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._persistent_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(tcoll) : m__5349__auto__.call(null, tcoll));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientCollection.-persistent!\x22,tcoll);\n}\n}\n});\n/**\n * Creates a persistent data structure from tcoll and returns it.\n */\ncljs.core._persistent_BANG_ \x3d (function cljs$core$_persistent_BANG_(tcoll){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(tcoll);\n} else {\nreturn cljs$core$ITransientCollection$_persistent_BANG_$dyn_20570(tcoll);\n}\n});\n\n\n/**\n * Protocol for adding associativity to transient collections.\n * @interface\n */\ncljs.core.ITransientAssociative \x3d function(){};\n\nvar cljs$core$ITransientAssociative$_assoc_BANG_$dyn_20574 \x3d (function (tcoll,key,val){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._assoc_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(tcoll,key,val) : m__5351__auto__.call(null, tcoll,key,val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._assoc_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(tcoll,key,val) : m__5349__auto__.call(null, tcoll,key,val));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientAssociative.-assoc!\x22,tcoll);\n}\n}\n});\n/**\n * Returns a new transient collection of tcoll with a mapping from key to\n * val added to it.\n */\ncljs.core._assoc_BANG_ \x3d (function cljs$core$_assoc_BANG_(tcoll,key,val){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll,key,val);\n} else {\nreturn cljs$core$ITransientAssociative$_assoc_BANG_$dyn_20574(tcoll,key,val);\n}\n});\n\n\n/**\n * Protocol for adding mapping functionality to transient collections.\n * @interface\n */\ncljs.core.ITransientMap \x3d function(){};\n\nvar cljs$core$ITransientMap$_dissoc_BANG_$dyn_20576 \x3d (function (tcoll,key){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._dissoc_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(tcoll,key) : m__5351__auto__.call(null, tcoll,key));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._dissoc_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(tcoll,key) : m__5349__auto__.call(null, tcoll,key));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientMap.-dissoc!\x22,tcoll);\n}\n}\n});\n/**\n * Returns a new transient collection of tcoll without the mapping for key.\n */\ncljs.core._dissoc_BANG_ \x3d (function cljs$core$_dissoc_BANG_(tcoll,key){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2(tcoll,key);\n} else {\nreturn cljs$core$ITransientMap$_dissoc_BANG_$dyn_20576(tcoll,key);\n}\n});\n\n\n/**\n * Protocol for adding vector functionality to transient collections.\n * @interface\n */\ncljs.core.ITransientVector \x3d function(){};\n\nvar cljs$core$ITransientVector$_assoc_n_BANG_$dyn_20578 \x3d (function (tcoll,n,val){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._assoc_n_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(tcoll,n,val) : m__5351__auto__.call(null, tcoll,n,val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._assoc_n_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(tcoll,n,val) : m__5349__auto__.call(null, tcoll,n,val));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientVector.-assoc-n!\x22,tcoll);\n}\n}\n});\n/**\n * Returns tcoll with value val added at position n.\n */\ncljs.core._assoc_n_BANG_ \x3d (function cljs$core$_assoc_n_BANG_(tcoll,n,val){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(tcoll,n,val);\n} else {\nreturn cljs$core$ITransientVector$_assoc_n_BANG_$dyn_20578(tcoll,n,val);\n}\n});\n\nvar cljs$core$ITransientVector$_pop_BANG_$dyn_20588 \x3d (function (tcoll){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._pop_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(tcoll) : m__5351__auto__.call(null, tcoll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._pop_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(tcoll) : m__5349__auto__.call(null, tcoll));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientVector.-pop!\x22,tcoll);\n}\n}\n});\n/**\n * Returns tcoll with the last item removed from it.\n */\ncljs.core._pop_BANG_ \x3d (function cljs$core$_pop_BANG_(tcoll){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1(tcoll);\n} else {\nreturn cljs$core$ITransientVector$_pop_BANG_$dyn_20588(tcoll);\n}\n});\n\n\n/**\n * Protocol for adding set functionality to a transient collection.\n * @interface\n */\ncljs.core.ITransientSet \x3d function(){};\n\nvar cljs$core$ITransientSet$_disjoin_BANG_$dyn_20589 \x3d (function (tcoll,v){\nvar x__5350__auto__ \x3d (((tcoll \x3d\x3d null))?null:tcoll);\nvar m__5351__auto__ \x3d (cljs.core._disjoin_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(tcoll,v) : m__5351__auto__.call(null, tcoll,v));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._disjoin_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(tcoll,v) : m__5349__auto__.call(null, tcoll,v));\n} else {\nthrow cljs.core.missing_protocol(\x22ITransientSet.-disjoin!\x22,tcoll);\n}\n}\n});\n/**\n * Returns tcoll without v.\n */\ncljs.core._disjoin_BANG_ \x3d (function cljs$core$_disjoin_BANG_(tcoll,v){\nif((((!((tcoll \x3d\x3d null)))) \x26\x26 ((!((tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 \x3d\x3d null)))))){\nreturn tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2(tcoll,v);\n} else {\nreturn cljs$core$ITransientSet$_disjoin_BANG_$dyn_20589(tcoll,v);\n}\n});\n\n\n/**\n * Protocol for values that can be compared.\n * @interface\n */\ncljs.core.IComparable \x3d function(){};\n\nvar cljs$core$IComparable$_compare$dyn_20594 \x3d (function (x,y){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._compare[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(x,y) : m__5351__auto__.call(null, x,y));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._compare[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(x,y) : m__5349__auto__.call(null, x,y));\n} else {\nthrow cljs.core.missing_protocol(\x22IComparable.-compare\x22,x);\n}\n}\n});\n/**\n * Returns a negative number, zero, or a positive number when x is logically\n * \x27less than\x27, \x27equal to\x27, or \x27greater than\x27 y.\n */\ncljs.core._compare \x3d (function cljs$core$_compare(x,y){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$IComparable$_compare$arity$2 \x3d\x3d null)))))){\nreturn x.cljs$core$IComparable$_compare$arity$2(x,y);\n} else {\nreturn cljs$core$IComparable$_compare$dyn_20594(x,y);\n}\n});\n\n\n/**\n * Protocol for accessing the items of a chunk.\n * @interface\n */\ncljs.core.IChunk \x3d function(){};\n\nvar cljs$core$IChunk$_drop_first$dyn_20597 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._drop_first[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._drop_first[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IChunk.-drop-first\x22,coll);\n}\n}\n});\n/**\n * Return a new chunk of coll with the first item removed.\n */\ncljs.core._drop_first \x3d (function cljs$core$_drop_first(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IChunk$_drop_first$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IChunk$_drop_first$arity$1(coll);\n} else {\nreturn cljs$core$IChunk$_drop_first$dyn_20597(coll);\n}\n});\n\n\n/**\n * Protocol for accessing a collection as sequential chunks.\n * @interface\n */\ncljs.core.IChunkedSeq \x3d function(){};\n\nvar cljs$core$IChunkedSeq$_chunked_first$dyn_20599 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._chunked_first[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._chunked_first[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IChunkedSeq.-chunked-first\x22,coll);\n}\n}\n});\n/**\n * Returns the first chunk in coll.\n */\ncljs.core._chunked_first \x3d (function cljs$core$_chunked_first(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IChunkedSeq$_chunked_first$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IChunkedSeq$_chunked_first$arity$1(coll);\n} else {\nreturn cljs$core$IChunkedSeq$_chunked_first$dyn_20599(coll);\n}\n});\n\nvar cljs$core$IChunkedSeq$_chunked_rest$dyn_20602 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._chunked_rest[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._chunked_rest[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IChunkedSeq.-chunked-rest\x22,coll);\n}\n}\n});\n/**\n * Return a new collection of coll with the first chunk removed.\n */\ncljs.core._chunked_rest \x3d (function cljs$core$_chunked_rest(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1(coll);\n} else {\nreturn cljs$core$IChunkedSeq$_chunked_rest$dyn_20602(coll);\n}\n});\n\n\n/**\n * Protocol for accessing the chunks of a collection.\n * @interface\n */\ncljs.core.IChunkedNext \x3d function(){};\n\nvar cljs$core$IChunkedNext$_chunked_next$dyn_20604 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._chunked_next[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._chunked_next[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IChunkedNext.-chunked-next\x22,coll);\n}\n}\n});\n/**\n * Returns a new collection of coll without the first chunk.\n */\ncljs.core._chunked_next \x3d (function cljs$core$_chunked_next(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IChunkedNext$_chunked_next$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IChunkedNext$_chunked_next$arity$1(coll);\n} else {\nreturn cljs$core$IChunkedNext$_chunked_next$dyn_20604(coll);\n}\n});\n\n\n/**\n * Protocol for adding a name.\n * @interface\n */\ncljs.core.INamed \x3d function(){};\n\nvar cljs$core$INamed$_name$dyn_20611 \x3d (function (x){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._name[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._name[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));\n} else {\nthrow cljs.core.missing_protocol(\x22INamed.-name\x22,x);\n}\n}\n});\n/**\n * Returns the name String of x.\n */\ncljs.core._name \x3d (function cljs$core$_name(x){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$INamed$_name$arity$1 \x3d\x3d null)))))){\nreturn x.cljs$core$INamed$_name$arity$1(x);\n} else {\nreturn cljs$core$INamed$_name$dyn_20611(x);\n}\n});\n\nvar cljs$core$INamed$_namespace$dyn_20613 \x3d (function (x){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._namespace[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._namespace[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));\n} else {\nthrow cljs.core.missing_protocol(\x22INamed.-namespace\x22,x);\n}\n}\n});\n/**\n * Returns the namespace String of x.\n */\ncljs.core._namespace \x3d (function cljs$core$_namespace(x){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$INamed$_namespace$arity$1 \x3d\x3d null)))))){\nreturn x.cljs$core$INamed$_namespace$arity$1(x);\n} else {\nreturn cljs$core$INamed$_namespace$dyn_20613(x);\n}\n});\n\n\n/**\n * Marker protocol indicating an atom.\n * @interface\n */\ncljs.core.IAtom \x3d function(){};\n\n\n/**\n * Protocol for adding resetting functionality.\n * @interface\n */\ncljs.core.IReset \x3d function(){};\n\nvar cljs$core$IReset$_reset_BANG_$dyn_20623 \x3d (function (o,new_value){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._reset_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(o,new_value) : m__5351__auto__.call(null, o,new_value));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._reset_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(o,new_value) : m__5349__auto__.call(null, o,new_value));\n} else {\nthrow cljs.core.missing_protocol(\x22IReset.-reset!\x22,o);\n}\n}\n});\n/**\n * Sets the value of o to new-value.\n */\ncljs.core._reset_BANG_ \x3d (function cljs$core$_reset_BANG_(o,new_value){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IReset$_reset_BANG_$arity$2 \x3d\x3d null)))))){\nreturn o.cljs$core$IReset$_reset_BANG_$arity$2(o,new_value);\n} else {\nreturn cljs$core$IReset$_reset_BANG_$dyn_20623(o,new_value);\n}\n});\n\n\n/**\n * Protocol for adding swapping functionality.\n * @interface\n */\ncljs.core.ISwap \x3d function(){};\n\nvar cljs$core$ISwap$_swap_BANG_$dyn_20625 \x3d (function() {\nvar G__20626 \x3d null;\nvar G__20626__2 \x3d (function (o,f){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._swap_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(o,f) : m__5351__auto__.call(null, o,f));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._swap_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(o,f) : m__5349__auto__.call(null, o,f));\n} else {\nthrow cljs.core.missing_protocol(\x22ISwap.-swap!\x22,o);\n}\n}\n});\nvar G__20626__3 \x3d (function (o,f,a){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._swap_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(o,f,a) : m__5351__auto__.call(null, o,f,a));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._swap_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(o,f,a) : m__5349__auto__.call(null, o,f,a));\n} else {\nthrow cljs.core.missing_protocol(\x22ISwap.-swap!\x22,o);\n}\n}\n});\nvar G__20626__4 \x3d (function (o,f,a,b){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._swap_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$4(o,f,a,b) : m__5351__auto__.call(null, o,f,a,b));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._swap_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$4(o,f,a,b) : m__5349__auto__.call(null, o,f,a,b));\n} else {\nthrow cljs.core.missing_protocol(\x22ISwap.-swap!\x22,o);\n}\n}\n});\nvar G__20626__5 \x3d (function (o,f,a,b,xs){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._swap_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$5(o,f,a,b,xs) : m__5351__auto__.call(null, o,f,a,b,xs));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._swap_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$5(o,f,a,b,xs) : m__5349__auto__.call(null, o,f,a,b,xs));\n} else {\nthrow cljs.core.missing_protocol(\x22ISwap.-swap!\x22,o);\n}\n}\n});\nG__20626 \x3d function(o,f,a,b,xs){\nswitch(arguments.length){\ncase 2:\nreturn G__20626__2.call(this,o,f);\ncase 3:\nreturn G__20626__3.call(this,o,f,a);\ncase 4:\nreturn G__20626__4.call(this,o,f,a,b);\ncase 5:\nreturn G__20626__5.call(this,o,f,a,b,xs);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20626.cljs$core$IFn$_invoke$arity$2 \x3d G__20626__2;\nG__20626.cljs$core$IFn$_invoke$arity$3 \x3d G__20626__3;\nG__20626.cljs$core$IFn$_invoke$arity$4 \x3d G__20626__4;\nG__20626.cljs$core$IFn$_invoke$arity$5 \x3d G__20626__5;\nreturn G__20626;\n})()\n;\n/**\n * Swaps the value of o to be (apply f current-value-of-atom args).\n */\ncljs.core._swap_BANG_ \x3d (function cljs$core$_swap_BANG_(var_args){\nvar G__17460 \x3d arguments.length;\nswitch (G__17460) {\ncase 2:\nreturn cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,f){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ISwap$_swap_BANG_$arity$2 \x3d\x3d null)))))){\nreturn o.cljs$core$ISwap$_swap_BANG_$arity$2(o,f);\n} else {\nreturn cljs$core$ISwap$_swap_BANG_$dyn_20625(o,f);\n}\n}));\n\n(cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,f,a){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ISwap$_swap_BANG_$arity$3 \x3d\x3d null)))))){\nreturn o.cljs$core$ISwap$_swap_BANG_$arity$3(o,f,a);\n} else {\nreturn cljs$core$ISwap$_swap_BANG_$dyn_20625(o,f,a);\n}\n}));\n\n(cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (o,f,a,b){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ISwap$_swap_BANG_$arity$4 \x3d\x3d null)))))){\nreturn o.cljs$core$ISwap$_swap_BANG_$arity$4(o,f,a,b);\n} else {\nreturn cljs$core$ISwap$_swap_BANG_$dyn_20625(o,f,a,b);\n}\n}));\n\n(cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$5 \x3d (function (o,f,a,b,xs){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$ISwap$_swap_BANG_$arity$5 \x3d\x3d null)))))){\nreturn o.cljs$core$ISwap$_swap_BANG_$arity$5(o,f,a,b,xs);\n} else {\nreturn cljs$core$ISwap$_swap_BANG_$dyn_20625(o,f,a,b,xs);\n}\n}));\n\n(cljs.core._swap_BANG_.cljs$lang$maxFixedArity \x3d 5);\n\n\n\n/**\n * Protocol for adding volatile functionality.\n * @interface\n */\ncljs.core.IVolatile \x3d function(){};\n\nvar cljs$core$IVolatile$_vreset_BANG_$dyn_20637 \x3d (function (o,new_value){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (cljs.core._vreset_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(o,new_value) : m__5351__auto__.call(null, o,new_value));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._vreset_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(o,new_value) : m__5349__auto__.call(null, o,new_value));\n} else {\nthrow cljs.core.missing_protocol(\x22IVolatile.-vreset!\x22,o);\n}\n}\n});\n/**\n * Sets the value of volatile o to new-value without regard for the\n * current value. Returns new-value.\n */\ncljs.core._vreset_BANG_ \x3d (function cljs$core$_vreset_BANG_(o,new_value){\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.cljs$core$IVolatile$_vreset_BANG_$arity$2 \x3d\x3d null)))))){\nreturn o.cljs$core$IVolatile$_vreset_BANG_$arity$2(o,new_value);\n} else {\nreturn cljs$core$IVolatile$_vreset_BANG_$dyn_20637(o,new_value);\n}\n});\n\n\n/**\n * Protocol for iterating over a collection.\n * @interface\n */\ncljs.core.IIterable \x3d function(){};\n\nvar cljs$core$IIterable$_iterator$dyn_20639 \x3d (function (coll){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._iterator[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5351__auto__.call(null, coll));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._iterator[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(coll) : m__5349__auto__.call(null, coll));\n} else {\nthrow cljs.core.missing_protocol(\x22IIterable.-iterator\x22,coll);\n}\n}\n});\n/**\n * Returns an iterator for coll.\n */\ncljs.core._iterator \x3d (function cljs$core$_iterator(coll){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IIterable$_iterator$arity$1 \x3d\x3d null)))))){\nreturn coll.cljs$core$IIterable$_iterator$arity$1(coll);\n} else {\nreturn cljs$core$IIterable$_iterator$dyn_20639(coll);\n}\n});\n\n\n/**\n * Protocol for persistent or algorithmically defined collections to provide a\n * means of dropping N items that is more efficient than sequential walking.\n * @interface\n */\ncljs.core.IDrop \x3d function(){};\n\nvar cljs$core$IDrop$_drop$dyn_20645 \x3d (function (coll,n){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (cljs.core._drop[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(coll,n) : m__5351__auto__.call(null, coll,n));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._drop[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(coll,n) : m__5349__auto__.call(null, coll,n));\n} else {\nthrow cljs.core.missing_protocol(\x22IDrop.-drop\x22,coll);\n}\n}\n});\n/**\n * Returns a collection that is ISequential, ISeq, and IReduce, or nil if past\n * the end. The number of items to drop n must be \x3e 0. It is also useful if the\n * returned coll implements IDrop for subsequent use in a partition-like scenario.\n */\ncljs.core._drop \x3d (function cljs$core$_drop(coll,n){\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.cljs$core$IDrop$_drop$arity$2 \x3d\x3d null)))))){\nreturn coll.cljs$core$IDrop$_drop$arity$2(coll,n);\n} else {\nreturn cljs$core$IDrop$_drop$dyn_20645(coll,n);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n*/\ncljs.core.StringBufferWriter \x3d (function (sb){\nthis.sb \x3d sb;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1073741824;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.StringBufferWriter.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (_,s){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.sb.append(s);\n}));\n\n(cljs.core.StringBufferWriter.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.StringBufferWriter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22sb\x22,\x22sb\x22,-1249746442,null)], null);\n}));\n\n(cljs.core.StringBufferWriter.cljs$lang$type \x3d true);\n\n(cljs.core.StringBufferWriter.cljs$lang$ctorStr \x3d \x22cljs.core/StringBufferWriter\x22);\n\n(cljs.core.StringBufferWriter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/StringBufferWriter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/StringBufferWriter.\n */\ncljs.core.__GT_StringBufferWriter \x3d (function cljs$core$__GT_StringBufferWriter(sb){\nreturn (new cljs.core.StringBufferWriter(sb));\n});\n\n/**\n * Support so that collections can implement toString without\n * loading all the printing machinery.\n */\ncljs.core.pr_str_STAR_ \x3d (function cljs$core$pr_str_STAR_(obj){\nvar sb \x3d (new goog.string.StringBuffer());\nvar writer \x3d (new cljs.core.StringBufferWriter(sb));\nobj.cljs$core$IPrintWithWriter$_pr_writer$arity$3(null, writer,cljs.core.pr_opts());\n\nwriter.cljs$core$IWriter$_flush$arity$1(null, );\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n});\ncljs.core.int_rotate_left \x3d (function cljs$core$int_rotate_left(x,n){\nreturn ((x \x3c\x3c n) | (x \x3e\x3e\x3e (- n)));\n});\nif((((typeof Math !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof Math.imul !\x3d\x3d \x27undefined\x27)) \x26\x26 ((!((Math.imul((4294967295),(5)) \x3d\x3d\x3d (0))))))){\ncljs.core.imul \x3d (function cljs$core$imul(a,b){\nreturn Math.imul(a,b);\n});\n} else {\ncljs.core.imul \x3d (function cljs$core$imul(a,b){\nvar ah \x3d ((a \x3e\x3e\x3e (16)) \x26 (65535));\nvar al \x3d (a \x26 (65535));\nvar bh \x3d ((b \x3e\x3e\x3e (16)) \x26 (65535));\nvar bl \x3d (b \x26 (65535));\nreturn (((al * bl) + ((((ah * bl) + (al * bh)) \x3c\x3c (16)) \x3e\x3e\x3e (0))) | (0));\n});\n}\ncljs.core.m3_seed \x3d (0);\ncljs.core.m3_C1 \x3d ((3432918353) | (0));\ncljs.core.m3_C2 \x3d ((461845907) | (0));\ncljs.core.m3_mix_K1 \x3d (function cljs$core$m3_mix_K1(k1){\nreturn cljs.core.imul(cljs.core.int_rotate_left(cljs.core.imul((k1 | (0)),cljs.core.m3_C1),(15)),cljs.core.m3_C2);\n});\ncljs.core.m3_mix_H1 \x3d (function cljs$core$m3_mix_H1(h1,k1){\nreturn ((cljs.core.imul(cljs.core.int_rotate_left(((h1 | (0)) ^ (k1 | (0))),(13)),(5)) + ((3864292196) | (0))) | (0));\n});\ncljs.core.m3_fmix \x3d (function cljs$core$m3_fmix(h1,len){\nvar h1__$1 \x3d (h1 | (0));\nvar h1__$2 \x3d (h1__$1 ^ len);\nvar h1__$3 \x3d (h1__$2 ^ (h1__$2 \x3e\x3e\x3e (16)));\nvar h1__$4 \x3d cljs.core.imul(h1__$3,((2246822507) | (0)));\nvar h1__$5 \x3d (h1__$4 ^ (h1__$4 \x3e\x3e\x3e (13)));\nvar h1__$6 \x3d cljs.core.imul(h1__$5,((3266489909) | (0)));\nreturn (h1__$6 ^ (h1__$6 \x3e\x3e\x3e (16)));\n});\ncljs.core.m3_hash_int \x3d (function cljs$core$m3_hash_int(in$){\nif((in$ \x3d\x3d\x3d (0))){\nreturn in$;\n} else {\nvar k1 \x3d cljs.core.m3_mix_K1(in$);\nvar h1 \x3d cljs.core.m3_mix_H1(cljs.core.m3_seed,k1);\nreturn cljs.core.m3_fmix(h1,(4));\n}\n});\ncljs.core.hash_long \x3d (function cljs$core$hash_long(high,low){\nreturn (high ^ low);\n});\ncljs.core.hash_double \x3d (function cljs$core$hash_double(f){\nvar arr \x3d (function (){var G__17461 \x3d (new Float64Array((1)));\n(G__17461[(0)] \x3d f);\n\nreturn G__17461;\n})();\nvar buf \x3d arr.buffer;\nvar high \x3d (new DataView(buf,(0),(4))).getInt32();\nvar low \x3d (new DataView(buf,(4),(4))).getInt32();\nreturn cljs.core.hash_long(high,low);\n});\ncljs.core.m3_hash_unencoded_chars \x3d (function cljs$core$m3_hash_unencoded_chars(in$){\nvar h1 \x3d (function (){var i \x3d (1);\nvar h1 \x3d cljs.core.m3_seed;\nwhile(true){\nif((i \x3c in$.length)){\nvar G__20660 \x3d (i + (2));\nvar G__20661 \x3d cljs.core.m3_mix_H1(h1,cljs.core.m3_mix_K1((in$.charCodeAt((i - (1))) | (in$.charCodeAt(i) \x3c\x3c (16)))));\ni \x3d G__20660;\nh1 \x3d G__20661;\ncontinue;\n} else {\nreturn h1;\n}\nbreak;\n}\n})();\nvar h1__$1 \x3d ((((in$.length \x26 (1)) \x3d\x3d\x3d (1)))?(h1 ^ cljs.core.m3_mix_K1(in$.charCodeAt((in$.length - (1))))):h1);\nreturn cljs.core.m3_fmix(h1__$1,cljs.core.imul((2),in$.length));\n});\n\n\n\ncljs.core.string_hash_cache \x3d ({});\ncljs.core.string_hash_cache_count \x3d (0);\ncljs.core.hash_string_STAR_ \x3d (function cljs$core$hash_string_STAR_(s){\nif((!((s \x3d\x3d null)))){\nvar len \x3d s.length;\nif((len \x3e (0))){\nvar i \x3d (0);\nvar hash \x3d (0);\nwhile(true){\nif((i \x3c len)){\nvar G__20664 \x3d (i + (1));\nvar G__20665 \x3d (cljs.core.imul((31),hash) + s.charCodeAt(i));\ni \x3d G__20664;\nhash \x3d G__20665;\ncontinue;\n} else {\nreturn hash;\n}\nbreak;\n}\n} else {\nreturn (0);\n}\n} else {\nreturn (0);\n}\n});\ncljs.core.add_to_string_hash_cache \x3d (function cljs$core$add_to_string_hash_cache(k){\nvar h \x3d cljs.core.hash_string_STAR_(k);\ncljs.core.goog$module$goog$object.set(cljs.core.string_hash_cache,k,h);\n\n(cljs.core.string_hash_cache_count \x3d (cljs.core.string_hash_cache_count + (1)));\n\nreturn h;\n});\ncljs.core.hash_string \x3d (function cljs$core$hash_string(k){\nif((cljs.core.string_hash_cache_count \x3e (255))){\n(cljs.core.string_hash_cache \x3d ({}));\n\n(cljs.core.string_hash_cache_count \x3d (0));\n} else {\n}\n\nif((k \x3d\x3d null)){\nreturn (0);\n} else {\nvar h \x3d (cljs.core.string_hash_cache[k]);\nif(typeof h \x3d\x3d\x3d \x27number\x27){\nreturn h;\n} else {\nreturn cljs.core.add_to_string_hash_cache(k);\n}\n}\n});\n/**\n * Returns the hash code of its argument. Note this is the hash code\n * consistent with \x3d.\n */\ncljs.core.hash \x3d (function cljs$core$hash(o){\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (4194304))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IHash$))))?true:false):false)){\nreturn (o.cljs$core$IHash$_hash$arity$1(null, ) ^ (0));\n} else {\nif(typeof o \x3d\x3d\x3d \x27number\x27){\nif(isFinite(o)){\nif((!(Number.isSafeInteger(o)))){\nreturn cljs.core.hash_double(o);\n} else {\nreturn (Math.floor(o) % (2147483647));\n}\n} else {\nvar G__17467 \x3d o;\nswitch (G__17467) {\ncase Infinity:\nreturn (2146435072);\n\nbreak;\ncase -Infinity:\nreturn (-1048576);\n\nbreak;\ndefault:\nreturn (2146959360);\n\n}\n}\n} else {\nif(o \x3d\x3d\x3d true){\nreturn (1231);\n} else {\nif(o \x3d\x3d\x3d false){\nreturn (1237);\n} else {\nif(typeof o \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.m3_hash_int(cljs.core.hash_string(o));\n} else {\nif((o instanceof Date)){\nreturn (o.valueOf() ^ (0));\n} else {\nif((o \x3d\x3d null)){\nreturn (0);\n} else {\nreturn (cljs.core._hash(o) ^ (0));\n\n}\n}\n}\n}\n}\n}\n}\n});\ncljs.core.hash_combine \x3d (function cljs$core$hash_combine(seed,hash){\nreturn (seed ^ (((hash + (2654435769)) + (seed \x3c\x3c (6))) + (seed \x3e\x3e (2))));\n});\n/**\n * Evaluates x and tests if it is an instance of the type\n * c. Returns true or false\n */\ncljs.core.instance_QMARK_ \x3d (function cljs$core$instance_QMARK_(c,x){\nreturn (x instanceof c);\n});\n/**\n * Return true if x is a Symbol\n */\ncljs.core.symbol_QMARK_ \x3d (function cljs$core$symbol_QMARK_(x){\nreturn (x instanceof cljs.core.Symbol);\n});\ncljs.core.hash_symbol \x3d (function cljs$core$hash_symbol(sym){\nreturn cljs.core.hash_combine(cljs.core.m3_hash_unencoded_chars(sym.name),cljs.core.hash_string(sym.ns));\n});\ncljs.core.compare_symbols \x3d (function cljs$core$compare_symbols(a,b){\nif((a.str \x3d\x3d\x3d b.str)){\nreturn (0);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(a.ns);\nif(and__5000__auto__){\nreturn b.ns;\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn (-1);\n} else {\nif(cljs.core.truth_(a.ns)){\nif(cljs.core.not(b.ns)){\nreturn (1);\n} else {\nvar nsc \x3d cljs.core.goog$module$goog$array.defaultCompare(a.ns,b.ns);\nif(((0) \x3d\x3d\x3d nsc)){\nreturn cljs.core.goog$module$goog$array.defaultCompare(a.name,b.name);\n} else {\nreturn nsc;\n}\n}\n} else {\nreturn cljs.core.goog$module$goog$array.defaultCompare(a.name,b.name);\n\n}\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.INamed}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.Symbol \x3d (function (ns,name,str,_hash,_meta){\nthis.ns \x3d ns;\nthis.name \x3d name;\nthis.str \x3d str;\nthis._hash \x3d _hash;\nthis._meta \x3d _meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2154168321;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 4096;\n});\n(cljs.core.Symbol.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.str;\n}));\n\n(cljs.core.Symbol.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (_,other){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((other instanceof cljs.core.Symbol)){\nreturn (self__.str \x3d\x3d\x3d other.str);\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.Symbol.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__17469 \x3d (arguments.length - (1));\nswitch (G__17469) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.Symbol.prototype.apply \x3d (function (self__,args17468){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args17468)));\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar sym \x3d this;\nreturn (cljs.core.get.cljs$core$IFn$_invoke$arity$2 ? cljs.core.get.cljs$core$IFn$_invoke$arity$2(coll,sym) : cljs.core.get.call(null, coll,sym));\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,not_found){\nvar self__ \x3d this;\nvar sym \x3d this;\nreturn (cljs.core.get.cljs$core$IFn$_invoke$arity$3 ? cljs.core.get.cljs$core$IFn$_invoke$arity$3(coll,sym,not_found) : cljs.core.get.call(null, coll,sym,not_found));\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__._meta;\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_,new_meta){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.Symbol(self__.ns,self__.name,self__.str,self__._hash,new_meta));\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (sym){\nvar self__ \x3d this;\nvar sym__$1 \x3d this;\nvar h__5111__auto__ \x3d self__._hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_symbol(sym__$1);\n(self__._hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$INamed$_name$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.name;\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$INamed$_namespace$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.ns;\n}));\n\n(cljs.core.Symbol.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (o,writer,_){\nvar self__ \x3d this;\nvar o__$1 \x3d this;\nreturn cljs.core._write(writer,self__.str);\n}));\n\n(cljs.core.Symbol.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22name\x22,\x22name\x22,-810760592,null),new cljs.core.Symbol(null,\x22str\x22,\x22str\x22,-1564826950,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_hash\x22,\x22_hash\x22,-2130838312,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22_meta\x22,\x22_meta\x22,-1716892533,null)], null);\n}));\n\n(cljs.core.Symbol.cljs$lang$type \x3d true);\n\n(cljs.core.Symbol.cljs$lang$ctorStr \x3d \x22cljs.core/Symbol\x22);\n\n(cljs.core.Symbol.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Symbol\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Symbol.\n */\ncljs.core.__GT_Symbol \x3d (function cljs$core$__GT_Symbol(ns,name,str,_hash,_meta){\nreturn (new cljs.core.Symbol(ns,name,str,_hash,_meta));\n});\n\n/**\n * Returns true if v is of type cljs.core.Var\n */\ncljs.core.var_QMARK_ \x3d (function cljs$core$var_QMARK_(v){\nreturn (v instanceof cljs.core.Var);\n});\n/**\n * Returns a Symbol with the given namespace and name. Arity-1 works\n * on strings, keywords, and vars.\n */\ncljs.core.symbol \x3d (function cljs$core$symbol(var_args){\nvar G__17471 \x3d arguments.length;\nswitch (G__17471) {\ncase 1:\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nwhile(true){\nif((name instanceof cljs.core.Symbol)){\nreturn name;\n} else {\nif(typeof name \x3d\x3d\x3d \x27string\x27){\nvar idx \x3d name.indexOf(\x22/\x22);\nif((idx \x3c (1))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(null,name);\n} else {\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(name.substring((0),idx),name.substring((idx + (1)),name.length));\n}\n} else {\nif(cljs.core.var_QMARK_(name)){\nreturn name.sym;\n} else {\nif((name instanceof cljs.core.Keyword)){\nvar G__20688 \x3d name.fqn;\nname \x3d G__20688;\ncontinue;\n} else {\nthrow (new Error(\x22no conversion to symbol\x22));\n\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nvar sym_str \x3d (((!((ns \x3d\x3d null))))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)].join(\x27\x27):name);\nreturn (new cljs.core.Symbol(ns,name,sym_str,null,null));\n}));\n\n(cljs.core.symbol.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.Fn}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.Var \x3d (function (val,sym,_meta){\nthis.val \x3d val;\nthis.sym \x3d sym;\nthis._meta \x3d _meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 6717441;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.Var.prototype.isMacro \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, )).cljs$lang$macro;\n}));\n\n(cljs.core.Var.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn [\x22#\x27\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.sym)].join(\x27\x27);\n}));\n\n(cljs.core.Var.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__._meta;\n}));\n\n(cljs.core.Var.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_,new_meta){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.Var(self__.val,self__.sym,new_meta));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((other instanceof cljs.core.Var)){\nvar G__17473 \x3d this$__$1.sym;\nvar G__17474 \x3d other.sym;\nreturn (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2 ? cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(G__17473,G__17474) : cljs.core._EQ_.call(null, G__17473,G__17474));\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.Var.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.hash_symbol(self__.sym);\n}));\n\n(cljs.core.Var.prototype.cljs$core$Fn$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Var.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__17475 \x3d (arguments.length - (1));\nswitch (G__17475) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase (3):\nreturn self__.cljs$core$IFn$_invoke$arity$3((arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase (4):\nreturn self__.cljs$core$IFn$_invoke$arity$4((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase (5):\nreturn self__.cljs$core$IFn$_invoke$arity$5((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase (6):\nreturn self__.cljs$core$IFn$_invoke$arity$6((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase (7):\nreturn self__.cljs$core$IFn$_invoke$arity$7((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]));\n\nbreak;\ncase (8):\nreturn self__.cljs$core$IFn$_invoke$arity$8((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ncase (9):\nreturn self__.cljs$core$IFn$_invoke$arity$9((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ncase (10):\nreturn self__.cljs$core$IFn$_invoke$arity$10((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]));\n\nbreak;\ncase (11):\nreturn self__.cljs$core$IFn$_invoke$arity$11((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]));\n\nbreak;\ncase (12):\nreturn self__.cljs$core$IFn$_invoke$arity$12((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]));\n\nbreak;\ncase (13):\nreturn self__.cljs$core$IFn$_invoke$arity$13((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]));\n\nbreak;\ncase (14):\nreturn self__.cljs$core$IFn$_invoke$arity$14((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]));\n\nbreak;\ncase (15):\nreturn self__.cljs$core$IFn$_invoke$arity$15((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]));\n\nbreak;\ncase (16):\nreturn self__.cljs$core$IFn$_invoke$arity$16((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]));\n\nbreak;\ncase (17):\nreturn self__.cljs$core$IFn$_invoke$arity$17((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]));\n\nbreak;\ncase (18):\nreturn self__.cljs$core$IFn$_invoke$arity$18((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]));\n\nbreak;\ncase (19):\nreturn self__.cljs$core$IFn$_invoke$arity$19((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]));\n\nbreak;\ncase (20):\nreturn self__.cljs$core$IFn$_invoke$arity$20((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]));\n\nbreak;\ncase (21):\nreturn self__.cljs$core$IFn$_invoke$arity$21((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]),(arguments[(21)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.Var.prototype.apply \x3d (function (self__,args17472){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args17472)));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17476 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17476.cljs$core$IFn$_invoke$arity$0 ? fexpr__17476.cljs$core$IFn$_invoke$arity$0() : fexpr__17476.call(null, ));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (a){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17477 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17477.cljs$core$IFn$_invoke$arity$1 ? fexpr__17477.cljs$core$IFn$_invoke$arity$1(a) : fexpr__17477.call(null, a));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,b){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17478 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17478.cljs$core$IFn$_invoke$arity$2 ? fexpr__17478.cljs$core$IFn$_invoke$arity$2(a,b) : fexpr__17478.call(null, a,b));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,b,c){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17479 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17479.cljs$core$IFn$_invoke$arity$3 ? fexpr__17479.cljs$core$IFn$_invoke$arity$3(a,b,c) : fexpr__17479.call(null, a,b,c));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,b,c,d){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17480 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17480.cljs$core$IFn$_invoke$arity$4 ? fexpr__17480.cljs$core$IFn$_invoke$arity$4(a,b,c,d) : fexpr__17480.call(null, a,b,c,d));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$5 \x3d (function (a,b,c,d,e){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17481 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17481.cljs$core$IFn$_invoke$arity$5 ? fexpr__17481.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e) : fexpr__17481.call(null, a,b,c,d,e));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$6 \x3d (function (a,b,c,d,e,f){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17482 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17482.cljs$core$IFn$_invoke$arity$6 ? fexpr__17482.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f) : fexpr__17482.call(null, a,b,c,d,e,f));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$7 \x3d (function (a,b,c,d,e,f,g){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17483 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17483.cljs$core$IFn$_invoke$arity$7 ? fexpr__17483.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g) : fexpr__17483.call(null, a,b,c,d,e,f,g));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$8 \x3d (function (a,b,c,d,e,f,g,h){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17484 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17484.cljs$core$IFn$_invoke$arity$8 ? fexpr__17484.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h) : fexpr__17484.call(null, a,b,c,d,e,f,g,h));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$9 \x3d (function (a,b,c,d,e,f,g,h,i){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17485 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17485.cljs$core$IFn$_invoke$arity$9 ? fexpr__17485.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,i) : fexpr__17485.call(null, a,b,c,d,e,f,g,h,i));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$10 \x3d (function (a,b,c,d,e,f,g,h,i,j){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17486 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17486.cljs$core$IFn$_invoke$arity$10 ? fexpr__17486.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,i,j) : fexpr__17486.call(null, a,b,c,d,e,f,g,h,i,j));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$11 \x3d (function (a,b,c,d,e,f,g,h,i,j,k){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17487 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17487.cljs$core$IFn$_invoke$arity$11 ? fexpr__17487.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,i,j,k) : fexpr__17487.call(null, a,b,c,d,e,f,g,h,i,j,k));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$12 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17488 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17488.cljs$core$IFn$_invoke$arity$12 ? fexpr__17488.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,i,j,k,l) : fexpr__17488.call(null, a,b,c,d,e,f,g,h,i,j,k,l));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$13 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17489 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17489.cljs$core$IFn$_invoke$arity$13 ? fexpr__17489.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,i,j,k,l,m) : fexpr__17489.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$14 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17490 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17490.cljs$core$IFn$_invoke$arity$14 ? fexpr__17490.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) : fexpr__17490.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$15 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17491 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17491.cljs$core$IFn$_invoke$arity$15 ? fexpr__17491.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) : fexpr__17491.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$16 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17492 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17492.cljs$core$IFn$_invoke$arity$16 ? fexpr__17492.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : fexpr__17492.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$17 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17493 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17493.cljs$core$IFn$_invoke$arity$17 ? fexpr__17493.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) : fexpr__17493.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$18 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17494 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17494.cljs$core$IFn$_invoke$arity$18 ? fexpr__17494.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) : fexpr__17494.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$19 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17495 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17495.cljs$core$IFn$_invoke$arity$19 ? fexpr__17495.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) : fexpr__17495.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$20 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar fexpr__17496 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nreturn (fexpr__17496.cljs$core$IFn$_invoke$arity$20 ? fexpr__17496.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) : fexpr__17496.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\n}));\n\n(cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$21 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar G__17497 \x3d (self__.val.cljs$core$IFn$_invoke$arity$0 ? self__.val.cljs$core$IFn$_invoke$arity$0() : self__.val.call(null, ));\nvar G__17498 \x3d a;\nvar G__17499 \x3d b;\nvar G__17500 \x3d c;\nvar G__17501 \x3d d;\nvar G__17502 \x3d e;\nvar G__17503 \x3d f;\nvar G__17504 \x3d g;\nvar G__17505 \x3d h;\nvar G__17506 \x3d i;\nvar G__17507 \x3d j;\nvar G__17508 \x3d k;\nvar G__17509 \x3d l;\nvar G__17510 \x3d m;\nvar G__17511 \x3d n;\nvar G__17512 \x3d o;\nvar G__17513 \x3d p;\nvar G__17514 \x3d q;\nvar G__17515 \x3d r;\nvar G__17516 \x3d s;\nvar G__17517 \x3d t;\nvar G__17518 \x3d rest;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$21 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$21(G__17497,G__17498,G__17499,G__17500,G__17501,G__17502,G__17503,G__17504,G__17505,G__17506,G__17507,G__17508,G__17509,G__17510,G__17511,G__17512,G__17513,G__17514,G__17515,G__17516, new cljs.core.IndexedSeq([G__17517,G__17518],0,null)) : cljs.core.apply.call(null, G__17497,G__17498,G__17499,G__17500,G__17501,G__17502,G__17503,G__17504,G__17505,G__17506,G__17507,G__17508,G__17509,G__17510,G__17511,G__17512,G__17513,G__17514,G__17515,G__17516,G__17517,G__17518));\n}));\n\n(cljs.core.Var.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.Symbol(null,\x22sym\x22,\x22sym\x22,195671222,null),new cljs.core.Symbol(null,\x22_meta\x22,\x22_meta\x22,-1716892533,null)], null);\n}));\n\n(cljs.core.Var.cljs$lang$type \x3d true);\n\n(cljs.core.Var.cljs$lang$ctorStr \x3d \x22cljs.core/Var\x22);\n\n(cljs.core.Var.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Var\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Var.\n */\ncljs.core.__GT_Var \x3d (function cljs$core$__GT_Var(val,sym,_meta){\nreturn (new cljs.core.Var(val,sym,_meta));\n});\n\n\n\n/**\n * Return true if x implements IIterable protocol.\n */\ncljs.core.iterable_QMARK_ \x3d (function cljs$core$iterable_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IIterable$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition1$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IIterable,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IIterable,x);\n}\n});\n/**\n * Return true if x has a JavaScript iterator property\n */\ncljs.core.js_iterable_QMARK_ \x3d (function cljs$core$js_iterable_QMARK_(x){\nreturn (((!((x \x3d\x3d null)))) \x26\x26 ((!((x[cljs.core.ITER_SYMBOL] \x3d\x3d null)))));\n});\n/**\n * Clone the supplied value which must implement ICloneable.\n */\ncljs.core.clone \x3d (function cljs$core$clone(value){\nreturn cljs.core._clone(value);\n});\n/**\n * Return true if x implements ICloneable protocol.\n */\ncljs.core.cloneable_QMARK_ \x3d (function cljs$core$cloneable_QMARK_(value){\nif((!((value \x3d\x3d null)))){\nif((((value.cljs$lang$protocol_mask$partition1$ \x26 (8192))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d value.cljs$core$ICloneable$)))){\nreturn true;\n} else {\nif((!value.cljs$lang$protocol_mask$partition1$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ICloneable,value);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ICloneable,value);\n}\n});\n/**\n * Returns a seq on the collection. If the collection is\n * empty, returns nil. (seq nil) returns nil. seq also works on\n * Strings.\n */\ncljs.core.seq \x3d (function cljs$core$seq(coll){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (8388608))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeqable$))))?true:false):false)){\nreturn coll.cljs$core$ISeqable$_seq$arity$1(null, );\n} else {\nif(cljs.core.array_QMARK_(coll)){\nif((coll.length \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn (new cljs.core.IndexedSeq(coll,(0),null));\n}\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nif((coll.length \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nreturn (new cljs.core.IndexedSeq(coll,(0),null));\n}\n} else {\nif(cljs.core.js_iterable_QMARK_(coll)){\nvar G__17522 \x3d cljs.core.goog$module$goog$object.get(coll,cljs.core.ITER_SYMBOL).call(coll);\nreturn (cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1 ? cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1(G__17522) : cljs.core.es6_iterator_seq.call(null, G__17522));\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,coll)){\nreturn cljs.core._seq(coll);\n} else {\nthrow (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(coll),\x22 is not ISeqable\x22].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n});\n/**\n * Returns the first item in the collection. Calls seq on its\n * argument. If coll is nil, returns nil.\n */\ncljs.core.first \x3d (function cljs$core$first(coll){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeq$))))?true:false):false)){\nreturn coll.cljs$core$ISeq$_first$arity$1(null, );\n} else {\nvar s \x3d cljs.core.seq(coll);\nif((s \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._first(s);\n}\n}\n}\n});\n/**\n * Returns a possibly empty seq of the items after the first. Calls seq on its\n * argument.\n */\ncljs.core.rest \x3d (function cljs$core$rest(coll){\nif((!((coll \x3d\x3d null)))){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeq$))))?true:false):false)){\nreturn coll.cljs$core$ISeq$_rest$arity$1(null, );\n} else {\nvar s \x3d cljs.core.seq(coll);\nif(s){\nreturn s.cljs$core$ISeq$_rest$arity$1(null, );\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}\n} else {\nreturn cljs.core.List.EMPTY;\n}\n});\n/**\n * Returns a seq of the items after the first. Calls seq on its\n * argument. If there are no more items, returns nil\n */\ncljs.core.next \x3d (function cljs$core$next(coll){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (128))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$INext$))))?true:false):false)){\nreturn coll.cljs$core$INext$_next$arity$1(null, );\n} else {\nreturn cljs.core.seq(cljs.core.rest(coll));\n}\n}\n});\n/**\n * Equality. Returns true if x equals y, false if not. Compares\n * numbers and collections in a type-independent manner. Clojure\x27s immutable data\n * structures define -equiv (and thus \x3d) as a value, not an identity,\n * comparison.\n */\ncljs.core._EQ_ \x3d (function cljs$core$_EQ_(var_args){\nvar G__17530 \x3d arguments.length;\nswitch (G__17530) {\ncase 1:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20746 \x3d arguments.length;\nvar i__5727__auto___20747 \x3d (0);\nwhile(true){\nif((i__5727__auto___20747 \x3c len__5726__auto___20746)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20747]));\n\nvar G__20748 \x3d (i__5727__auto___20747 + (1));\ni__5727__auto___20747 \x3d G__20748;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nif((x \x3d\x3d null)){\nreturn (y \x3d\x3d null);\n} else {\nreturn (((x \x3d\x3d\x3d y)) || (cljs.core._equiv(x,y)));\n}\n}));\n\n(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nwhile(true){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)){\nif(cljs.core.next(more)){\nvar G__20750 \x3d y;\nvar G__20751 \x3d cljs.core.first(more);\nvar G__20752 \x3d cljs.core.next(more);\nx \x3d G__20750;\ny \x3d G__20751;\nmore \x3d G__20752;\ncontinue;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(y,cljs.core.first(more));\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core._EQ_.cljs$lang$applyTo \x3d (function (seq17527){\nvar G__17528 \x3d cljs.core.first(seq17527);\nvar seq17527__$1 \x3d cljs.core.next(seq17527);\nvar G__17529 \x3d cljs.core.first(seq17527__$1);\nvar seq17527__$2 \x3d cljs.core.next(seq17527__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17528,G__17529,seq17527__$2);\n}));\n\n(cljs.core._EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n\n/**\n* @constructor\n*/\ncljs.core.ES6Iterator \x3d (function (s){\nthis.s \x3d s;\n});\n(cljs.core.ES6Iterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((!((self__.s \x3d\x3d null)))){\nvar x \x3d cljs.core.first(self__.s);\n(self__.s \x3d cljs.core.next(self__.s));\n\nreturn ({\x22value\x22: x, \x22done\x22: false});\n} else {\nreturn ({\x22value\x22: null, \x22done\x22: true});\n}\n}));\n\n(cljs.core.ES6Iterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ES6Iterator.cljs$lang$type \x3d true);\n\n(cljs.core.ES6Iterator.cljs$lang$ctorStr \x3d \x22cljs.core/ES6Iterator\x22);\n\n(cljs.core.ES6Iterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ES6Iterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ES6Iterator.\n */\ncljs.core.__GT_ES6Iterator \x3d (function cljs$core$__GT_ES6Iterator(s){\nreturn (new cljs.core.ES6Iterator(s));\n});\n\n/**\n * Return a ES2015+ compatible iterator for coll.\n */\ncljs.core.es6_iterator \x3d (function cljs$core$es6_iterator(coll){\nreturn (new cljs.core.ES6Iterator(cljs.core.seq(coll)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.ISeqable}\n*/\ncljs.core.ES6IteratorSeq \x3d (function (value,iter,_rest){\nthis.value \x3d value;\nthis.iter \x3d iter;\nthis._rest \x3d _rest;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 8388672;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.ES6IteratorSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1;\n}));\n\n(cljs.core.ES6IteratorSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.value;\n}));\n\n(cljs.core.ES6IteratorSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((self__._rest \x3d\x3d null)){\n(self__._rest \x3d (cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1 ? cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1(self__.iter) : cljs.core.es6_iterator_seq.call(null, self__.iter)));\n} else {\n}\n\nreturn self__._rest;\n}));\n\n(cljs.core.ES6IteratorSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22value\x22,\x22value\x22,1946509744,null),new cljs.core.Symbol(null,\x22iter\x22,\x22iter\x22,-1346195486,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_rest\x22,\x22_rest\x22,-2100466189,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ES6IteratorSeq.cljs$lang$type \x3d true);\n\n(cljs.core.ES6IteratorSeq.cljs$lang$ctorStr \x3d \x22cljs.core/ES6IteratorSeq\x22);\n\n(cljs.core.ES6IteratorSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ES6IteratorSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ES6IteratorSeq.\n */\ncljs.core.__GT_ES6IteratorSeq \x3d (function cljs$core$__GT_ES6IteratorSeq(value,iter,_rest){\nreturn (new cljs.core.ES6IteratorSeq(value,iter,_rest));\n});\n\n/**\n * Given an ES2015+ compatible iterator return a seq.\n */\ncljs.core.es6_iterator_seq \x3d (function cljs$core$es6_iterator_seq(iter){\nvar v \x3d iter.next();\nif(cljs.core.truth_(v.done)){\nreturn null;\n} else {\nreturn (new cljs.core.ES6IteratorSeq(v.value,iter,null));\n}\n});\n/**\n * Mix final collection hash for ordered or unordered collections.\n * hash-basis is the combined collection hash, count is the number\n * of elements included in the basis. Note this is the hash code\n * consistent with \x3d, different from .hashCode.\n * See http://clojure.org/data_structures#hash for full algorithms.\n */\ncljs.core.mix_collection_hash \x3d (function cljs$core$mix_collection_hash(hash_basis,count){\nvar h1 \x3d cljs.core.m3_seed;\nvar k1 \x3d cljs.core.m3_mix_K1(hash_basis);\nvar h1__$1 \x3d cljs.core.m3_mix_H1(h1,k1);\nreturn cljs.core.m3_fmix(h1__$1,count);\n});\n/**\n * Returns the hash code, consistent with \x3d, for an external ordered\n * collection implementing Iterable.\n * See http://clojure.org/data_structures#hash for full algorithms.\n */\ncljs.core.hash_ordered_coll \x3d (function cljs$core$hash_ordered_coll(coll){\nvar n \x3d (0);\nvar hash_code \x3d (1);\nvar coll__$1 \x3d cljs.core.seq(coll);\nwhile(true){\nif((!((coll__$1 \x3d\x3d null)))){\nvar G__20760 \x3d (n + (1));\nvar G__20761 \x3d ((cljs.core.imul((31),hash_code) + cljs.core.hash(cljs.core.first(coll__$1))) | (0));\nvar G__20762 \x3d cljs.core.next(coll__$1);\nn \x3d G__20760;\nhash_code \x3d G__20761;\ncoll__$1 \x3d G__20762;\ncontinue;\n} else {\nreturn cljs.core.mix_collection_hash(hash_code,n);\n}\nbreak;\n}\n});\ncljs.core.empty_ordered_hash \x3d cljs.core.mix_collection_hash((1),(0));\n/**\n * Returns the hash code, consistent with \x3d, for an external unordered\n * collection implementing Iterable. For maps, the iterator should\n * return map entries whose hash is computed as\n * (hash-ordered-coll [k v]).\n * See http://clojure.org/data_structures#hash for full algorithms.\n */\ncljs.core.hash_unordered_coll \x3d (function cljs$core$hash_unordered_coll(coll){\nvar n \x3d (0);\nvar hash_code \x3d (0);\nvar coll__$1 \x3d cljs.core.seq(coll);\nwhile(true){\nif((!((coll__$1 \x3d\x3d null)))){\nvar G__20768 \x3d (n + (1));\nvar G__20769 \x3d ((hash_code + cljs.core.hash(cljs.core.first(coll__$1))) | (0));\nvar G__20770 \x3d cljs.core.next(coll__$1);\nn \x3d G__20768;\nhash_code \x3d G__20769;\ncoll__$1 \x3d G__20770;\ncontinue;\n} else {\nreturn cljs.core.mix_collection_hash(hash_code,n);\n}\nbreak;\n}\n});\ncljs.core.empty_unordered_hash \x3d cljs.core.mix_collection_hash((0),(0));\n\n\n(cljs.core.ICounted[\x22null\x22] \x3d true);\n\n(cljs.core._count[\x22null\x22] \x3d (function (_){\nreturn (0);\n}));\n(Date.prototype.cljs$core$IEquiv$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Date.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (o,other){\nvar o__$1 \x3d this;\nreturn (((other instanceof Date)) \x26\x26 ((o__$1.valueOf() \x3d\x3d\x3d other.valueOf())));\n}));\n\n(Date.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Date.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nif((other instanceof Date)){\nreturn cljs.core.goog$module$goog$array.defaultCompare(this$__$1.valueOf(),other.valueOf());\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(this$__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(other)].join(\x27\x27)));\n}\n}));\n\n/**\n * @interface\n */\ncljs.core.Inst \x3d function(){};\n\nvar cljs$core$Inst$inst_ms_STAR_$dyn_20774 \x3d (function (inst){\nvar x__5350__auto__ \x3d (((inst \x3d\x3d null))?null:inst);\nvar m__5351__auto__ \x3d (cljs.core.inst_ms_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(inst) : m__5351__auto__.call(null, inst));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.inst_ms_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(inst) : m__5349__auto__.call(null, inst));\n} else {\nthrow cljs.core.missing_protocol(\x22Inst.inst-ms*\x22,inst);\n}\n}\n});\ncljs.core.inst_ms_STAR_ \x3d (function cljs$core$inst_ms_STAR_(inst){\nif((((!((inst \x3d\x3d null)))) \x26\x26 ((!((inst.cljs$core$Inst$inst_ms_STAR_$arity$1 \x3d\x3d null)))))){\nreturn inst.cljs$core$Inst$inst_ms_STAR_$arity$1(inst);\n} else {\nreturn cljs$core$Inst$inst_ms_STAR_$dyn_20774(inst);\n}\n});\n\n(Date.prototype.cljs$core$Inst$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Date.prototype.cljs$core$Inst$inst_ms_STAR_$arity$1 \x3d (function (inst){\nvar inst__$1 \x3d this;\nreturn inst__$1.getTime();\n}));\n/**\n * Return the number of milliseconds since January 1, 1970, 00:00:00 GMT\n */\ncljs.core.inst_ms \x3d (function cljs$core$inst_ms(inst){\nreturn cljs.core.inst_ms_STAR_(inst);\n});\n/**\n * Return true if x satisfies Inst\n */\ncljs.core.inst_QMARK_ \x3d (function cljs$core$inst_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$Inst$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.Inst,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.Inst,x);\n}\n});\n(cljs.core.IEquiv[\x22number\x22] \x3d true);\n\n(cljs.core._equiv[\x22number\x22] \x3d (function (x,o){\nreturn (x \x3d\x3d\x3d o);\n}));\n(cljs.core.Fn[\x22function\x22] \x3d true);\n\n(cljs.core.IMeta[\x22function\x22] \x3d true);\n\n(cljs.core._meta[\x22function\x22] \x3d (function (_){\nreturn null;\n}));\n(cljs.core.IHash[\x22_\x22] \x3d true);\n\n(cljs.core._hash[\x22_\x22] \x3d (function (o){\nreturn goog.getUid(o);\n}));\n/**\n * Returns a number one greater than num.\n */\ncljs.core.inc \x3d (function cljs$core$inc(x){\nreturn (x + (1));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IDeref}\n*/\ncljs.core.Reduced \x3d (function (val){\nthis.val \x3d val;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.Reduced.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (o){\nvar self__ \x3d this;\nvar o__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.Reduced.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null)], null);\n}));\n\n(cljs.core.Reduced.cljs$lang$type \x3d true);\n\n(cljs.core.Reduced.cljs$lang$ctorStr \x3d \x22cljs.core/Reduced\x22);\n\n(cljs.core.Reduced.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Reduced\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Reduced.\n */\ncljs.core.__GT_Reduced \x3d (function cljs$core$__GT_Reduced(val){\nreturn (new cljs.core.Reduced(val));\n});\n\n/**\n * Wraps x in a way such that a reduce will terminate with the value x\n */\ncljs.core.reduced \x3d (function cljs$core$reduced(x){\nreturn (new cljs.core.Reduced(x));\n});\n/**\n * Returns true if x is the result of a call to reduced\n */\ncljs.core.reduced_QMARK_ \x3d (function cljs$core$reduced_QMARK_(r){\nreturn (r instanceof cljs.core.Reduced);\n});\n/**\n * If x is already reduced?, returns it, else returns (reduced x)\n */\ncljs.core.ensure_reduced \x3d (function cljs$core$ensure_reduced(x){\nif(cljs.core.reduced_QMARK_(x)){\nreturn x;\n} else {\nreturn cljs.core.reduced(x);\n}\n});\n/**\n * If x is reduced?, returns (deref x), else returns x\n */\ncljs.core.unreduced \x3d (function cljs$core$unreduced(x){\nif(cljs.core.reduced_QMARK_(x)){\nreturn (cljs.core.deref.cljs$core$IFn$_invoke$arity$1 ? cljs.core.deref.cljs$core$IFn$_invoke$arity$1(x) : cljs.core.deref.call(null, x));\n} else {\nreturn x;\n}\n});\n/**\n * Also reader macro: @var/@atom/@delay. Returns the\n * most-recently-committed value of ref. When applied to a var\n * or atom, returns its current state. When applied to a delay, forces\n * it if not already forced. See also - realized?.\n */\ncljs.core.deref \x3d (function cljs$core$deref(o){\nreturn cljs.core._deref(o);\n});\n/**\n * Accepts any collection which satisfies the ICount and IIndexed protocols and\n * reduces them without incurring seq initialization\n */\ncljs.core.ci_reduce \x3d (function cljs$core$ci_reduce(var_args){\nvar G__17590 \x3d arguments.length;\nswitch (G__17590) {\ncase 2:\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2 \x3d (function (cicoll,f){\nvar cnt \x3d cicoll.cljs$core$ICounted$_count$arity$1(null, );\nif((cnt \x3d\x3d\x3d (0))){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n} else {\nvar val \x3d cicoll.cljs$core$IIndexed$_nth$arity$2(null, (0));\nvar n \x3d (1);\nwhile(true){\nif((n \x3c cnt)){\nvar nval \x3d (function (){var G__17593 \x3d val;\nvar G__17594 \x3d cicoll.cljs$core$IIndexed$_nth$arity$2(null, n);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__17593,G__17594) : f.call(null, G__17593,G__17594));\n})();\nif(cljs.core.reduced_QMARK_(nval)){\nreturn cljs.core.deref(nval);\n} else {\nvar G__20785 \x3d nval;\nvar G__20786 \x3d (n + (1));\nval \x3d G__20785;\nn \x3d G__20786;\ncontinue;\n}\n} else {\nreturn val;\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (cicoll,f,val){\nvar cnt \x3d cicoll.cljs$core$ICounted$_count$arity$1(null, );\nvar val__$1 \x3d val;\nvar n \x3d (0);\nwhile(true){\nif((n \x3c cnt)){\nvar nval \x3d (function (){var G__17596 \x3d val__$1;\nvar G__17597 \x3d cicoll.cljs$core$IIndexed$_nth$arity$2(null, n);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__17596,G__17597) : f.call(null, G__17596,G__17597));\n})();\nif(cljs.core.reduced_QMARK_(nval)){\nreturn cljs.core.deref(nval);\n} else {\nvar G__20787 \x3d nval;\nvar G__20788 \x3d (n + (1));\nval__$1 \x3d G__20787;\nn \x3d G__20788;\ncontinue;\n}\n} else {\nreturn val__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.ci_reduce.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.array_reduce \x3d (function cljs$core$array_reduce(var_args){\nvar G__17600 \x3d arguments.length;\nswitch (G__17600) {\ncase 2:\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2 \x3d (function (arr,f){\nvar cnt \x3d arr.length;\nif((arr.length \x3d\x3d\x3d (0))){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n} else {\nvar val \x3d (arr[(0)]);\nvar n \x3d (1);\nwhile(true){\nif((n \x3c cnt)){\nvar nval \x3d (function (){var G__17602 \x3d val;\nvar G__17603 \x3d (arr[n]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__17602,G__17603) : f.call(null, G__17602,G__17603));\n})();\nif(cljs.core.reduced_QMARK_(nval)){\nreturn cljs.core.deref(nval);\n} else {\nvar G__20792 \x3d nval;\nvar G__20793 \x3d (n + (1));\nval \x3d G__20792;\nn \x3d G__20793;\ncontinue;\n}\n} else {\nreturn val;\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (arr,f,val){\nvar cnt \x3d arr.length;\nvar val__$1 \x3d val;\nvar n \x3d (0);\nwhile(true){\nif((n \x3c cnt)){\nvar nval \x3d (function (){var G__17604 \x3d val__$1;\nvar G__17605 \x3d (arr[n]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__17604,G__17605) : f.call(null, G__17604,G__17605));\n})();\nif(cljs.core.reduced_QMARK_(nval)){\nreturn cljs.core.deref(nval);\n} else {\nvar G__20799 \x3d nval;\nvar G__20800 \x3d (n + (1));\nval__$1 \x3d G__20799;\nn \x3d G__20800;\ncontinue;\n}\n} else {\nreturn val__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4 \x3d (function (arr,f,val,idx){\nvar cnt \x3d arr.length;\nvar val__$1 \x3d val;\nvar n \x3d idx;\nwhile(true){\nif((n \x3c cnt)){\nvar nval \x3d (function (){var G__17607 \x3d val__$1;\nvar G__17608 \x3d (arr[n]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__17607,G__17608) : f.call(null, G__17607,G__17608));\n})();\nif(cljs.core.reduced_QMARK_(nval)){\nreturn cljs.core.deref(nval);\n} else {\nvar G__20803 \x3d nval;\nvar G__20804 \x3d (n + (1));\nval__$1 \x3d G__20803;\nn \x3d G__20804;\ncontinue;\n}\n} else {\nreturn val__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.array_reduce.cljs$lang$maxFixedArity \x3d 4);\n\n\n\n\n\n\n\n/**\n * Returns true if coll implements count in constant time\n */\ncljs.core.counted_QMARK_ \x3d (function cljs$core$counted_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (2))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ICounted$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ICounted,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ICounted,x);\n}\n});\n/**\n * Returns true if coll implements nth in constant time\n */\ncljs.core.indexed_QMARK_ \x3d (function cljs$core$indexed_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IIndexed$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,x);\n}\n});\ncljs.core._indexOf \x3d (function cljs$core$_indexOf(var_args){\nvar G__17615 \x3d arguments.length;\nswitch (G__17615) {\ncase 2:\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._indexOf.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n}));\n\n(cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,x,start){\nvar len \x3d (cljs.core.count.cljs$core$IFn$_invoke$arity$1 ? cljs.core.count.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.count.call(null, coll));\nif((start \x3e\x3d len)){\nreturn (-1);\n} else {\nvar idx \x3d (((start \x3e (0)))?start:(((start \x3c (0)))?(function (){var x__5087__auto__ \x3d (0);\nvar y__5088__auto__ \x3d (start + len);\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})():start\n));\nwhile(true){\nif((idx \x3c len)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((cljs.core.nth.cljs$core$IFn$_invoke$arity$2 ? cljs.core.nth.cljs$core$IFn$_invoke$arity$2(coll,idx) : cljs.core.nth.call(null, coll,idx)),x)){\nreturn idx;\n} else {\nvar G__20808 \x3d (idx + (1));\nidx \x3d G__20808;\ncontinue;\n}\n} else {\nreturn (-1);\n}\nbreak;\n}\n}\n}));\n\n(cljs.core._indexOf.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core._lastIndexOf \x3d (function cljs$core$_lastIndexOf(var_args){\nvar G__17625 \x3d arguments.length;\nswitch (G__17625) {\ncase 2:\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(cljs.core.count.cljs$core$IFn$_invoke$arity$1 ? cljs.core.count.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.count.call(null, coll)));\n}));\n\n(cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,x,start){\nvar len \x3d (cljs.core.count.cljs$core$IFn$_invoke$arity$1 ? cljs.core.count.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.count.call(null, coll));\nif((len \x3d\x3d\x3d (0))){\nreturn (-1);\n} else {\nvar idx \x3d (((start \x3e (0)))?(function (){var x__5090__auto__ \x3d (len - (1));\nvar y__5091__auto__ \x3d start;\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})():(((start \x3c (0)))?(len + start):start\n));\nwhile(true){\nif((idx \x3e\x3d (0))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((cljs.core.nth.cljs$core$IFn$_invoke$arity$2 ? cljs.core.nth.cljs$core$IFn$_invoke$arity$2(coll,idx) : cljs.core.nth.call(null, coll,idx)),x)){\nreturn idx;\n} else {\nvar G__20813 \x3d (idx - (1));\nidx \x3d G__20813;\ncontinue;\n}\n} else {\nreturn (-1);\n}\nbreak;\n}\n}\n}));\n\n(cljs.core._lastIndexOf.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n*/\ncljs.core.IndexedSeqIterator \x3d (function (arr,i){\nthis.arr \x3d arr;\nthis.i \x3d i;\n});\n(cljs.core.IndexedSeqIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.i \x3c self__.arr.length);\n}));\n\n(cljs.core.IndexedSeqIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d (self__.arr[self__.i]);\n(self__.i \x3d (self__.i + (1)));\n\nreturn ret;\n}));\n\n(cljs.core.IndexedSeqIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.IndexedSeqIterator.cljs$lang$type \x3d true);\n\n(cljs.core.IndexedSeqIterator.cljs$lang$ctorStr \x3d \x22cljs.core/IndexedSeqIterator\x22);\n\n(cljs.core.IndexedSeqIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/IndexedSeqIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/IndexedSeqIterator.\n */\ncljs.core.__GT_IndexedSeqIterator \x3d (function cljs$core$__GT_IndexedSeqIterator(arr,i){\nreturn (new cljs.core.IndexedSeqIterator(arr,i));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ASeq}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.IndexedSeq \x3d (function (arr,i,meta){\nthis.arr \x3d arr;\nthis.i \x3d i;\nthis.meta \x3d meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 166592766;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 401408;\n});\n(cljs.core.IndexedSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.IndexedSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.IndexedSeq.prototype.indexOf \x3d (function() {\nvar G__20816 \x3d null;\nvar G__20816__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__20816__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__20816 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__20816__1.call(this,x);\ncase 2:\nreturn G__20816__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20816.cljs$core$IFn$_invoke$arity$1 \x3d G__20816__1;\nG__20816.cljs$core$IFn$_invoke$arity$2 \x3d G__20816__2;\nreturn G__20816;\n})()\n);\n\n(cljs.core.IndexedSeq.prototype.lastIndexOf \x3d (function() {\nvar G__20817 \x3d null;\nvar G__20817__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(cljs.core.count.cljs$core$IFn$_invoke$arity$1 ? cljs.core.count.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.count.call(null, coll)));\n});\nvar G__20817__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__20817 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__20817__1.call(this,x);\ncase 2:\nreturn G__20817__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20817.cljs$core$IFn$_invoke$arity$1 \x3d G__20817__1;\nG__20817.cljs$core$IFn$_invoke$arity$2 \x3d G__20817__2;\nreturn G__20817;\n})()\n);\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar i__$1 \x3d (n + self__.i);\nif(((((0) \x3c\x3d i__$1)) \x26\x26 ((i__$1 \x3c self__.arr.length)))){\nreturn (self__.arr[i__$1]);\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (coll,n,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar i__$1 \x3d (n + self__.i);\nif(((((0) \x3c\x3d i__$1)) \x26\x26 ((i__$1 \x3c self__.arr.length)))){\nreturn (self__.arr[i__$1]);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.IndexedSeqIterator(self__.arr,self__.i));\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.IndexedSeq(self__.arr,self__.i,self__.meta));\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(((self__.i + (1)) \x3c self__.arr.length)){\nreturn (new cljs.core.IndexedSeq(self__.arr,(self__.i + (1)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar x__5087__auto__ \x3d (0);\nvar y__5088__auto__ \x3d (self__.arr.length - self__.i);\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar c \x3d coll__$1.cljs$core$ICounted$_count$arity$1(null, );\nif((c \x3e (0))){\nreturn (new cljs.core.RSeq(coll__$1,(c - (1)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.hash_ordered_coll(coll__$1);\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2 ? cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2(coll__$1,other) : cljs.core.equiv_sequential.call(null, coll__$1,other));\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(self__.arr,f,(self__.arr[self__.i]),(self__.i + (1)));\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(self__.arr,f,start,self__.i);\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.arr[self__.i]);\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(((self__.i + (1)) \x3c self__.arr.length)){\nreturn (new cljs.core.IndexedSeq(self__.arr,(self__.i + (1)),null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((self__.i \x3c self__.arr.length)){\nreturn this$__$1;\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.IndexedSeq(self__.arr,self__.i,new_meta));\n}\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (cljs.core.cons.cljs$core$IFn$_invoke$arity$2 ? cljs.core.cons.cljs$core$IFn$_invoke$arity$2(o,coll__$1) : cljs.core.cons.call(null, o,coll__$1));\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((n \x3e (0))){\nif(((self__.i + n) \x3c self__.arr.length)){\nreturn (new cljs.core.IndexedSeq(self__.arr,(self__.i + n),null));\n} else {\nreturn null;\n}\n} else {\nreturn coll__$1;\n}\n}));\n\n(cljs.core.IndexedSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null)], null);\n}));\n\n(cljs.core.IndexedSeq.cljs$lang$type \x3d true);\n\n(cljs.core.IndexedSeq.cljs$lang$ctorStr \x3d \x22cljs.core/IndexedSeq\x22);\n\n(cljs.core.IndexedSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/IndexedSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/IndexedSeq.\n */\ncljs.core.__GT_IndexedSeq \x3d (function cljs$core$__GT_IndexedSeq(arr,i,meta){\nreturn (new cljs.core.IndexedSeq(arr,i,meta));\n});\n\n(cljs.core.IndexedSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Create seq from a primitive JavaScript Array-like.\n */\ncljs.core.prim_seq \x3d (function cljs$core$prim_seq(var_args){\nvar G__17701 \x3d arguments.length;\nswitch (G__17701) {\ncase 1:\nreturn cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (prim){\nreturn cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(prim,(0));\n}));\n\n(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (prim,i){\nif((i \x3c prim.length)){\nreturn (new cljs.core.IndexedSeq(prim,i,null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.prim_seq.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Create a seq from a JavaScript array.\n */\ncljs.core.array_seq \x3d (function cljs$core$array_seq(var_args){\nvar G__17705 \x3d arguments.length;\nswitch (G__17705) {\ncase 1:\nreturn cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.array_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (array){\nreturn cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(array,(0));\n}));\n\n(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (array,i){\nreturn cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(array,i);\n}));\n\n(cljs.core.array_seq.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.RSeq \x3d (function (ci,i,meta){\nthis.ci \x3d ci;\nthis.i \x3d i;\nthis.meta \x3d meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374990;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 8192;\n});\n(cljs.core.RSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.RSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.RSeq.prototype.indexOf \x3d (function() {\nvar G__20846 \x3d null;\nvar G__20846__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__20846__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__20846 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__20846__1.call(this,x);\ncase 2:\nreturn G__20846__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20846.cljs$core$IFn$_invoke$arity$1 \x3d G__20846__1;\nG__20846.cljs$core$IFn$_invoke$arity$2 \x3d G__20846__2;\nreturn G__20846;\n})()\n);\n\n(cljs.core.RSeq.prototype.lastIndexOf \x3d (function() {\nvar G__20852 \x3d null;\nvar G__20852__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(cljs.core.count.cljs$core$IFn$_invoke$arity$1 ? cljs.core.count.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.count.call(null, coll)));\n});\nvar G__20852__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__20852 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__20852__1.call(this,x);\ncase 2:\nreturn G__20852__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__20852.cljs$core$IFn$_invoke$arity$1 \x3d G__20852__1;\nG__20852.cljs$core$IFn$_invoke$arity$2 \x3d G__20852__2;\nreturn G__20852;\n})()\n);\n\n(cljs.core.RSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.RSeq(self__.ci,self__.i,self__.meta));\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.i \x3e (0))){\nreturn (new cljs.core.RSeq(self__.ci,(self__.i - (1)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (self__.i + (1));\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.hash_ordered_coll(coll__$1);\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2 ? cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2(coll__$1,other) : cljs.core.equiv_sequential.call(null, coll__$1,other));\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (col,f){\nvar self__ \x3d this;\nvar col__$1 \x3d this;\nreturn (cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2 ? cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,col__$1) : cljs.core.seq_reduce.call(null, f,col__$1));\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (col,f,start){\nvar self__ \x3d this;\nvar col__$1 \x3d this;\nreturn (cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3 ? cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,col__$1) : cljs.core.seq_reduce.call(null, f,start,col__$1));\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._nth(self__.ci,self__.i);\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.i \x3e (0))){\nreturn (new cljs.core.RSeq(self__.ci,(self__.i - (1)),null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.RSeq(self__.ci,self__.i,new_meta));\n}\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (cljs.core.cons.cljs$core$IFn$_invoke$arity$2 ? cljs.core.cons.cljs$core$IFn$_invoke$arity$2(o,coll__$1) : cljs.core.cons.call(null, o,coll__$1));\n}));\n\n(cljs.core.RSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ci\x22,\x22ci\x22,2049808339,null),new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null)], null);\n}));\n\n(cljs.core.RSeq.cljs$lang$type \x3d true);\n\n(cljs.core.RSeq.cljs$lang$ctorStr \x3d \x22cljs.core/RSeq\x22);\n\n(cljs.core.RSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/RSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/RSeq.\n */\ncljs.core.__GT_RSeq \x3d (function cljs$core$__GT_RSeq(ci,i,meta){\nreturn (new cljs.core.RSeq(ci,i,meta));\n});\n\n(cljs.core.RSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Same as (first (next x))\n */\ncljs.core.second \x3d (function cljs$core$second(coll){\nreturn cljs.core.first(cljs.core.next(coll));\n});\n/**\n * Same as (first (first x))\n */\ncljs.core.ffirst \x3d (function cljs$core$ffirst(coll){\nreturn cljs.core.first(cljs.core.first(coll));\n});\n/**\n * Same as (next (first x))\n */\ncljs.core.nfirst \x3d (function cljs$core$nfirst(coll){\nreturn cljs.core.next(cljs.core.first(coll));\n});\n/**\n * Same as (first (next x))\n */\ncljs.core.fnext \x3d (function cljs$core$fnext(coll){\nreturn cljs.core.first(cljs.core.next(coll));\n});\n/**\n * Same as (next (next x))\n */\ncljs.core.nnext \x3d (function cljs$core$nnext(coll){\nreturn cljs.core.next(cljs.core.next(coll));\n});\n/**\n * Return the last item in coll, in linear time\n */\ncljs.core.last \x3d (function cljs$core$last(s){\nwhile(true){\nvar sn \x3d cljs.core.next(s);\nif((!((sn \x3d\x3d null)))){\nvar G__20866 \x3d sn;\ns \x3d G__20866;\ncontinue;\n} else {\nreturn cljs.core.first(s);\n}\nbreak;\n}\n});\n(cljs.core.IEquiv[\x22_\x22] \x3d true);\n\n(cljs.core._equiv[\x22_\x22] \x3d (function (x,o){\nreturn (x \x3d\x3d\x3d o);\n}));\n/**\n * conj[oin]. Returns a new collection with the xs\n * \x27added\x27. (conj nil item) returns (item).\n * (conj coll) returns coll. (conj) returns [].\n * The \x27addition\x27 may happen at different \x27places\x27 depending\n * on the concrete type.\n */\ncljs.core.conj \x3d (function cljs$core$conj(var_args){\nvar G__17712 \x3d arguments.length;\nswitch (G__17712) {\ncase 0:\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20869 \x3d arguments.length;\nvar i__5727__auto___20870 \x3d (0);\nwhile(true){\nif((i__5727__auto___20870 \x3c len__5726__auto___20869)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20870]));\n\nvar G__20872 \x3d (i__5727__auto___20870 + (1));\ni__5727__auto___20870 \x3d G__20872;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.conj.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cljs.core.conj.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(cljs.core.conj.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,x){\nif((!((coll \x3d\x3d null)))){\nreturn cljs.core._conj(coll,x);\n} else {\nreturn (new cljs.core.List(null,x,null,(1),null));\n}\n}));\n\n(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,x,xs){\nwhile(true){\nif(cljs.core.truth_(xs)){\nvar G__20873 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll,x);\nvar G__20874 \x3d cljs.core.first(xs);\nvar G__20875 \x3d cljs.core.next(xs);\ncoll \x3d G__20873;\nx \x3d G__20874;\nxs \x3d G__20875;\ncontinue;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(coll,x);\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.conj.cljs$lang$applyTo \x3d (function (seq17709){\nvar G__17710 \x3d cljs.core.first(seq17709);\nvar seq17709__$1 \x3d cljs.core.next(seq17709);\nvar G__17711 \x3d cljs.core.first(seq17709__$1);\nvar seq17709__$2 \x3d cljs.core.next(seq17709__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17710,G__17711,seq17709__$2);\n}));\n\n(cljs.core.conj.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns an empty collection of the same category as coll, or nil\n */\ncljs.core.empty \x3d (function cljs$core$empty(coll){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IEmptyableCollection$))))?true:false):false)){\nreturn coll.cljs$core$IEmptyableCollection$_empty$arity$1(null, );\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IEmptyableCollection$))))?true:(((!coll.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IEmptyableCollection,coll):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IEmptyableCollection,coll))){\nreturn cljs.core._empty(coll);\n} else {\nreturn null;\n\n}\n}\n}\n});\ncljs.core.accumulating_seq_count \x3d (function cljs$core$accumulating_seq_count(coll){\nvar s \x3d cljs.core.seq(coll);\nvar acc \x3d (0);\nwhile(true){\nif(cljs.core.counted_QMARK_(s)){\nreturn (acc + cljs.core._count(s));\n} else {\nvar G__20879 \x3d cljs.core.next(s);\nvar G__20880 \x3d (acc + (1));\ns \x3d G__20879;\nacc \x3d G__20880;\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Returns the number of items in the collection. (count nil) returns\n * 0. Also works on strings, arrays, and Maps\n */\ncljs.core.count \x3d (function cljs$core$count(coll){\nif((!((coll \x3d\x3d null)))){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (2))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ICounted$))))?true:false):false)){\nreturn coll.cljs$core$ICounted$_count$arity$1(null, );\n} else {\nif(cljs.core.array_QMARK_(coll)){\nreturn coll.length;\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nreturn coll.length;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (8388608))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeqable$))))?true:false):false)){\nreturn cljs.core.accumulating_seq_count(coll);\n} else {\nreturn cljs.core._count(coll);\n\n}\n}\n}\n}\n} else {\nreturn (0);\n}\n});\ncljs.core.linear_traversal_nth \x3d (function cljs$core$linear_traversal_nth(var_args){\nvar G__17718 \x3d arguments.length;\nswitch (G__17718) {\ncase 2:\nreturn cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,n){\nwhile(true){\nif((coll \x3d\x3d null)){\nthrow (new Error(\x22Index out of bounds\x22));\n} else {\nif((n \x3d\x3d\x3d (0))){\nif(cljs.core.seq(coll)){\nreturn cljs.core.first(coll);\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n}\n} else {\nif(cljs.core.indexed_QMARK_(coll)){\nreturn cljs.core._nth(coll,n);\n} else {\nif(cljs.core.seq(coll)){\nvar G__20884 \x3d cljs.core.next(coll);\nvar G__20885 \x3d (n - (1));\ncoll \x3d G__20884;\nn \x3d G__20885;\ncontinue;\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,n,not_found){\nwhile(true){\nif((coll \x3d\x3d null)){\nreturn not_found;\n} else {\nif((n \x3d\x3d\x3d (0))){\nif(cljs.core.seq(coll)){\nreturn cljs.core.first(coll);\n} else {\nreturn not_found;\n}\n} else {\nif(cljs.core.indexed_QMARK_(coll)){\nreturn cljs.core._nth(coll,n,not_found);\n} else {\nif(cljs.core.seq(coll)){\nvar G__20886 \x3d cljs.core.next(coll);\nvar G__20887 \x3d (n - (1));\nvar G__20888 \x3d not_found;\ncoll \x3d G__20886;\nn \x3d G__20887;\nnot_found \x3d G__20888;\ncontinue;\n} else {\nreturn not_found;\n\n}\n}\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.linear_traversal_nth.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns the value at the index. get returns nil if index out of\n * bounds, nth throws an exception unless not-found is supplied. nth\n * also works for strings, arrays, regex Matchers and Lists, and,\n * in O(n) time, for sequences.\n */\ncljs.core.nth \x3d (function cljs$core$nth(var_args){\nvar G__17720 \x3d arguments.length;\nswitch (G__17720) {\ncase 2:\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.nth.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,n){\nif((!(typeof n \x3d\x3d\x3d \x27number\x27))){\nthrow (new Error(\x22Index argument to nth must be a number\x22));\n} else {\nif((coll \x3d\x3d null)){\nreturn coll;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (16))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IIndexed$))))?true:false):false)){\nreturn coll.cljs$core$IIndexed$_nth$arity$2(null, n);\n} else {\nif(cljs.core.array_QMARK_(coll)){\nif(((((-1) \x3c n)) \x26\x26 ((n \x3c coll.length)))){\nreturn (coll[(n | (0))]);\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n}\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nif(((((-1) \x3c n)) \x26\x26 ((n \x3c coll.length)))){\nreturn coll.charAt((n | (0)));\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n}\n} else {\nif((function (){var or__5002__auto__ \x3d (((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeq$))))?true:false):false);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nif((!((coll \x3d\x3d null)))){\nif((((coll.cljs$lang$protocol_mask$partition0$ \x26 (16777216))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISequential$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n}\n})()){\nif((n \x3c (0))){\nthrow (new Error(\x22Index out of bounds\x22));\n} else {\nreturn cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$2(coll,n);\n}\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,coll)){\nreturn cljs.core._nth(coll,n);\n} else {\nthrow (new Error([\x22nth not supported on this type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type__GT_str(cljs.core.type(coll)))].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(cljs.core.nth.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,n,not_found){\nif((!(typeof n \x3d\x3d\x3d \x27number\x27))){\nthrow (new Error(\x22Index argument to nth must be a number.\x22));\n} else {\nif((coll \x3d\x3d null)){\nreturn not_found;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (16))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IIndexed$))))?true:false):false)){\nreturn coll.cljs$core$IIndexed$_nth$arity$3(null, n,not_found);\n} else {\nif(cljs.core.array_QMARK_(coll)){\nif(((((-1) \x3c n)) \x26\x26 ((n \x3c coll.length)))){\nreturn (coll[(n | (0))]);\n} else {\nreturn not_found;\n}\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nif(((((-1) \x3c n)) \x26\x26 ((n \x3c coll.length)))){\nreturn coll.charAt((n | (0)));\n} else {\nreturn not_found;\n}\n} else {\nif((function (){var or__5002__auto__ \x3d (((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeq$))))?true:false):false);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nif((!((coll \x3d\x3d null)))){\nif((((coll.cljs$lang$protocol_mask$partition0$ \x26 (16777216))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISequential$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n}\n})()){\nif((n \x3c (0))){\nreturn not_found;\n} else {\nreturn cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$3(coll,n,not_found);\n}\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,coll)){\nreturn cljs.core._nth(coll,n,not_found);\n} else {\nthrow (new Error([\x22nth not supported on this type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type__GT_str(cljs.core.type(coll)))].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(cljs.core.nth.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns the nth rest of coll, coll when n is 0.\n */\ncljs.core.nthrest \x3d (function cljs$core$nthrest(coll,n){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition1$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IDrop$))))?true:false):false)){\nif((n \x3e (0))){\nvar or__5002__auto__ \x3d coll.cljs$core$IDrop$_drop$arity$2(null, Math.ceil(n));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n} else {\nreturn coll;\n}\n} else {\nvar n__$1 \x3d n;\nvar xs \x3d coll;\nwhile(true){\nvar temp__5802__auto__ \x3d (((n__$1 \x3e (0))) \x26\x26 (cljs.core.seq(xs)));\nif(temp__5802__auto__){\nvar xs__$1 \x3d temp__5802__auto__;\nvar G__20901 \x3d (n__$1 - (1));\nvar G__20902 \x3d cljs.core.rest(xs__$1);\nn__$1 \x3d G__20901;\nxs \x3d G__20902;\ncontinue;\n} else {\nreturn xs;\n}\nbreak;\n}\n}\n});\n/**\n * Returns the value mapped to key, not-found or nil if key not present\n * in associative collection, set, string, array, or ILookup instance.\n */\ncljs.core.get \x3d (function cljs$core$get(var_args){\nvar G__17729 \x3d arguments.length;\nswitch (G__17729) {\ncase 2:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.get.cljs$core$IFn$_invoke$arity$2 \x3d (function (o,k){\nif((o \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (256))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$ILookup$))))?true:false):false)){\nreturn o.cljs$core$ILookup$_lookup$arity$2(null, k);\n} else {\nif(cljs.core.array_QMARK_(o)){\nif((((!((k \x3d\x3d null)))) \x26\x26 ((k \x3c o.length)))){\nreturn (o[(k | (0))]);\n} else {\nreturn null;\n}\n} else {\nif(typeof o \x3d\x3d\x3d \x27string\x27){\nif((((!((k \x3d\x3d null)))) \x26\x26 (((((-1) \x3c k)) \x26\x26 ((k \x3c o.length)))))){\nreturn o.charAt((k | (0)));\n} else {\nreturn null;\n}\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.ILookup,o)){\nreturn cljs.core._lookup(o,k);\n} else {\nreturn null;\n\n}\n}\n}\n}\n}\n}));\n\n(cljs.core.get.cljs$core$IFn$_invoke$arity$3 \x3d (function (o,k,not_found){\nif((!((o \x3d\x3d null)))){\nif((((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition0$ \x26 (256))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$ILookup$))))?true:false):false)){\nreturn o.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n} else {\nif(cljs.core.array_QMARK_(o)){\nif((((!((k \x3d\x3d null)))) \x26\x26 (((((-1) \x3c k)) \x26\x26 ((k \x3c o.length)))))){\nreturn (o[(k | (0))]);\n} else {\nreturn not_found;\n}\n} else {\nif(typeof o \x3d\x3d\x3d \x27string\x27){\nif((((!((k \x3d\x3d null)))) \x26\x26 (((((-1) \x3c k)) \x26\x26 ((k \x3c o.length)))))){\nreturn o.charAt((k | (0)));\n} else {\nreturn not_found;\n}\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.ILookup,o)){\nreturn cljs.core._lookup(o,k,not_found);\n} else {\nreturn not_found;\n\n}\n}\n}\n}\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.get.cljs$lang$maxFixedArity \x3d 3);\n\n\n\n/**\n * assoc[iate]. When applied to a map, returns a new map of the\n * same (hashed/sorted) type, that contains the mapping of key(s) to\n * val(s). When applied to a vector, returns a new vector that\n * contains val at index. Note - index must be \x3c\x3d (count vector).\n */\ncljs.core.assoc \x3d (function cljs$core$assoc(var_args){\nvar G__17737 \x3d arguments.length;\nswitch (G__17737) {\ncase 3:\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20911 \x3d arguments.length;\nvar i__5727__auto___20912 \x3d (0);\nwhile(true){\nif((i__5727__auto___20912 \x3c len__5726__auto___20911)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20912]));\n\nvar G__20913 \x3d (i__5727__auto___20912 + (1));\ni__5727__auto___20912 \x3d G__20913;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,k,v){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (512))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IAssociative$))))?true:false):false)){\nreturn coll.cljs$core$IAssociative$_assoc$arity$3(null, k,v);\n} else {\nif((!((coll \x3d\x3d null)))){\nreturn cljs.core._assoc(coll,k,v);\n} else {\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([k,v]);\n}\n}\n}));\n\n(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,k,v,kvs){\nwhile(true){\nvar ret \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(coll,k,v);\nif(cljs.core.truth_(kvs)){\nvar G__20917 \x3d ret;\nvar G__20918 \x3d cljs.core.first(kvs);\nvar G__20919 \x3d cljs.core.second(kvs);\nvar G__20920 \x3d cljs.core.nnext(kvs);\ncoll \x3d G__20917;\nk \x3d G__20918;\nv \x3d G__20919;\nkvs \x3d G__20920;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.assoc.cljs$lang$applyTo \x3d (function (seq17733){\nvar G__17734 \x3d cljs.core.first(seq17733);\nvar seq17733__$1 \x3d cljs.core.next(seq17733);\nvar G__17735 \x3d cljs.core.first(seq17733__$1);\nvar seq17733__$2 \x3d cljs.core.next(seq17733__$1);\nvar G__17736 \x3d cljs.core.first(seq17733__$2);\nvar seq17733__$3 \x3d cljs.core.next(seq17733__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17734,G__17735,G__17736,seq17733__$3);\n}));\n\n(cljs.core.assoc.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * dissoc[iate]. Returns a new map of the same (hashed/sorted) type,\n * that does not contain a mapping for key(s).\n */\ncljs.core.dissoc \x3d (function cljs$core$dissoc(var_args){\nvar G__17743 \x3d arguments.length;\nswitch (G__17743) {\ncase 1:\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___20924 \x3d arguments.length;\nvar i__5727__auto___20925 \x3d (0);\nwhile(true){\nif((i__5727__auto___20925 \x3c len__5726__auto___20924)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___20925]));\n\nvar G__20926 \x3d (i__5727__auto___20925 + (1));\ni__5727__auto___20925 \x3d G__20926;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,k){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._dissoc(coll,k);\n}\n}));\n\n(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,k,ks){\nwhile(true){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nvar ret \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(coll,k);\nif(cljs.core.truth_(ks)){\nvar G__20933 \x3d ret;\nvar G__20934 \x3d cljs.core.first(ks);\nvar G__20935 \x3d cljs.core.next(ks);\ncoll \x3d G__20933;\nk \x3d G__20934;\nks \x3d G__20935;\ncontinue;\n} else {\nreturn ret;\n}\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.dissoc.cljs$lang$applyTo \x3d (function (seq17740){\nvar G__17741 \x3d cljs.core.first(seq17740);\nvar seq17740__$1 \x3d cljs.core.next(seq17740);\nvar G__17742 \x3d cljs.core.first(seq17740__$1);\nvar seq17740__$2 \x3d cljs.core.next(seq17740__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17741,G__17742,seq17740__$2);\n}));\n\n(cljs.core.dissoc.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Return true if f is a JavaScript function or satisfies the Fn protocol.\n */\ncljs.core.fn_QMARK_ \x3d (function cljs$core$fn_QMARK_(f){\nvar or__5002__auto__ \x3d typeof f \x3d\x3d\x3d \x27function\x27;\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nif((!((f \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d f.cljs$core$Fn$)))){\nreturn true;\n} else {\nif((!f.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.Fn,f);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.Fn,f);\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.Fn}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.MetaFn \x3d (function (afn,meta){\nthis.afn \x3d afn;\nthis.meta \x3d meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393217;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.MetaFn.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_,new_meta){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.MetaFn(self__.afn,new_meta));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$Fn$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.MetaFn.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__17772 \x3d (arguments.length - (1));\nswitch (G__17772) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase (3):\nreturn self__.cljs$core$IFn$_invoke$arity$3((arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase (4):\nreturn self__.cljs$core$IFn$_invoke$arity$4((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase (5):\nreturn self__.cljs$core$IFn$_invoke$arity$5((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase (6):\nreturn self__.cljs$core$IFn$_invoke$arity$6((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase (7):\nreturn self__.cljs$core$IFn$_invoke$arity$7((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]));\n\nbreak;\ncase (8):\nreturn self__.cljs$core$IFn$_invoke$arity$8((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ncase (9):\nreturn self__.cljs$core$IFn$_invoke$arity$9((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ncase (10):\nreturn self__.cljs$core$IFn$_invoke$arity$10((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]));\n\nbreak;\ncase (11):\nreturn self__.cljs$core$IFn$_invoke$arity$11((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]));\n\nbreak;\ncase (12):\nreturn self__.cljs$core$IFn$_invoke$arity$12((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]));\n\nbreak;\ncase (13):\nreturn self__.cljs$core$IFn$_invoke$arity$13((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]));\n\nbreak;\ncase (14):\nreturn self__.cljs$core$IFn$_invoke$arity$14((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]));\n\nbreak;\ncase (15):\nreturn self__.cljs$core$IFn$_invoke$arity$15((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]));\n\nbreak;\ncase (16):\nreturn self__.cljs$core$IFn$_invoke$arity$16((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]));\n\nbreak;\ncase (17):\nreturn self__.cljs$core$IFn$_invoke$arity$17((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]));\n\nbreak;\ncase (18):\nreturn self__.cljs$core$IFn$_invoke$arity$18((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]));\n\nbreak;\ncase (19):\nreturn self__.cljs$core$IFn$_invoke$arity$19((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]));\n\nbreak;\ncase (20):\nreturn self__.cljs$core$IFn$_invoke$arity$20((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]));\n\nbreak;\ncase (21):\nreturn self__.cljs$core$IFn$_invoke$arity$21((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]),(arguments[(21)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.MetaFn.prototype.apply \x3d (function (self__,args17765){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args17765)));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$0 ? self__.afn.cljs$core$IFn$_invoke$arity$0() : self__.afn.call(null, ));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (a){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$1 ? self__.afn.cljs$core$IFn$_invoke$arity$1(a) : self__.afn.call(null, a));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,b){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$2 ? self__.afn.cljs$core$IFn$_invoke$arity$2(a,b) : self__.afn.call(null, a,b));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,b,c){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$3 ? self__.afn.cljs$core$IFn$_invoke$arity$3(a,b,c) : self__.afn.call(null, a,b,c));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,b,c,d){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$4 ? self__.afn.cljs$core$IFn$_invoke$arity$4(a,b,c,d) : self__.afn.call(null, a,b,c,d));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$5 \x3d (function (a,b,c,d,e){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$5 ? self__.afn.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e) : self__.afn.call(null, a,b,c,d,e));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$6 \x3d (function (a,b,c,d,e,f){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$6 ? self__.afn.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f) : self__.afn.call(null, a,b,c,d,e,f));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$7 \x3d (function (a,b,c,d,e,f,g){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$7 ? self__.afn.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g) : self__.afn.call(null, a,b,c,d,e,f,g));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$8 \x3d (function (a,b,c,d,e,f,g,h){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$8 ? self__.afn.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h) : self__.afn.call(null, a,b,c,d,e,f,g,h));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$9 \x3d (function (a,b,c,d,e,f,g,h,i){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$9 ? self__.afn.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,i) : self__.afn.call(null, a,b,c,d,e,f,g,h,i));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$10 \x3d (function (a,b,c,d,e,f,g,h,i,j){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$10 ? self__.afn.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,i,j) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$11 \x3d (function (a,b,c,d,e,f,g,h,i,j,k){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$11 ? self__.afn.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,i,j,k) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$12 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$12 ? self__.afn.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,i,j,k,l) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$13 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$13 ? self__.afn.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,i,j,k,l,m) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$14 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$14 ? self__.afn.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$15 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$15 ? self__.afn.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$16 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$16 ? self__.afn.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$17 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$17 ? self__.afn.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$18 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$18 ? self__.afn.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$19 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$19 ? self__.afn.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$20 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.afn.cljs$core$IFn$_invoke$arity$20 ? self__.afn.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) : self__.afn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\n}));\n\n(cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$21 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$21 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$21(self__.afn,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s, new cljs.core.IndexedSeq([t,rest],0,null)) : cljs.core.apply.call(null, self__.afn,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest));\n}));\n\n(cljs.core.MetaFn.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22afn\x22,\x22afn\x22,216963467,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null)], null);\n}));\n\n(cljs.core.MetaFn.cljs$lang$type \x3d true);\n\n(cljs.core.MetaFn.cljs$lang$ctorStr \x3d \x22cljs.core/MetaFn\x22);\n\n(cljs.core.MetaFn.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/MetaFn\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/MetaFn.\n */\ncljs.core.__GT_MetaFn \x3d (function cljs$core$__GT_MetaFn(afn,meta){\nreturn (new cljs.core.MetaFn(afn,meta));\n});\n\n/**\n * Returns an object of the same type and value as obj, with\n * map m as its metadata.\n */\ncljs.core.with_meta \x3d (function cljs$core$with_meta(o,meta){\nif(typeof o \x3d\x3d\x3d \x27function\x27){\nreturn (new cljs.core.MetaFn(o,meta));\n} else {\nif((o \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._with_meta(o,meta);\n}\n}\n});\n/**\n * Returns the metadata of obj, returns nil if there is no metadata.\n */\ncljs.core.meta \x3d (function cljs$core$meta(o){\nif((function (){var and__5000__auto__ \x3d (!((o \x3d\x3d null)));\nif(and__5000__auto__){\nif((!((o \x3d\x3d null)))){\nif((((o.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IMeta$)))){\nreturn true;\n} else {\nif((!o.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IMeta,o);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IMeta,o);\n}\n} else {\nreturn and__5000__auto__;\n}\n})()){\nreturn cljs.core._meta(o);\n} else {\nreturn null;\n}\n});\n/**\n * For a list or queue, same as first, for a vector, same as, but much\n * more efficient than, last. If the collection is empty, returns nil.\n */\ncljs.core.peek \x3d (function cljs$core$peek(coll){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._peek(coll);\n}\n});\n/**\n * For a list or queue, returns a new list/queue without the first\n * item, for a vector, returns a new vector without the last item.\n * Note - not the same as next/butlast.\n */\ncljs.core.pop \x3d (function cljs$core$pop(coll){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._pop(coll);\n}\n});\n/**\n * disj[oin]. Returns a new set of the same (hashed/sorted) type, that\n * does not contain key(s).\n */\ncljs.core.disj \x3d (function cljs$core$disj(var_args){\nvar G__17860 \x3d arguments.length;\nswitch (G__17860) {\ncase 1:\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21078 \x3d arguments.length;\nvar i__5727__auto___21079 \x3d (0);\nwhile(true){\nif((i__5727__auto___21079 \x3c len__5726__auto___21078)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21079]));\n\nvar G__21080 \x3d (i__5727__auto___21079 + (1));\ni__5727__auto___21079 \x3d G__21080;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.disj.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn coll;\n}));\n\n(cljs.core.disj.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,k){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._disjoin(coll,k);\n}\n}));\n\n(cljs.core.disj.cljs$core$IFn$_invoke$arity$variadic \x3d (function (coll,k,ks){\nwhile(true){\nif((coll \x3d\x3d null)){\nreturn null;\n} else {\nvar ret \x3d cljs.core.disj.cljs$core$IFn$_invoke$arity$2(coll,k);\nif(cljs.core.truth_(ks)){\nvar G__21086 \x3d ret;\nvar G__21087 \x3d cljs.core.first(ks);\nvar G__21088 \x3d cljs.core.next(ks);\ncoll \x3d G__21086;\nk \x3d G__21087;\nks \x3d G__21088;\ncontinue;\n} else {\nreturn ret;\n}\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.disj.cljs$lang$applyTo \x3d (function (seq17857){\nvar G__17858 \x3d cljs.core.first(seq17857);\nvar seq17857__$1 \x3d cljs.core.next(seq17857);\nvar G__17859 \x3d cljs.core.first(seq17857__$1);\nvar seq17857__$2 \x3d cljs.core.next(seq17857__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17858,G__17859,seq17857__$2);\n}));\n\n(cljs.core.disj.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns true if coll has no items. To check the emptiness of a seq,\n * please use the idiom (seq x) rather than (not (empty? x))\n */\ncljs.core.empty_QMARK_ \x3d (function cljs$core$empty_QMARK_(coll){\nif((coll \x3d\x3d null)){\nreturn true;\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (2))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ICounted$))))?true:(((!coll.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ICounted,coll):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ICounted,coll))){\nreturn (cljs.core._count(coll) \x3d\x3d\x3d (0));\n} else {\nreturn cljs.core.not(cljs.core.seq(coll));\n\n}\n}\n});\n/**\n * Returns true if x satisfies ICollection\n */\ncljs.core.coll_QMARK_ \x3d (function cljs$core$coll_QMARK_(x){\nif((x \x3d\x3d null)){\nreturn false;\n} else {\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (8))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ICollection$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ICollection,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ICollection,x);\n}\n}\n});\n/**\n * Returns true if x satisfies ISet\n */\ncljs.core.set_QMARK_ \x3d (function cljs$core$set_QMARK_(x){\nif((x \x3d\x3d null)){\nreturn false;\n} else {\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISet$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x);\n}\n}\n});\n/**\n * Returns true if coll implements IAssociative\n */\ncljs.core.associative_QMARK_ \x3d (function cljs$core$associative_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (512))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IAssociative$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IAssociative,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IAssociative,x);\n}\n});\n/**\n * Returns true if coll implements IFind\n */\ncljs.core.ifind_QMARK_ \x3d (function cljs$core$ifind_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IFind$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IFind,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IFind,x);\n}\n});\n/**\n * Returns true if coll satisfies ISequential\n */\ncljs.core.sequential_QMARK_ \x3d (function cljs$core$sequential_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16777216))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISequential$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x);\n}\n});\n/**\n * Returns true if coll satisfies ISorted\n */\ncljs.core.sorted_QMARK_ \x3d (function cljs$core$sorted_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (268435456))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISorted$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISorted,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISorted,x);\n}\n});\n/**\n * Returns true if coll satisfies IReduce\n */\ncljs.core.reduceable_QMARK_ \x3d (function cljs$core$reduceable_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (524288))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IReduce$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,x);\n}\n});\n/**\n * Return true if x satisfies IMap\n */\ncljs.core.map_QMARK_ \x3d (function cljs$core$map_QMARK_(x){\nif((x \x3d\x3d null)){\nreturn false;\n} else {\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMap$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x);\n}\n}\n});\n/**\n * Return true if x satisfies IRecord\n */\ncljs.core.record_QMARK_ \x3d (function cljs$core$record_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (67108864))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IRecord$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IRecord,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IRecord,x);\n}\n});\n/**\n * Return true if x satisfies IVector\n */\ncljs.core.vector_QMARK_ \x3d (function cljs$core$vector_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (16384))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IVector$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IVector,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IVector,x);\n}\n});\n\n/**\n * Return true if x satisfies IChunkedSeq.\n */\ncljs.core.chunked_seq_QMARK_ \x3d (function cljs$core$chunked_seq_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition1$ \x26 (512))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IChunkedSeq$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n/**\n * Create JavaSript object from an even number arguments representing\n * interleaved keys and values.\n */\ncljs.core.js_obj \x3d (function cljs$core$js_obj(var_args){\nvar G__17908 \x3d arguments.length;\nswitch (G__17908) {\ncase 0:\nreturn cljs.core.js_obj.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21114 \x3d arguments.length;\nvar i__5727__auto___21115 \x3d (0);\nwhile(true){\nif((i__5727__auto___21115 \x3c len__5726__auto___21114)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21115]));\n\nvar G__21116 \x3d (i__5727__auto___21115 + (1));\ni__5727__auto___21115 \x3d G__21116;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((0) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.js_obj.cljs$core$IFn$_invoke$arity$variadic(argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.js_obj.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn ({});\n}));\n\n(cljs.core.js_obj.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keyvals){\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$2 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.goog$module$goog$object.create,keyvals) : cljs.core.apply.call(null, cljs.core.goog$module$goog$object.create,keyvals));\n}));\n\n/** @this {Function} */\n(cljs.core.js_obj.cljs$lang$applyTo \x3d (function (seq17907){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq17907));\n}));\n\n(cljs.core.js_obj.cljs$lang$maxFixedArity \x3d (0));\n\n/**\n * Return the JavaScript keys for an object.\n */\ncljs.core.js_keys \x3d (function cljs$core$js_keys(obj){\nreturn cljs.core.goog$module$goog$object.getKeys(obj);\n});\n/**\n * Delete a property from a JavaScript object.\n * Returns true upon success, false otherwise.\n */\ncljs.core.js_delete \x3d (function cljs$core$js_delete(obj,key){\nreturn delete obj[key];\n});\ncljs.core.array_copy \x3d (function cljs$core$array_copy(from,i,to,j,len){\nvar i__$1 \x3d i;\nvar j__$1 \x3d j;\nvar len__$1 \x3d len;\nwhile(true){\nif((len__$1 \x3d\x3d\x3d (0))){\nreturn to;\n} else {\n(to[j__$1] \x3d (from[i__$1]));\n\nvar G__21122 \x3d (i__$1 + (1));\nvar G__21123 \x3d (j__$1 + (1));\nvar G__21124 \x3d (len__$1 - (1));\ni__$1 \x3d G__21122;\nj__$1 \x3d G__21123;\nlen__$1 \x3d G__21124;\ncontinue;\n}\nbreak;\n}\n});\ncljs.core.array_copy_downward \x3d (function cljs$core$array_copy_downward(from,i,to,j,len){\nvar i__$1 \x3d (i + (len - (1)));\nvar j__$1 \x3d (j + (len - (1)));\nvar len__$1 \x3d len;\nwhile(true){\nif((len__$1 \x3d\x3d\x3d (0))){\nreturn to;\n} else {\n(to[j__$1] \x3d (from[i__$1]));\n\nvar G__21126 \x3d (i__$1 - (1));\nvar G__21127 \x3d (j__$1 - (1));\nvar G__21128 \x3d (len__$1 - (1));\ni__$1 \x3d G__21126;\nj__$1 \x3d G__21127;\nlen__$1 \x3d G__21128;\ncontinue;\n}\nbreak;\n}\n});\ncljs.core.lookup_sentinel \x3d ({});\n/**\n * Returns true if x is the value false, false otherwise.\n */\ncljs.core.false_QMARK_ \x3d (function cljs$core$false_QMARK_(x){\nreturn x \x3d\x3d\x3d false;\n});\n/**\n * Returns true if x is the value true, false otherwise.\n */\ncljs.core.true_QMARK_ \x3d (function cljs$core$true_QMARK_(x){\nreturn x \x3d\x3d\x3d true;\n});\n/**\n * Return true if x is a Boolean\n */\ncljs.core.boolean_QMARK_ \x3d (function cljs$core$boolean_QMARK_(x){\nreturn ((x \x3d\x3d\x3d true) || (x \x3d\x3d\x3d false));\n});\n/**\n * Returns true if x identical to the JavaScript undefined value.\n */\ncljs.core.undefined_QMARK_ \x3d (function cljs$core$undefined_QMARK_(x){\nreturn (void 0 \x3d\x3d\x3d x);\n});\n/**\n * Return true if s satisfies ISeq\n */\ncljs.core.seq_QMARK_ \x3d (function cljs$core$seq_QMARK_(s){\nif((s \x3d\x3d null)){\nreturn false;\n} else {\nif((!((s \x3d\x3d null)))){\nif((((s.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d s.cljs$core$ISeq$)))){\nreturn true;\n} else {\nif((!s.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISeq,s);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.ISeq,s);\n}\n}\n});\n/**\n * Return true if the seq function is supported for s\n */\ncljs.core.seqable_QMARK_ \x3d (function cljs$core$seqable_QMARK_(s){\nvar or__5002__auto__ \x3d (s \x3d\x3d null);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (((!((s \x3d\x3d null))))?(((((s.cljs$lang$protocol_mask$partition0$ \x26 (8388608))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d s.cljs$core$ISeqable$))))?true:(((!s.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,s):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,s));\nif(or__5002__auto____$1){\nreturn or__5002__auto____$1;\n} else {\nreturn ((cljs.core.array_QMARK_(s)) || (typeof s \x3d\x3d\x3d \x27string\x27));\n}\n}\n});\n/**\n * Coerce to boolean\n */\ncljs.core.boolean$ \x3d (function cljs$core$boolean(x){\nif((x \x3d\x3d null)){\nreturn false;\n} else {\nif(x \x3d\x3d\x3d false){\nreturn false;\n} else {\nreturn true;\n\n}\n}\n});\n/**\n * Returns true if f returns true for fn? or satisfies IFn.\n */\ncljs.core.ifn_QMARK_ \x3d (function cljs$core$ifn_QMARK_(f){\nvar or__5002__auto__ \x3d cljs.core.fn_QMARK_(f);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nif((!((f \x3d\x3d null)))){\nif((((f.cljs$lang$protocol_mask$partition0$ \x26 (1))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d f.cljs$core$IFn$)))){\nreturn true;\n} else {\nif((!f.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IFn,f);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IFn,f);\n}\n}\n});\n/**\n * Returns true if n is a JavaScript number with no decimal part.\n */\ncljs.core.integer_QMARK_ \x3d (function cljs$core$integer_QMARK_(n){\nreturn ((typeof n \x3d\x3d\x3d \x27number\x27) \x26\x26 ((((!(isNaN(n)))) \x26\x26 ((((!((n \x3d\x3d\x3d Infinity)))) \x26\x26 ((parseFloat(n) \x3d\x3d\x3d parseInt(n,(10)))))))));\n});\n/**\n * INTERNAL: do not use\n */\ncljs.core.LongImpl \x3d cljs.core.goog$module$goog$math$Long;\n/**\n * Return true if x satisfies integer? or is an instance of goog.math.Integer\n * or goog.math.Long.\n */\ncljs.core.int_QMARK_ \x3d (function cljs$core$int_QMARK_(x){\nreturn ((cljs.core.integer_QMARK_(x)) || ((((x instanceof goog.math.Integer)) || ((x instanceof cljs.core.goog$module$goog$math$Long)))));\n});\n/**\n * Return true if x satisfies int? and is positive.\n */\ncljs.core.pos_int_QMARK_ \x3d (function cljs$core$pos_int_QMARK_(x){\nif(cljs.core.integer_QMARK_(x)){\nreturn (x \x3e (0));\n} else {\nif((x instanceof goog.math.Integer)){\nreturn ((cljs.core.not(x.isNegative())) \x26\x26 (cljs.core.not(x.isZero())));\n} else {\nif((x instanceof cljs.core.goog$module$goog$math$Long)){\nreturn ((cljs.core.not(x.isNegative())) \x26\x26 (cljs.core.not(x.isZero())));\n} else {\nreturn false;\n\n}\n}\n}\n});\n/**\n * Return true if x satisfies int? and is negative.\n */\ncljs.core.neg_int_QMARK_ \x3d (function cljs$core$neg_int_QMARK_(x){\nif(cljs.core.integer_QMARK_(x)){\nreturn (x \x3c (0));\n} else {\nif((x instanceof goog.math.Integer)){\nreturn x.isNegative();\n} else {\nif((x instanceof cljs.core.goog$module$goog$math$Long)){\nreturn x.isNegative();\n} else {\nreturn false;\n\n}\n}\n}\n});\n/**\n * Return true if x satisfies int? and is a natural integer value.\n */\ncljs.core.nat_int_QMARK_ \x3d (function cljs$core$nat_int_QMARK_(x){\nif(cljs.core.integer_QMARK_(x)){\nreturn (!((x \x3c (0))));\n} else {\nif((x instanceof goog.math.Integer)){\nreturn cljs.core.not(x.isNegative());\n} else {\nif((x instanceof cljs.core.goog$module$goog$math$Long)){\nreturn cljs.core.not(x.isNegative());\n} else {\nreturn false;\n\n}\n}\n}\n});\n/**\n * Returns true for JavaScript numbers, false otherwise.\n */\ncljs.core.float_QMARK_ \x3d (function cljs$core$float_QMARK_(x){\nreturn typeof x \x3d\x3d\x3d \x27number\x27;\n});\n/**\n * Returns true for JavaScript numbers, false otherwise.\n */\ncljs.core.double_QMARK_ \x3d (function cljs$core$double_QMARK_(x){\nreturn typeof x \x3d\x3d\x3d \x27number\x27;\n});\n/**\n * Returns true for Infinity and -Infinity values.\n */\ncljs.core.infinite_QMARK_ \x3d (function cljs$core$infinite_QMARK_(x){\nreturn (((x \x3d\x3d\x3d Number.POSITIVE_INFINITY)) || ((x \x3d\x3d\x3d Number.NEGATIVE_INFINITY)));\n});\n/**\n * Returns true if key is present in the given collection, otherwise\n * returns false. Note that for numerically indexed collections like\n * vectors and arrays, this tests if the numeric key is within the\n * range of indexes. \x27contains?\x27 operates constant or logarithmic time;\n * it will not perform a linear search for a value. See also \x27some\x27.\n */\ncljs.core.contains_QMARK_ \x3d (function cljs$core$contains_QMARK_(coll,v){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (512))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IAssociative$))))?true:false):false)){\nreturn coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2(null, v);\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.IAssociative,coll)){\nreturn cljs.core._contains_key_QMARK_(coll,v);\n} else {\nif((cljs.core.get.cljs$core$IFn$_invoke$arity$3(coll,v,cljs.core.lookup_sentinel) \x3d\x3d\x3d cljs.core.lookup_sentinel)){\nreturn false;\n} else {\nreturn true;\n\n}\n}\n}\n});\n/**\n * Returns the map entry for key, or nil if key not present.\n */\ncljs.core.find \x3d (function cljs$core$find(coll,k){\nif(cljs.core.ifind_QMARK_(coll)){\nreturn cljs.core._find(coll,k);\n} else {\nif((((!((coll \x3d\x3d null)))) \x26\x26 (((cljs.core.associative_QMARK_(coll)) \x26\x26 (cljs.core.contains_QMARK_(coll,k)))))){\nreturn (new cljs.core.MapEntry(k,cljs.core.get.cljs$core$IFn$_invoke$arity$2(coll,k),null));\n} else {\nreturn null;\n}\n}\n});\n/**\n * Returns true if no two of the arguments are \x3d\n */\ncljs.core.distinct_QMARK_ \x3d (function cljs$core$distinct_QMARK_(var_args){\nvar G__18036 \x3d arguments.length;\nswitch (G__18036) {\ncase 1:\nreturn cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21182 \x3d arguments.length;\nvar i__5727__auto___21183 \x3d (0);\nwhile(true){\nif((i__5727__auto___21183 \x3c len__5726__auto___21182)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21183]));\n\nvar G__21184 \x3d (i__5727__auto___21183 + (1));\ni__5727__auto___21183 \x3d G__21184;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)));\n}));\n\n(cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)))){\nvar s \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([x,y]);\nvar xs \x3d more;\nwhile(true){\nvar x__$1 \x3d cljs.core.first(xs);\nvar etc \x3d cljs.core.next(xs);\nif(cljs.core.truth_(xs)){\nif(cljs.core.contains_QMARK_(s,x__$1)){\nreturn false;\n} else {\nvar G__21214 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(s,x__$1);\nvar G__21215 \x3d etc;\ns \x3d G__21214;\nxs \x3d G__21215;\ncontinue;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n} else {\nreturn false;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.distinct_QMARK_.cljs$lang$applyTo \x3d (function (seq18032){\nvar G__18033 \x3d cljs.core.first(seq18032);\nvar seq18032__$1 \x3d cljs.core.next(seq18032);\nvar G__18035 \x3d cljs.core.first(seq18032__$1);\nvar seq18032__$2 \x3d cljs.core.next(seq18032__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18033,G__18035,seq18032__$2);\n}));\n\n(cljs.core.distinct_QMARK_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Comparator. Returns a negative number, zero, or a positive number\n * when x is logically \x27less than\x27, \x27equal to\x27, or \x27greater than\x27\n * y. Uses IComparable if available and google.array.defaultCompare for objects\n * of the same type and special-cases nil to be less than any other object.\n */\ncljs.core.compare \x3d (function cljs$core$compare(x,y){\nif((x \x3d\x3d\x3d y)){\nreturn (0);\n} else {\nif((x \x3d\x3d null)){\nreturn (-1);\n} else {\nif((y \x3d\x3d null)){\nreturn (1);\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nif(typeof y \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.goog$module$goog$array.defaultCompare(x,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n} else {\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition1$ \x26 (2048))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IComparable$))))?true:(((!x.cljs$lang$protocol_mask$partition1$))?cljs.core.native_satisfies_QMARK_(cljs.core.IComparable,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IComparable,x))){\nreturn cljs.core._compare(x,y);\n} else {\nif(((((typeof x \x3d\x3d\x3d \x27string\x27) || (((cljs.core.array_QMARK_(x)) || (((x \x3d\x3d\x3d true) || (x \x3d\x3d\x3d false))))))) \x26\x26 ((cljs.core.type(x) \x3d\x3d\x3d cljs.core.type(y))))){\nreturn cljs.core.goog$module$goog$array.defaultCompare(x,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n\n}\n}\n}\n}\n}\n});\n/**\n * Compare indexed collection.\n */\ncljs.core.compare_indexed \x3d (function cljs$core$compare_indexed(var_args){\nvar G__18083 \x3d arguments.length;\nswitch (G__18083) {\ncase 2:\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2 \x3d (function (xs,ys){\nvar xl \x3d cljs.core.count(xs);\nvar yl \x3d cljs.core.count(ys);\nif((xl \x3c yl)){\nreturn (-1);\n} else {\nif((xl \x3e yl)){\nreturn (1);\n} else {\nif((xl \x3d\x3d\x3d (0))){\nreturn (0);\n} else {\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4(xs,ys,xl,(0));\n\n}\n}\n}\n}));\n\n(cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4 \x3d (function (xs,ys,len,n){\nwhile(true){\nvar d \x3d cljs.core.compare(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(xs,n),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(ys,n));\nif((((d \x3d\x3d\x3d (0))) \x26\x26 (((n + (1)) \x3c len)))){\nvar G__21221 \x3d xs;\nvar G__21222 \x3d ys;\nvar G__21223 \x3d len;\nvar G__21224 \x3d (n + (1));\nxs \x3d G__21221;\nys \x3d G__21222;\nlen \x3d G__21223;\nn \x3d G__21224;\ncontinue;\n} else {\nreturn d;\n}\nbreak;\n}\n}));\n\n(cljs.core.compare_indexed.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Given a fn that might be boolean valued or a comparator,\n * return a fn that is a comparator.\n */\ncljs.core.fn__GT_comparator \x3d (function cljs$core$fn__GT_comparator(f){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(f,cljs.core.compare)){\nreturn cljs.core.compare;\n} else {\nreturn (function (x,y){\nvar r \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null, x,y));\nif(typeof r \x3d\x3d\x3d \x27number\x27){\nreturn r;\n} else {\nif(cljs.core.truth_(r)){\nreturn (-1);\n} else {\nif(cljs.core.truth_((f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(y,x) : f.call(null, y,x)))){\nreturn (1);\n} else {\nreturn (0);\n}\n}\n}\n});\n}\n});\n/**\n * Returns a sorted sequence of the items in coll. Comp can be\n * boolean-valued comparison function, or a -/0/+ valued comparator.\n * Comp defaults to compare.\n */\ncljs.core.sort \x3d (function cljs$core$sort(var_args){\nvar G__18113 \x3d arguments.length;\nswitch (G__18113) {\ncase 1:\nreturn cljs.core.sort.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.sort.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.sort.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn cljs.core.sort.cljs$core$IFn$_invoke$arity$2(cljs.core.compare,coll);\n}));\n\n(cljs.core.sort.cljs$core$IFn$_invoke$arity$2 \x3d (function (comp,coll){\nif(cljs.core.seq(coll)){\nvar a \x3d (cljs.core.to_array.cljs$core$IFn$_invoke$arity$1 ? cljs.core.to_array.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.to_array.call(null, coll));\ncljs.core.goog$module$goog$array.stableSort(a,cljs.core.fn__GT_comparator(comp));\n\nreturn cljs.core.with_meta(cljs.core.seq(a),cljs.core.meta(coll));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.sort.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a sorted sequence of the items in coll, where the sort\n * order is determined by comparing (keyfn item). Comp can be\n * boolean-valued comparison function, or a -/0/+ valued comparator.\n * Comp defaults to compare.\n */\ncljs.core.sort_by \x3d (function cljs$core$sort_by(var_args){\nvar G__18123 \x3d arguments.length;\nswitch (G__18123) {\ncase 2:\nreturn cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2 \x3d (function (keyfn,coll){\nreturn cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3(keyfn,cljs.core.compare,coll);\n}));\n\n(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3 \x3d (function (keyfn,comp,coll){\nreturn cljs.core.sort.cljs$core$IFn$_invoke$arity$2((function (x,y){\nvar G__18135 \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(x) : keyfn.call(null, x));\nvar G__18136 \x3d (keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(y) : keyfn.call(null, y));\nvar fexpr__18134 \x3d cljs.core.fn__GT_comparator(comp);\nreturn (fexpr__18134.cljs$core$IFn$_invoke$arity$2 ? fexpr__18134.cljs$core$IFn$_invoke$arity$2(G__18135,G__18136) : fexpr__18134.call(null, G__18135,G__18136));\n}),coll);\n}));\n\n(cljs.core.sort_by.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.seq_reduce \x3d (function cljs$core$seq_reduce(var_args){\nvar G__18145 \x3d arguments.length;\nswitch (G__18145) {\ncase 2:\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nvar temp__5802__auto__ \x3d cljs.core.seq(coll);\nif(temp__5802__auto__){\nvar s \x3d temp__5802__auto__;\nvar G__18149 \x3d f;\nvar G__18150 \x3d cljs.core.first(s);\nvar G__18151 \x3d cljs.core.next(s);\nreturn (cljs.core.reduce.cljs$core$IFn$_invoke$arity$3 ? cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(G__18149,G__18150,G__18151) : cljs.core.reduce.call(null, G__18149,G__18150,G__18151));\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n}\n}));\n\n(cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,val,coll){\nvar val__$1 \x3d val;\nvar coll__$1 \x3d cljs.core.seq(coll);\nwhile(true){\nif(coll__$1){\nvar nval \x3d (function (){var G__18159 \x3d val__$1;\nvar G__18160 \x3d cljs.core.first(coll__$1);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18159,G__18160) : f.call(null, G__18159,G__18160));\n})();\nif(cljs.core.reduced_QMARK_(nval)){\nreturn cljs.core.deref(nval);\n} else {\nvar G__21257 \x3d nval;\nvar G__21258 \x3d cljs.core.next(coll__$1);\nval__$1 \x3d G__21257;\ncoll__$1 \x3d G__21258;\ncontinue;\n}\n} else {\nreturn val__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.seq_reduce.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Return a random permutation of coll\n */\ncljs.core.shuffle \x3d (function cljs$core$shuffle(coll){\nvar a \x3d (cljs.core.to_array.cljs$core$IFn$_invoke$arity$1 ? cljs.core.to_array.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.to_array.call(null, coll));\ncljs.core.goog$module$goog$array.shuffle(a);\n\nreturn (cljs.core.vec.cljs$core$IFn$_invoke$arity$1 ? cljs.core.vec.cljs$core$IFn$_invoke$arity$1(a) : cljs.core.vec.call(null, a));\n});\ncljs.core.iter_reduce \x3d (function cljs$core$iter_reduce(var_args){\nvar G__18169 \x3d arguments.length;\nswitch (G__18169) {\ncase 2:\nreturn cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,f){\nvar iter \x3d cljs.core._iterator(coll);\nif(cljs.core.truth_(iter.hasNext())){\nvar init \x3d iter.next();\nvar acc \x3d init;\nwhile(true){\nif(iter.hasNext()){\nvar nacc \x3d (function (){var G__18178 \x3d acc;\nvar G__18179 \x3d iter.next();\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18178,G__18179) : f.call(null, G__18178,G__18179));\n})();\nif(cljs.core.reduced_QMARK_(nacc)){\nreturn cljs.core.deref(nacc);\n} else {\nvar G__21262 \x3d nacc;\nacc \x3d G__21262;\ncontinue;\n}\n} else {\nreturn acc;\n}\nbreak;\n}\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n}\n}));\n\n(cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (coll,f,init){\nvar iter \x3d cljs.core._iterator(coll);\nvar acc \x3d init;\nwhile(true){\nif(iter.hasNext()){\nvar nacc \x3d (function (){var G__18180 \x3d acc;\nvar G__18181 \x3d iter.next();\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18180,G__18181) : f.call(null, G__18180,G__18181));\n})();\nif(cljs.core.reduced_QMARK_(nacc)){\nreturn cljs.core.deref(nacc);\n} else {\nvar G__21263 \x3d nacc;\nacc \x3d G__21263;\ncontinue;\n}\n} else {\nreturn acc;\n}\nbreak;\n}\n}));\n\n(cljs.core.iter_reduce.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * f should be a function of 2 arguments. If val is not supplied,\n * returns the result of applying f to the first 2 items in coll, then\n * applying f to that result and the 3rd item, etc. If coll contains no\n * items, f must accept no arguments as well, and reduce returns the\n * result of calling f with no arguments. If coll has only 1 item, it\n * is returned and f is not called. If val is supplied, returns the\n * result of applying f to val and the first item in coll, then\n * applying f to that result and the 2nd item, etc. If coll contains no\n * items, returns val and f is not called.\n */\ncljs.core.reduce \x3d (function cljs$core$reduce(var_args){\nvar G__18183 \x3d arguments.length;\nswitch (G__18183) {\ncase 2:\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.reduce.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (524288))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IReduce$))))?true:false):false)){\nreturn coll.cljs$core$IReduce$_reduce$arity$2(null, f);\n} else {\nif(cljs.core.array_QMARK_(coll)){\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2(coll,f);\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2(coll,f);\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,coll)){\nreturn cljs.core._reduce(coll,f);\n} else {\nif(cljs.core.iterable_QMARK_(coll)){\nreturn cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2(coll,f);\n} else {\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll);\n\n}\n}\n}\n}\n}\n}));\n\n(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,val,coll){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (524288))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IReduce$))))?true:false):false)){\nreturn coll.cljs$core$IReduce$_reduce$arity$3(null, f,val);\n} else {\nif(cljs.core.array_QMARK_(coll)){\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3(coll,f,val);\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3(coll,f,val);\n} else {\nif(cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,coll)){\nreturn cljs.core._reduce(coll,f,val);\n} else {\nif(cljs.core.iterable_QMARK_(coll)){\nreturn cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3(coll,f,val);\n} else {\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,val,coll);\n\n}\n}\n}\n}\n}\n}));\n\n(cljs.core.reduce.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Reduces an associative collection. f should be a function of 3\n * arguments. Returns the result of applying f to init, the first key\n * and the first value in coll, then applying f to that result and the\n * 2nd key and value, etc. If coll contains no entries, returns init\n * and f is not called. Note that reduce-kv is supported on vectors,\n * where the keys will be the ordinals.\n */\ncljs.core.reduce_kv \x3d (function cljs$core$reduce_kv(f,init,coll){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (1048576))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IKVReduce$))))?true:(((!coll.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IKVReduce,coll):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IKVReduce,coll))){\nreturn cljs.core._kv_reduce(coll,f,init);\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,me){\nvar G__18204 \x3d ret;\nvar G__18205 \x3d cljs.core._key(me);\nvar G__18206 \x3d cljs.core._val(me);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18204,G__18205,G__18206) : f.call(null, G__18204,G__18205,G__18206));\n}),init,coll);\n}\n});\n/**\n * Returns its argument.\n */\ncljs.core.identity \x3d (function cljs$core$identity(x){\nreturn x;\n});\n/**\n * Takes a reducing function f of 2 args and returns a fn suitable for\n * transduce by adding an arity-1 signature that calls cf (default -\n * identity) on the result argument.\n */\ncljs.core.completing \x3d (function cljs$core$completing(var_args){\nvar G__18217 \x3d arguments.length;\nswitch (G__18217) {\ncase 1:\nreturn cljs.core.completing.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.completing.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.completing.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn cljs.core.completing.cljs$core$IFn$_invoke$arity$2(f,cljs.core.identity);\n}));\n\n(cljs.core.completing.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,cf){\nreturn (function() {\nvar G__21279 \x3d null;\nvar G__21279__0 \x3d (function (){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n});\nvar G__21279__1 \x3d (function (x){\nreturn (cf.cljs$core$IFn$_invoke$arity$1 ? cf.cljs$core$IFn$_invoke$arity$1(x) : cf.call(null, x));\n});\nvar G__21279__2 \x3d (function (x,y){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null, x,y));\n});\nG__21279 \x3d function(x,y){\nswitch(arguments.length){\ncase 0:\nreturn G__21279__0.call(this);\ncase 1:\nreturn G__21279__1.call(this,x);\ncase 2:\nreturn G__21279__2.call(this,x,y);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21279.cljs$core$IFn$_invoke$arity$0 \x3d G__21279__0;\nG__21279.cljs$core$IFn$_invoke$arity$1 \x3d G__21279__1;\nG__21279.cljs$core$IFn$_invoke$arity$2 \x3d G__21279__2;\nreturn G__21279;\n})()\n}));\n\n(cljs.core.completing.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * reduce with a transformation of f (xf). If init is not\n * supplied, (f) will be called to produce it. f should be a reducing\n * step function that accepts both 1 and 2 arguments, if it accepts\n * only 2 you can add the arity-1 with \x27completing\x27. Returns the result\n * of applying (the transformed) xf to init and the first item in coll,\n * then applying xf to that result and the 2nd item, etc. If coll\n * contains no items, returns init and f is not called. Note that\n * certain transforms may inject or skip items.\n */\ncljs.core.transduce \x3d (function cljs$core$transduce(var_args){\nvar G__18225 \x3d arguments.length;\nswitch (G__18225) {\ncase 3:\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.transduce.cljs$core$IFn$_invoke$arity$3 \x3d (function (xform,f,coll){\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,f,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, )),coll);\n}));\n\n(cljs.core.transduce.cljs$core$IFn$_invoke$arity$4 \x3d (function (xform,f,init,coll){\nvar f__$1 \x3d (xform.cljs$core$IFn$_invoke$arity$1 ? xform.cljs$core$IFn$_invoke$arity$1(f) : xform.call(null, f));\nvar ret \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(f__$1,init,coll);\nreturn (f__$1.cljs$core$IFn$_invoke$arity$1 ? f__$1.cljs$core$IFn$_invoke$arity$1(ret) : f__$1.call(null, ret));\n}));\n\n(cljs.core.transduce.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns the sum of nums. (+) returns 0.\n */\ncljs.core._PLUS_ \x3d (function cljs$core$_PLUS_(var_args){\nvar G__18236 \x3d arguments.length;\nswitch (G__18236) {\ncase 0:\nreturn cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21341 \x3d arguments.length;\nvar i__5727__auto___21342 \x3d (0);\nwhile(true){\nif((i__5727__auto___21342 \x3c len__5726__auto___21341)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21342]));\n\nvar G__21343 \x3d (i__5727__auto___21342 + (1));\ni__5727__auto___21342 \x3d G__21343;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (0);\n}));\n\n(cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x + y);\n}));\n\n(cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._PLUS_,(x + y),more);\n}));\n\n/** @this {Function} */\n(cljs.core._PLUS_.cljs$lang$applyTo \x3d (function (seq18230){\nvar G__18232 \x3d cljs.core.first(seq18230);\nvar seq18230__$1 \x3d cljs.core.next(seq18230);\nvar G__18233 \x3d cljs.core.first(seq18230__$1);\nvar seq18230__$2 \x3d cljs.core.next(seq18230__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18232,G__18233,seq18230__$2);\n}));\n\n(cljs.core._PLUS_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * If no ys are supplied, returns the negation of x, else subtracts\n * the ys from x and returns the result.\n */\ncljs.core._ \x3d (function cljs$core$_(var_args){\nvar G__18254 \x3d arguments.length;\nswitch (G__18254) {\ncase 1:\nreturn cljs.core._.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21374 \x3d arguments.length;\nvar i__5727__auto___21375 \x3d (0);\nwhile(true){\nif((i__5727__auto___21375 \x3c len__5726__auto___21374)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21375]));\n\nvar G__21376 \x3d (i__5727__auto___21375 + (1));\ni__5727__auto___21375 \x3d G__21376;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (- x);\n}));\n\n(cljs.core._.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x - y);\n}));\n\n(cljs.core._.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._,(x - y),more);\n}));\n\n/** @this {Function} */\n(cljs.core._.cljs$lang$applyTo \x3d (function (seq18251){\nvar G__18252 \x3d cljs.core.first(seq18251);\nvar seq18251__$1 \x3d cljs.core.next(seq18251);\nvar G__18253 \x3d cljs.core.first(seq18251__$1);\nvar seq18251__$2 \x3d cljs.core.next(seq18251__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18252,G__18253,seq18251__$2);\n}));\n\n(cljs.core._.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns the product of nums. (*) returns 1.\n */\ncljs.core._STAR_ \x3d (function cljs$core$_STAR_(var_args){\nvar G__18266 \x3d arguments.length;\nswitch (G__18266) {\ncase 0:\nreturn cljs.core._STAR_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core._STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21382 \x3d arguments.length;\nvar i__5727__auto___21383 \x3d (0);\nwhile(true){\nif((i__5727__auto___21383 \x3c len__5726__auto___21382)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21383]));\n\nvar G__21388 \x3d (i__5727__auto___21383 + (1));\ni__5727__auto___21383 \x3d G__21388;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._STAR_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (1);\n}));\n\n(cljs.core._STAR_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core._STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x * y);\n}));\n\n(cljs.core._STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._STAR_,(x * y),more);\n}));\n\n/** @this {Function} */\n(cljs.core._STAR_.cljs$lang$applyTo \x3d (function (seq18263){\nvar G__18264 \x3d cljs.core.first(seq18263);\nvar seq18263__$1 \x3d cljs.core.next(seq18263);\nvar G__18265 \x3d cljs.core.first(seq18263__$1);\nvar seq18263__$2 \x3d cljs.core.next(seq18263__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18264,G__18265,seq18263__$2);\n}));\n\n(cljs.core._STAR_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * If no denominators are supplied, returns 1/numerator,\n * else returns numerator divided by all of the denominators.\n */\ncljs.core._SLASH_ \x3d (function cljs$core$_SLASH_(var_args){\nvar G__18286 \x3d arguments.length;\nswitch (G__18286) {\ncase 1:\nreturn cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21398 \x3d arguments.length;\nvar i__5727__auto___21399 \x3d (0);\nwhile(true){\nif((i__5727__auto___21399 \x3c len__5726__auto___21398)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21399]));\n\nvar G__21400 \x3d (i__5727__auto___21399 + (1));\ni__5727__auto___21399 \x3d G__21400;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn ((1) / x);\n}));\n\n(cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x / y);\n}));\n\n(cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._SLASH_,(x / y),more);\n}));\n\n/** @this {Function} */\n(cljs.core._SLASH_.cljs$lang$applyTo \x3d (function (seq18282){\nvar G__18283 \x3d cljs.core.first(seq18282);\nvar seq18282__$1 \x3d cljs.core.next(seq18282);\nvar G__18284 \x3d cljs.core.first(seq18282__$1);\nvar seq18282__$2 \x3d cljs.core.next(seq18282__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18283,G__18284,seq18282__$2);\n}));\n\n(cljs.core._SLASH_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns non-nil if nums are in monotonically increasing order,\n * otherwise false.\n */\ncljs.core._LT_ \x3d (function cljs$core$_LT_(var_args){\nvar G__18308 \x3d arguments.length;\nswitch (G__18308) {\ncase 1:\nreturn cljs.core._LT_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._LT_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21430 \x3d arguments.length;\nvar i__5727__auto___21431 \x3d (0);\nwhile(true){\nif((i__5727__auto___21431 \x3c len__5726__auto___21430)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21431]));\n\nvar G__21432 \x3d (i__5727__auto___21431 + (1));\ni__5727__auto___21431 \x3d G__21432;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._LT_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._LT_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core._LT_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x \x3c y);\n}));\n\n(cljs.core._LT_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nwhile(true){\nif((x \x3c y)){\nif(cljs.core.next(more)){\nvar G__21434 \x3d y;\nvar G__21435 \x3d cljs.core.first(more);\nvar G__21436 \x3d cljs.core.next(more);\nx \x3d G__21434;\ny \x3d G__21435;\nmore \x3d G__21436;\ncontinue;\n} else {\nreturn (y \x3c cljs.core.first(more));\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core._LT_.cljs$lang$applyTo \x3d (function (seq18305){\nvar G__18306 \x3d cljs.core.first(seq18305);\nvar seq18305__$1 \x3d cljs.core.next(seq18305);\nvar G__18307 \x3d cljs.core.first(seq18305__$1);\nvar seq18305__$2 \x3d cljs.core.next(seq18305__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18306,G__18307,seq18305__$2);\n}));\n\n(cljs.core._LT_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns non-nil if nums are in monotonically non-decreasing order,\n * otherwise false.\n */\ncljs.core._LT__EQ_ \x3d (function cljs$core$_LT__EQ_(var_args){\nvar G__18329 \x3d arguments.length;\nswitch (G__18329) {\ncase 1:\nreturn cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21442 \x3d arguments.length;\nvar i__5727__auto___21443 \x3d (0);\nwhile(true){\nif((i__5727__auto___21443 \x3c len__5726__auto___21442)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21443]));\n\nvar G__21445 \x3d (i__5727__auto___21443 + (1));\ni__5727__auto___21443 \x3d G__21445;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x \x3c\x3d y);\n}));\n\n(cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nwhile(true){\nif((x \x3c\x3d y)){\nif(cljs.core.next(more)){\nvar G__21473 \x3d y;\nvar G__21474 \x3d cljs.core.first(more);\nvar G__21475 \x3d cljs.core.next(more);\nx \x3d G__21473;\ny \x3d G__21474;\nmore \x3d G__21475;\ncontinue;\n} else {\nreturn (y \x3c\x3d cljs.core.first(more));\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core._LT__EQ_.cljs$lang$applyTo \x3d (function (seq18325){\nvar G__18327 \x3d cljs.core.first(seq18325);\nvar seq18325__$1 \x3d cljs.core.next(seq18325);\nvar G__18328 \x3d cljs.core.first(seq18325__$1);\nvar seq18325__$2 \x3d cljs.core.next(seq18325__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18327,G__18328,seq18325__$2);\n}));\n\n(cljs.core._LT__EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns non-nil if nums are in monotonically decreasing order,\n * otherwise false.\n */\ncljs.core._GT_ \x3d (function cljs$core$_GT_(var_args){\nvar G__18350 \x3d arguments.length;\nswitch (G__18350) {\ncase 1:\nreturn cljs.core._GT_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._GT_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21478 \x3d arguments.length;\nvar i__5727__auto___21479 \x3d (0);\nwhile(true){\nif((i__5727__auto___21479 \x3c len__5726__auto___21478)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21479]));\n\nvar G__21481 \x3d (i__5727__auto___21479 + (1));\ni__5727__auto___21479 \x3d G__21481;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._GT_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core._GT_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x \x3e y);\n}));\n\n(cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nwhile(true){\nif((x \x3e y)){\nif(cljs.core.next(more)){\nvar G__21486 \x3d y;\nvar G__21487 \x3d cljs.core.first(more);\nvar G__21488 \x3d cljs.core.next(more);\nx \x3d G__21486;\ny \x3d G__21487;\nmore \x3d G__21488;\ncontinue;\n} else {\nreturn (y \x3e cljs.core.first(more));\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core._GT_.cljs$lang$applyTo \x3d (function (seq18347){\nvar G__18348 \x3d cljs.core.first(seq18347);\nvar seq18347__$1 \x3d cljs.core.next(seq18347);\nvar G__18349 \x3d cljs.core.first(seq18347__$1);\nvar seq18347__$2 \x3d cljs.core.next(seq18347__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18348,G__18349,seq18347__$2);\n}));\n\n(cljs.core._GT_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns non-nil if nums are in monotonically non-increasing order,\n * otherwise false.\n */\ncljs.core._GT__EQ_ \x3d (function cljs$core$_GT__EQ_(var_args){\nvar G__18371 \x3d arguments.length;\nswitch (G__18371) {\ncase 1:\nreturn cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21490 \x3d arguments.length;\nvar i__5727__auto___21491 \x3d (0);\nwhile(true){\nif((i__5727__auto___21491 \x3c len__5726__auto___21490)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21491]));\n\nvar G__21493 \x3d (i__5727__auto___21491 + (1));\ni__5727__auto___21491 \x3d G__21493;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x \x3e\x3d y);\n}));\n\n(cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nwhile(true){\nif((x \x3e\x3d y)){\nif(cljs.core.next(more)){\nvar G__21495 \x3d y;\nvar G__21496 \x3d cljs.core.first(more);\nvar G__21497 \x3d cljs.core.next(more);\nx \x3d G__21495;\ny \x3d G__21496;\nmore \x3d G__21497;\ncontinue;\n} else {\nreturn (y \x3e\x3d cljs.core.first(more));\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core._GT__EQ_.cljs$lang$applyTo \x3d (function (seq18368){\nvar G__18369 \x3d cljs.core.first(seq18368);\nvar seq18368__$1 \x3d cljs.core.next(seq18368);\nvar G__18370 \x3d cljs.core.first(seq18368__$1);\nvar seq18368__$2 \x3d cljs.core.next(seq18368__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18369,G__18370,seq18368__$2);\n}));\n\n(cljs.core._GT__EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns a number one less than num.\n */\ncljs.core.dec \x3d (function cljs$core$dec(x){\nreturn (x - (1));\n});\n/**\n * Returns the absolute value of a.\n */\ncljs.core.abs \x3d (function cljs$core$abs(a){\nreturn Math.abs(a);\n});\n/**\n * Returns the greatest of the nums.\n */\ncljs.core.max \x3d (function cljs$core$max(var_args){\nvar G__18399 \x3d arguments.length;\nswitch (G__18399) {\ncase 1:\nreturn cljs.core.max.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.max.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21501 \x3d arguments.length;\nvar i__5727__auto___21502 \x3d (0);\nwhile(true){\nif((i__5727__auto___21502 \x3c len__5726__auto___21501)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21502]));\n\nvar G__21503 \x3d (i__5727__auto___21502 + (1));\ni__5727__auto___21502 \x3d G__21503;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.max.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.max.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core.max.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nvar x__5087__auto__ \x3d x;\nvar y__5088__auto__ \x3d y;\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n}));\n\n(cljs.core.max.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.max,(function (){var x__5087__auto__ \x3d x;\nvar y__5088__auto__ \x3d y;\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})(),more);\n}));\n\n/** @this {Function} */\n(cljs.core.max.cljs$lang$applyTo \x3d (function (seq18395){\nvar G__18396 \x3d cljs.core.first(seq18395);\nvar seq18395__$1 \x3d cljs.core.next(seq18395);\nvar G__18397 \x3d cljs.core.first(seq18395__$1);\nvar seq18395__$2 \x3d cljs.core.next(seq18395__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18396,G__18397,seq18395__$2);\n}));\n\n(cljs.core.max.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns the least of the nums.\n */\ncljs.core.min \x3d (function cljs$core$min(var_args){\nvar G__18422 \x3d arguments.length;\nswitch (G__18422) {\ncase 1:\nreturn cljs.core.min.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.min.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21512 \x3d arguments.length;\nvar i__5727__auto___21513 \x3d (0);\nwhile(true){\nif((i__5727__auto___21513 \x3c len__5726__auto___21512)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21513]));\n\nvar G__21515 \x3d (i__5727__auto___21513 + (1));\ni__5727__auto___21513 \x3d G__21515;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.min.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.min.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core.min.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nvar x__5090__auto__ \x3d x;\nvar y__5091__auto__ \x3d y;\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n}));\n\n(cljs.core.min.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.min,(function (){var x__5090__auto__ \x3d x;\nvar y__5091__auto__ \x3d y;\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})(),more);\n}));\n\n/** @this {Function} */\n(cljs.core.min.cljs$lang$applyTo \x3d (function (seq18414){\nvar G__18415 \x3d cljs.core.first(seq18414);\nvar seq18414__$1 \x3d cljs.core.next(seq18414);\nvar G__18416 \x3d cljs.core.first(seq18414__$1);\nvar seq18414__$2 \x3d cljs.core.next(seq18414__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18415,G__18416,seq18414__$2);\n}));\n\n(cljs.core.min.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.core.byte$ \x3d (function cljs$core$byte(x){\nreturn x;\n});\n/**\n * Coerce to char\n */\ncljs.core.char$ \x3d (function cljs$core$char(x){\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn String.fromCharCode(x);\n} else {\nif(((typeof x \x3d\x3d\x3d \x27string\x27) \x26\x26 ((x.length \x3d\x3d\x3d (1))))){\nreturn x;\n} else {\nthrow (new Error(\x22Argument to char must be a character or number\x22));\n\n}\n}\n});\ncljs.core.short$ \x3d (function cljs$core$short(x){\nreturn x;\n});\ncljs.core.float$ \x3d (function cljs$core$float(x){\nreturn x;\n});\ncljs.core.double$ \x3d (function cljs$core$double(x){\nreturn x;\n});\ncljs.core.unchecked_byte \x3d (function cljs$core$unchecked_byte(x){\nreturn x;\n});\ncljs.core.unchecked_char \x3d (function cljs$core$unchecked_char(x){\nreturn x;\n});\ncljs.core.unchecked_short \x3d (function cljs$core$unchecked_short(x){\nreturn x;\n});\ncljs.core.unchecked_float \x3d (function cljs$core$unchecked_float(x){\nreturn x;\n});\ncljs.core.unchecked_double \x3d (function cljs$core$unchecked_double(x){\nreturn x;\n});\n/**\n * Returns the sum of nums. (+) returns 0.\n */\ncljs.core.unchecked_add \x3d (function cljs$core$unchecked_add(var_args){\nvar G__18466 \x3d arguments.length;\nswitch (G__18466) {\ncase 0:\nreturn cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21539 \x3d arguments.length;\nvar i__5727__auto___21540 \x3d (0);\nwhile(true){\nif((i__5727__auto___21540 \x3c len__5726__auto___21539)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21540]));\n\nvar G__21541 \x3d (i__5727__auto___21540 + (1));\ni__5727__auto___21540 \x3d G__21541;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (0);\n}));\n\n(cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x + y);\n}));\n\n(cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_add,(x + y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_add.cljs$lang$applyTo \x3d (function (seq18463){\nvar G__18464 \x3d cljs.core.first(seq18463);\nvar seq18463__$1 \x3d cljs.core.next(seq18463);\nvar G__18465 \x3d cljs.core.first(seq18463__$1);\nvar seq18463__$2 \x3d cljs.core.next(seq18463__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18464,G__18465,seq18463__$2);\n}));\n\n(cljs.core.unchecked_add.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns the sum of nums. (+) returns 0.\n */\ncljs.core.unchecked_add_int \x3d (function cljs$core$unchecked_add_int(var_args){\nvar G__18495 \x3d arguments.length;\nswitch (G__18495) {\ncase 0:\nreturn cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21550 \x3d arguments.length;\nvar i__5727__auto___21551 \x3d (0);\nwhile(true){\nif((i__5727__auto___21551 \x3c len__5726__auto___21550)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21551]));\n\nvar G__21552 \x3d (i__5727__auto___21551 + (1));\ni__5727__auto___21551 \x3d G__21552;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (0);\n}));\n\n(cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x + y);\n}));\n\n(cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_add_int,(x + y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_add_int.cljs$lang$applyTo \x3d (function (seq18492){\nvar G__18493 \x3d cljs.core.first(seq18492);\nvar seq18492__$1 \x3d cljs.core.next(seq18492);\nvar G__18494 \x3d cljs.core.first(seq18492__$1);\nvar seq18492__$2 \x3d cljs.core.next(seq18492__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18493,G__18494,seq18492__$2);\n}));\n\n(cljs.core.unchecked_add_int.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns a number one less than x, an int.\n */\ncljs.core.unchecked_dec \x3d (function cljs$core$unchecked_dec(x){\nreturn (x - (1));\n});\n/**\n * Returns a number one less than x, an int.\n */\ncljs.core.unchecked_dec_int \x3d (function cljs$core$unchecked_dec_int(x){\nreturn (x - (1));\n});\n/**\n * If no denominators are supplied, returns 1/numerator,\n * else returns numerator divided by all of the denominators.\n */\ncljs.core.unchecked_divide_int \x3d (function cljs$core$unchecked_divide_int(var_args){\nvar G__18524 \x3d arguments.length;\nswitch (G__18524) {\ncase 1:\nreturn cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21600 \x3d arguments.length;\nvar i__5727__auto___21601 \x3d (0);\nwhile(true){\nif((i__5727__auto___21601 \x3c len__5726__auto___21600)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21601]));\n\nvar G__21603 \x3d (i__5727__auto___21601 + (1));\ni__5727__auto___21601 \x3d G__21603;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn ((1) / x);\n}));\n\n(cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x / y);\n}));\n\n(cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_divide_int,(x / y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_divide_int.cljs$lang$applyTo \x3d (function (seq18521){\nvar G__18522 \x3d cljs.core.first(seq18521);\nvar seq18521__$1 \x3d cljs.core.next(seq18521);\nvar G__18523 \x3d cljs.core.first(seq18521__$1);\nvar seq18521__$2 \x3d cljs.core.next(seq18521__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18522,G__18523,seq18521__$2);\n}));\n\n(cljs.core.unchecked_divide_int.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.core.unchecked_inc \x3d (function cljs$core$unchecked_inc(x){\nreturn (x + (1));\n});\ncljs.core.unchecked_inc_int \x3d (function cljs$core$unchecked_inc_int(x){\nreturn (x + (1));\n});\n/**\n * Returns the product of nums. (*) returns 1.\n */\ncljs.core.unchecked_multiply \x3d (function cljs$core$unchecked_multiply(var_args){\nvar G__18544 \x3d arguments.length;\nswitch (G__18544) {\ncase 0:\nreturn cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21612 \x3d arguments.length;\nvar i__5727__auto___21613 \x3d (0);\nwhile(true){\nif((i__5727__auto___21613 \x3c len__5726__auto___21612)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21613]));\n\nvar G__21614 \x3d (i__5727__auto___21613 + (1));\ni__5727__auto___21613 \x3d G__21614;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (1);\n}));\n\n(cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x * y);\n}));\n\n(cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_multiply,(x * y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_multiply.cljs$lang$applyTo \x3d (function (seq18541){\nvar G__18542 \x3d cljs.core.first(seq18541);\nvar seq18541__$1 \x3d cljs.core.next(seq18541);\nvar G__18543 \x3d cljs.core.first(seq18541__$1);\nvar seq18541__$2 \x3d cljs.core.next(seq18541__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18542,G__18543,seq18541__$2);\n}));\n\n(cljs.core.unchecked_multiply.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns the product of nums. (*) returns 1.\n */\ncljs.core.unchecked_multiply_int \x3d (function cljs$core$unchecked_multiply_int(var_args){\nvar G__18557 \x3d arguments.length;\nswitch (G__18557) {\ncase 0:\nreturn cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21620 \x3d arguments.length;\nvar i__5727__auto___21621 \x3d (0);\nwhile(true){\nif((i__5727__auto___21621 \x3c len__5726__auto___21620)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21621]));\n\nvar G__21628 \x3d (i__5727__auto___21621 + (1));\ni__5727__auto___21621 \x3d G__21628;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (1);\n}));\n\n(cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn x;\n}));\n\n(cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x * y);\n}));\n\n(cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_multiply_int,(x * y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_multiply_int.cljs$lang$applyTo \x3d (function (seq18554){\nvar G__18555 \x3d cljs.core.first(seq18554);\nvar seq18554__$1 \x3d cljs.core.next(seq18554);\nvar G__18556 \x3d cljs.core.first(seq18554__$1);\nvar seq18554__$2 \x3d cljs.core.next(seq18554__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18555,G__18556,seq18554__$2);\n}));\n\n(cljs.core.unchecked_multiply_int.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.core.unchecked_negate \x3d (function cljs$core$unchecked_negate(x){\nreturn (- x);\n});\ncljs.core.unchecked_negate_int \x3d (function cljs$core$unchecked_negate_int(x){\nreturn (- x);\n});\ncljs.core.unchecked_remainder_int \x3d (function cljs$core$unchecked_remainder_int(x,n){\nreturn (cljs.core.mod.cljs$core$IFn$_invoke$arity$2 ? cljs.core.mod.cljs$core$IFn$_invoke$arity$2(x,n) : cljs.core.mod.call(null, x,n));\n});\n/**\n * If no ys are supplied, returns the negation of x, else subtracts\n * the ys from x and returns the result.\n */\ncljs.core.unchecked_subtract \x3d (function cljs$core$unchecked_subtract(var_args){\nvar G__18587 \x3d arguments.length;\nswitch (G__18587) {\ncase 1:\nreturn cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21633 \x3d arguments.length;\nvar i__5727__auto___21634 \x3d (0);\nwhile(true){\nif((i__5727__auto___21634 \x3c len__5726__auto___21633)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21634]));\n\nvar G__21635 \x3d (i__5727__auto___21634 + (1));\ni__5727__auto___21634 \x3d G__21635;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (- x);\n}));\n\n(cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x - y);\n}));\n\n(cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_subtract,(x - y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_subtract.cljs$lang$applyTo \x3d (function (seq18582){\nvar G__18583 \x3d cljs.core.first(seq18582);\nvar seq18582__$1 \x3d cljs.core.next(seq18582);\nvar G__18584 \x3d cljs.core.first(seq18582__$1);\nvar seq18582__$2 \x3d cljs.core.next(seq18582__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18583,G__18584,seq18582__$2);\n}));\n\n(cljs.core.unchecked_subtract.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * If no ys are supplied, returns the negation of x, else subtracts\n * the ys from x and returns the result.\n */\ncljs.core.unchecked_subtract_int \x3d (function cljs$core$unchecked_subtract_int(var_args){\nvar G__18596 \x3d arguments.length;\nswitch (G__18596) {\ncase 1:\nreturn cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21642 \x3d arguments.length;\nvar i__5727__auto___21643 \x3d (0);\nwhile(true){\nif((i__5727__auto___21643 \x3c len__5726__auto___21642)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21643]));\n\nvar G__21644 \x3d (i__5727__auto___21643 + (1));\ni__5727__auto___21643 \x3d G__21644;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (- x);\n}));\n\n(cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x - y);\n}));\n\n(cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_subtract_int,(x - y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.unchecked_subtract_int.cljs$lang$applyTo \x3d (function (seq18593){\nvar G__18594 \x3d cljs.core.first(seq18593);\nvar seq18593__$1 \x3d cljs.core.next(seq18593);\nvar G__18595 \x3d cljs.core.first(seq18593__$1);\nvar seq18593__$2 \x3d cljs.core.next(seq18593__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18594,G__18595,seq18593__$2);\n}));\n\n(cljs.core.unchecked_subtract_int.cljs$lang$maxFixedArity \x3d (2));\n\ncljs.core.fix \x3d (function cljs$core$fix(q){\nif((q \x3e\x3d (0))){\nreturn Math.floor(q);\n} else {\nreturn Math.ceil(q);\n}\n});\n/**\n * Coerce to int by stripping decimal places.\n */\ncljs.core.int$ \x3d (function cljs$core$int(x){\nreturn (x | (0));\n});\n/**\n * Coerce to int by stripping decimal places.\n */\ncljs.core.unchecked_int \x3d (function cljs$core$unchecked_int(x){\nreturn cljs.core.fix(x);\n});\n/**\n * Coerce to long by stripping decimal places. Identical to `int\x27.\n */\ncljs.core.long$ \x3d (function cljs$core$long(x){\nreturn cljs.core.fix(x);\n});\n/**\n * Coerce to long by stripping decimal places. Identical to `int\x27.\n */\ncljs.core.unchecked_long \x3d (function cljs$core$unchecked_long(x){\nreturn cljs.core.fix(x);\n});\ncljs.core.booleans \x3d (function cljs$core$booleans(x){\nreturn x;\n});\ncljs.core.bytes \x3d (function cljs$core$bytes(x){\nreturn x;\n});\ncljs.core.chars \x3d (function cljs$core$chars(x){\nreturn x;\n});\ncljs.core.shorts \x3d (function cljs$core$shorts(x){\nreturn x;\n});\ncljs.core.ints \x3d (function cljs$core$ints(x){\nreturn x;\n});\ncljs.core.floats \x3d (function cljs$core$floats(x){\nreturn x;\n});\ncljs.core.doubles \x3d (function cljs$core$doubles(x){\nreturn x;\n});\ncljs.core.longs \x3d (function cljs$core$longs(x){\nreturn x;\n});\n/**\n * Modulus of num and div with original javascript behavior. i.e. bug for negative numbers\n */\ncljs.core.js_mod \x3d (function cljs$core$js_mod(n,d){\nreturn (n % d);\n});\n/**\n * Modulus of num and div. Truncates toward negative infinity.\n */\ncljs.core.mod \x3d (function cljs$core$mod(n,d){\nreturn (((n % d) + d) % d);\n});\n/**\n * quot[ient] of dividing numerator by denominator.\n */\ncljs.core.quot \x3d (function cljs$core$quot(n,d){\nvar rem \x3d (n % d);\nreturn cljs.core.fix(((n - rem) / d));\n});\n/**\n * remainder of dividing numerator by denominator.\n */\ncljs.core.rem \x3d (function cljs$core$rem(n,d){\nvar q \x3d cljs.core.quot(n,d);\nreturn (n - (d * q));\n});\n/**\n * Bitwise exclusive or\n */\ncljs.core.bit_xor \x3d (function cljs$core$bit_xor(var_args){\nvar G__18601 \x3d arguments.length;\nswitch (G__18601) {\ncase 2:\nreturn cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21665 \x3d arguments.length;\nvar i__5727__auto___21666 \x3d (0);\nwhile(true){\nif((i__5727__auto___21666 \x3c len__5726__auto___21665)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21666]));\n\nvar G__21667 \x3d (i__5727__auto___21666 + (1));\ni__5727__auto___21666 \x3d G__21667;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x ^ y);\n}));\n\n(cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_xor,(x ^ y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.bit_xor.cljs$lang$applyTo \x3d (function (seq18598){\nvar G__18599 \x3d cljs.core.first(seq18598);\nvar seq18598__$1 \x3d cljs.core.next(seq18598);\nvar G__18600 \x3d cljs.core.first(seq18598__$1);\nvar seq18598__$2 \x3d cljs.core.next(seq18598__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18599,G__18600,seq18598__$2);\n}));\n\n(cljs.core.bit_xor.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Bitwise and\n */\ncljs.core.bit_and \x3d (function cljs$core$bit_and(var_args){\nvar G__18606 \x3d arguments.length;\nswitch (G__18606) {\ncase 2:\nreturn cljs.core.bit_and.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21672 \x3d arguments.length;\nvar i__5727__auto___21674 \x3d (0);\nwhile(true){\nif((i__5727__auto___21674 \x3c len__5726__auto___21672)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21674]));\n\nvar G__21675 \x3d (i__5727__auto___21674 + (1));\ni__5727__auto___21674 \x3d G__21675;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.bit_and.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.bit_and.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x \x26 y);\n}));\n\n(cljs.core.bit_and.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_and,(x \x26 y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.bit_and.cljs$lang$applyTo \x3d (function (seq18603){\nvar G__18604 \x3d cljs.core.first(seq18603);\nvar seq18603__$1 \x3d cljs.core.next(seq18603);\nvar G__18605 \x3d cljs.core.first(seq18603__$1);\nvar seq18603__$2 \x3d cljs.core.next(seq18603__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18604,G__18605,seq18603__$2);\n}));\n\n(cljs.core.bit_and.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Bitwise or\n */\ncljs.core.bit_or \x3d (function cljs$core$bit_or(var_args){\nvar G__18611 \x3d arguments.length;\nswitch (G__18611) {\ncase 2:\nreturn cljs.core.bit_or.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21692 \x3d arguments.length;\nvar i__5727__auto___21693 \x3d (0);\nwhile(true){\nif((i__5727__auto___21693 \x3c len__5726__auto___21692)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21693]));\n\nvar G__21694 \x3d (i__5727__auto___21693 + (1));\ni__5727__auto___21693 \x3d G__21694;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.bit_or.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.bit_or.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x | y);\n}));\n\n(cljs.core.bit_or.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_or,(x | y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.bit_or.cljs$lang$applyTo \x3d (function (seq18608){\nvar G__18609 \x3d cljs.core.first(seq18608);\nvar seq18608__$1 \x3d cljs.core.next(seq18608);\nvar G__18610 \x3d cljs.core.first(seq18608__$1);\nvar seq18608__$2 \x3d cljs.core.next(seq18608__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18609,G__18610,seq18608__$2);\n}));\n\n(cljs.core.bit_or.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Bitwise and with complement\n */\ncljs.core.bit_and_not \x3d (function cljs$core$bit_and_not(var_args){\nvar G__18616 \x3d arguments.length;\nswitch (G__18616) {\ncase 2:\nreturn cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21699 \x3d arguments.length;\nvar i__5727__auto___21700 \x3d (0);\nwhile(true){\nif((i__5727__auto___21700 \x3c len__5726__auto___21699)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21700]));\n\nvar G__21701 \x3d (i__5727__auto___21700 + (1));\ni__5727__auto___21700 \x3d G__21701;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (x \x26 ~y);\n}));\n\n(cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_and_not,(x \x26 ~y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.bit_and_not.cljs$lang$applyTo \x3d (function (seq18613){\nvar G__18614 \x3d cljs.core.first(seq18613);\nvar seq18613__$1 \x3d cljs.core.next(seq18613);\nvar G__18615 \x3d cljs.core.first(seq18613__$1);\nvar seq18613__$2 \x3d cljs.core.next(seq18613__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18614,G__18615,seq18613__$2);\n}));\n\n(cljs.core.bit_and_not.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Clear bit at index n\n */\ncljs.core.bit_clear \x3d (function cljs$core$bit_clear(x,n){\nreturn (x \x26 ~(1 \x3c\x3c n));\n});\n/**\n * Flip bit at index n\n */\ncljs.core.bit_flip \x3d (function cljs$core$bit_flip(x,n){\nreturn (x ^ (1 \x3c\x3c n));\n});\n/**\n * Bitwise complement\n */\ncljs.core.bit_not \x3d (function cljs$core$bit_not(x){\nreturn (~ x);\n});\n/**\n * Set bit at index n\n */\ncljs.core.bit_set \x3d (function cljs$core$bit_set(x,n){\nreturn (x | (1 \x3c\x3c n));\n});\n/**\n * Test bit at index n\n */\ncljs.core.bit_test \x3d (function cljs$core$bit_test(x,n){\nreturn ((x \x26 (1 \x3c\x3c n)) !\x3d 0);\n});\n/**\n * Bitwise shift left\n */\ncljs.core.bit_shift_left \x3d (function cljs$core$bit_shift_left(x,n){\nreturn (x \x3c\x3c n);\n});\n/**\n * Bitwise shift right\n */\ncljs.core.bit_shift_right \x3d (function cljs$core$bit_shift_right(x,n){\nreturn (x \x3e\x3e n);\n});\n/**\n * DEPRECATED: Bitwise shift right with zero fill\n */\ncljs.core.bit_shift_right_zero_fill \x3d (function cljs$core$bit_shift_right_zero_fill(x,n){\nreturn (x \x3e\x3e\x3e n);\n});\n/**\n * Bitwise shift right with zero fill\n */\ncljs.core.unsigned_bit_shift_right \x3d (function cljs$core$unsigned_bit_shift_right(x,n){\nreturn (x \x3e\x3e\x3e n);\n});\n/**\n * Counts the number of bits set in n\n */\ncljs.core.bit_count \x3d (function cljs$core$bit_count(v){\nvar v__$1 \x3d (v - ((v \x3e\x3e (1)) \x26 (1431655765)));\nvar v__$2 \x3d ((v__$1 \x26 (858993459)) + ((v__$1 \x3e\x3e (2)) \x26 (858993459)));\nreturn ((((v__$2 + (v__$2 \x3e\x3e (4))) \x26 (252645135)) * (16843009)) \x3e\x3e (24));\n});\n/**\n * Returns non-nil if nums all have the equivalent\n * value, otherwise false. Behavior on non nums is\n * undefined.\n */\ncljs.core._EQ__EQ_ \x3d (function cljs$core$_EQ__EQ_(var_args){\nvar G__18621 \x3d arguments.length;\nswitch (G__18621) {\ncase 1:\nreturn cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21713 \x3d arguments.length;\nvar i__5727__auto___21720 \x3d (0);\nwhile(true){\nif((i__5727__auto___21720 \x3c len__5726__auto___21713)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21720]));\n\nvar G__21721 \x3d (i__5727__auto___21720 + (1));\ni__5727__auto___21720 \x3d G__21721;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn true;\n}));\n\n(cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn cljs.core._equiv(x,y);\n}));\n\n(cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nwhile(true){\nif((x \x3d\x3d\x3d y)){\nif(cljs.core.next(more)){\nvar G__21727 \x3d y;\nvar G__21728 \x3d cljs.core.first(more);\nvar G__21729 \x3d cljs.core.next(more);\nx \x3d G__21727;\ny \x3d G__21728;\nmore \x3d G__21729;\ncontinue;\n} else {\nreturn (y \x3d\x3d\x3d cljs.core.first(more));\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core._EQ__EQ_.cljs$lang$applyTo \x3d (function (seq18618){\nvar G__18619 \x3d cljs.core.first(seq18618);\nvar seq18618__$1 \x3d cljs.core.next(seq18618);\nvar G__18620 \x3d cljs.core.first(seq18618__$1);\nvar seq18618__$2 \x3d cljs.core.next(seq18618__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18619,G__18620,seq18618__$2);\n}));\n\n(cljs.core._EQ__EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns true if num is greater than zero, else false\n */\ncljs.core.pos_QMARK_ \x3d (function cljs$core$pos_QMARK_(x){\nreturn (x \x3e (0));\n});\n/**\n * Returns true if num is zero, else false\n */\ncljs.core.zero_QMARK_ \x3d (function cljs$core$zero_QMARK_(x){\nreturn (x \x3d\x3d\x3d (0));\n});\n/**\n * Returns true if num is less than zero, else false\n */\ncljs.core.neg_QMARK_ \x3d (function cljs$core$neg_QMARK_(x){\nreturn (x \x3c (0));\n});\n/**\n * Returns the nth next of coll, (seq coll) when n is 0.\n */\ncljs.core.nthnext \x3d (function cljs$core$nthnext(coll,n){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition1$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IDrop$))))?true:false):false)){\nif((n \x3e (0))){\nreturn coll.cljs$core$IDrop$_drop$arity$2(null, Math.ceil(n));\n} else {\nreturn cljs.core.seq(coll);\n}\n} else {\nvar n__$1 \x3d n;\nvar xs \x3d cljs.core.seq(coll);\nwhile(true){\nif(((xs) \x26\x26 ((n__$1 \x3e (0))))){\nvar G__21736 \x3d (n__$1 - (1));\nvar G__21737 \x3d cljs.core.next(xs);\nn__$1 \x3d G__21736;\nxs \x3d G__21737;\ncontinue;\n} else {\nreturn xs;\n}\nbreak;\n}\n}\n});\n/**\n * With no args, returns the empty string. With one arg x, returns\n * x.toString(). (str nil) returns the empty string. With more than\n * one arg, returns the concatenation of the str values of the args.\n */\ncljs.core.str \x3d (function cljs$core$str(var_args){\nvar G__18626 \x3d arguments.length;\nswitch (G__18626) {\ncase 0:\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21740 \x3d arguments.length;\nvar i__5727__auto___21742 \x3d (0);\nwhile(true){\nif((i__5727__auto___21742 \x3c len__5726__auto___21740)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21742]));\n\nvar G__21744 \x3d (i__5727__auto___21742 + (1));\ni__5727__auto___21742 \x3d G__21744;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((1) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.str.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn \x22\x22;\n}));\n\n(cljs.core.str.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nif((x \x3d\x3d null)){\nreturn \x22\x22;\n} else {\nreturn [x].join(\x22\x22);\n}\n}));\n\n(cljs.core.str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,ys){\nvar sb \x3d (new goog.string.StringBuffer(cljs.core.str.cljs$core$IFn$_invoke$arity$1(x)));\nvar more \x3d ys;\nwhile(true){\nif(cljs.core.truth_(more)){\nvar G__21746 \x3d sb.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(more)));\nvar G__21747 \x3d cljs.core.next(more);\nsb \x3d G__21746;\nmore \x3d G__21747;\ncontinue;\n} else {\nreturn sb.toString();\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.str.cljs$lang$applyTo \x3d (function (seq18624){\nvar G__18625 \x3d cljs.core.first(seq18624);\nvar seq18624__$1 \x3d cljs.core.next(seq18624);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18625,seq18624__$1);\n}));\n\n(cljs.core.str.cljs$lang$maxFixedArity \x3d (1));\n\n/**\n * Returns the substring of s beginning at start inclusive, and ending\n * at end (defaults to length of string), exclusive.\n */\ncljs.core.subs \x3d (function cljs$core$subs(var_args){\nvar G__18628 \x3d arguments.length;\nswitch (G__18628) {\ncase 2:\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.subs.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,start){\nreturn s.substring(start);\n}));\n\n(cljs.core.subs.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,start,end){\nreturn s.substring(start,end);\n}));\n\n(cljs.core.subs.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n * Assumes x is sequential. Returns true if x equals y, otherwise\n * returns false.\n */\ncljs.core.equiv_sequential \x3d (function cljs$core$equiv_sequential(x,y){\nreturn cljs.core.boolean$(((cljs.core.sequential_QMARK_(y))?((((cljs.core.counted_QMARK_(x)) \x26\x26 (((cljs.core.counted_QMARK_(y)) \x26\x26 ((!((cljs.core.count(x) \x3d\x3d\x3d cljs.core.count(y)))))))))?false:(function (){var xs \x3d cljs.core.seq(x);\nvar ys \x3d cljs.core.seq(y);\nwhile(true){\nif((xs \x3d\x3d null)){\nreturn (ys \x3d\x3d null);\n} else {\nif((ys \x3d\x3d null)){\nreturn false;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(xs),cljs.core.first(ys))){\nvar G__21759 \x3d cljs.core.next(xs);\nvar G__21760 \x3d cljs.core.next(ys);\nxs \x3d G__21759;\nys \x3d G__21760;\ncontinue;\n} else {\nreturn false;\n\n}\n}\n}\nbreak;\n}\n})()):null));\n});\ncljs.core.hash_coll \x3d (function cljs$core$hash_coll(coll){\nif(cljs.core.seq(coll)){\nvar res \x3d cljs.core.hash(cljs.core.first(coll));\nvar s \x3d cljs.core.next(coll);\nwhile(true){\nif((s \x3d\x3d null)){\nreturn res;\n} else {\nvar G__21762 \x3d cljs.core.hash_combine(res,cljs.core.hash(cljs.core.first(s)));\nvar G__21763 \x3d cljs.core.next(s);\nres \x3d G__21762;\ns \x3d G__21763;\ncontinue;\n}\nbreak;\n}\n} else {\nreturn (0);\n}\n});\n\ncljs.core.hash_imap \x3d (function cljs$core$hash_imap(m){\nvar h \x3d (0);\nvar s \x3d cljs.core.seq(m);\nwhile(true){\nif(s){\nvar e \x3d cljs.core.first(s);\nvar G__21766 \x3d ((h + (cljs.core.hash((cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(e) : cljs.core.key.call(null, e))) ^ cljs.core.hash((cljs.core.val.cljs$core$IFn$_invoke$arity$1 ? cljs.core.val.cljs$core$IFn$_invoke$arity$1(e) : cljs.core.val.call(null, e))))) % (4503599627370496));\nvar G__21767 \x3d cljs.core.next(s);\nh \x3d G__21766;\ns \x3d G__21767;\ncontinue;\n} else {\nreturn h;\n}\nbreak;\n}\n});\ncljs.core.hash_iset \x3d (function cljs$core$hash_iset(s){\nvar h \x3d (0);\nvar s__$1 \x3d cljs.core.seq(s);\nwhile(true){\nif(s__$1){\nvar e \x3d cljs.core.first(s__$1);\nvar G__21769 \x3d ((h + cljs.core.hash(e)) % (4503599627370496));\nvar G__21770 \x3d cljs.core.next(s__$1);\nh \x3d G__21769;\ns__$1 \x3d G__21770;\ncontinue;\n} else {\nreturn h;\n}\nbreak;\n}\n});\n\n\n/**\n * Takes a JavaScript object and a map of names to functions and\n * attaches said functions as methods on the object. Any references to\n * JavaScript\x27s implicit this (via the this-as macro) will resolve to the\n * object that the function is attached.\n */\ncljs.core.extend_object_BANG_ \x3d (function cljs$core$extend_object_BANG_(obj,fn_map){\nvar seq__18629_21771 \x3d cljs.core.seq(fn_map);\nvar chunk__18630_21772 \x3d null;\nvar count__18631_21773 \x3d (0);\nvar i__18632_21774 \x3d (0);\nwhile(true){\nif((i__18632_21774 \x3c count__18631_21773)){\nvar vec__18639_21775 \x3d chunk__18630_21772.cljs$core$IIndexed$_nth$arity$2(null, i__18632_21774);\nvar key_name_21776 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18639_21775,(0),null);\nvar f_21777 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18639_21775,(1),null);\nvar str_name_21779 \x3d (cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(key_name_21776) : cljs.core.name.call(null, key_name_21776));\ncljs.core.goog$module$goog$object.set(obj,str_name_21779,f_21777);\n\n\nvar G__21781 \x3d seq__18629_21771;\nvar G__21782 \x3d chunk__18630_21772;\nvar G__21783 \x3d count__18631_21773;\nvar G__21784 \x3d (i__18632_21774 + (1));\nseq__18629_21771 \x3d G__21781;\nchunk__18630_21772 \x3d G__21782;\ncount__18631_21773 \x3d G__21783;\ni__18632_21774 \x3d G__21784;\ncontinue;\n} else {\nvar temp__5804__auto___21785 \x3d cljs.core.seq(seq__18629_21771);\nif(temp__5804__auto___21785){\nvar seq__18629_21786__$1 \x3d temp__5804__auto___21785;\nif(cljs.core.chunked_seq_QMARK_(seq__18629_21786__$1)){\nvar c__5525__auto___21787 \x3d (cljs.core.chunk_first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.chunk_first.cljs$core$IFn$_invoke$arity$1(seq__18629_21786__$1) : cljs.core.chunk_first.call(null, seq__18629_21786__$1));\nvar G__21788 \x3d (cljs.core.chunk_rest.cljs$core$IFn$_invoke$arity$1 ? cljs.core.chunk_rest.cljs$core$IFn$_invoke$arity$1(seq__18629_21786__$1) : cljs.core.chunk_rest.call(null, seq__18629_21786__$1));\nvar G__21789 \x3d c__5525__auto___21787;\nvar G__21790 \x3d cljs.core.count(c__5525__auto___21787);\nvar G__21791 \x3d (0);\nseq__18629_21771 \x3d G__21788;\nchunk__18630_21772 \x3d G__21789;\ncount__18631_21773 \x3d G__21790;\ni__18632_21774 \x3d G__21791;\ncontinue;\n} else {\nvar vec__18642_21792 \x3d cljs.core.first(seq__18629_21786__$1);\nvar key_name_21793 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18642_21792,(0),null);\nvar f_21794 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18642_21792,(1),null);\nvar str_name_21813 \x3d (cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(key_name_21793) : cljs.core.name.call(null, key_name_21793));\ncljs.core.goog$module$goog$object.set(obj,str_name_21813,f_21794);\n\n\nvar G__21826 \x3d cljs.core.next(seq__18629_21786__$1);\nvar G__21827 \x3d null;\nvar G__21828 \x3d (0);\nvar G__21829 \x3d (0);\nseq__18629_21771 \x3d G__21826;\nchunk__18630_21772 \x3d G__21827;\ncount__18631_21773 \x3d G__21828;\ni__18632_21774 \x3d G__21829;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn obj;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IList}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ASeq}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.List \x3d (function (meta,first,rest,count,__hash){\nthis.meta \x3d meta;\nthis.first \x3d first;\nthis.rest \x3d rest;\nthis.count \x3d count;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 65937646;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 8192;\n});\n(cljs.core.List.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.List.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.List.prototype.indexOf \x3d (function() {\nvar G__21830 \x3d null;\nvar G__21830__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__21830__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21830 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21830__1.call(this,x);\ncase 2:\nreturn G__21830__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21830.cljs$core$IFn$_invoke$arity$1 \x3d G__21830__1;\nG__21830.cljs$core$IFn$_invoke$arity$2 \x3d G__21830__2;\nreturn G__21830;\n})()\n);\n\n(cljs.core.List.prototype.lastIndexOf \x3d (function() {\nvar G__21832 \x3d null;\nvar G__21832__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,self__.count);\n});\nvar G__21832__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21832 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21832__1.call(this,x);\ncase 2:\nreturn G__21832__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21832.cljs$core$IFn$_invoke$arity$1 \x3d G__21832__1;\nG__21832.cljs$core$IFn$_invoke$arity$2 \x3d G__21832__2;\nreturn G__21832;\n})()\n);\n\n(cljs.core.List.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.List.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.List(self__.meta,self__.first,self__.rest,self__.count,self__.__hash));\n}));\n\n(cljs.core.List.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.count \x3d\x3d\x3d (1))){\nreturn null;\n} else {\nreturn self__.rest;\n}\n}));\n\n(cljs.core.List.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.count;\n}));\n\n(cljs.core.List.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.first;\n}));\n\n(cljs.core.List.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ISeq$_rest$arity$1(null, );\n}));\n\n(cljs.core.List.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.List.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.List.EMPTY,self__.meta);\n}));\n\n(cljs.core.List.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.List.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.List.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.first;\n}));\n\n(cljs.core.List.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.count \x3d\x3d\x3d (1))){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn self__.rest;\n}\n}));\n\n(cljs.core.List.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.List.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.List(new_meta,self__.first,self__.rest,self__.count,self__.__hash));\n}\n}));\n\n(cljs.core.List.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.List(self__.meta,o,coll__$1,(self__.count + (1)),null));\n}));\n\n(cljs.core.List.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22first\x22,\x22first\x22,996428481,null),new cljs.core.Symbol(null,\x22rest\x22,\x22rest\x22,398835108,null),new cljs.core.Symbol(null,\x22count\x22,\x22count\x22,-514511684,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.List.cljs$lang$type \x3d true);\n\n(cljs.core.List.cljs$lang$ctorStr \x3d \x22cljs.core/List\x22);\n\n(cljs.core.List.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/List\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/List.\n */\ncljs.core.__GT_List \x3d (function cljs$core$__GT_List(meta,first,rest,count,__hash){\nreturn (new cljs.core.List(meta,first,rest,count,__hash));\n});\n\n/**\n * Returns true if x implements IList\n */\ncljs.core.list_QMARK_ \x3d (function cljs$core$list_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (33554432))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IList$)))){\nreturn true;\n} else {\nif((!x.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IList,x);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IList,x);\n}\n});\n(cljs.core.List.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IList}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.EmptyList \x3d (function (meta){\nthis.meta \x3d meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 65937614;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 8192;\n});\n(cljs.core.EmptyList.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.EmptyList.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.EmptyList.prototype.indexOf \x3d (function() {\nvar G__21845 \x3d null;\nvar G__21845__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__21845__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21845 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21845__1.call(this,x);\ncase 2:\nreturn G__21845__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21845.cljs$core$IFn$_invoke$arity$1 \x3d G__21845__1;\nG__21845.cljs$core$IFn$_invoke$arity$2 \x3d G__21845__2;\nreturn G__21845;\n})()\n);\n\n(cljs.core.EmptyList.prototype.lastIndexOf \x3d (function() {\nvar G__21846 \x3d null;\nvar G__21846__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__21846__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21846 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21846__1.call(this,x);\ncase 2:\nreturn G__21846__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21846.cljs$core$IFn$_invoke$arity$1 \x3d G__21846__1;\nG__21846.cljs$core$IFn$_invoke$arity$2 \x3d G__21846__2;\nreturn G__21846;\n})()\n);\n\n(cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.EmptyList(self__.meta));\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (0);\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nthrow (new Error(\x22Can\x27t pop empty list\x22));\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.empty_ordered_hash;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((cljs.core.list_QMARK_(other)) || (cljs.core.sequential_QMARK_(other)))){\nreturn (cljs.core.seq(other) \x3d\x3d null);\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.EmptyList(new_meta));\n}\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.List(self__.meta,o,null,(1),null));\n}));\n\n(cljs.core.EmptyList.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null)], null);\n}));\n\n(cljs.core.EmptyList.cljs$lang$type \x3d true);\n\n(cljs.core.EmptyList.cljs$lang$ctorStr \x3d \x22cljs.core/EmptyList\x22);\n\n(cljs.core.EmptyList.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/EmptyList\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/EmptyList.\n */\ncljs.core.__GT_EmptyList \x3d (function cljs$core$__GT_EmptyList(meta){\nreturn (new cljs.core.EmptyList(meta));\n});\n\n(cljs.core.List.EMPTY \x3d (new cljs.core.EmptyList(null)));\n(cljs.core.EmptyList.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Returns true if coll satisfies? IReversible.\n */\ncljs.core.reversible_QMARK_ \x3d (function cljs$core$reversible_QMARK_(coll){\nif((!((coll \x3d\x3d null)))){\nif((((coll.cljs$lang$protocol_mask$partition0$ \x26 (134217728))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IReversible$)))){\nreturn true;\n} else {\nif((!coll.cljs$lang$protocol_mask$partition0$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IReversible,coll);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.IReversible,coll);\n}\n});\n/**\n * Returns, in constant time, a seq of the items in rev (which\n * can be a vector or sorted-map), in reverse order. If rev is empty returns nil\n */\ncljs.core.rseq \x3d (function cljs$core$rseq(rev){\nreturn cljs.core._rseq(rev);\n});\n/**\n * Returns a seq of the items in coll in reverse order. Not lazy.\n */\ncljs.core.reverse \x3d (function cljs$core$reverse(coll){\nif(cljs.core.reversible_QMARK_(coll)){\nvar or__5002__auto__ \x3d cljs.core.rseq(coll);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.List.EMPTY,coll);\n}\n});\n/**\n * Creates a new list containing the items.\n */\ncljs.core.list \x3d (function cljs$core$list(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___21852 \x3d arguments.length;\nvar i__5727__auto___21853 \x3d (0);\nwhile(true){\nif((i__5727__auto___21853 \x3c len__5726__auto___21852)){\nargs__5732__auto__.push((arguments[i__5727__auto___21853]));\n\nvar G__21854 \x3d (i__5727__auto___21853 + (1));\ni__5727__auto___21853 \x3d G__21854;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.list.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.list.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xs){\nvar arr \x3d (((((xs instanceof cljs.core.IndexedSeq)) \x26\x26 ((xs.i \x3d\x3d\x3d (0)))))?xs.arr:(function (){var arr \x3d [];\nvar xs__$1 \x3d xs;\nwhile(true){\nif((!((xs__$1 \x3d\x3d null)))){\narr.push(cljs.core._first(xs__$1));\n\nvar G__21857 \x3d cljs.core._next(xs__$1);\nxs__$1 \x3d G__21857;\ncontinue;\n} else {\nreturn arr;\n}\nbreak;\n}\n})());\nvar i \x3d arr.length;\nvar r \x3d cljs.core.List.EMPTY;\nwhile(true){\nif((i \x3e (0))){\nvar G__21858 \x3d (i - (1));\nvar G__21859 \x3d cljs.core._conj(r,(arr[(i - (1))]));\ni \x3d G__21858;\nr \x3d G__21859;\ncontinue;\n} else {\nreturn r;\n}\nbreak;\n}\n}));\n\n(cljs.core.list.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.list.cljs$lang$applyTo \x3d (function (seq18647){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq18647));\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IList}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ASeq}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Cons \x3d (function (meta,first,rest,__hash){\nthis.meta \x3d meta;\nthis.first \x3d first;\nthis.rest \x3d rest;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 65929452;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 8192;\n});\n(cljs.core.Cons.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.Cons.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Cons.prototype.indexOf \x3d (function() {\nvar G__21862 \x3d null;\nvar G__21862__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__21862__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21862 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21862__1.call(this,x);\ncase 2:\nreturn G__21862__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21862.cljs$core$IFn$_invoke$arity$1 \x3d G__21862__1;\nG__21862.cljs$core$IFn$_invoke$arity$2 \x3d G__21862__2;\nreturn G__21862;\n})()\n);\n\n(cljs.core.Cons.prototype.lastIndexOf \x3d (function() {\nvar G__21865 \x3d null;\nvar G__21865__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__21865__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21865 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21865__1.call(this,x);\ncase 2:\nreturn G__21865__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21865.cljs$core$IFn$_invoke$arity$1 \x3d G__21865__1;\nG__21865.cljs$core$IFn$_invoke$arity$2 \x3d G__21865__2;\nreturn G__21865;\n})()\n);\n\n(cljs.core.Cons.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Cons.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.Cons(self__.meta,self__.first,self__.rest,self__.__hash));\n}));\n\n(cljs.core.Cons.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.rest \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.seq(self__.rest);\n}\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.Cons.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.first;\n}));\n\n(cljs.core.Cons.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.rest \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn self__.rest;\n}\n}));\n\n(cljs.core.Cons.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.Cons(new_meta,self__.first,self__.rest,self__.__hash));\n}\n}));\n\n(cljs.core.Cons.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.Cons(null,o,coll__$1,null));\n}));\n\n(cljs.core.Cons.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22first\x22,\x22first\x22,996428481,null),new cljs.core.Symbol(null,\x22rest\x22,\x22rest\x22,398835108,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Cons.cljs$lang$type \x3d true);\n\n(cljs.core.Cons.cljs$lang$ctorStr \x3d \x22cljs.core/Cons\x22);\n\n(cljs.core.Cons.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Cons\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Cons.\n */\ncljs.core.__GT_Cons \x3d (function cljs$core$__GT_Cons(meta,first,rest,__hash){\nreturn (new cljs.core.Cons(meta,first,rest,__hash));\n});\n\n(cljs.core.Cons.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Returns a new seq where x is the first element and coll is the rest.\n */\ncljs.core.cons \x3d (function cljs$core$cons(x,coll){\nif((coll \x3d\x3d null)){\nreturn (new cljs.core.List(null,x,null,(1),null));\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISeq$))))?true:false):false)){\nreturn (new cljs.core.Cons(null,x,coll,null));\n} else {\nreturn (new cljs.core.Cons(null,x,cljs.core.seq(coll),null));\n\n}\n}\n});\ncljs.core.hash_keyword \x3d (function cljs$core$hash_keyword(k){\nreturn ((cljs.core.hash_symbol(k) + (2654435769)) | (0));\n});\ncljs.core.compare_keywords \x3d (function cljs$core$compare_keywords(a,b){\nif((a.fqn \x3d\x3d\x3d b.fqn)){\nreturn (0);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(a.ns);\nif(and__5000__auto__){\nreturn b.ns;\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn (-1);\n} else {\nif(cljs.core.truth_(a.ns)){\nif(cljs.core.not(b.ns)){\nreturn (1);\n} else {\nvar nsc \x3d cljs.core.goog$module$goog$array.defaultCompare(a.ns,b.ns);\nif(((0) \x3d\x3d\x3d nsc)){\nreturn cljs.core.goog$module$goog$array.defaultCompare(a.name,b.name);\n} else {\nreturn nsc;\n}\n}\n} else {\nreturn cljs.core.goog$module$goog$array.defaultCompare(a.name,b.name);\n\n}\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.INamed}\n * @implements {cljs.core.IPrintWithWriter}\n*/\ncljs.core.Keyword \x3d (function (ns,name,fqn,_hash){\nthis.ns \x3d ns;\nthis.name \x3d name;\nthis.fqn \x3d fqn;\nthis._hash \x3d _hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2153775105;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 4096;\n});\n(cljs.core.Keyword.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn [\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.fqn)].join(\x27\x27);\n}));\n\n(cljs.core.Keyword.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (_,other){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((other instanceof cljs.core.Keyword)){\nreturn (self__.fqn \x3d\x3d\x3d other.fqn);\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.Keyword.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__18650 \x3d (arguments.length - (1));\nswitch (G__18650) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.Keyword.prototype.apply \x3d (function (self__,args18649){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args18649)));\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar kw \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(coll,kw);\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (coll,not_found){\nvar self__ \x3d this;\nvar kw \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(coll,kw,not_found);\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar h__5111__auto__ \x3d self__._hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_keyword(this$__$1);\n(self__._hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$INamed$_name$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.name;\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$INamed$_namespace$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.ns;\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (o,writer,_){\nvar self__ \x3d this;\nvar o__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.fqn)].join(\x27\x27));\n}));\n\n(cljs.core.Keyword.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22name\x22,\x22name\x22,-810760592,null),new cljs.core.Symbol(null,\x22fqn\x22,\x22fqn\x22,-1749334463,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_hash\x22,\x22_hash\x22,-2130838312,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Keyword.cljs$lang$type \x3d true);\n\n(cljs.core.Keyword.cljs$lang$ctorStr \x3d \x22cljs.core/Keyword\x22);\n\n(cljs.core.Keyword.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Keyword\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Keyword.\n */\ncljs.core.__GT_Keyword \x3d (function cljs$core$__GT_Keyword(ns,name,fqn,_hash){\nreturn (new cljs.core.Keyword(ns,name,fqn,_hash));\n});\n\n/**\n * Return true if x is a Keyword\n */\ncljs.core.keyword_QMARK_ \x3d (function cljs$core$keyword_QMARK_(x){\nreturn (x instanceof cljs.core.Keyword);\n});\n/**\n * Efficient test to determine that two keywords are identical.\n */\ncljs.core.keyword_identical_QMARK_ \x3d (function cljs$core$keyword_identical_QMARK_(x,y){\nif((x \x3d\x3d\x3d y)){\nreturn true;\n} else {\nif((((x instanceof cljs.core.Keyword)) \x26\x26 ((y instanceof cljs.core.Keyword)))){\nreturn (x.fqn \x3d\x3d\x3d y.fqn);\n} else {\nreturn false;\n}\n}\n});\n/**\n * Efficient test to determine that two symbols are identical.\n */\ncljs.core.symbol_identical_QMARK_ \x3d (function cljs$core$symbol_identical_QMARK_(x,y){\nif((x \x3d\x3d\x3d y)){\nreturn true;\n} else {\nif((((x instanceof cljs.core.Symbol)) \x26\x26 ((y instanceof cljs.core.Symbol)))){\nreturn (x.str \x3d\x3d\x3d y.str);\n} else {\nreturn false;\n}\n}\n});\n/**\n * Returns the namespace String of a symbol or keyword, or nil if not present.\n */\ncljs.core.namespace \x3d (function cljs$core$namespace(x){\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition1$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$INamed$))))?true:false):false)){\nreturn x.cljs$core$INamed$_namespace$arity$1(null, );\n} else {\nthrow (new Error([\x22Doesn\x27t support namespace: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x)].join(\x27\x27)));\n}\n});\n/**\n * Return true if x is a symbol or keyword\n */\ncljs.core.ident_QMARK_ \x3d (function cljs$core$ident_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) || ((x instanceof cljs.core.Symbol)));\n});\n/**\n * Return true if x is a symbol or keyword without a namespace\n */\ncljs.core.simple_ident_QMARK_ \x3d (function cljs$core$simple_ident_QMARK_(x){\nreturn ((cljs.core.ident_QMARK_(x)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n/**\n * Return true if x is a symbol or keyword with a namespace\n */\ncljs.core.qualified_ident_QMARK_ \x3d (function cljs$core$qualified_ident_QMARK_(x){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d cljs.core.ident_QMARK_(x);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn true;\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\n/**\n * Return true if x is a symbol without a namespace\n */\ncljs.core.simple_symbol_QMARK_ \x3d (function cljs$core$simple_symbol_QMARK_(x){\nreturn (((x instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n/**\n * Return true if x is a symbol with a namespace\n */\ncljs.core.qualified_symbol_QMARK_ \x3d (function cljs$core$qualified_symbol_QMARK_(x){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (x instanceof cljs.core.Symbol);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn true;\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\n/**\n * Return true if x is a keyword without a namespace\n */\ncljs.core.simple_keyword_QMARK_ \x3d (function cljs$core$simple_keyword_QMARK_(x){\nreturn (((x instanceof cljs.core.Keyword)) \x26\x26 ((cljs.core.namespace(x) \x3d\x3d null)));\n});\n/**\n * Return true if x is a keyword with a namespace\n */\ncljs.core.qualified_keyword_QMARK_ \x3d (function cljs$core$qualified_keyword_QMARK_(x){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (x instanceof cljs.core.Keyword);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d cljs.core.namespace(x);\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn true;\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\n/**\n * Returns a Keyword with the given namespace and name. Do not use :\n * in the keyword strings, it will be added automatically.\n */\ncljs.core.keyword \x3d (function cljs$core$keyword(var_args){\nvar G__18653 \x3d arguments.length;\nswitch (G__18653) {\ncase 1:\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.keyword.cljs$core$IFn$_invoke$arity$1 \x3d (function (name){\nif((name instanceof cljs.core.Keyword)){\nreturn name;\n} else {\nif((name instanceof cljs.core.Symbol)){\nreturn (new cljs.core.Keyword(cljs.core.namespace(name),(cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(name) : cljs.core.name.call(null, name)),name.str,null));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22/\x22,name)){\nreturn (new cljs.core.Keyword(null,name,name,null));\n} else {\nif(typeof name \x3d\x3d\x3d \x27string\x27){\nvar parts \x3d name.split(\x22/\x22);\nif((parts.length \x3d\x3d\x3d (2))){\nreturn (new cljs.core.Keyword((parts[(0)]),(parts[(1)]),name,null));\n} else {\nreturn (new cljs.core.Keyword(null,(parts[(0)]),name,null));\n}\n} else {\nreturn null;\n}\n}\n}\n}\n}));\n\n(cljs.core.keyword.cljs$core$IFn$_invoke$arity$2 \x3d (function (ns,name){\nvar ns__$1 \x3d (((ns instanceof cljs.core.Keyword))?(cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(ns) : cljs.core.name.call(null, ns)):(((ns instanceof cljs.core.Symbol))?(cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(ns) : cljs.core.name.call(null, ns)):ns\n));\nvar name__$1 \x3d (((name instanceof cljs.core.Keyword))?(cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(name) : cljs.core.name.call(null, name)):(((name instanceof cljs.core.Symbol))?(cljs.core.name.cljs$core$IFn$_invoke$arity$1 ? cljs.core.name.cljs$core$IFn$_invoke$arity$1(name) : cljs.core.name.call(null, name)):name\n));\nreturn (new cljs.core.Keyword(ns__$1,name__$1,[(cljs.core.truth_(ns__$1)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),\x22/\x22].join(\x27\x27):null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(name__$1)].join(\x27\x27),null));\n}));\n\n(cljs.core.keyword.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.LazySeq \x3d (function (meta,fn,s,__hash){\nthis.meta \x3d meta;\nthis.fn \x3d fn;\nthis.s \x3d s;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1;\n});\n(cljs.core.LazySeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.LazySeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.LazySeq.prototype.sval \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nif((self__.fn \x3d\x3d null)){\nreturn self__.s;\n} else {\n(self__.s \x3d (self__.fn.cljs$core$IFn$_invoke$arity$0 ? self__.fn.cljs$core$IFn$_invoke$arity$0() : self__.fn.call(null, )));\n\n(self__.fn \x3d null);\n\nreturn self__.s;\n}\n}));\n\n(cljs.core.LazySeq.prototype.indexOf \x3d (function() {\nvar G__21883 \x3d null;\nvar G__21883__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__21883__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21883 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21883__1.call(this,x);\ncase 2:\nreturn G__21883__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21883.cljs$core$IFn$_invoke$arity$1 \x3d G__21883__1;\nG__21883.cljs$core$IFn$_invoke$arity$2 \x3d G__21883__2;\nreturn G__21883;\n})()\n);\n\n(cljs.core.LazySeq.prototype.lastIndexOf \x3d (function() {\nvar G__21884 \x3d null;\nvar G__21884__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__21884__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21884 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21884__1.call(this,x);\ncase 2:\nreturn G__21884__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21884.cljs$core$IFn$_invoke$arity$1 \x3d G__21884__1;\nG__21884.cljs$core$IFn$_invoke$arity$2 \x3d G__21884__2;\nreturn G__21884;\n})()\n);\n\n(cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\ncoll__$1.cljs$core$ISeqable$_seq$arity$1(null, );\n\nif((self__.s \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.next(self__.s);\n}\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.List.EMPTY,self__.meta);\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.not(self__.fn);\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\ncoll__$1.cljs$core$ISeqable$_seq$arity$1(null, );\n\nif((self__.s \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.first(self__.s);\n}\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\ncoll__$1.cljs$core$ISeqable$_seq$arity$1(null, );\n\nif((!((self__.s \x3d\x3d null)))){\nreturn cljs.core.rest(self__.s);\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\ncoll__$1.sval();\n\nif((self__.s \x3d\x3d null)){\nreturn null;\n} else {\nvar ls \x3d self__.s;\nwhile(true){\nif((ls instanceof cljs.core.LazySeq)){\nvar G__21891 \x3d ls.sval();\nls \x3d G__21891;\ncontinue;\n} else {\n(self__.s \x3d ls);\n\nreturn cljs.core.seq(self__.s);\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.LazySeq(new_meta,(function (){\nreturn coll__$1.cljs$core$ISeqable$_seq$arity$1(null, );\n}),null,self__.__hash));\n}\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.LazySeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.LazySeq.cljs$lang$type \x3d true);\n\n(cljs.core.LazySeq.cljs$lang$ctorStr \x3d \x22cljs.core/LazySeq\x22);\n\n(cljs.core.LazySeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/LazySeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/LazySeq.\n */\ncljs.core.__GT_LazySeq \x3d (function cljs$core$__GT_LazySeq(meta,fn,s,__hash){\nreturn (new cljs.core.LazySeq(meta,fn,s,__hash));\n});\n\n(cljs.core.LazySeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.ICounted}\n*/\ncljs.core.ChunkBuffer \x3d (function (buf,end){\nthis.buf \x3d buf;\nthis.end \x3d end;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.ChunkBuffer.prototype.add \x3d (function (o){\nvar self__ \x3d this;\nvar _ \x3d this;\n(self__.buf[self__.end] \x3d o);\n\nreturn (self__.end \x3d (self__.end + (1)));\n}));\n\n(cljs.core.ChunkBuffer.prototype.chunk \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d (new cljs.core.ArrayChunk(self__.buf,(0),self__.end));\n(self__.buf \x3d null);\n\nreturn ret;\n}));\n\n(cljs.core.ChunkBuffer.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.end;\n}));\n\n(cljs.core.ChunkBuffer.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ChunkBuffer.cljs$lang$type \x3d true);\n\n(cljs.core.ChunkBuffer.cljs$lang$ctorStr \x3d \x22cljs.core/ChunkBuffer\x22);\n\n(cljs.core.ChunkBuffer.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ChunkBuffer\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ChunkBuffer.\n */\ncljs.core.__GT_ChunkBuffer \x3d (function cljs$core$__GT_ChunkBuffer(buf,end){\nreturn (new cljs.core.ChunkBuffer(buf,end));\n});\n\ncljs.core.chunk_buffer \x3d (function cljs$core$chunk_buffer(capacity){\nreturn (new cljs.core.ChunkBuffer((new Array(capacity)),(0)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.IChunk}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.ArrayChunk \x3d (function (arr,off,end){\nthis.arr \x3d arr;\nthis.off \x3d off;\nthis.end \x3d end;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 524306;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.ArrayChunk.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.end - self__.off);\n}));\n\n(cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (coll,i){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (self__.arr[(self__.off + i)]);\n}));\n\n(cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (coll,i,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((i \x3e\x3d (0))) \x26\x26 ((i \x3c (self__.end - self__.off))))){\nreturn (self__.arr[(self__.off + i)]);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.ArrayChunk.prototype.cljs$core$IChunk$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ArrayChunk.prototype.cljs$core$IChunk$_drop_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.off \x3d\x3d\x3d self__.end)){\nthrow (new Error(\x22-drop-first of empty chunk\x22));\n} else {\nreturn (new cljs.core.ArrayChunk(self__.arr,(self__.off + (1)),self__.end));\n}\n}));\n\n(cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(self__.arr,f,(self__.arr[self__.off]),(self__.off + (1)));\n}));\n\n(cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(self__.arr,f,start,self__.off);\n}));\n\n(cljs.core.ArrayChunk.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.Symbol(null,\x22off\x22,\x22off\x22,-2047994980,null),new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null)], null);\n}));\n\n(cljs.core.ArrayChunk.cljs$lang$type \x3d true);\n\n(cljs.core.ArrayChunk.cljs$lang$ctorStr \x3d \x22cljs.core/ArrayChunk\x22);\n\n(cljs.core.ArrayChunk.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ArrayChunk\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ArrayChunk.\n */\ncljs.core.__GT_ArrayChunk \x3d (function cljs$core$__GT_ArrayChunk(arr,off,end){\nreturn (new cljs.core.ArrayChunk(arr,off,end));\n});\n\ncljs.core.array_chunk \x3d (function cljs$core$array_chunk(var_args){\nvar G__18655 \x3d arguments.length;\nswitch (G__18655) {\ncase 1:\nreturn cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$1 \x3d (function (arr){\nreturn (new cljs.core.ArrayChunk(arr,(0),arr.length));\n}));\n\n(cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$2 \x3d (function (arr,off){\nreturn (new cljs.core.ArrayChunk(arr,off,arr.length));\n}));\n\n(cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3 \x3d (function (arr,off,end){\nreturn (new cljs.core.ArrayChunk(arr,off,end));\n}));\n\n(cljs.core.array_chunk.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ASeq}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IChunkedNext}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IChunkedSeq}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.ChunkedCons \x3d (function (chunk,more,meta,__hash){\nthis.chunk \x3d chunk;\nthis.more \x3d more;\nthis.meta \x3d meta;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 31850732;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1536;\n});\n(cljs.core.ChunkedCons.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.ChunkedCons.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.ChunkedCons.prototype.indexOf \x3d (function() {\nvar G__21909 \x3d null;\nvar G__21909__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__21909__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21909 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21909__1.call(this,x);\ncase 2:\nreturn G__21909__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21909.cljs$core$IFn$_invoke$arity$1 \x3d G__21909__1;\nG__21909.cljs$core$IFn$_invoke$arity$2 \x3d G__21909__2;\nreturn G__21909;\n})()\n);\n\n(cljs.core.ChunkedCons.prototype.lastIndexOf \x3d (function() {\nvar G__21914 \x3d null;\nvar G__21914__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__21914__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__21914 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__21914__1.call(this,x);\ncase 2:\nreturn G__21914__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__21914.cljs$core$IFn$_invoke$arity$1 \x3d G__21914__1;\nG__21914.cljs$core$IFn$_invoke$arity$2 \x3d G__21914__2;\nreturn G__21914;\n})()\n);\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((cljs.core._count(self__.chunk) \x3e (1))){\nreturn (new cljs.core.ChunkedCons(cljs.core._drop_first(self__.chunk),self__.more,null,null));\n} else {\nif((self__.more \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core._seq(self__.more);\n}\n}\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._nth(self__.chunk,(0));\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((cljs.core._count(self__.chunk) \x3e (1))){\nreturn (new cljs.core.ChunkedCons(cljs.core._drop_first(self__.chunk),self__.more,null,null));\n} else {\nif((self__.more \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn self__.more;\n}\n}\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.chunk;\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.more \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn self__.more;\n}\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.ChunkedCons(self__.chunk,self__.more,new_meta,self__.__hash));\n}\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this$,o){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.cons(o,this$__$1);\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.more \x3d\x3d null)){\nreturn null;\n} else {\nreturn self__.more;\n}\n}));\n\n(cljs.core.ChunkedCons.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22chunk\x22,\x22chunk\x22,449371907,null),new cljs.core.Symbol(null,\x22more\x22,\x22more\x22,-418290273,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ChunkedCons.cljs$lang$type \x3d true);\n\n(cljs.core.ChunkedCons.cljs$lang$ctorStr \x3d \x22cljs.core/ChunkedCons\x22);\n\n(cljs.core.ChunkedCons.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ChunkedCons\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ChunkedCons.\n */\ncljs.core.__GT_ChunkedCons \x3d (function cljs$core$__GT_ChunkedCons(chunk,more,meta,__hash){\nreturn (new cljs.core.ChunkedCons(chunk,more,meta,__hash));\n});\n\n(cljs.core.ChunkedCons.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.chunk_cons \x3d (function cljs$core$chunk_cons(chunk,rest){\nif((cljs.core._count(chunk) \x3d\x3d\x3d (0))){\nreturn rest;\n} else {\nreturn (new cljs.core.ChunkedCons(chunk,rest,null,null));\n}\n});\ncljs.core.chunk_append \x3d (function cljs$core$chunk_append(b,x){\nreturn b.add(x);\n});\ncljs.core.chunk \x3d (function cljs$core$chunk(b){\nreturn b.chunk();\n});\ncljs.core.chunk_first \x3d (function cljs$core$chunk_first(s){\nreturn cljs.core._chunked_first(s);\n});\ncljs.core.chunk_rest \x3d (function cljs$core$chunk_rest(s){\nreturn cljs.core._chunked_rest(s);\n});\ncljs.core.chunk_next \x3d (function cljs$core$chunk_next(s){\nif((((!((s \x3d\x3d null))))?(((((s.cljs$lang$protocol_mask$partition1$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d s.cljs$core$IChunkedNext$))))?true:false):false)){\nreturn s.cljs$core$IChunkedNext$_chunked_next$arity$1(null, );\n} else {\nreturn cljs.core.seq(cljs.core._chunked_rest(s));\n}\n});\n/**\n * Returns an array containing the contents of coll.\n */\ncljs.core.to_array \x3d (function cljs$core$to_array(coll){\nvar ary \x3d [];\nvar s \x3d cljs.core.seq(coll);\nwhile(true){\nif((!((s \x3d\x3d null)))){\nary.push(cljs.core.first(s));\n\nvar G__21924 \x3d cljs.core.next(s);\ns \x3d G__21924;\ncontinue;\n} else {\nreturn ary;\n}\nbreak;\n}\n});\n/**\n * Returns a (potentially-ragged) 2-dimensional array\n * containing the contents of coll.\n */\ncljs.core.to_array_2d \x3d (function cljs$core$to_array_2d(coll){\nvar ret \x3d (new Array(cljs.core.count(coll)));\nvar i_21926 \x3d (0);\nvar xs_21927 \x3d cljs.core.seq(coll);\nwhile(true){\nif((xs_21927 \x3d\x3d null)){\n} else {\n(ret[i_21926] \x3d cljs.core.to_array(cljs.core.first(xs_21927)));\n\nvar G__21928 \x3d (i_21926 + (1));\nvar G__21929 \x3d cljs.core.next(xs_21927);\ni_21926 \x3d G__21928;\nxs_21927 \x3d G__21929;\ncontinue;\n}\nbreak;\n}\n\nreturn ret;\n});\n/**\n * Creates an array of ints. Does not coerce array, provided for compatibility\n * with Clojure.\n */\ncljs.core.int_array \x3d (function cljs$core$int_array(var_args){\nvar G__18658 \x3d arguments.length;\nswitch (G__18658) {\ncase 1:\nreturn cljs.core.int_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.int_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.int_array.cljs$core$IFn$_invoke$arity$1 \x3d (function (size_or_seq){\nif(typeof size_or_seq \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.int_array.cljs$core$IFn$_invoke$arity$2(size_or_seq,null);\n} else {\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(size_or_seq);\n}\n}));\n\n(cljs.core.int_array.cljs$core$IFn$_invoke$arity$2 \x3d (function (size,init_val_or_seq){\nvar a \x3d (new Array(size));\nif(cljs.core.seq_QMARK_(init_val_or_seq)){\nvar s \x3d cljs.core.seq(init_val_or_seq);\nvar i \x3d (0);\nvar s__$1 \x3d s;\nwhile(true){\nif(((s__$1) \x26\x26 ((i \x3c size)))){\n(a[i] \x3d cljs.core.first(s__$1));\n\nvar G__21933 \x3d (i + (1));\nvar G__21934 \x3d cljs.core.next(s__$1);\ni \x3d G__21933;\ns__$1 \x3d G__21934;\ncontinue;\n} else {\nreturn a;\n}\nbreak;\n}\n} else {\nvar n__5593__auto___21937 \x3d size;\nvar i_21938 \x3d (0);\nwhile(true){\nif((i_21938 \x3c n__5593__auto___21937)){\n(a[i_21938] \x3d init_val_or_seq);\n\nvar G__21939 \x3d (i_21938 + (1));\ni_21938 \x3d G__21939;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn a;\n}\n}));\n\n(cljs.core.int_array.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Creates an array of longs. Does not coerce array, provided for compatibility\n * with Clojure.\n */\ncljs.core.long_array \x3d (function cljs$core$long_array(var_args){\nvar G__18660 \x3d arguments.length;\nswitch (G__18660) {\ncase 1:\nreturn cljs.core.long_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.long_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.long_array.cljs$core$IFn$_invoke$arity$1 \x3d (function (size_or_seq){\nif(typeof size_or_seq \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.long_array.cljs$core$IFn$_invoke$arity$2(size_or_seq,null);\n} else {\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(size_or_seq);\n}\n}));\n\n(cljs.core.long_array.cljs$core$IFn$_invoke$arity$2 \x3d (function (size,init_val_or_seq){\nvar a \x3d (new Array(size));\nif(cljs.core.seq_QMARK_(init_val_or_seq)){\nvar s \x3d cljs.core.seq(init_val_or_seq);\nvar i \x3d (0);\nvar s__$1 \x3d s;\nwhile(true){\nif(((s__$1) \x26\x26 ((i \x3c size)))){\n(a[i] \x3d cljs.core.first(s__$1));\n\nvar G__21943 \x3d (i + (1));\nvar G__21944 \x3d cljs.core.next(s__$1);\ni \x3d G__21943;\ns__$1 \x3d G__21944;\ncontinue;\n} else {\nreturn a;\n}\nbreak;\n}\n} else {\nvar n__5593__auto___21945 \x3d size;\nvar i_21946 \x3d (0);\nwhile(true){\nif((i_21946 \x3c n__5593__auto___21945)){\n(a[i_21946] \x3d init_val_or_seq);\n\nvar G__21948 \x3d (i_21946 + (1));\ni_21946 \x3d G__21948;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn a;\n}\n}));\n\n(cljs.core.long_array.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Creates an array of doubles. Does not coerce array, provided for compatibility\n * with Clojure.\n */\ncljs.core.double_array \x3d (function cljs$core$double_array(var_args){\nvar G__18662 \x3d arguments.length;\nswitch (G__18662) {\ncase 1:\nreturn cljs.core.double_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.double_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.double_array.cljs$core$IFn$_invoke$arity$1 \x3d (function (size_or_seq){\nif(typeof size_or_seq \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.double_array.cljs$core$IFn$_invoke$arity$2(size_or_seq,null);\n} else {\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(size_or_seq);\n}\n}));\n\n(cljs.core.double_array.cljs$core$IFn$_invoke$arity$2 \x3d (function (size,init_val_or_seq){\nvar a \x3d (new Array(size));\nif(cljs.core.seq_QMARK_(init_val_or_seq)){\nvar s \x3d cljs.core.seq(init_val_or_seq);\nvar i \x3d (0);\nvar s__$1 \x3d s;\nwhile(true){\nif(((s__$1) \x26\x26 ((i \x3c size)))){\n(a[i] \x3d cljs.core.first(s__$1));\n\nvar G__21955 \x3d (i + (1));\nvar G__21956 \x3d cljs.core.next(s__$1);\ni \x3d G__21955;\ns__$1 \x3d G__21956;\ncontinue;\n} else {\nreturn a;\n}\nbreak;\n}\n} else {\nvar n__5593__auto___21957 \x3d size;\nvar i_21958 \x3d (0);\nwhile(true){\nif((i_21958 \x3c n__5593__auto___21957)){\n(a[i_21958] \x3d init_val_or_seq);\n\nvar G__21959 \x3d (i_21958 + (1));\ni_21958 \x3d G__21959;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn a;\n}\n}));\n\n(cljs.core.double_array.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Creates an array of objects. Does not coerce array, provided for compatibility\n * with Clojure.\n */\ncljs.core.object_array \x3d (function cljs$core$object_array(var_args){\nvar G__18664 \x3d arguments.length;\nswitch (G__18664) {\ncase 1:\nreturn cljs.core.object_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.object_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.object_array.cljs$core$IFn$_invoke$arity$1 \x3d (function (size_or_seq){\nif(typeof size_or_seq \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.object_array.cljs$core$IFn$_invoke$arity$2(size_or_seq,null);\n} else {\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(size_or_seq);\n}\n}));\n\n(cljs.core.object_array.cljs$core$IFn$_invoke$arity$2 \x3d (function (size,init_val_or_seq){\nvar a \x3d (new Array(size));\nif(cljs.core.seq_QMARK_(init_val_or_seq)){\nvar s \x3d cljs.core.seq(init_val_or_seq);\nvar i \x3d (0);\nvar s__$1 \x3d s;\nwhile(true){\nif(((s__$1) \x26\x26 ((i \x3c size)))){\n(a[i] \x3d cljs.core.first(s__$1));\n\nvar G__21967 \x3d (i + (1));\nvar G__21968 \x3d cljs.core.next(s__$1);\ni \x3d G__21967;\ns__$1 \x3d G__21968;\ncontinue;\n} else {\nreturn a;\n}\nbreak;\n}\n} else {\nvar n__5593__auto___21969 \x3d size;\nvar i_21970 \x3d (0);\nwhile(true){\nif((i_21970 \x3c n__5593__auto___21969)){\n(a[i_21970] \x3d init_val_or_seq);\n\nvar G__21971 \x3d (i_21970 + (1));\ni_21970 \x3d G__21971;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn a;\n}\n}));\n\n(cljs.core.object_array.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * If coll is counted? returns its count, else will count at most the first n\n * elements of coll using its seq\n */\ncljs.core.bounded_count \x3d (function cljs$core$bounded_count(n,coll){\nif(cljs.core.counted_QMARK_(coll)){\nreturn cljs.core.count(coll);\n} else {\nvar i \x3d (0);\nvar s \x3d cljs.core.seq(coll);\nwhile(true){\nif((((!((s \x3d\x3d null)))) \x26\x26 ((i \x3c n)))){\nvar G__21974 \x3d (i + (1));\nvar G__21975 \x3d cljs.core.next(s);\ni \x3d G__21974;\ns \x3d G__21975;\ncontinue;\n} else {\nreturn i;\n}\nbreak;\n}\n}\n});\ncljs.core.spread \x3d (function cljs$core$spread(arglist){\nif((arglist \x3d\x3d null)){\nreturn null;\n} else {\nvar n \x3d cljs.core.next(arglist);\nif((n \x3d\x3d null)){\nreturn cljs.core.seq(cljs.core.first(arglist));\n} else {\nreturn cljs.core.cons(cljs.core.first(arglist),(cljs.core.spread.cljs$core$IFn$_invoke$arity$1 ? cljs.core.spread.cljs$core$IFn$_invoke$arity$1(n) : cljs.core.spread.call(null, n)));\n}\n}\n});\n/**\n * Returns a lazy seq representing the concatenation of the elements in the supplied colls.\n */\ncljs.core.concat \x3d (function cljs$core$concat(var_args){\nvar G__18669 \x3d arguments.length;\nswitch (G__18669) {\ncase 0:\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21982 \x3d arguments.length;\nvar i__5727__auto___21983 \x3d (0);\nwhile(true){\nif((i__5727__auto___21983 \x3c len__5726__auto___21982)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21983]));\n\nvar G__21985 \x3d (i__5727__auto___21983 + (1));\ni__5727__auto___21983 \x3d G__21985;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.concat.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn null;\n}),null,null));\n}));\n\n(cljs.core.concat.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn x;\n}),null,null));\n}));\n\n(cljs.core.concat.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s \x3d cljs.core.seq(x);\nif(s){\nif(cljs.core.chunked_seq_QMARK_(s)){\nreturn cljs.core.chunk_cons(cljs.core.chunk_first(s),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.chunk_rest(s),y));\n} else {\nreturn cljs.core.cons(cljs.core.first(s),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(s),y));\n}\n} else {\nreturn y;\n}\n}),null,null));\n}));\n\n(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,zs){\nvar cat \x3d (function cljs$core$cat(xys,zs__$1){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar xys__$1 \x3d cljs.core.seq(xys);\nif(xys__$1){\nif(cljs.core.chunked_seq_QMARK_(xys__$1)){\nreturn cljs.core.chunk_cons(cljs.core.chunk_first(xys__$1),cljs$core$cat(cljs.core.chunk_rest(xys__$1),zs__$1));\n} else {\nreturn cljs.core.cons(cljs.core.first(xys__$1),cljs$core$cat(cljs.core.rest(xys__$1),zs__$1));\n}\n} else {\nif(cljs.core.truth_(zs__$1)){\nreturn cljs$core$cat(cljs.core.first(zs__$1),cljs.core.next(zs__$1));\n} else {\nreturn null;\n}\n}\n}),null,null));\n});\nreturn cat(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(x,y),zs);\n}));\n\n/** @this {Function} */\n(cljs.core.concat.cljs$lang$applyTo \x3d (function (seq18666){\nvar G__18667 \x3d cljs.core.first(seq18666);\nvar seq18666__$1 \x3d cljs.core.next(seq18666);\nvar G__18668 \x3d cljs.core.first(seq18666__$1);\nvar seq18666__$2 \x3d cljs.core.next(seq18666__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18667,G__18668,seq18666__$2);\n}));\n\n(cljs.core.concat.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Creates a new list containing the items prepended to the rest, the\n * last of which will be treated as a sequence.\n */\ncljs.core.list_STAR_ \x3d (function cljs$core$list_STAR_(var_args){\nvar G__18676 \x3d arguments.length;\nswitch (G__18676) {\ncase 1:\nreturn cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___21992 \x3d arguments.length;\nvar i__5727__auto___21993 \x3d (0);\nwhile(true){\nif((i__5727__auto___21993 \x3c len__5726__auto___21992)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___21993]));\n\nvar G__21995 \x3d (i__5727__auto___21993 + (1));\ni__5727__auto___21993 \x3d G__21995;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((4) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((4)),(0),null)):null);\nreturn cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$1 \x3d (function (args){\nreturn cljs.core.seq(args);\n}));\n\n(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,args){\nreturn cljs.core.cons(a,args);\n}));\n\n(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,b,args){\nreturn cljs.core.cons(a,cljs.core.cons(b,args));\n}));\n\n(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,b,c,args){\nreturn cljs.core.cons(a,cljs.core.cons(b,cljs.core.cons(c,args)));\n}));\n\n(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (a,b,c,d,more){\nreturn cljs.core.cons(a,cljs.core.cons(b,cljs.core.cons(c,cljs.core.cons(d,cljs.core.spread(more)))));\n}));\n\n/** @this {Function} */\n(cljs.core.list_STAR_.cljs$lang$applyTo \x3d (function (seq18671){\nvar G__18672 \x3d cljs.core.first(seq18671);\nvar seq18671__$1 \x3d cljs.core.next(seq18671);\nvar G__18673 \x3d cljs.core.first(seq18671__$1);\nvar seq18671__$2 \x3d cljs.core.next(seq18671__$1);\nvar G__18674 \x3d cljs.core.first(seq18671__$2);\nvar seq18671__$3 \x3d cljs.core.next(seq18671__$2);\nvar G__18675 \x3d cljs.core.first(seq18671__$3);\nvar seq18671__$4 \x3d cljs.core.next(seq18671__$3);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18672,G__18673,G__18674,G__18675,seq18671__$4);\n}));\n\n(cljs.core.list_STAR_.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Returns a new, transient version of the collection, in constant time.\n */\ncljs.core.transient$ \x3d (function cljs$core$transient(coll){\nreturn cljs.core._as_transient(coll);\n});\n/**\n * Returns a new, persistent version of the transient collection, in\n * constant time. The transient collection cannot be used after this\n * call, any such use will throw an exception.\n */\ncljs.core.persistent_BANG_ \x3d (function cljs$core$persistent_BANG_(tcoll){\nreturn cljs.core._persistent_BANG_(tcoll);\n});\n/**\n * Adds val to the transient collection, and return tcoll. The \x27addition\x27\n * may happen at different \x27places\x27 depending on the concrete type.\n */\ncljs.core.conj_BANG_ \x3d (function cljs$core$conj_BANG_(var_args){\nvar G__18681 \x3d arguments.length;\nswitch (G__18681) {\ncase 0:\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22021 \x3d arguments.length;\nvar i__5727__auto___22022 \x3d (0);\nwhile(true){\nif((i__5727__auto___22022 \x3c len__5726__auto___22021)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22022]));\n\nvar G__22027 \x3d (i__5727__auto___22022 + (1));\ni__5727__auto___22022 \x3d G__22027;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\n}));\n\n(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (tcoll){\nreturn tcoll;\n}));\n\n(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (tcoll,val){\nreturn cljs.core._conj_BANG_(tcoll,val);\n}));\n\n(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tcoll,val,vals){\nwhile(true){\nvar ntcoll \x3d cljs.core._conj_BANG_(tcoll,val);\nif(cljs.core.truth_(vals)){\nvar G__22035 \x3d ntcoll;\nvar G__22036 \x3d cljs.core.first(vals);\nvar G__22037 \x3d cljs.core.next(vals);\ntcoll \x3d G__22035;\nval \x3d G__22036;\nvals \x3d G__22037;\ncontinue;\n} else {\nreturn ntcoll;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.conj_BANG_.cljs$lang$applyTo \x3d (function (seq18678){\nvar G__18679 \x3d cljs.core.first(seq18678);\nvar seq18678__$1 \x3d cljs.core.next(seq18678);\nvar G__18680 \x3d cljs.core.first(seq18678__$1);\nvar seq18678__$2 \x3d cljs.core.next(seq18678__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18679,G__18680,seq18678__$2);\n}));\n\n(cljs.core.conj_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * When applied to a transient map, adds mapping of key(s) to\n * val(s). When applied to a transient vector, sets the val at index.\n * Note - index must be \x3c\x3d (count vector). Returns coll.\n */\ncljs.core.assoc_BANG_ \x3d (function cljs$core$assoc_BANG_(var_args){\nvar G__18687 \x3d arguments.length;\nswitch (G__18687) {\ncase 3:\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22045 \x3d arguments.length;\nvar i__5727__auto___22046 \x3d (0);\nwhile(true){\nif((i__5727__auto___22046 \x3c len__5726__auto___22045)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22046]));\n\nvar G__22049 \x3d (i__5727__auto___22046 + (1));\ni__5727__auto___22046 \x3d G__22049;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (tcoll,key,val){\nreturn cljs.core._assoc_BANG_(tcoll,key,val);\n}));\n\n(cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tcoll,key,val,kvs){\nwhile(true){\nvar ntcoll \x3d cljs.core._assoc_BANG_(tcoll,key,val);\nif(cljs.core.truth_(kvs)){\nvar G__22055 \x3d ntcoll;\nvar G__22056 \x3d cljs.core.first(kvs);\nvar G__22057 \x3d cljs.core.second(kvs);\nvar G__22058 \x3d cljs.core.nnext(kvs);\ntcoll \x3d G__22055;\nkey \x3d G__22056;\nval \x3d G__22057;\nkvs \x3d G__22058;\ncontinue;\n} else {\nreturn ntcoll;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.assoc_BANG_.cljs$lang$applyTo \x3d (function (seq18683){\nvar G__18684 \x3d cljs.core.first(seq18683);\nvar seq18683__$1 \x3d cljs.core.next(seq18683);\nvar G__18685 \x3d cljs.core.first(seq18683__$1);\nvar seq18683__$2 \x3d cljs.core.next(seq18683__$1);\nvar G__18686 \x3d cljs.core.first(seq18683__$2);\nvar seq18683__$3 \x3d cljs.core.next(seq18683__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18684,G__18685,G__18686,seq18683__$3);\n}));\n\n(cljs.core.assoc_BANG_.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns a transient map that doesn\x27t contain a mapping for key(s).\n */\ncljs.core.dissoc_BANG_ \x3d (function cljs$core$dissoc_BANG_(var_args){\nvar G__18692 \x3d arguments.length;\nswitch (G__18692) {\ncase 2:\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22060 \x3d arguments.length;\nvar i__5727__auto___22061 \x3d (0);\nwhile(true){\nif((i__5727__auto___22061 \x3c len__5726__auto___22060)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22061]));\n\nvar G__22063 \x3d (i__5727__auto___22061 + (1));\ni__5727__auto___22061 \x3d G__22063;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (tcoll,key){\nreturn cljs.core._dissoc_BANG_(tcoll,key);\n}));\n\n(cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tcoll,key,ks){\nwhile(true){\nvar ntcoll \x3d cljs.core._dissoc_BANG_(tcoll,key);\nif(cljs.core.truth_(ks)){\nvar G__22065 \x3d ntcoll;\nvar G__22066 \x3d cljs.core.first(ks);\nvar G__22067 \x3d cljs.core.next(ks);\ntcoll \x3d G__22065;\nkey \x3d G__22066;\nks \x3d G__22067;\ncontinue;\n} else {\nreturn ntcoll;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.dissoc_BANG_.cljs$lang$applyTo \x3d (function (seq18689){\nvar G__18690 \x3d cljs.core.first(seq18689);\nvar seq18689__$1 \x3d cljs.core.next(seq18689);\nvar G__18691 \x3d cljs.core.first(seq18689__$1);\nvar seq18689__$2 \x3d cljs.core.next(seq18689__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18690,G__18691,seq18689__$2);\n}));\n\n(cljs.core.dissoc_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Removes the last item from a transient vector. If\n * the collection is empty, throws an exception. Returns tcoll\n */\ncljs.core.pop_BANG_ \x3d (function cljs$core$pop_BANG_(tcoll){\nreturn cljs.core._pop_BANG_(tcoll);\n});\n/**\n * disj[oin]. Returns a transient set of the same (hashed/sorted) type, that\n * does not contain key(s).\n */\ncljs.core.disj_BANG_ \x3d (function cljs$core$disj_BANG_(var_args){\nvar G__18697 \x3d arguments.length;\nswitch (G__18697) {\ncase 2:\nreturn cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22070 \x3d arguments.length;\nvar i__5727__auto___22071 \x3d (0);\nwhile(true){\nif((i__5727__auto___22071 \x3c len__5726__auto___22070)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22071]));\n\nvar G__22072 \x3d (i__5727__auto___22071 + (1));\ni__5727__auto___22071 \x3d G__22072;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (tcoll,val){\nreturn cljs.core._disjoin_BANG_(tcoll,val);\n}));\n\n(cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (tcoll,val,vals){\nwhile(true){\nvar ntcoll \x3d cljs.core._disjoin_BANG_(tcoll,val);\nif(cljs.core.truth_(vals)){\nvar G__22076 \x3d ntcoll;\nvar G__22077 \x3d cljs.core.first(vals);\nvar G__22078 \x3d cljs.core.next(vals);\ntcoll \x3d G__22076;\nval \x3d G__22077;\nvals \x3d G__22078;\ncontinue;\n} else {\nreturn ntcoll;\n}\nbreak;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.disj_BANG_.cljs$lang$applyTo \x3d (function (seq18694){\nvar G__18695 \x3d cljs.core.first(seq18694);\nvar seq18694__$1 \x3d cljs.core.next(seq18694);\nvar G__18696 \x3d cljs.core.first(seq18694__$1);\nvar seq18694__$2 \x3d cljs.core.next(seq18694__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18695,G__18696,seq18694__$2);\n}));\n\n(cljs.core.disj_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n\ncljs.core.apply_to \x3d (function cljs$core$apply_to(f,argc,args){\nvar args__$1 \x3d cljs.core.seq(args);\nif((argc \x3d\x3d\x3d (0))){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n} else {\nvar a1 \x3d cljs.core._first(args__$1);\nvar args__$2 \x3d cljs.core._rest(args__$1);\nif((argc \x3d\x3d\x3d (1))){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(a1) : f.call(null, a1));\n} else {\nvar b2 \x3d cljs.core._first(args__$2);\nvar args__$3 \x3d cljs.core._rest(args__$2);\nif((argc \x3d\x3d\x3d (2))){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(a1,b2) : f.call(null, a1,b2));\n} else {\nvar c3 \x3d cljs.core._first(args__$3);\nvar args__$4 \x3d cljs.core._rest(args__$3);\nif((argc \x3d\x3d\x3d (3))){\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(a1,b2,c3) : f.call(null, a1,b2,c3));\n} else {\nvar d4 \x3d cljs.core._first(args__$4);\nvar args__$5 \x3d cljs.core._rest(args__$4);\nif((argc \x3d\x3d\x3d (4))){\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(a1,b2,c3,d4) : f.call(null, a1,b2,c3,d4));\n} else {\nvar e5 \x3d cljs.core._first(args__$5);\nvar args__$6 \x3d cljs.core._rest(args__$5);\nif((argc \x3d\x3d\x3d (5))){\nreturn (f.cljs$core$IFn$_invoke$arity$5 ? f.cljs$core$IFn$_invoke$arity$5(a1,b2,c3,d4,e5) : f.call(null, a1,b2,c3,d4,e5));\n} else {\nvar f6 \x3d cljs.core._first(args__$6);\nvar args__$7 \x3d cljs.core._rest(args__$6);\nif((argc \x3d\x3d\x3d (6))){\nreturn (f.cljs$core$IFn$_invoke$arity$6 ? f.cljs$core$IFn$_invoke$arity$6(a1,b2,c3,d4,e5,f6) : f.call(null, a1,b2,c3,d4,e5,f6));\n} else {\nvar g7 \x3d cljs.core._first(args__$7);\nvar args__$8 \x3d cljs.core._rest(args__$7);\nif((argc \x3d\x3d\x3d (7))){\nreturn (f.cljs$core$IFn$_invoke$arity$7 ? f.cljs$core$IFn$_invoke$arity$7(a1,b2,c3,d4,e5,f6,g7) : f.call(null, a1,b2,c3,d4,e5,f6,g7));\n} else {\nvar h8 \x3d cljs.core._first(args__$8);\nvar args__$9 \x3d cljs.core._rest(args__$8);\nif((argc \x3d\x3d\x3d (8))){\nreturn (f.cljs$core$IFn$_invoke$arity$8 ? f.cljs$core$IFn$_invoke$arity$8(a1,b2,c3,d4,e5,f6,g7,h8) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8));\n} else {\nvar i9 \x3d cljs.core._first(args__$9);\nvar args__$10 \x3d cljs.core._rest(args__$9);\nif((argc \x3d\x3d\x3d (9))){\nreturn (f.cljs$core$IFn$_invoke$arity$9 ? f.cljs$core$IFn$_invoke$arity$9(a1,b2,c3,d4,e5,f6,g7,h8,i9) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9));\n} else {\nvar j10 \x3d cljs.core._first(args__$10);\nvar args__$11 \x3d cljs.core._rest(args__$10);\nif((argc \x3d\x3d\x3d (10))){\nreturn (f.cljs$core$IFn$_invoke$arity$10 ? f.cljs$core$IFn$_invoke$arity$10(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10));\n} else {\nvar k11 \x3d cljs.core._first(args__$11);\nvar args__$12 \x3d cljs.core._rest(args__$11);\nif((argc \x3d\x3d\x3d (11))){\nreturn (f.cljs$core$IFn$_invoke$arity$11 ? f.cljs$core$IFn$_invoke$arity$11(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11));\n} else {\nvar l12 \x3d cljs.core._first(args__$12);\nvar args__$13 \x3d cljs.core._rest(args__$12);\nif((argc \x3d\x3d\x3d (12))){\nreturn (f.cljs$core$IFn$_invoke$arity$12 ? f.cljs$core$IFn$_invoke$arity$12(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12));\n} else {\nvar m13 \x3d cljs.core._first(args__$13);\nvar args__$14 \x3d cljs.core._rest(args__$13);\nif((argc \x3d\x3d\x3d (13))){\nreturn (f.cljs$core$IFn$_invoke$arity$13 ? f.cljs$core$IFn$_invoke$arity$13(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13));\n} else {\nvar n14 \x3d cljs.core._first(args__$14);\nvar args__$15 \x3d cljs.core._rest(args__$14);\nif((argc \x3d\x3d\x3d (14))){\nreturn (f.cljs$core$IFn$_invoke$arity$14 ? f.cljs$core$IFn$_invoke$arity$14(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14));\n} else {\nvar o15 \x3d cljs.core._first(args__$15);\nvar args__$16 \x3d cljs.core._rest(args__$15);\nif((argc \x3d\x3d\x3d (15))){\nreturn (f.cljs$core$IFn$_invoke$arity$15 ? f.cljs$core$IFn$_invoke$arity$15(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15));\n} else {\nvar p16 \x3d cljs.core._first(args__$16);\nvar args__$17 \x3d cljs.core._rest(args__$16);\nif((argc \x3d\x3d\x3d (16))){\nreturn (f.cljs$core$IFn$_invoke$arity$16 ? f.cljs$core$IFn$_invoke$arity$16(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16));\n} else {\nvar q17 \x3d cljs.core._first(args__$17);\nvar args__$18 \x3d cljs.core._rest(args__$17);\nif((argc \x3d\x3d\x3d (17))){\nreturn (f.cljs$core$IFn$_invoke$arity$17 ? f.cljs$core$IFn$_invoke$arity$17(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17));\n} else {\nvar r18 \x3d cljs.core._first(args__$18);\nvar args__$19 \x3d cljs.core._rest(args__$18);\nif((argc \x3d\x3d\x3d (18))){\nreturn (f.cljs$core$IFn$_invoke$arity$18 ? f.cljs$core$IFn$_invoke$arity$18(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18));\n} else {\nvar s19 \x3d cljs.core._first(args__$19);\nvar args__$20 \x3d cljs.core._rest(args__$19);\nif((argc \x3d\x3d\x3d (19))){\nreturn (f.cljs$core$IFn$_invoke$arity$19 ? f.cljs$core$IFn$_invoke$arity$19(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18,s19) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18,s19));\n} else {\nvar t20 \x3d cljs.core._first(args__$20);\nvar args__$21 \x3d cljs.core._rest(args__$20);\nif((argc \x3d\x3d\x3d (20))){\nreturn (f.cljs$core$IFn$_invoke$arity$20 ? f.cljs$core$IFn$_invoke$arity$20(a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18,s19,t20) : f.call(null, a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18,s19,t20));\n} else {\nthrow (new Error(\x22Only up to 20 arguments supported on functions\x22));\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\n\n/**\n * Internal. DO NOT USE! Next without the nil? check.\n */\ncljs.core.next_STAR_ \x3d (function cljs$core$next_STAR_(coll){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (128))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$INext$))))?true:false):false)){\nreturn coll.cljs$core$INext$_next$arity$1(null, );\n} else {\nreturn cljs.core.seq(cljs.core.rest(coll));\n}\n});\n/**\n * Internal. DO NOT USE!\n * Assumes args was already called with seq beforehand!\n */\ncljs.core.apply_to_simple \x3d (function cljs$core$apply_to_simple(var_args){\nvar G__18700 \x3d arguments.length;\nswitch (G__18700) {\ncase 2:\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,args){\nif((args \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$0){\nreturn f.cljs$core$IFn$_invoke$arity$0();\n} else {\nreturn f.call(f);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3(f,cljs.core._first(args),cljs.core.next_STAR_(args));\n}\n}));\n\n(cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,a0,args){\nif((args \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$1){\nreturn f.cljs$core$IFn$_invoke$arity$1(a0);\n} else {\nreturn f.call(f,a0);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4(f,a0,cljs.core._first(args),cljs.core.next_STAR_(args));\n}\n}));\n\n(cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,a0,a1,args){\nif((args \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$2){\nreturn f.cljs$core$IFn$_invoke$arity$2(a0,a1);\n} else {\nreturn f.call(f,a0,a1);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5(f,a0,a1,cljs.core._first(args),cljs.core.next_STAR_(args));\n}\n}));\n\n(cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5 \x3d (function (f,a0,a1,a2,args){\nif((args \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$3){\nreturn f.cljs$core$IFn$_invoke$arity$3(a0,a1,a2);\n} else {\nreturn f.call(f,a0,a1,a2);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6(f,a0,a1,a2,cljs.core._first(args),cljs.core.next_STAR_(args));\n}\n}));\n\n(cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6 \x3d (function (f,a0,a1,a2,a3,args){\nif((args \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$4){\nreturn f.cljs$core$IFn$_invoke$arity$4(a0,a1,a2,a3);\n} else {\nreturn f.call(f,a0,a1,a2,a3);\n}\n} else {\nvar a4 \x3d cljs.core._first(args);\nvar next_4 \x3d cljs.core.next(args);\nif((next_4 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$5){\nreturn f.cljs$core$IFn$_invoke$arity$5(a0,a1,a2,a3,a4);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4);\n}\n} else {\nvar a5 \x3d cljs.core._first(next_4);\nvar next_5 \x3d cljs.core.next(next_4);\nif((next_5 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$6){\nreturn f.cljs$core$IFn$_invoke$arity$6(a0,a1,a2,a3,a4,a5);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5);\n}\n} else {\nvar a6 \x3d cljs.core._first(next_5);\nvar next_6 \x3d cljs.core.next(next_5);\nif((next_6 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$7){\nreturn f.cljs$core$IFn$_invoke$arity$7(a0,a1,a2,a3,a4,a5,a6);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6);\n}\n} else {\nvar a7 \x3d cljs.core._first(next_6);\nvar next_7 \x3d cljs.core.next(next_6);\nif((next_7 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$8){\nreturn f.cljs$core$IFn$_invoke$arity$8(a0,a1,a2,a3,a4,a5,a6,a7);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7);\n}\n} else {\nvar a8 \x3d cljs.core._first(next_7);\nvar next_8 \x3d cljs.core.next(next_7);\nif((next_8 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$9){\nreturn f.cljs$core$IFn$_invoke$arity$9(a0,a1,a2,a3,a4,a5,a6,a7,a8);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8);\n}\n} else {\nvar a9 \x3d cljs.core._first(next_8);\nvar next_9 \x3d cljs.core.next(next_8);\nif((next_9 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$10){\nreturn f.cljs$core$IFn$_invoke$arity$10(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);\n}\n} else {\nvar a10 \x3d cljs.core._first(next_9);\nvar next_10 \x3d cljs.core.next(next_9);\nif((next_10 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$11){\nreturn f.cljs$core$IFn$_invoke$arity$11(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);\n}\n} else {\nvar a11 \x3d cljs.core._first(next_10);\nvar next_11 \x3d cljs.core.next(next_10);\nif((next_11 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$12){\nreturn f.cljs$core$IFn$_invoke$arity$12(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);\n}\n} else {\nvar a12 \x3d cljs.core._first(next_11);\nvar next_12 \x3d cljs.core.next(next_11);\nif((next_12 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$13){\nreturn f.cljs$core$IFn$_invoke$arity$13(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12);\n}\n} else {\nvar a13 \x3d cljs.core._first(next_12);\nvar next_13 \x3d cljs.core.next(next_12);\nif((next_13 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$14){\nreturn f.cljs$core$IFn$_invoke$arity$14(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13);\n}\n} else {\nvar a14 \x3d cljs.core._first(next_13);\nvar next_14 \x3d cljs.core.next(next_13);\nif((next_14 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$15){\nreturn f.cljs$core$IFn$_invoke$arity$15(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14);\n}\n} else {\nvar a15 \x3d cljs.core._first(next_14);\nvar next_15 \x3d cljs.core.next(next_14);\nif((next_15 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$16){\nreturn f.cljs$core$IFn$_invoke$arity$16(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15);\n}\n} else {\nvar a16 \x3d cljs.core._first(next_15);\nvar next_16 \x3d cljs.core.next(next_15);\nif((next_16 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$17){\nreturn f.cljs$core$IFn$_invoke$arity$17(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16);\n}\n} else {\nvar a17 \x3d cljs.core._first(next_16);\nvar next_17 \x3d cljs.core.next(next_16);\nif((next_17 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$18){\nreturn f.cljs$core$IFn$_invoke$arity$18(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17);\n}\n} else {\nvar a18 \x3d cljs.core._first(next_17);\nvar next_18 \x3d cljs.core.next(next_17);\nif((next_18 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$19){\nreturn f.cljs$core$IFn$_invoke$arity$19(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18);\n}\n} else {\nvar a19 \x3d cljs.core._first(next_18);\nvar next_19 \x3d cljs.core.next(next_18);\nif((next_19 \x3d\x3d null)){\nif(f.cljs$core$IFn$_invoke$arity$20){\nreturn f.cljs$core$IFn$_invoke$arity$20(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19);\n} else {\nreturn f.call(f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19);\n}\n} else {\nvar arr__5641__auto__ \x3d [a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19];\nvar s__5642__auto___22183 \x3d next_19;\nwhile(true){\nif(s__5642__auto___22183){\narr__5641__auto__.push(cljs.core._first(s__5642__auto___22183));\n\nvar G__22184 \x3d cljs.core.next(s__5642__auto___22183);\ns__5642__auto___22183 \x3d G__22184;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn f.apply(f,arr__5641__auto__);\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(cljs.core.apply_to_simple.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Applies fn f to the argument list formed by prepending intervening arguments to args.\n */\ncljs.core.apply \x3d (function cljs$core$apply(var_args){\nvar G__18708 \x3d arguments.length;\nswitch (G__18708) {\ncase 2:\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22190 \x3d arguments.length;\nvar i__5727__auto___22191 \x3d (0);\nwhile(true){\nif((i__5727__auto___22191 \x3c len__5726__auto___22190)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22191]));\n\nvar G__22192 \x3d (i__5727__auto___22191 + (1));\ni__5727__auto___22191 \x3d G__22192;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((5) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((5)),(0),null)):null);\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.apply.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,args){\nif(f.cljs$lang$applyTo){\nvar fixed_arity \x3d f.cljs$lang$maxFixedArity;\nvar bc \x3d cljs.core.bounded_count((fixed_arity + (1)),args);\nif((bc \x3c\x3d fixed_arity)){\nreturn cljs.core.apply_to(f,bc,args);\n} else {\nreturn f.cljs$lang$applyTo(args);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$2(f,cljs.core.seq(args));\n}\n}));\n\n(cljs.core.apply.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,x,args){\nif(f.cljs$lang$applyTo){\nvar arglist \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(x,args);\nvar fixed_arity \x3d f.cljs$lang$maxFixedArity;\nvar bc \x3d (cljs.core.bounded_count(fixed_arity,args) + (1));\nif((bc \x3c\x3d fixed_arity)){\nreturn cljs.core.apply_to(f,bc,arglist);\n} else {\nreturn f.cljs$lang$applyTo(arglist);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3(f,x,cljs.core.seq(args));\n}\n}));\n\n(cljs.core.apply.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,x,y,args){\nif(f.cljs$lang$applyTo){\nvar arglist \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(x,y,args);\nvar fixed_arity \x3d f.cljs$lang$maxFixedArity;\nvar bc \x3d ((2) + cljs.core.bounded_count((fixed_arity - (1)),args));\nif((bc \x3c\x3d fixed_arity)){\nreturn cljs.core.apply_to(f,bc,arglist);\n} else {\nreturn f.cljs$lang$applyTo(arglist);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4(f,x,y,cljs.core.seq(args));\n}\n}));\n\n(cljs.core.apply.cljs$core$IFn$_invoke$arity$5 \x3d (function (f,x,y,z,args){\nif(f.cljs$lang$applyTo){\nvar arglist \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(x,y,z,args);\nvar fixed_arity \x3d f.cljs$lang$maxFixedArity;\nvar bc \x3d ((3) + cljs.core.bounded_count((fixed_arity - (2)),args));\nif((bc \x3c\x3d fixed_arity)){\nreturn cljs.core.apply_to(f,bc,arglist);\n} else {\nreturn f.cljs$lang$applyTo(arglist);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5(f,x,y,z,cljs.core.seq(args));\n}\n}));\n\n(cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,a,b,c,d,args){\nif(f.cljs$lang$applyTo){\nvar spread_args \x3d cljs.core.spread(args);\nvar arglist \x3d cljs.core.cons(a,cljs.core.cons(b,cljs.core.cons(c,cljs.core.cons(d,spread_args))));\nvar fixed_arity \x3d f.cljs$lang$maxFixedArity;\nvar bc \x3d ((4) + cljs.core.bounded_count((fixed_arity - (3)),spread_args));\nif((bc \x3c\x3d fixed_arity)){\nreturn cljs.core.apply_to(f,bc,arglist);\n} else {\nreturn f.cljs$lang$applyTo(arglist);\n}\n} else {\nreturn cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6(f,a,b,c,d,cljs.core.spread(args));\n}\n}));\n\n/** @this {Function} */\n(cljs.core.apply.cljs$lang$applyTo \x3d (function (seq18702){\nvar G__18703 \x3d cljs.core.first(seq18702);\nvar seq18702__$1 \x3d cljs.core.next(seq18702);\nvar G__18704 \x3d cljs.core.first(seq18702__$1);\nvar seq18702__$2 \x3d cljs.core.next(seq18702__$1);\nvar G__18705 \x3d cljs.core.first(seq18702__$2);\nvar seq18702__$3 \x3d cljs.core.next(seq18702__$2);\nvar G__18706 \x3d cljs.core.first(seq18702__$3);\nvar seq18702__$4 \x3d cljs.core.next(seq18702__$3);\nvar G__18707 \x3d cljs.core.first(seq18702__$4);\nvar seq18702__$5 \x3d cljs.core.next(seq18702__$4);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18703,G__18704,G__18705,G__18706,G__18707,seq18702__$5);\n}));\n\n(cljs.core.apply.cljs$lang$maxFixedArity \x3d (5));\n\ncljs.core.__destructure_map \x3d (function cljs$core$__destructure_map(gmap){\nif((((!((gmap \x3d\x3d null))))?(((((gmap.cljs$lang$protocol_mask$partition0$ \x26 (64))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d gmap.cljs$core$ISeq$))))?true:false):false)){\nif(cljs.core.next(gmap)){\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc(cljs.core.to_array(gmap));\n} else {\nif(cljs.core.seq(gmap)){\nreturn cljs.core.first(gmap);\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}\n} else {\nreturn gmap;\n}\n});\n/**\n * Returns an object of the same type and value as obj, with\n * (apply f (meta obj) args) as its metadata.\n */\ncljs.core.vary_meta \x3d (function cljs$core$vary_meta(var_args){\nvar G__18718 \x3d arguments.length;\nswitch (G__18718) {\ncase 2:\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22221 \x3d arguments.length;\nvar i__5727__auto___22222 \x3d (0);\nwhile(true){\nif((i__5727__auto___22222 \x3c len__5726__auto___22221)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22222]));\n\nvar G__22227 \x3d (i__5727__auto___22222 + (1));\ni__5727__auto___22222 \x3d G__22227;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((6) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((6)),(0),null)):null);\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$2 \x3d (function (obj,f){\nreturn cljs.core.with_meta(obj,(function (){var G__18719 \x3d cljs.core.meta(obj);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18719) : f.call(null, G__18719));\n})());\n}));\n\n(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3 \x3d (function (obj,f,a){\nreturn cljs.core.with_meta(obj,(function (){var G__18720 \x3d cljs.core.meta(obj);\nvar G__18721 \x3d a;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18720,G__18721) : f.call(null, G__18720,G__18721));\n})());\n}));\n\n(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4 \x3d (function (obj,f,a,b){\nreturn cljs.core.with_meta(obj,(function (){var G__18722 \x3d cljs.core.meta(obj);\nvar G__18723 \x3d a;\nvar G__18724 \x3d b;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18722,G__18723,G__18724) : f.call(null, G__18722,G__18723,G__18724));\n})());\n}));\n\n(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5 \x3d (function (obj,f,a,b,c){\nreturn cljs.core.with_meta(obj,(function (){var G__18725 \x3d cljs.core.meta(obj);\nvar G__18726 \x3d a;\nvar G__18727 \x3d b;\nvar G__18728 \x3d c;\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(G__18725,G__18726,G__18727,G__18728) : f.call(null, G__18725,G__18726,G__18727,G__18728));\n})());\n}));\n\n(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$6 \x3d (function (obj,f,a,b,c,d){\nreturn cljs.core.with_meta(obj,(function (){var G__18729 \x3d cljs.core.meta(obj);\nvar G__18730 \x3d a;\nvar G__18731 \x3d b;\nvar G__18732 \x3d c;\nvar G__18733 \x3d d;\nreturn (f.cljs$core$IFn$_invoke$arity$5 ? f.cljs$core$IFn$_invoke$arity$5(G__18729,G__18730,G__18731,G__18732,G__18733) : f.call(null, G__18729,G__18730,G__18731,G__18732,G__18733));\n})());\n}));\n\n(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$variadic \x3d (function (obj,f,a,b,c,d,args){\nreturn cljs.core.with_meta(obj,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(f,cljs.core.meta(obj),a,b,c,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d,args], 0)));\n}));\n\n/** @this {Function} */\n(cljs.core.vary_meta.cljs$lang$applyTo \x3d (function (seq18711){\nvar G__18712 \x3d cljs.core.first(seq18711);\nvar seq18711__$1 \x3d cljs.core.next(seq18711);\nvar G__18713 \x3d cljs.core.first(seq18711__$1);\nvar seq18711__$2 \x3d cljs.core.next(seq18711__$1);\nvar G__18714 \x3d cljs.core.first(seq18711__$2);\nvar seq18711__$3 \x3d cljs.core.next(seq18711__$2);\nvar G__18715 \x3d cljs.core.first(seq18711__$3);\nvar seq18711__$4 \x3d cljs.core.next(seq18711__$3);\nvar G__18716 \x3d cljs.core.first(seq18711__$4);\nvar seq18711__$5 \x3d cljs.core.next(seq18711__$4);\nvar G__18717 \x3d cljs.core.first(seq18711__$5);\nvar seq18711__$6 \x3d cljs.core.next(seq18711__$5);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18712,G__18713,G__18714,G__18715,G__18716,G__18717,seq18711__$6);\n}));\n\n(cljs.core.vary_meta.cljs$lang$maxFixedArity \x3d (6));\n\n/**\n * Same as (not (\x3d obj1 obj2))\n */\ncljs.core.not_EQ_ \x3d (function cljs$core$not_EQ_(var_args){\nvar G__18738 \x3d arguments.length;\nswitch (G__18738) {\ncase 1:\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22247 \x3d arguments.length;\nvar i__5727__auto___22248 \x3d (0);\nwhile(true){\nif((i__5727__auto___22248 \x3c len__5726__auto___22247)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22248]));\n\nvar G__22249 \x3d (i__5727__auto___22248 + (1));\ni__5727__auto___22248 \x3d G__22249;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn false;\n}));\n\n(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,y){\nreturn (!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)));\n}));\n\n(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,y,more){\nreturn cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core._EQ_,x,y,more));\n}));\n\n/** @this {Function} */\n(cljs.core.not_EQ_.cljs$lang$applyTo \x3d (function (seq18735){\nvar G__18736 \x3d cljs.core.first(seq18735);\nvar seq18735__$1 \x3d cljs.core.next(seq18735);\nvar G__18737 \x3d cljs.core.first(seq18735__$1);\nvar seq18735__$2 \x3d cljs.core.next(seq18735__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18736,G__18737,seq18735__$2);\n}));\n\n(cljs.core.not_EQ_.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * If coll is empty, returns nil, else coll\n */\ncljs.core.not_empty \x3d (function cljs$core$not_empty(coll){\nif(cljs.core.seq(coll)){\nreturn coll;\n} else {\nreturn null;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.t_cljs$core18739 \x3d (function (meta18740){\nthis.meta18740 \x3d meta18740;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.t_cljs$core18739.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_18741,meta18740__$1){\nvar self__ \x3d this;\nvar _18741__$1 \x3d this;\nreturn (new cljs.core.t_cljs$core18739(meta18740__$1));\n}));\n\n(cljs.core.t_cljs$core18739.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_18741){\nvar self__ \x3d this;\nvar _18741__$1 \x3d this;\nreturn self__.meta18740;\n}));\n\n(cljs.core.t_cljs$core18739.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn false;\n}));\n\n(cljs.core.t_cljs$core18739.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22No such element\x22));\n}));\n\n(cljs.core.t_cljs$core18739.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.t_cljs$core18739.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta18740\x22,\x22meta18740\x22,660539765,null)], null);\n}));\n\n(cljs.core.t_cljs$core18739.cljs$lang$type \x3d true);\n\n(cljs.core.t_cljs$core18739.cljs$lang$ctorStr \x3d \x22cljs.core/t_cljs$core18739\x22);\n\n(cljs.core.t_cljs$core18739.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/t_cljs$core18739\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/t_cljs$core18739.\n */\ncljs.core.__GT_t_cljs$core18739 \x3d (function cljs$core$__GT_t_cljs$core18739(meta18740){\nreturn (new cljs.core.t_cljs$core18739(meta18740));\n});\n\n\ncljs.core.nil_iter \x3d (function cljs$core$nil_iter(){\nreturn (new cljs.core.t_cljs$core18739(cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n*/\ncljs.core.StringIter \x3d (function (s,i){\nthis.s \x3d s;\nthis.i \x3d i;\n});\n(cljs.core.StringIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.i \x3c self__.s.length);\n}));\n\n(cljs.core.StringIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d self__.s.charAt(self__.i);\n(self__.i \x3d (self__.i + (1)));\n\nreturn ret;\n}));\n\n(cljs.core.StringIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.StringIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.StringIter.cljs$lang$type \x3d true);\n\n(cljs.core.StringIter.cljs$lang$ctorStr \x3d \x22cljs.core/StringIter\x22);\n\n(cljs.core.StringIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/StringIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/StringIter.\n */\ncljs.core.__GT_StringIter \x3d (function cljs$core$__GT_StringIter(s,i){\nreturn (new cljs.core.StringIter(s,i));\n});\n\ncljs.core.string_iter \x3d (function cljs$core$string_iter(x){\nreturn (new cljs.core.StringIter(x,(0)));\n});\n\n/**\n* @constructor\n*/\ncljs.core.ArrayIter \x3d (function (arr,i){\nthis.arr \x3d arr;\nthis.i \x3d i;\n});\n(cljs.core.ArrayIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.i \x3c self__.arr.length);\n}));\n\n(cljs.core.ArrayIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d (self__.arr[self__.i]);\n(self__.i \x3d (self__.i + (1)));\n\nreturn ret;\n}));\n\n(cljs.core.ArrayIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.ArrayIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ArrayIter.cljs$lang$type \x3d true);\n\n(cljs.core.ArrayIter.cljs$lang$ctorStr \x3d \x22cljs.core/ArrayIter\x22);\n\n(cljs.core.ArrayIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ArrayIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ArrayIter.\n */\ncljs.core.__GT_ArrayIter \x3d (function cljs$core$__GT_ArrayIter(arr,i){\nreturn (new cljs.core.ArrayIter(arr,i));\n});\n\ncljs.core.array_iter \x3d (function cljs$core$array_iter(x){\nreturn (new cljs.core.ArrayIter(x,(0)));\n});\ncljs.core.INIT \x3d ({});\ncljs.core.START \x3d ({});\n\n/**\n* @constructor\n*/\ncljs.core.SeqIter \x3d (function (_seq,_next){\nthis._seq \x3d _seq;\nthis._next \x3d _next;\n});\n(cljs.core.SeqIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((self__._seq \x3d\x3d\x3d cljs.core.INIT)){\n(self__._seq \x3d cljs.core.START);\n\n(self__._next \x3d cljs.core.seq(self__._next));\n} else {\nif((self__._seq \x3d\x3d\x3d self__._next)){\n(self__._next \x3d cljs.core.next(self__._seq));\n} else {\n}\n}\n\nreturn (!((self__._next \x3d\x3d null)));\n}));\n\n(cljs.core.SeqIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((!(this$.hasNext()))){\nthrow (new Error(\x22No such element\x22));\n} else {\n(self__._seq \x3d self__._next);\n\nreturn cljs.core.first(self__._next);\n}\n}));\n\n(cljs.core.SeqIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.SeqIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22_seq\x22,\x22_seq\x22,-449557847,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_next\x22,\x22_next\x22,101877036,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.SeqIter.cljs$lang$type \x3d true);\n\n(cljs.core.SeqIter.cljs$lang$ctorStr \x3d \x22cljs.core/SeqIter\x22);\n\n(cljs.core.SeqIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/SeqIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/SeqIter.\n */\ncljs.core.__GT_SeqIter \x3d (function cljs$core$__GT_SeqIter(_seq,_next){\nreturn (new cljs.core.SeqIter(_seq,_next));\n});\n\ncljs.core.seq_iter \x3d (function cljs$core$seq_iter(coll){\nreturn (new cljs.core.SeqIter(cljs.core.INIT,coll));\n});\ncljs.core.iter \x3d (function cljs$core$iter(coll){\nif(cljs.core.iterable_QMARK_(coll)){\nreturn cljs.core._iterator(coll);\n} else {\nif((coll \x3d\x3d null)){\nreturn cljs.core.nil_iter();\n} else {\nif(typeof coll \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.string_iter(coll);\n} else {\nif(cljs.core.array_QMARK_(coll)){\nreturn cljs.core.array_iter(coll);\n} else {\nif(cljs.core.seqable_QMARK_(coll)){\nreturn cljs.core.seq_iter(coll);\n} else {\nthrow (new Error([\x22Cannot create iterator from \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(coll)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.Many \x3d (function (vals){\nthis.vals \x3d vals;\n});\n(cljs.core.Many.prototype.add \x3d (function (o){\nvar self__ \x3d this;\nvar this$ \x3d this;\nself__.vals.push(o);\n\nreturn this$;\n}));\n\n(cljs.core.Many.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn self__.vals.shift();\n}));\n\n(cljs.core.Many.prototype.isEmpty \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn (self__.vals.length \x3d\x3d\x3d (0));\n}));\n\n(cljs.core.Many.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn [\x22Many: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.vals)].join(\x27\x27);\n}));\n\n(cljs.core.Many.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22vals\x22,\x22vals\x22,-1886377036,null)], null);\n}));\n\n(cljs.core.Many.cljs$lang$type \x3d true);\n\n(cljs.core.Many.cljs$lang$ctorStr \x3d \x22cljs.core/Many\x22);\n\n(cljs.core.Many.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Many\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Many.\n */\ncljs.core.__GT_Many \x3d (function cljs$core$__GT_Many(vals){\nreturn (new cljs.core.Many(vals));\n});\n\ncljs.core.NONE \x3d ({});\n\n/**\n* @constructor\n*/\ncljs.core.Single \x3d (function (val){\nthis.val \x3d val;\n});\n(cljs.core.Single.prototype.add \x3d (function (o){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((self__.val \x3d\x3d\x3d cljs.core.NONE)){\n(self__.val \x3d o);\n\nreturn this$;\n} else {\nreturn (new cljs.core.Many([self__.val,o]));\n}\n}));\n\n(cljs.core.Single.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((self__.val \x3d\x3d\x3d cljs.core.NONE)){\nthrow (new Error(\x22Removing object from empty buffer\x22));\n} else {\nvar ret \x3d self__.val;\n(self__.val \x3d cljs.core.NONE);\n\nreturn ret;\n}\n}));\n\n(cljs.core.Single.prototype.isEmpty \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn (self__.val \x3d\x3d\x3d cljs.core.NONE);\n}));\n\n(cljs.core.Single.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn [\x22Single: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.val)].join(\x27\x27);\n}));\n\n(cljs.core.Single.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Single.cljs$lang$type \x3d true);\n\n(cljs.core.Single.cljs$lang$ctorStr \x3d \x22cljs.core/Single\x22);\n\n(cljs.core.Single.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Single\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Single.\n */\ncljs.core.__GT_Single \x3d (function cljs$core$__GT_Single(val){\nreturn (new cljs.core.Single(val));\n});\n\n\n/**\n* @constructor\n*/\ncljs.core.Empty \x3d (function (){\n});\n(cljs.core.Empty.prototype.add \x3d (function (o){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn (new cljs.core.Single(o));\n}));\n\n(cljs.core.Empty.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nthrow (new Error(\x22Removing object from empty buffer\x22));\n}));\n\n(cljs.core.Empty.prototype.isEmpty \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(cljs.core.Empty.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn \x22Empty\x22;\n}));\n\n(cljs.core.Empty.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cljs.core.Empty.cljs$lang$type \x3d true);\n\n(cljs.core.Empty.cljs$lang$ctorStr \x3d \x22cljs.core/Empty\x22);\n\n(cljs.core.Empty.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Empty\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Empty.\n */\ncljs.core.__GT_Empty \x3d (function cljs$core$__GT_Empty(){\nreturn (new cljs.core.Empty());\n});\n\ncljs.core.EMPTY \x3d (new cljs.core.Empty());\n\n/**\n* @constructor\n*/\ncljs.core.MultiIterator \x3d (function (iters){\nthis.iters \x3d iters;\n});\n(cljs.core.MultiIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar iters__$1 \x3d cljs.core.seq(self__.iters);\nwhile(true){\nif((!((iters__$1 \x3d\x3d null)))){\nvar iter \x3d cljs.core.first(iters__$1);\nif((!(iter.hasNext()))){\nreturn false;\n} else {\nvar G__22301 \x3d cljs.core.next(iters__$1);\niters__$1 \x3d G__22301;\ncontinue;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n}));\n\n(cljs.core.MultiIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar nexts \x3d [];\nvar n__5593__auto___22306 \x3d self__.iters.length;\nvar i_22307 \x3d (0);\nwhile(true){\nif((i_22307 \x3c n__5593__auto___22306)){\n(nexts[i_22307] \x3d (self__.iters[i_22307]).next());\n\nvar G__22308 \x3d (i_22307 + (1));\ni_22307 \x3d G__22308;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(nexts,(0));\n}));\n\n(cljs.core.MultiIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22iters\x22,\x22iters\x22,719353031,null)], null);\n}));\n\n(cljs.core.MultiIterator.cljs$lang$type \x3d true);\n\n(cljs.core.MultiIterator.cljs$lang$ctorStr \x3d \x22cljs.core/MultiIterator\x22);\n\n(cljs.core.MultiIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/MultiIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/MultiIterator.\n */\ncljs.core.__GT_MultiIterator \x3d (function cljs$core$__GT_MultiIterator(iters){\nreturn (new cljs.core.MultiIterator(iters));\n});\n\ncljs.core.chunkIteratorSeq \x3d (function cljs$core$chunkIteratorSeq(iter){\nreturn (new cljs.core.LazySeq(null,(function (){\nif(iter.hasNext()){\nvar arr \x3d [];\nvar n \x3d (0);\nwhile(true){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d iter.hasNext();\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (n \x3c (32));\n} else {\nreturn and__5000__auto__;\n}\n})())){\n(arr[n] \x3d iter.next());\n\nvar G__22317 \x3d (n + (1));\nn \x3d G__22317;\ncontinue;\n} else {\nreturn cljs.core.chunk_cons(cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3(arr,(0),n),(cljs.core.chunkIteratorSeq.cljs$core$IFn$_invoke$arity$1 ? cljs.core.chunkIteratorSeq.cljs$core$IFn$_invoke$arity$1(iter) : cljs.core.chunkIteratorSeq.call(null, iter)));\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}),null,null));\n});\n\n/**\n* @constructor\n*/\ncljs.core.TransformerIterator \x3d (function (buffer,_next,completed,xf,sourceIter,multi){\nthis.buffer \x3d buffer;\nthis._next \x3d _next;\nthis.completed \x3d completed;\nthis.xf \x3d xf;\nthis.sourceIter \x3d sourceIter;\nthis.multi \x3d multi;\n});\n(cljs.core.TransformerIterator.prototype.step \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((!((self__._next \x3d\x3d\x3d cljs.core.NONE)))){\nreturn true;\n} else {\nwhile(true){\nif((self__._next \x3d\x3d\x3d cljs.core.NONE)){\nif(self__.buffer.isEmpty()){\nif(self__.completed){\nreturn false;\n} else {\nif(self__.sourceIter.hasNext()){\nvar iter \x3d ((self__.multi)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(self__.xf,cljs.core.cons(null,self__.sourceIter.next())):(function (){var G__18742 \x3d null;\nvar G__18743 \x3d self__.sourceIter.next();\nreturn (self__.xf.cljs$core$IFn$_invoke$arity$2 ? self__.xf.cljs$core$IFn$_invoke$arity$2(G__18742,G__18743) : self__.xf.call(null, G__18742,G__18743));\n})());\nif(cljs.core.reduced_QMARK_(iter)){\n(self__.xf.cljs$core$IFn$_invoke$arity$1 ? self__.xf.cljs$core$IFn$_invoke$arity$1(null) : self__.xf.call(null, null));\n\n(self__.completed \x3d true);\n} else {\n}\n\ncontinue;\n} else {\n(self__.xf.cljs$core$IFn$_invoke$arity$1 ? self__.xf.cljs$core$IFn$_invoke$arity$1(null) : self__.xf.call(null, null));\n\n(self__.completed \x3d true);\n\ncontinue;\n}\n}\n} else {\n(self__._next \x3d self__.buffer.remove());\n\ncontinue;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.TransformerIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.step();\n}));\n\n(cljs.core.TransformerIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif(this$.hasNext()){\nvar ret \x3d self__._next;\n(self__._next \x3d cljs.core.NONE);\n\nreturn ret;\n} else {\nthrow (new Error(\x22No such element\x22));\n}\n}));\n\n(cljs.core.TransformerIterator.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.TransformerIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22buffer\x22,\x22buffer\x22,-2037140571,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_next\x22,\x22_next\x22,101877036,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22completed\x22,\x22completed\x22,1154475024,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22xf\x22,\x22xf\x22,2042434515,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22sourceIter\x22,\x22sourceIter\x22,1068220306,null),new cljs.core.Symbol(null,\x22multi\x22,\x22multi\x22,1450238522,null)], null);\n}));\n\n(cljs.core.TransformerIterator.cljs$lang$type \x3d true);\n\n(cljs.core.TransformerIterator.cljs$lang$ctorStr \x3d \x22cljs.core/TransformerIterator\x22);\n\n(cljs.core.TransformerIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/TransformerIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/TransformerIterator.\n */\ncljs.core.__GT_TransformerIterator \x3d (function cljs$core$__GT_TransformerIterator(buffer,_next,completed,xf,sourceIter,multi){\nreturn (new cljs.core.TransformerIterator(buffer,_next,completed,xf,sourceIter,multi));\n});\n\n(cljs.core.TransformerIterator.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.transformer_iterator \x3d (function cljs$core$transformer_iterator(xform,sourceIter,multi){\nvar iterator \x3d (new cljs.core.TransformerIterator(cljs.core.EMPTY,cljs.core.NONE,false,null,sourceIter,multi));\n(iterator.xf \x3d (function (){var G__18744 \x3d (function() {\nvar G__22331 \x3d null;\nvar G__22331__0 \x3d (function (){\nreturn null;\n});\nvar G__22331__1 \x3d (function (acc){\nreturn acc;\n});\nvar G__22331__2 \x3d (function (acc,o){\n(iterator.buffer \x3d iterator.buffer.add(o));\n\nreturn acc;\n});\nG__22331 \x3d function(acc,o){\nswitch(arguments.length){\ncase 0:\nreturn G__22331__0.call(this);\ncase 1:\nreturn G__22331__1.call(this,acc);\ncase 2:\nreturn G__22331__2.call(this,acc,o);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22331.cljs$core$IFn$_invoke$arity$0 \x3d G__22331__0;\nG__22331.cljs$core$IFn$_invoke$arity$1 \x3d G__22331__1;\nG__22331.cljs$core$IFn$_invoke$arity$2 \x3d G__22331__2;\nreturn G__22331;\n})()\n;\nreturn (xform.cljs$core$IFn$_invoke$arity$1 ? xform.cljs$core$IFn$_invoke$arity$1(G__18744) : xform.call(null, G__18744));\n})());\n\nreturn iterator;\n});\n(cljs.core.TransformerIterator.create \x3d (function (xform,source){\nreturn cljs.core.transformer_iterator(xform,source,false);\n}));\n(cljs.core.TransformerIterator.createMulti \x3d (function (xform,sources){\nreturn cljs.core.transformer_iterator(xform,(new cljs.core.MultiIterator(cljs.core.to_array(sources))),true);\n}));\n/**\n * Coerces coll to a (possibly empty) sequence, if it is not already\n * one. Will not force a lazy seq. (sequence nil) yields (), When a\n * transducer is supplied, returns a lazy sequence of applications of\n * the transform to the items in coll(s), i.e. to the set of first\n * items of each coll, followed by the set of second\n * items in each coll, until any one of the colls is exhausted. Any\n * remaining items in other colls are ignored. The transform should accept\n * number-of-colls arguments\n */\ncljs.core.sequence \x3d (function cljs$core$sequence(var_args){\nvar G__18749 \x3d arguments.length;\nswitch (G__18749) {\ncase 1:\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22338 \x3d arguments.length;\nvar i__5727__auto___22339 \x3d (0);\nwhile(true){\nif((i__5727__auto___22339 \x3c len__5726__auto___22338)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22339]));\n\nvar G__22340 \x3d (i__5727__auto___22339 + (1));\ni__5727__auto___22339 \x3d G__22340;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nif(cljs.core.seq_QMARK_(coll)){\nreturn coll;\n} else {\nvar or__5002__auto__ \x3d cljs.core.seq(coll);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}\n}));\n\n(cljs.core.sequence.cljs$core$IFn$_invoke$arity$2 \x3d (function (xform,coll){\nvar or__5002__auto__ \x3d cljs.core.chunkIteratorSeq(cljs.core.TransformerIterator.create(xform,cljs.core.iter(coll)));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.sequence.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xform,coll,colls){\nvar or__5002__auto__ \x3d cljs.core.chunkIteratorSeq(cljs.core.TransformerIterator.createMulti(xform,(function (){var G__18750 \x3d cljs.core.iter;\nvar G__18751 \x3d cljs.core.cons(coll,colls);\nreturn (cljs.core.map.cljs$core$IFn$_invoke$arity$2 ? cljs.core.map.cljs$core$IFn$_invoke$arity$2(G__18750,G__18751) : cljs.core.map.call(null, G__18750,G__18751));\n})()));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n/** @this {Function} */\n(cljs.core.sequence.cljs$lang$applyTo \x3d (function (seq18746){\nvar G__18747 \x3d cljs.core.first(seq18746);\nvar seq18746__$1 \x3d cljs.core.next(seq18746);\nvar G__18748 \x3d cljs.core.first(seq18746__$1);\nvar seq18746__$2 \x3d cljs.core.next(seq18746__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18747,G__18748,seq18746__$2);\n}));\n\n(cljs.core.sequence.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns true if (pred x) is logical true for every x in coll, else\n * false.\n */\ncljs.core.every_QMARK_ \x3d (function cljs$core$every_QMARK_(pred,coll){\nwhile(true){\nif((cljs.core.seq(coll) \x3d\x3d null)){\nreturn true;\n} else {\nif(cljs.core.truth_((function (){var G__18752 \x3d cljs.core.first(coll);\nreturn (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(G__18752) : pred.call(null, G__18752));\n})())){\nvar G__22347 \x3d pred;\nvar G__22348 \x3d cljs.core.next(coll);\npred \x3d G__22347;\ncoll \x3d G__22348;\ncontinue;\n} else {\nreturn false;\n\n}\n}\nbreak;\n}\n});\n/**\n * Returns false if (pred x) is logical true for every x in\n * coll, else true.\n */\ncljs.core.not_every_QMARK_ \x3d (function cljs$core$not_every_QMARK_(pred,coll){\nreturn (!(cljs.core.every_QMARK_(pred,coll)));\n});\n/**\n * Returns the first logical true value of (pred x) for any x in coll,\n * else nil. One common idiom is to use a set as pred, for example\n * this will return :fred if :fred is in the sequence, otherwise nil:\n * (some #{:fred} coll)\n */\ncljs.core.some \x3d (function cljs$core$some(pred,coll){\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar or__5002__auto__ \x3d (function (){var G__18753 \x3d cljs.core.first(s);\nreturn (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(G__18753) : pred.call(null, G__18753));\n})();\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar G__22352 \x3d pred;\nvar G__22353 \x3d cljs.core.next(s);\npred \x3d G__22352;\ncoll \x3d G__22353;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});\n/**\n * Returns false if (pred x) is logical true for any x in coll,\n * else true.\n */\ncljs.core.not_any_QMARK_ \x3d (function cljs$core$not_any_QMARK_(pred,coll){\nreturn cljs.core.not(cljs.core.some(pred,coll));\n});\n/**\n * Returns true if n is even, throws an exception if n is not an integer\n */\ncljs.core.even_QMARK_ \x3d (function cljs$core$even_QMARK_(n){\nif(cljs.core.integer_QMARK_(n)){\nreturn ((n \x26 (1)) \x3d\x3d\x3d (0));\n} else {\nthrow (new Error([\x22Argument must be an integer: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(n)].join(\x27\x27)));\n}\n});\n/**\n * Returns true if n is odd, throws an exception if n is not an integer\n */\ncljs.core.odd_QMARK_ \x3d (function cljs$core$odd_QMARK_(n){\nreturn (!(cljs.core.even_QMARK_(n)));\n});\n/**\n * Takes a fn f and returns a fn that takes the same arguments as f,\n * has the same effects, if any, and returns the opposite truth value.\n */\ncljs.core.complement \x3d (function cljs$core$complement(f){\nreturn (function() {\nvar G__22355 \x3d null;\nvar G__22355__0 \x3d (function (){\nreturn cljs.core.not((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, )));\n});\nvar G__22355__1 \x3d (function (x){\nreturn cljs.core.not((f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null, x)));\n});\nvar G__22355__2 \x3d (function (x,y){\nreturn cljs.core.not((f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null, x,y)));\n});\nvar G__22355__3 \x3d (function() { \nvar G__22356__delegate \x3d function (x,y,zs){\nreturn cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$4(f,x,y,zs));\n};\nvar G__22356 \x3d function (x,y,var_args){\nvar zs \x3d null;\nif (arguments.length \x3e 2) {\nvar G__22361__i \x3d 0, G__22361__a \x3d new Array(arguments.length - 2);\nwhile (G__22361__i \x3c G__22361__a.length) {G__22361__a[G__22361__i] \x3d arguments[G__22361__i + 2]; ++G__22361__i;}\n zs \x3d new cljs.core.IndexedSeq(G__22361__a,0,null);\n} \nreturn G__22356__delegate.call(this,x,y,zs);};\nG__22356.cljs$lang$maxFixedArity \x3d 2;\nG__22356.cljs$lang$applyTo \x3d (function (arglist__22362){\nvar x \x3d cljs.core.first(arglist__22362);\narglist__22362 \x3d cljs.core.next(arglist__22362);\nvar y \x3d cljs.core.first(arglist__22362);\nvar zs \x3d cljs.core.rest(arglist__22362);\nreturn G__22356__delegate(x,y,zs);\n});\nG__22356.cljs$core$IFn$_invoke$arity$variadic \x3d G__22356__delegate;\nreturn G__22356;\n})()\n;\nG__22355 \x3d function(x,y,var_args){\nvar zs \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22355__0.call(this);\ncase 1:\nreturn G__22355__1.call(this,x);\ncase 2:\nreturn G__22355__2.call(this,x,y);\ndefault:\nvar G__22363 \x3d null;\nif (arguments.length \x3e 2) {\nvar G__22365__i \x3d 0, G__22365__a \x3d new Array(arguments.length - 2);\nwhile (G__22365__i \x3c G__22365__a.length) {G__22365__a[G__22365__i] \x3d arguments[G__22365__i + 2]; ++G__22365__i;}\nG__22363 \x3d new cljs.core.IndexedSeq(G__22365__a,0,null);\n}\nreturn G__22355__3.cljs$core$IFn$_invoke$arity$variadic(x,y, G__22363);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22355.cljs$lang$maxFixedArity \x3d 2;\nG__22355.cljs$lang$applyTo \x3d G__22355__3.cljs$lang$applyTo;\nG__22355.cljs$core$IFn$_invoke$arity$0 \x3d G__22355__0;\nG__22355.cljs$core$IFn$_invoke$arity$1 \x3d G__22355__1;\nG__22355.cljs$core$IFn$_invoke$arity$2 \x3d G__22355__2;\nG__22355.cljs$core$IFn$_invoke$arity$variadic \x3d G__22355__3.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22355;\n})()\n});\n/**\n * Returns a function that takes any number of arguments and returns x.\n */\ncljs.core.constantly \x3d (function cljs$core$constantly(x){\nreturn (function() { \nvar G__22367__delegate \x3d function (args){\nreturn x;\n};\nvar G__22367 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__22368__i \x3d 0, G__22368__a \x3d new Array(arguments.length - 0);\nwhile (G__22368__i \x3c G__22368__a.length) {G__22368__a[G__22368__i] \x3d arguments[G__22368__i + 0]; ++G__22368__i;}\n args \x3d new cljs.core.IndexedSeq(G__22368__a,0,null);\n} \nreturn G__22367__delegate.call(this,args);};\nG__22367.cljs$lang$maxFixedArity \x3d 0;\nG__22367.cljs$lang$applyTo \x3d (function (arglist__22369){\nvar args \x3d cljs.core.seq(arglist__22369);\nreturn G__22367__delegate(args);\n});\nG__22367.cljs$core$IFn$_invoke$arity$variadic \x3d G__22367__delegate;\nreturn G__22367;\n})()\n;\n});\n/**\n * Takes a set of functions and returns a fn that is the composition\n * of those fns. The returned fn takes a variable number of args,\n * applies the rightmost of fns to the args, the next\n * fn (right-to-left) to the result, etc.\n */\ncljs.core.comp \x3d (function cljs$core$comp(var_args){\nvar G__18759 \x3d arguments.length;\nswitch (G__18759) {\ncase 0:\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22374 \x3d arguments.length;\nvar i__5727__auto___22375 \x3d (0);\nwhile(true){\nif((i__5727__auto___22375 \x3c len__5726__auto___22374)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22375]));\n\nvar G__22376 \x3d (i__5727__auto___22375 + (1));\ni__5727__auto___22375 \x3d G__22376;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.comp.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.identity;\n}));\n\n(cljs.core.comp.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn f;\n}));\n\n(cljs.core.comp.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,g){\nreturn (function() {\nvar G__22378 \x3d null;\nvar G__22378__0 \x3d (function (){\nvar G__18760 \x3d (g.cljs$core$IFn$_invoke$arity$0 ? g.cljs$core$IFn$_invoke$arity$0() : g.call(null, ));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18760) : f.call(null, G__18760));\n});\nvar G__22378__1 \x3d (function (x){\nvar G__18761 \x3d (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(x) : g.call(null, x));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18761) : f.call(null, G__18761));\n});\nvar G__22378__2 \x3d (function (x,y){\nvar G__18762 \x3d (g.cljs$core$IFn$_invoke$arity$2 ? g.cljs$core$IFn$_invoke$arity$2(x,y) : g.call(null, x,y));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18762) : f.call(null, G__18762));\n});\nvar G__22378__3 \x3d (function (x,y,z){\nvar G__18763 \x3d (g.cljs$core$IFn$_invoke$arity$3 ? g.cljs$core$IFn$_invoke$arity$3(x,y,z) : g.call(null, x,y,z));\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18763) : f.call(null, G__18763));\n});\nvar G__22378__4 \x3d (function() { \nvar G__22381__delegate \x3d function (x,y,z,args){\nvar G__18764 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$5(g,x,y,z,args);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18764) : f.call(null, G__18764));\n};\nvar G__22381 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22386__i \x3d 0, G__22386__a \x3d new Array(arguments.length - 3);\nwhile (G__22386__i \x3c G__22386__a.length) {G__22386__a[G__22386__i] \x3d arguments[G__22386__i + 3]; ++G__22386__i;}\n args \x3d new cljs.core.IndexedSeq(G__22386__a,0,null);\n} \nreturn G__22381__delegate.call(this,x,y,z,args);};\nG__22381.cljs$lang$maxFixedArity \x3d 3;\nG__22381.cljs$lang$applyTo \x3d (function (arglist__22387){\nvar x \x3d cljs.core.first(arglist__22387);\narglist__22387 \x3d cljs.core.next(arglist__22387);\nvar y \x3d cljs.core.first(arglist__22387);\narglist__22387 \x3d cljs.core.next(arglist__22387);\nvar z \x3d cljs.core.first(arglist__22387);\nvar args \x3d cljs.core.rest(arglist__22387);\nreturn G__22381__delegate(x,y,z,args);\n});\nG__22381.cljs$core$IFn$_invoke$arity$variadic \x3d G__22381__delegate;\nreturn G__22381;\n})()\n;\nG__22378 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22378__0.call(this);\ncase 1:\nreturn G__22378__1.call(this,x);\ncase 2:\nreturn G__22378__2.call(this,x,y);\ncase 3:\nreturn G__22378__3.call(this,x,y,z);\ndefault:\nvar G__22391 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22392__i \x3d 0, G__22392__a \x3d new Array(arguments.length - 3);\nwhile (G__22392__i \x3c G__22392__a.length) {G__22392__a[G__22392__i] \x3d arguments[G__22392__i + 3]; ++G__22392__i;}\nG__22391 \x3d new cljs.core.IndexedSeq(G__22392__a,0,null);\n}\nreturn G__22378__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22391);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22378.cljs$lang$maxFixedArity \x3d 3;\nG__22378.cljs$lang$applyTo \x3d G__22378__4.cljs$lang$applyTo;\nG__22378.cljs$core$IFn$_invoke$arity$0 \x3d G__22378__0;\nG__22378.cljs$core$IFn$_invoke$arity$1 \x3d G__22378__1;\nG__22378.cljs$core$IFn$_invoke$arity$2 \x3d G__22378__2;\nG__22378.cljs$core$IFn$_invoke$arity$3 \x3d G__22378__3;\nG__22378.cljs$core$IFn$_invoke$arity$variadic \x3d G__22378__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22378;\n})()\n}));\n\n(cljs.core.comp.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,g,h){\nreturn (function() {\nvar G__22394 \x3d null;\nvar G__22394__0 \x3d (function (){\nvar G__18765 \x3d (function (){var G__18766 \x3d (h.cljs$core$IFn$_invoke$arity$0 ? h.cljs$core$IFn$_invoke$arity$0() : h.call(null, ));\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(G__18766) : g.call(null, G__18766));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18765) : f.call(null, G__18765));\n});\nvar G__22394__1 \x3d (function (x){\nvar G__18767 \x3d (function (){var G__18768 \x3d (h.cljs$core$IFn$_invoke$arity$1 ? h.cljs$core$IFn$_invoke$arity$1(x) : h.call(null, x));\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(G__18768) : g.call(null, G__18768));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18767) : f.call(null, G__18767));\n});\nvar G__22394__2 \x3d (function (x,y){\nvar G__18769 \x3d (function (){var G__18770 \x3d (h.cljs$core$IFn$_invoke$arity$2 ? h.cljs$core$IFn$_invoke$arity$2(x,y) : h.call(null, x,y));\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(G__18770) : g.call(null, G__18770));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18769) : f.call(null, G__18769));\n});\nvar G__22394__3 \x3d (function (x,y,z){\nvar G__18771 \x3d (function (){var G__18772 \x3d (h.cljs$core$IFn$_invoke$arity$3 ? h.cljs$core$IFn$_invoke$arity$3(x,y,z) : h.call(null, x,y,z));\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(G__18772) : g.call(null, G__18772));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18771) : f.call(null, G__18771));\n});\nvar G__22394__4 \x3d (function() { \nvar G__22412__delegate \x3d function (x,y,z,args){\nvar G__18773 \x3d (function (){var G__18774 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$5(h,x,y,z,args);\nreturn (g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(G__18774) : g.call(null, G__18774));\n})();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18773) : f.call(null, G__18773));\n};\nvar G__22412 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22418__i \x3d 0, G__22418__a \x3d new Array(arguments.length - 3);\nwhile (G__22418__i \x3c G__22418__a.length) {G__22418__a[G__22418__i] \x3d arguments[G__22418__i + 3]; ++G__22418__i;}\n args \x3d new cljs.core.IndexedSeq(G__22418__a,0,null);\n} \nreturn G__22412__delegate.call(this,x,y,z,args);};\nG__22412.cljs$lang$maxFixedArity \x3d 3;\nG__22412.cljs$lang$applyTo \x3d (function (arglist__22422){\nvar x \x3d cljs.core.first(arglist__22422);\narglist__22422 \x3d cljs.core.next(arglist__22422);\nvar y \x3d cljs.core.first(arglist__22422);\narglist__22422 \x3d cljs.core.next(arglist__22422);\nvar z \x3d cljs.core.first(arglist__22422);\nvar args \x3d cljs.core.rest(arglist__22422);\nreturn G__22412__delegate(x,y,z,args);\n});\nG__22412.cljs$core$IFn$_invoke$arity$variadic \x3d G__22412__delegate;\nreturn G__22412;\n})()\n;\nG__22394 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22394__0.call(this);\ncase 1:\nreturn G__22394__1.call(this,x);\ncase 2:\nreturn G__22394__2.call(this,x,y);\ncase 3:\nreturn G__22394__3.call(this,x,y,z);\ndefault:\nvar G__22425 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22426__i \x3d 0, G__22426__a \x3d new Array(arguments.length - 3);\nwhile (G__22426__i \x3c G__22426__a.length) {G__22426__a[G__22426__i] \x3d arguments[G__22426__i + 3]; ++G__22426__i;}\nG__22425 \x3d new cljs.core.IndexedSeq(G__22426__a,0,null);\n}\nreturn G__22394__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22425);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22394.cljs$lang$maxFixedArity \x3d 3;\nG__22394.cljs$lang$applyTo \x3d G__22394__4.cljs$lang$applyTo;\nG__22394.cljs$core$IFn$_invoke$arity$0 \x3d G__22394__0;\nG__22394.cljs$core$IFn$_invoke$arity$1 \x3d G__22394__1;\nG__22394.cljs$core$IFn$_invoke$arity$2 \x3d G__22394__2;\nG__22394.cljs$core$IFn$_invoke$arity$3 \x3d G__22394__3;\nG__22394.cljs$core$IFn$_invoke$arity$variadic \x3d G__22394__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22394;\n})()\n}));\n\n(cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f1,f2,f3,fs){\nvar fs__$1 \x3d cljs.core.reverse(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(f1,f2,f3,fs));\nreturn (function() { \nvar G__22431__delegate \x3d function (args){\nvar ret \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.first(fs__$1),args);\nvar fs__$2 \x3d cljs.core.next(fs__$1);\nwhile(true){\nif(fs__$2){\nvar G__22432 \x3d (function (){var fexpr__18775 \x3d cljs.core.first(fs__$2);\nreturn (fexpr__18775.cljs$core$IFn$_invoke$arity$1 ? fexpr__18775.cljs$core$IFn$_invoke$arity$1(ret) : fexpr__18775.call(null, ret));\n})();\nvar G__22433 \x3d cljs.core.next(fs__$2);\nret \x3d G__22432;\nfs__$2 \x3d G__22433;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n};\nvar G__22431 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__22435__i \x3d 0, G__22435__a \x3d new Array(arguments.length - 0);\nwhile (G__22435__i \x3c G__22435__a.length) {G__22435__a[G__22435__i] \x3d arguments[G__22435__i + 0]; ++G__22435__i;}\n args \x3d new cljs.core.IndexedSeq(G__22435__a,0,null);\n} \nreturn G__22431__delegate.call(this,args);};\nG__22431.cljs$lang$maxFixedArity \x3d 0;\nG__22431.cljs$lang$applyTo \x3d (function (arglist__22436){\nvar args \x3d cljs.core.seq(arglist__22436);\nreturn G__22431__delegate(args);\n});\nG__22431.cljs$core$IFn$_invoke$arity$variadic \x3d G__22431__delegate;\nreturn G__22431;\n})()\n;\n}));\n\n/** @this {Function} */\n(cljs.core.comp.cljs$lang$applyTo \x3d (function (seq18755){\nvar G__18756 \x3d cljs.core.first(seq18755);\nvar seq18755__$1 \x3d cljs.core.next(seq18755);\nvar G__18757 \x3d cljs.core.first(seq18755__$1);\nvar seq18755__$2 \x3d cljs.core.next(seq18755__$1);\nvar G__18758 \x3d cljs.core.first(seq18755__$2);\nvar seq18755__$3 \x3d cljs.core.next(seq18755__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18756,G__18757,G__18758,seq18755__$3);\n}));\n\n(cljs.core.comp.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Takes a function f and fewer than the normal arguments to f, and\n * returns a fn that takes a variable number of additional args. When\n * called, the returned function calls f with args + additional args.\n */\ncljs.core.partial \x3d (function cljs$core$partial(var_args){\nvar G__18782 \x3d arguments.length;\nswitch (G__18782) {\ncase 1:\nreturn cljs.core.partial.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.partial.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.partial.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.partial.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22441 \x3d arguments.length;\nvar i__5727__auto___22442 \x3d (0);\nwhile(true){\nif((i__5727__auto___22442 \x3c len__5726__auto___22441)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22442]));\n\nvar G__22443 \x3d (i__5727__auto___22442 + (1));\ni__5727__auto___22442 \x3d G__22443;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((4) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((4)),(0),null)):null);\nreturn cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.partial.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn f;\n}));\n\n(cljs.core.partial.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,arg1){\nreturn (function() {\nvar G__22444 \x3d null;\nvar G__22444__0 \x3d (function (){\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(arg1) : f.call(null, arg1));\n});\nvar G__22444__1 \x3d (function (x){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(arg1,x) : f.call(null, arg1,x));\n});\nvar G__22444__2 \x3d (function (x,y){\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(arg1,x,y) : f.call(null, arg1,x,y));\n});\nvar G__22444__3 \x3d (function (x,y,z){\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(arg1,x,y,z) : f.call(null, arg1,x,y,z));\n});\nvar G__22444__4 \x3d (function() { \nvar G__22448__delegate \x3d function (x,y,z,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(f,arg1,x,y,z,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args], 0));\n};\nvar G__22448 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22451__i \x3d 0, G__22451__a \x3d new Array(arguments.length - 3);\nwhile (G__22451__i \x3c G__22451__a.length) {G__22451__a[G__22451__i] \x3d arguments[G__22451__i + 3]; ++G__22451__i;}\n args \x3d new cljs.core.IndexedSeq(G__22451__a,0,null);\n} \nreturn G__22448__delegate.call(this,x,y,z,args);};\nG__22448.cljs$lang$maxFixedArity \x3d 3;\nG__22448.cljs$lang$applyTo \x3d (function (arglist__22452){\nvar x \x3d cljs.core.first(arglist__22452);\narglist__22452 \x3d cljs.core.next(arglist__22452);\nvar y \x3d cljs.core.first(arglist__22452);\narglist__22452 \x3d cljs.core.next(arglist__22452);\nvar z \x3d cljs.core.first(arglist__22452);\nvar args \x3d cljs.core.rest(arglist__22452);\nreturn G__22448__delegate(x,y,z,args);\n});\nG__22448.cljs$core$IFn$_invoke$arity$variadic \x3d G__22448__delegate;\nreturn G__22448;\n})()\n;\nG__22444 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22444__0.call(this);\ncase 1:\nreturn G__22444__1.call(this,x);\ncase 2:\nreturn G__22444__2.call(this,x,y);\ncase 3:\nreturn G__22444__3.call(this,x,y,z);\ndefault:\nvar G__22454 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22455__i \x3d 0, G__22455__a \x3d new Array(arguments.length - 3);\nwhile (G__22455__i \x3c G__22455__a.length) {G__22455__a[G__22455__i] \x3d arguments[G__22455__i + 3]; ++G__22455__i;}\nG__22454 \x3d new cljs.core.IndexedSeq(G__22455__a,0,null);\n}\nreturn G__22444__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22454);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22444.cljs$lang$maxFixedArity \x3d 3;\nG__22444.cljs$lang$applyTo \x3d G__22444__4.cljs$lang$applyTo;\nG__22444.cljs$core$IFn$_invoke$arity$0 \x3d G__22444__0;\nG__22444.cljs$core$IFn$_invoke$arity$1 \x3d G__22444__1;\nG__22444.cljs$core$IFn$_invoke$arity$2 \x3d G__22444__2;\nG__22444.cljs$core$IFn$_invoke$arity$3 \x3d G__22444__3;\nG__22444.cljs$core$IFn$_invoke$arity$variadic \x3d G__22444__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22444;\n})()\n}));\n\n(cljs.core.partial.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,arg1,arg2){\nreturn (function() {\nvar G__22459 \x3d null;\nvar G__22459__0 \x3d (function (){\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(arg1,arg2) : f.call(null, arg1,arg2));\n});\nvar G__22459__1 \x3d (function (x){\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(arg1,arg2,x) : f.call(null, arg1,arg2,x));\n});\nvar G__22459__2 \x3d (function (x,y){\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(arg1,arg2,x,y) : f.call(null, arg1,arg2,x,y));\n});\nvar G__22459__3 \x3d (function (x,y,z){\nreturn (f.cljs$core$IFn$_invoke$arity$5 ? f.cljs$core$IFn$_invoke$arity$5(arg1,arg2,x,y,z) : f.call(null, arg1,arg2,x,y,z));\n});\nvar G__22459__4 \x3d (function() { \nvar G__22460__delegate \x3d function (x,y,z,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(f,arg1,arg2,x,y,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([z,args], 0));\n};\nvar G__22460 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22463__i \x3d 0, G__22463__a \x3d new Array(arguments.length - 3);\nwhile (G__22463__i \x3c G__22463__a.length) {G__22463__a[G__22463__i] \x3d arguments[G__22463__i + 3]; ++G__22463__i;}\n args \x3d new cljs.core.IndexedSeq(G__22463__a,0,null);\n} \nreturn G__22460__delegate.call(this,x,y,z,args);};\nG__22460.cljs$lang$maxFixedArity \x3d 3;\nG__22460.cljs$lang$applyTo \x3d (function (arglist__22464){\nvar x \x3d cljs.core.first(arglist__22464);\narglist__22464 \x3d cljs.core.next(arglist__22464);\nvar y \x3d cljs.core.first(arglist__22464);\narglist__22464 \x3d cljs.core.next(arglist__22464);\nvar z \x3d cljs.core.first(arglist__22464);\nvar args \x3d cljs.core.rest(arglist__22464);\nreturn G__22460__delegate(x,y,z,args);\n});\nG__22460.cljs$core$IFn$_invoke$arity$variadic \x3d G__22460__delegate;\nreturn G__22460;\n})()\n;\nG__22459 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22459__0.call(this);\ncase 1:\nreturn G__22459__1.call(this,x);\ncase 2:\nreturn G__22459__2.call(this,x,y);\ncase 3:\nreturn G__22459__3.call(this,x,y,z);\ndefault:\nvar G__22465 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22466__i \x3d 0, G__22466__a \x3d new Array(arguments.length - 3);\nwhile (G__22466__i \x3c G__22466__a.length) {G__22466__a[G__22466__i] \x3d arguments[G__22466__i + 3]; ++G__22466__i;}\nG__22465 \x3d new cljs.core.IndexedSeq(G__22466__a,0,null);\n}\nreturn G__22459__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22465);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22459.cljs$lang$maxFixedArity \x3d 3;\nG__22459.cljs$lang$applyTo \x3d G__22459__4.cljs$lang$applyTo;\nG__22459.cljs$core$IFn$_invoke$arity$0 \x3d G__22459__0;\nG__22459.cljs$core$IFn$_invoke$arity$1 \x3d G__22459__1;\nG__22459.cljs$core$IFn$_invoke$arity$2 \x3d G__22459__2;\nG__22459.cljs$core$IFn$_invoke$arity$3 \x3d G__22459__3;\nG__22459.cljs$core$IFn$_invoke$arity$variadic \x3d G__22459__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22459;\n})()\n}));\n\n(cljs.core.partial.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,arg1,arg2,arg3){\nreturn (function() {\nvar G__22468 \x3d null;\nvar G__22468__0 \x3d (function (){\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(arg1,arg2,arg3) : f.call(null, arg1,arg2,arg3));\n});\nvar G__22468__1 \x3d (function (x){\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(arg1,arg2,arg3,x) : f.call(null, arg1,arg2,arg3,x));\n});\nvar G__22468__2 \x3d (function (x,y){\nreturn (f.cljs$core$IFn$_invoke$arity$5 ? f.cljs$core$IFn$_invoke$arity$5(arg1,arg2,arg3,x,y) : f.call(null, arg1,arg2,arg3,x,y));\n});\nvar G__22468__3 \x3d (function (x,y,z){\nreturn (f.cljs$core$IFn$_invoke$arity$6 ? f.cljs$core$IFn$_invoke$arity$6(arg1,arg2,arg3,x,y,z) : f.call(null, arg1,arg2,arg3,x,y,z));\n});\nvar G__22468__4 \x3d (function() { \nvar G__22472__delegate \x3d function (x,y,z,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(f,arg1,arg2,arg3,x,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([y,z,args], 0));\n};\nvar G__22472 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22473__i \x3d 0, G__22473__a \x3d new Array(arguments.length - 3);\nwhile (G__22473__i \x3c G__22473__a.length) {G__22473__a[G__22473__i] \x3d arguments[G__22473__i + 3]; ++G__22473__i;}\n args \x3d new cljs.core.IndexedSeq(G__22473__a,0,null);\n} \nreturn G__22472__delegate.call(this,x,y,z,args);};\nG__22472.cljs$lang$maxFixedArity \x3d 3;\nG__22472.cljs$lang$applyTo \x3d (function (arglist__22474){\nvar x \x3d cljs.core.first(arglist__22474);\narglist__22474 \x3d cljs.core.next(arglist__22474);\nvar y \x3d cljs.core.first(arglist__22474);\narglist__22474 \x3d cljs.core.next(arglist__22474);\nvar z \x3d cljs.core.first(arglist__22474);\nvar args \x3d cljs.core.rest(arglist__22474);\nreturn G__22472__delegate(x,y,z,args);\n});\nG__22472.cljs$core$IFn$_invoke$arity$variadic \x3d G__22472__delegate;\nreturn G__22472;\n})()\n;\nG__22468 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22468__0.call(this);\ncase 1:\nreturn G__22468__1.call(this,x);\ncase 2:\nreturn G__22468__2.call(this,x,y);\ncase 3:\nreturn G__22468__3.call(this,x,y,z);\ndefault:\nvar G__22475 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22476__i \x3d 0, G__22476__a \x3d new Array(arguments.length - 3);\nwhile (G__22476__i \x3c G__22476__a.length) {G__22476__a[G__22476__i] \x3d arguments[G__22476__i + 3]; ++G__22476__i;}\nG__22475 \x3d new cljs.core.IndexedSeq(G__22476__a,0,null);\n}\nreturn G__22468__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22475);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22468.cljs$lang$maxFixedArity \x3d 3;\nG__22468.cljs$lang$applyTo \x3d G__22468__4.cljs$lang$applyTo;\nG__22468.cljs$core$IFn$_invoke$arity$0 \x3d G__22468__0;\nG__22468.cljs$core$IFn$_invoke$arity$1 \x3d G__22468__1;\nG__22468.cljs$core$IFn$_invoke$arity$2 \x3d G__22468__2;\nG__22468.cljs$core$IFn$_invoke$arity$3 \x3d G__22468__3;\nG__22468.cljs$core$IFn$_invoke$arity$variadic \x3d G__22468__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22468;\n})()\n}));\n\n(cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,arg1,arg2,arg3,more){\nreturn (function() { \nvar G__22478__delegate \x3d function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,arg1,arg2,arg3,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(more,args));\n};\nvar G__22478 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__22482__i \x3d 0, G__22482__a \x3d new Array(arguments.length - 0);\nwhile (G__22482__i \x3c G__22482__a.length) {G__22482__a[G__22482__i] \x3d arguments[G__22482__i + 0]; ++G__22482__i;}\n args \x3d new cljs.core.IndexedSeq(G__22482__a,0,null);\n} \nreturn G__22478__delegate.call(this,args);};\nG__22478.cljs$lang$maxFixedArity \x3d 0;\nG__22478.cljs$lang$applyTo \x3d (function (arglist__22483){\nvar args \x3d cljs.core.seq(arglist__22483);\nreturn G__22478__delegate(args);\n});\nG__22478.cljs$core$IFn$_invoke$arity$variadic \x3d G__22478__delegate;\nreturn G__22478;\n})()\n;\n}));\n\n/** @this {Function} */\n(cljs.core.partial.cljs$lang$applyTo \x3d (function (seq18777){\nvar G__18778 \x3d cljs.core.first(seq18777);\nvar seq18777__$1 \x3d cljs.core.next(seq18777);\nvar G__18779 \x3d cljs.core.first(seq18777__$1);\nvar seq18777__$2 \x3d cljs.core.next(seq18777__$1);\nvar G__18780 \x3d cljs.core.first(seq18777__$2);\nvar seq18777__$3 \x3d cljs.core.next(seq18777__$2);\nvar G__18781 \x3d cljs.core.first(seq18777__$3);\nvar seq18777__$4 \x3d cljs.core.next(seq18777__$3);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18778,G__18779,G__18780,G__18781,seq18777__$4);\n}));\n\n(cljs.core.partial.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Takes a function f, and returns a function that calls f, replacing\n * a nil first argument to f with the supplied value x. Higher arity\n * versions can replace arguments in the second and third\n * positions (y, z). Note that the function f can take any number of\n * arguments, not just the one(s) being nil-patched.\n */\ncljs.core.fnil \x3d (function cljs$core$fnil(var_args){\nvar G__18784 \x3d arguments.length;\nswitch (G__18784) {\ncase 2:\nreturn cljs.core.fnil.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.fnil.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.fnil.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.fnil.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,x){\nreturn (function() {\nvar G__22498 \x3d null;\nvar G__22498__1 \x3d (function (a){\nvar G__18785 \x3d (((a \x3d\x3d null))?x:a);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18785) : f.call(null, G__18785));\n});\nvar G__22498__2 \x3d (function (a,b){\nvar G__18786 \x3d (((a \x3d\x3d null))?x:a);\nvar G__18787 \x3d b;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18786,G__18787) : f.call(null, G__18786,G__18787));\n});\nvar G__22498__3 \x3d (function (a,b,c){\nvar G__18788 \x3d (((a \x3d\x3d null))?x:a);\nvar G__18789 \x3d b;\nvar G__18790 \x3d c;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18788,G__18789,G__18790) : f.call(null, G__18788,G__18789,G__18790));\n});\nvar G__22498__4 \x3d (function() { \nvar G__22499__delegate \x3d function (a,b,c,ds){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,(((a \x3d\x3d null))?x:a),b,c,ds);\n};\nvar G__22499 \x3d function (a,b,c,var_args){\nvar ds \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22500__i \x3d 0, G__22500__a \x3d new Array(arguments.length - 3);\nwhile (G__22500__i \x3c G__22500__a.length) {G__22500__a[G__22500__i] \x3d arguments[G__22500__i + 3]; ++G__22500__i;}\n ds \x3d new cljs.core.IndexedSeq(G__22500__a,0,null);\n} \nreturn G__22499__delegate.call(this,a,b,c,ds);};\nG__22499.cljs$lang$maxFixedArity \x3d 3;\nG__22499.cljs$lang$applyTo \x3d (function (arglist__22501){\nvar a \x3d cljs.core.first(arglist__22501);\narglist__22501 \x3d cljs.core.next(arglist__22501);\nvar b \x3d cljs.core.first(arglist__22501);\narglist__22501 \x3d cljs.core.next(arglist__22501);\nvar c \x3d cljs.core.first(arglist__22501);\nvar ds \x3d cljs.core.rest(arglist__22501);\nreturn G__22499__delegate(a,b,c,ds);\n});\nG__22499.cljs$core$IFn$_invoke$arity$variadic \x3d G__22499__delegate;\nreturn G__22499;\n})()\n;\nG__22498 \x3d function(a,b,c,var_args){\nvar ds \x3d var_args;\nswitch(arguments.length){\ncase 1:\nreturn G__22498__1.call(this,a);\ncase 2:\nreturn G__22498__2.call(this,a,b);\ncase 3:\nreturn G__22498__3.call(this,a,b,c);\ndefault:\nvar G__22502 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22503__i \x3d 0, G__22503__a \x3d new Array(arguments.length - 3);\nwhile (G__22503__i \x3c G__22503__a.length) {G__22503__a[G__22503__i] \x3d arguments[G__22503__i + 3]; ++G__22503__i;}\nG__22502 \x3d new cljs.core.IndexedSeq(G__22503__a,0,null);\n}\nreturn G__22498__4.cljs$core$IFn$_invoke$arity$variadic(a,b,c, G__22502);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22498.cljs$lang$maxFixedArity \x3d 3;\nG__22498.cljs$lang$applyTo \x3d G__22498__4.cljs$lang$applyTo;\nG__22498.cljs$core$IFn$_invoke$arity$1 \x3d G__22498__1;\nG__22498.cljs$core$IFn$_invoke$arity$2 \x3d G__22498__2;\nG__22498.cljs$core$IFn$_invoke$arity$3 \x3d G__22498__3;\nG__22498.cljs$core$IFn$_invoke$arity$variadic \x3d G__22498__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22498;\n})()\n}));\n\n(cljs.core.fnil.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,x,y){\nreturn (function() {\nvar G__22504 \x3d null;\nvar G__22504__2 \x3d (function (a,b){\nvar G__18791 \x3d (((a \x3d\x3d null))?x:a);\nvar G__18792 \x3d (((b \x3d\x3d null))?y:b);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18791,G__18792) : f.call(null, G__18791,G__18792));\n});\nvar G__22504__3 \x3d (function (a,b,c){\nvar G__18793 \x3d (((a \x3d\x3d null))?x:a);\nvar G__18794 \x3d (((b \x3d\x3d null))?y:b);\nvar G__18795 \x3d c;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18793,G__18794,G__18795) : f.call(null, G__18793,G__18794,G__18795));\n});\nvar G__22504__4 \x3d (function() { \nvar G__22506__delegate \x3d function (a,b,c,ds){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,(((a \x3d\x3d null))?x:a),(((b \x3d\x3d null))?y:b),c,ds);\n};\nvar G__22506 \x3d function (a,b,c,var_args){\nvar ds \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22507__i \x3d 0, G__22507__a \x3d new Array(arguments.length - 3);\nwhile (G__22507__i \x3c G__22507__a.length) {G__22507__a[G__22507__i] \x3d arguments[G__22507__i + 3]; ++G__22507__i;}\n ds \x3d new cljs.core.IndexedSeq(G__22507__a,0,null);\n} \nreturn G__22506__delegate.call(this,a,b,c,ds);};\nG__22506.cljs$lang$maxFixedArity \x3d 3;\nG__22506.cljs$lang$applyTo \x3d (function (arglist__22508){\nvar a \x3d cljs.core.first(arglist__22508);\narglist__22508 \x3d cljs.core.next(arglist__22508);\nvar b \x3d cljs.core.first(arglist__22508);\narglist__22508 \x3d cljs.core.next(arglist__22508);\nvar c \x3d cljs.core.first(arglist__22508);\nvar ds \x3d cljs.core.rest(arglist__22508);\nreturn G__22506__delegate(a,b,c,ds);\n});\nG__22506.cljs$core$IFn$_invoke$arity$variadic \x3d G__22506__delegate;\nreturn G__22506;\n})()\n;\nG__22504 \x3d function(a,b,c,var_args){\nvar ds \x3d var_args;\nswitch(arguments.length){\ncase 2:\nreturn G__22504__2.call(this,a,b);\ncase 3:\nreturn G__22504__3.call(this,a,b,c);\ndefault:\nvar G__22509 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22510__i \x3d 0, G__22510__a \x3d new Array(arguments.length - 3);\nwhile (G__22510__i \x3c G__22510__a.length) {G__22510__a[G__22510__i] \x3d arguments[G__22510__i + 3]; ++G__22510__i;}\nG__22509 \x3d new cljs.core.IndexedSeq(G__22510__a,0,null);\n}\nreturn G__22504__4.cljs$core$IFn$_invoke$arity$variadic(a,b,c, G__22509);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22504.cljs$lang$maxFixedArity \x3d 3;\nG__22504.cljs$lang$applyTo \x3d G__22504__4.cljs$lang$applyTo;\nG__22504.cljs$core$IFn$_invoke$arity$2 \x3d G__22504__2;\nG__22504.cljs$core$IFn$_invoke$arity$3 \x3d G__22504__3;\nG__22504.cljs$core$IFn$_invoke$arity$variadic \x3d G__22504__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22504;\n})()\n}));\n\n(cljs.core.fnil.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,x,y,z){\nreturn (function() {\nvar G__22511 \x3d null;\nvar G__22511__2 \x3d (function (a,b){\nvar G__18796 \x3d (((a \x3d\x3d null))?x:a);\nvar G__18797 \x3d (((b \x3d\x3d null))?y:b);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18796,G__18797) : f.call(null, G__18796,G__18797));\n});\nvar G__22511__3 \x3d (function (a,b,c){\nvar G__18798 \x3d (((a \x3d\x3d null))?x:a);\nvar G__18799 \x3d (((b \x3d\x3d null))?y:b);\nvar G__18800 \x3d (((c \x3d\x3d null))?z:c);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18798,G__18799,G__18800) : f.call(null, G__18798,G__18799,G__18800));\n});\nvar G__22511__4 \x3d (function() { \nvar G__22512__delegate \x3d function (a,b,c,ds){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,(((a \x3d\x3d null))?x:a),(((b \x3d\x3d null))?y:b),(((c \x3d\x3d null))?z:c),ds);\n};\nvar G__22512 \x3d function (a,b,c,var_args){\nvar ds \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22513__i \x3d 0, G__22513__a \x3d new Array(arguments.length - 3);\nwhile (G__22513__i \x3c G__22513__a.length) {G__22513__a[G__22513__i] \x3d arguments[G__22513__i + 3]; ++G__22513__i;}\n ds \x3d new cljs.core.IndexedSeq(G__22513__a,0,null);\n} \nreturn G__22512__delegate.call(this,a,b,c,ds);};\nG__22512.cljs$lang$maxFixedArity \x3d 3;\nG__22512.cljs$lang$applyTo \x3d (function (arglist__22514){\nvar a \x3d cljs.core.first(arglist__22514);\narglist__22514 \x3d cljs.core.next(arglist__22514);\nvar b \x3d cljs.core.first(arglist__22514);\narglist__22514 \x3d cljs.core.next(arglist__22514);\nvar c \x3d cljs.core.first(arglist__22514);\nvar ds \x3d cljs.core.rest(arglist__22514);\nreturn G__22512__delegate(a,b,c,ds);\n});\nG__22512.cljs$core$IFn$_invoke$arity$variadic \x3d G__22512__delegate;\nreturn G__22512;\n})()\n;\nG__22511 \x3d function(a,b,c,var_args){\nvar ds \x3d var_args;\nswitch(arguments.length){\ncase 2:\nreturn G__22511__2.call(this,a,b);\ncase 3:\nreturn G__22511__3.call(this,a,b,c);\ndefault:\nvar G__22517 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22519__i \x3d 0, G__22519__a \x3d new Array(arguments.length - 3);\nwhile (G__22519__i \x3c G__22519__a.length) {G__22519__a[G__22519__i] \x3d arguments[G__22519__i + 3]; ++G__22519__i;}\nG__22517 \x3d new cljs.core.IndexedSeq(G__22519__a,0,null);\n}\nreturn G__22511__4.cljs$core$IFn$_invoke$arity$variadic(a,b,c, G__22517);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22511.cljs$lang$maxFixedArity \x3d 3;\nG__22511.cljs$lang$applyTo \x3d G__22511__4.cljs$lang$applyTo;\nG__22511.cljs$core$IFn$_invoke$arity$2 \x3d G__22511__2;\nG__22511.cljs$core$IFn$_invoke$arity$3 \x3d G__22511__3;\nG__22511.cljs$core$IFn$_invoke$arity$variadic \x3d G__22511__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22511;\n})()\n}));\n\n(cljs.core.fnil.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns a lazy sequence consisting of the result of applying f to 0\n * and the first item of coll, followed by applying f to 1 and the second\n * item in coll, etc, until coll is exhausted. Thus function f should\n * accept 2 arguments, index and item. Returns a stateful transducer when\n * no collection is provided.\n */\ncljs.core.map_indexed \x3d (function cljs$core$map_indexed(var_args){\nvar G__18802 \x3d arguments.length;\nswitch (G__18802) {\ncase 1:\nreturn cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (function (rf){\nvar i \x3d (cljs.core.volatile_BANG_.cljs$core$IFn$_invoke$arity$1 ? cljs.core.volatile_BANG_.cljs$core$IFn$_invoke$arity$1((-1)) : cljs.core.volatile_BANG_.call(null, (-1)));\nreturn (function() {\nvar G__22525 \x3d null;\nvar G__22525__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22525__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22525__2 \x3d (function (result,input){\nvar G__18803 \x3d result;\nvar G__18804 \x3d (function (){var G__18805 \x3d cljs.core._vreset_BANG_(i,(cljs.core._deref(i) + (1)));\nvar G__18806 \x3d input;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18805,G__18806) : f.call(null, G__18805,G__18806));\n})();\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(G__18803,G__18804) : rf.call(null, G__18803,G__18804));\n});\nG__22525 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__22525__0.call(this);\ncase 1:\nreturn G__22525__1.call(this,result);\ncase 2:\nreturn G__22525__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22525.cljs$core$IFn$_invoke$arity$0 \x3d G__22525__0;\nG__22525.cljs$core$IFn$_invoke$arity$1 \x3d G__22525__1;\nG__22525.cljs$core$IFn$_invoke$arity$2 \x3d G__22525__2;\nreturn G__22525;\n})()\n});\n}));\n\n(cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nvar mapi \x3d (function cljs$core$mapi(idx,coll__$1){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll__$1);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s)){\nvar c \x3d cljs.core.chunk_first(s);\nvar size \x3d cljs.core.count(c);\nvar b \x3d cljs.core.chunk_buffer(size);\nvar n__5593__auto___22531 \x3d size;\nvar i_22532 \x3d (0);\nwhile(true){\nif((i_22532 \x3c n__5593__auto___22531)){\ncljs.core.chunk_append(b,(function (){var G__18811 \x3d (idx + i_22532);\nvar G__18812 \x3d cljs.core._nth(c,i_22532);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18811,G__18812) : f.call(null, G__18811,G__18812));\n})());\n\nvar G__22533 \x3d (i_22532 + (1));\ni_22532 \x3d G__22533;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.chunk_cons(cljs.core.chunk(b),cljs$core$mapi((idx + size),cljs.core.chunk_rest(s)));\n} else {\nreturn cljs.core.cons((function (){var G__18813 \x3d idx;\nvar G__18814 \x3d cljs.core.first(s);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18813,G__18814) : f.call(null, G__18813,G__18814));\n})(),cljs$core$mapi((idx + (1)),cljs.core.rest(s)));\n}\n} else {\nreturn null;\n}\n}),null,null));\n});\nreturn mapi((0),coll);\n}));\n\n(cljs.core.map_indexed.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a lazy sequence of the non-nil results of (f item). Note,\n * this means false return values will be included. f must be free of\n * side-effects. Returns a transducer when no collection is provided.\n */\ncljs.core.keep \x3d (function cljs$core$keep(var_args){\nvar G__18816 \x3d arguments.length;\nswitch (G__18816) {\ncase 1:\nreturn cljs.core.keep.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.keep.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.keep.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (function (rf){\nreturn (function() {\nvar G__22539 \x3d null;\nvar G__22539__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22539__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22539__2 \x3d (function (result,input){\nvar v \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(input) : f.call(null, input));\nif((v \x3d\x3d null)){\nreturn result;\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,v) : rf.call(null, result,v));\n}\n});\nG__22539 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__22539__0.call(this);\ncase 1:\nreturn G__22539__1.call(this,result);\ncase 2:\nreturn G__22539__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22539.cljs$core$IFn$_invoke$arity$0 \x3d G__22539__0;\nG__22539.cljs$core$IFn$_invoke$arity$1 \x3d G__22539__1;\nG__22539.cljs$core$IFn$_invoke$arity$2 \x3d G__22539__2;\nreturn G__22539;\n})()\n});\n}));\n\n(cljs.core.keep.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s)){\nvar c \x3d cljs.core.chunk_first(s);\nvar size \x3d cljs.core.count(c);\nvar b \x3d cljs.core.chunk_buffer(size);\nvar n__5593__auto___22547 \x3d size;\nvar i_22548 \x3d (0);\nwhile(true){\nif((i_22548 \x3c n__5593__auto___22547)){\nvar x_22549 \x3d (function (){var G__18817 \x3d cljs.core._nth(c,i_22548);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18817) : f.call(null, G__18817));\n})();\nif((x_22549 \x3d\x3d null)){\n} else {\ncljs.core.chunk_append(b,x_22549);\n}\n\nvar G__22550 \x3d (i_22548 + (1));\ni_22548 \x3d G__22550;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.chunk_cons(cljs.core.chunk(b),cljs.core.keep.cljs$core$IFn$_invoke$arity$2(f,cljs.core.chunk_rest(s)));\n} else {\nvar x \x3d (function (){var G__18818 \x3d cljs.core.first(s);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18818) : f.call(null, G__18818));\n})();\nif((x \x3d\x3d null)){\nreturn cljs.core.keep.cljs$core$IFn$_invoke$arity$2(f,cljs.core.rest(s));\n} else {\nreturn cljs.core.cons(x,cljs.core.keep.cljs$core$IFn$_invoke$arity$2(f,cljs.core.rest(s)));\n}\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.keep.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IWatchable}\n * @implements {cljs.core.IAtom}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n*/\ncljs.core.Atom \x3d (function (state,meta,validator,watches){\nthis.state \x3d state;\nthis.meta \x3d meta;\nthis.validator \x3d validator;\nthis.watches \x3d watches;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 16386;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 6455296;\n});\n(cljs.core.Atom.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (o,other){\nvar self__ \x3d this;\nvar o__$1 \x3d this;\nreturn (o__$1 \x3d\x3d\x3d other);\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.state;\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IWatchable$_notify_watches$arity$3 \x3d (function (this$,oldval,newval){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar seq__18819 \x3d cljs.core.seq(self__.watches);\nvar chunk__18820 \x3d null;\nvar count__18821 \x3d (0);\nvar i__18822 \x3d (0);\nwhile(true){\nif((i__18822 \x3c count__18821)){\nvar vec__18829 \x3d chunk__18820.cljs$core$IIndexed$_nth$arity$2(null, i__18822);\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18829,(0),null);\nvar f \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18829,(1),null);\n(f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(key,this$__$1,oldval,newval) : f.call(null, key,this$__$1,oldval,newval));\n\n\nvar G__22552 \x3d seq__18819;\nvar G__22553 \x3d chunk__18820;\nvar G__22554 \x3d count__18821;\nvar G__22555 \x3d (i__18822 + (1));\nseq__18819 \x3d G__22552;\nchunk__18820 \x3d G__22553;\ncount__18821 \x3d G__22554;\ni__18822 \x3d G__22555;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__18819);\nif(temp__5804__auto__){\nvar seq__18819__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__18819__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__18819__$1);\nvar G__22557 \x3d cljs.core.chunk_rest(seq__18819__$1);\nvar G__22558 \x3d c__5525__auto__;\nvar G__22559 \x3d cljs.core.count(c__5525__auto__);\nvar G__22560 \x3d (0);\nseq__18819 \x3d G__22557;\nchunk__18820 \x3d G__22558;\ncount__18821 \x3d G__22559;\ni__18822 \x3d G__22560;\ncontinue;\n} else {\nvar vec__18832 \x3d cljs.core.first(seq__18819__$1);\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18832,(0),null);\nvar f \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__18832,(1),null);\n(f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(key,this$__$1,oldval,newval) : f.call(null, key,this$__$1,oldval,newval));\n\n\nvar G__22562 \x3d cljs.core.next(seq__18819__$1);\nvar G__22563 \x3d null;\nvar G__22564 \x3d (0);\nvar G__22565 \x3d (0);\nseq__18819 \x3d G__22562;\nchunk__18820 \x3d G__22563;\ncount__18821 \x3d G__22564;\ni__18822 \x3d G__22565;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IWatchable$_add_watch$arity$3 \x3d (function (this$,key,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\n(this$__$1.watches \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.watches,key,f));\n\nreturn this$__$1;\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IWatchable$_remove_watch$arity$2 \x3d (function (this$,key){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (this$__$1.watches \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.watches,key));\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn goog.getUid(this$__$1);\n}));\n\n(cljs.core.Atom.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22validator\x22,\x22validator\x22,-325659154,null),new cljs.core.Symbol(null,\x22watches\x22,\x22watches\x22,1367433992,null)], null);\n}));\n\n(cljs.core.Atom.cljs$lang$type \x3d true);\n\n(cljs.core.Atom.cljs$lang$ctorStr \x3d \x22cljs.core/Atom\x22);\n\n(cljs.core.Atom.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Atom\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Atom.\n */\ncljs.core.__GT_Atom \x3d (function cljs$core$__GT_Atom(state,meta,validator,watches){\nreturn (new cljs.core.Atom(state,meta,validator,watches));\n});\n\n/**\n * Creates and returns an Atom with an initial value of x and zero or\n * more options (in any order):\n * \n * :meta metadata-map\n * \n * :validator validate-fn\n * \n * If metadata-map is supplied, it will become the metadata on the\n * atom. validate-fn must be nil or a side-effect-free fn of one\n * argument, which will be passed the intended new state on any state\n * change. If the new state is unacceptable, the validate-fn should\n * return false or throw an Error. If either of these error conditions\n * occur, then the value of the atom will not change.\n */\ncljs.core.atom \x3d (function cljs$core$atom(var_args){\nvar G__18838 \x3d arguments.length;\nswitch (G__18838) {\ncase 1:\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22577 \x3d arguments.length;\nvar i__5727__auto___22578 \x3d (0);\nwhile(true){\nif((i__5727__auto___22578 \x3c len__5726__auto___22577)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22578]));\n\nvar G__22579 \x3d (i__5727__auto___22578 + (1));\ni__5727__auto___22578 \x3d G__22579;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((1) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.atom.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.atom.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (new cljs.core.Atom(x,null,null,null));\n}));\n\n(cljs.core.atom.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,p__18839){\nvar map__18840 \x3d p__18839;\nvar map__18840__$1 \x3d cljs.core.__destructure_map(map__18840);\nvar meta \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__18840__$1,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964));\nvar validator \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__18840__$1,new cljs.core.Keyword(null,\x22validator\x22,\x22validator\x22,-1966190681));\nreturn (new cljs.core.Atom(x,meta,validator,null));\n}));\n\n/** @this {Function} */\n(cljs.core.atom.cljs$lang$applyTo \x3d (function (seq18836){\nvar G__18837 \x3d cljs.core.first(seq18836);\nvar seq18836__$1 \x3d cljs.core.next(seq18836);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18837,seq18836__$1);\n}));\n\n(cljs.core.atom.cljs$lang$maxFixedArity \x3d (1));\n\n/**\n * Sets the value of atom to newval without regard for the\n * current value. Returns new-value.\n */\ncljs.core.reset_BANG_ \x3d (function cljs$core$reset_BANG_(a,new_value){\nif((a instanceof cljs.core.Atom)){\nvar validate \x3d a.validator;\nif((validate \x3d\x3d null)){\n} else {\nif(cljs.core.truth_((validate.cljs$core$IFn$_invoke$arity$1 ? validate.cljs$core$IFn$_invoke$arity$1(new_value) : validate.call(null, new_value)))){\n} else {\nthrow (new Error(\x22Validator rejected reference state\x22));\n}\n}\n\nvar old_value \x3d a.state;\n(a.state \x3d new_value);\n\nif((a.watches \x3d\x3d null)){\n} else {\na.cljs$core$IWatchable$_notify_watches$arity$3(null, old_value,new_value);\n}\n\nreturn new_value;\n} else {\nreturn cljs.core._reset_BANG_(a,new_value);\n}\n});\n/**\n * Sets the value of atom to newval. Returns [old new], the value of the\n * atom before and after the reset.\n */\ncljs.core.reset_vals_BANG_ \x3d (function cljs$core$reset_vals_BANG_(a,new_value){\nif((a instanceof cljs.core.Atom)){\nvar validate \x3d a.validator;\nif((validate \x3d\x3d null)){\n} else {\nif(cljs.core.truth_((validate.cljs$core$IFn$_invoke$arity$1 ? validate.cljs$core$IFn$_invoke$arity$1(new_value) : validate.call(null, new_value)))){\n} else {\nthrow (new Error(\x22Validator rejected reference state\x22));\n}\n}\n\nvar old_value \x3d a.state;\n(a.state \x3d new_value);\n\nif((a.watches \x3d\x3d null)){\n} else {\na.cljs$core$IWatchable$_notify_watches$arity$3(null, old_value,new_value);\n}\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [old_value,new_value], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core._deref(a),cljs.core._reset_BANG_(a,new_value)], null);\n}\n});\n/**\n * Atomically swaps the value of atom to be:\n * (apply f current-value-of-atom args). Note that f may be called\n * multiple times, and thus should be free of side effects. Returns\n * the value that was swapped in.\n */\ncljs.core.swap_BANG_ \x3d (function cljs$core$swap_BANG_(var_args){\nvar G__18847 \x3d arguments.length;\nswitch (G__18847) {\ncase 2:\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22582 \x3d arguments.length;\nvar i__5727__auto___22583 \x3d (0);\nwhile(true){\nif((i__5727__auto___22583 \x3c len__5726__auto___22582)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22583]));\n\nvar G__22584 \x3d (i__5727__auto___22583 + (1));\ni__5727__auto___22583 \x3d G__22584;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((4) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((4)),(0),null)):null);\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,f){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_BANG_(a,(function (){var G__18848 \x3d a.state;\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18848) : f.call(null, G__18848));\n})());\n} else {\nreturn cljs.core._swap_BANG_(a,f);\n}\n}));\n\n(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,f,x){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_BANG_(a,(function (){var G__18849 \x3d a.state;\nvar G__18850 \x3d x;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18849,G__18850) : f.call(null, G__18849,G__18850));\n})());\n} else {\nreturn cljs.core._swap_BANG_(a,f,x);\n}\n}));\n\n(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,f,x,y){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_BANG_(a,(function (){var G__18851 \x3d a.state;\nvar G__18852 \x3d x;\nvar G__18853 \x3d y;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18851,G__18852,G__18853) : f.call(null, G__18851,G__18852,G__18853));\n})());\n} else {\nreturn cljs.core._swap_BANG_(a,f,x,y);\n}\n}));\n\n(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (a,f,x,y,more){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_BANG_(a,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,a.state,x,y,more));\n} else {\nreturn cljs.core._swap_BANG_(a,f,x,y,more);\n}\n}));\n\n/** @this {Function} */\n(cljs.core.swap_BANG_.cljs$lang$applyTo \x3d (function (seq18842){\nvar G__18843 \x3d cljs.core.first(seq18842);\nvar seq18842__$1 \x3d cljs.core.next(seq18842);\nvar G__18844 \x3d cljs.core.first(seq18842__$1);\nvar seq18842__$2 \x3d cljs.core.next(seq18842__$1);\nvar G__18845 \x3d cljs.core.first(seq18842__$2);\nvar seq18842__$3 \x3d cljs.core.next(seq18842__$2);\nvar G__18846 \x3d cljs.core.first(seq18842__$3);\nvar seq18842__$4 \x3d cljs.core.next(seq18842__$3);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18843,G__18844,G__18845,G__18846,seq18842__$4);\n}));\n\n(cljs.core.swap_BANG_.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Atomically swaps the value of atom to be:\n * (apply f current-value-of-atom args). Note that f may be called\n * multiple times, and thus should be free of side effects.\n * Returns [old new], the value of the atom before and after the swap.\n */\ncljs.core.swap_vals_BANG_ \x3d (function cljs$core$swap_vals_BANG_(var_args){\nvar G__18860 \x3d arguments.length;\nswitch (G__18860) {\ncase 2:\nreturn cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22620 \x3d arguments.length;\nvar i__5727__auto___22621 \x3d (0);\nwhile(true){\nif((i__5727__auto___22621 \x3c len__5726__auto___22620)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22621]));\n\nvar G__22622 \x3d (i__5727__auto___22621 + (1));\ni__5727__auto___22621 \x3d G__22622;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((4) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((4)),(0),null)):null);\nreturn cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,f){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_vals_BANG_(a,(function (){var G__18861 \x3d a.state;\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18861) : f.call(null, G__18861));\n})());\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core._deref(a),cljs.core._swap_BANG_(a,f)], null);\n}\n}));\n\n(cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,f,x){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_vals_BANG_(a,(function (){var G__18862 \x3d a.state;\nvar G__18863 \x3d x;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18862,G__18863) : f.call(null, G__18862,G__18863));\n})());\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core._deref(a),cljs.core._swap_BANG_(a,f,x)], null);\n}\n}));\n\n(cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,f,x,y){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_vals_BANG_(a,(function (){var G__18864 \x3d a.state;\nvar G__18865 \x3d x;\nvar G__18866 \x3d y;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18864,G__18865,G__18866) : f.call(null, G__18864,G__18865,G__18866));\n})());\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core._deref(a),cljs.core._swap_BANG_(a,f,x,y)], null);\n}\n}));\n\n(cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (a,f,x,y,more){\nif((a instanceof cljs.core.Atom)){\nreturn cljs.core.reset_vals_BANG_(a,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,a.state,x,y,more));\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core._deref(a),cljs.core._swap_BANG_(a,f,x,y,more)], null);\n}\n}));\n\n/** @this {Function} */\n(cljs.core.swap_vals_BANG_.cljs$lang$applyTo \x3d (function (seq18855){\nvar G__18856 \x3d cljs.core.first(seq18855);\nvar seq18855__$1 \x3d cljs.core.next(seq18855);\nvar G__18857 \x3d cljs.core.first(seq18855__$1);\nvar seq18855__$2 \x3d cljs.core.next(seq18855__$1);\nvar G__18858 \x3d cljs.core.first(seq18855__$2);\nvar seq18855__$3 \x3d cljs.core.next(seq18855__$2);\nvar G__18859 \x3d cljs.core.first(seq18855__$3);\nvar seq18855__$4 \x3d cljs.core.next(seq18855__$3);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18856,G__18857,G__18858,G__18859,seq18855__$4);\n}));\n\n(cljs.core.swap_vals_BANG_.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Atomically sets the value of atom to newval if and only if the\n * current value of the atom is equal to oldval. Returns true if\n * set happened, else false.\n */\ncljs.core.compare_and_set_BANG_ \x3d (function cljs$core$compare_and_set_BANG_(a,oldval,newval){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a.cljs$core$IDeref$_deref$arity$1(null, ),oldval)){\ncljs.core.reset_BANG_(a,newval);\n\nreturn true;\n} else {\nreturn false;\n}\n});\n/**\n * Sets the validator-fn for an atom. validator-fn must be nil or a\n * side-effect-free fn of one argument, which will be passed the intended\n * new state on any state change. If the new state is unacceptable, the\n * validator-fn should return false or throw an Error. If the current state\n * is not acceptable to the new validator, an Error will be thrown and the\n * validator will not be changed.\n */\ncljs.core.set_validator_BANG_ \x3d (function cljs$core$set_validator_BANG_(iref,val){\nif((((!((val \x3d\x3d null)))) \x26\x26 (cljs.core.not((function (){var G__18867 \x3d cljs.core._deref(iref);\nreturn (val.cljs$core$IFn$_invoke$arity$1 ? val.cljs$core$IFn$_invoke$arity$1(G__18867) : val.call(null, G__18867));\n})())))){\nthrow (new Error(\x22Validator rejected reference state\x22));\n} else {\n}\n\nreturn (iref.validator \x3d val);\n});\n/**\n * Gets the validator-fn for a var/ref/agent/atom.\n */\ncljs.core.get_validator \x3d (function cljs$core$get_validator(iref){\nreturn iref.validator;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IVolatile}\n * @implements {cljs.core.IDeref}\n*/\ncljs.core.Volatile \x3d (function (state){\nthis.state \x3d state;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.Volatile.prototype.cljs$core$IVolatile$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Volatile.prototype.cljs$core$IVolatile$_vreset_BANG_$arity$2 \x3d (function (_,new_state){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.state \x3d new_state);\n}));\n\n(cljs.core.Volatile.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.state;\n}));\n\n(cljs.core.Volatile.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22state\x22,\x22state\x22,-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Volatile.cljs$lang$type \x3d true);\n\n(cljs.core.Volatile.cljs$lang$ctorStr \x3d \x22cljs.core/Volatile\x22);\n\n(cljs.core.Volatile.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Volatile\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Volatile.\n */\ncljs.core.__GT_Volatile \x3d (function cljs$core$__GT_Volatile(state){\nreturn (new cljs.core.Volatile(state));\n});\n\n/**\n * Creates and returns a Volatile with an initial value of val.\n */\ncljs.core.volatile_BANG_ \x3d (function cljs$core$volatile_BANG_(val){\nreturn (new cljs.core.Volatile(val));\n});\n/**\n * Returns true if x is a volatile.\n */\ncljs.core.volatile_QMARK_ \x3d (function cljs$core$volatile_QMARK_(x){\nreturn (x instanceof cljs.core.Volatile);\n});\n/**\n * Sets the value of volatile to newval without regard for the\n * current value. Returns newval.\n */\ncljs.core.vreset_BANG_ \x3d (function cljs$core$vreset_BANG_(vol,newval){\nreturn cljs.core._vreset_BANG_(vol,newval);\n});\n/**\n * Returns a lazy sequence of the non-nil results of (f index item). Note,\n * this means false return values will be included. f must be free of\n * side-effects. Returns a stateful transducer when no collection is\n * provided.\n */\ncljs.core.keep_indexed \x3d (function cljs$core$keep_indexed(var_args){\nvar G__18869 \x3d arguments.length;\nswitch (G__18869) {\ncase 1:\nreturn cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (function (rf){\nvar ia \x3d cljs.core.volatile_BANG_((-1));\nreturn (function() {\nvar G__22657 \x3d null;\nvar G__22657__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22657__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22657__2 \x3d (function (result,input){\nvar i \x3d ia.cljs$core$IVolatile$_vreset_BANG_$arity$2(null, (ia.cljs$core$IDeref$_deref$arity$1(null, ) + (1)));\nvar v \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(i,input) : f.call(null, i,input));\nif((v \x3d\x3d null)){\nreturn result;\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,v) : rf.call(null, result,v));\n}\n});\nG__22657 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__22657__0.call(this);\ncase 1:\nreturn G__22657__1.call(this,result);\ncase 2:\nreturn G__22657__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22657.cljs$core$IFn$_invoke$arity$0 \x3d G__22657__0;\nG__22657.cljs$core$IFn$_invoke$arity$1 \x3d G__22657__1;\nG__22657.cljs$core$IFn$_invoke$arity$2 \x3d G__22657__2;\nreturn G__22657;\n})()\n});\n}));\n\n(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nvar keepi \x3d (function cljs$core$keepi(idx,coll__$1){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll__$1);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s)){\nvar c \x3d cljs.core.chunk_first(s);\nvar size \x3d cljs.core.count(c);\nvar b \x3d cljs.core.chunk_buffer(size);\nvar n__5593__auto___22664 \x3d size;\nvar i_22665 \x3d (0);\nwhile(true){\nif((i_22665 \x3c n__5593__auto___22664)){\nvar x_22667 \x3d (function (){var G__18874 \x3d (idx + i_22665);\nvar G__18875 \x3d cljs.core._nth(c,i_22665);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18874,G__18875) : f.call(null, G__18874,G__18875));\n})();\nif((x_22667 \x3d\x3d null)){\n} else {\ncljs.core.chunk_append(b,x_22667);\n}\n\nvar G__22675 \x3d (i_22665 + (1));\ni_22665 \x3d G__22675;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.chunk_cons(cljs.core.chunk(b),cljs$core$keepi((idx + size),cljs.core.chunk_rest(s)));\n} else {\nvar x \x3d (function (){var G__18876 \x3d idx;\nvar G__18877 \x3d cljs.core.first(s);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18876,G__18877) : f.call(null, G__18876,G__18877));\n})();\nif((x \x3d\x3d null)){\nreturn cljs$core$keepi((idx + (1)),cljs.core.rest(s));\n} else {\nreturn cljs.core.cons(x,cljs$core$keepi((idx + (1)),cljs.core.rest(s)));\n}\n}\n} else {\nreturn null;\n}\n}),null,null));\n});\nreturn keepi((0),coll);\n}));\n\n(cljs.core.keep_indexed.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Takes a set of predicates and returns a function f that returns true if all of its\n * composing predicates return a logical true value against all of its arguments, else it returns\n * false. Note that f is short-circuiting in that it will stop execution on the first\n * argument that triggers a logical false result against the original predicates.\n */\ncljs.core.every_pred \x3d (function cljs$core$every_pred(var_args){\nvar G__18889 \x3d arguments.length;\nswitch (G__18889) {\ncase 1:\nreturn cljs.core.every_pred.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.every_pred.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22687 \x3d arguments.length;\nvar i__5727__auto___22688 \x3d (0);\nwhile(true){\nif((i__5727__auto___22688 \x3c len__5726__auto___22687)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22688]));\n\nvar G__22689 \x3d (i__5727__auto___22688 + (1));\ni__5727__auto___22688 \x3d G__22689;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.every_pred.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.every_pred.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn (function() {\nvar cljs$core$ep1 \x3d null;\nvar cljs$core$ep1__0 \x3d (function (){\nreturn true;\n});\nvar cljs$core$ep1__1 \x3d (function (x){\nreturn cljs.core.boolean$((p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x)));\n});\nvar cljs$core$ep1__2 \x3d (function (x,y){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(y) : p.call(null, y));\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep1__3 \x3d (function (x,y,z){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(y) : p.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(z) : p.call(null, z));\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep1__4 \x3d (function() { \nvar G__22712__delegate \x3d function (x,y,z,args){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d cljs$core$ep1.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.every_QMARK_(p,args);\n} else {\nreturn and__5000__auto__;\n}\n})());\n};\nvar G__22712 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22718__i \x3d 0, G__22718__a \x3d new Array(arguments.length - 3);\nwhile (G__22718__i \x3c G__22718__a.length) {G__22718__a[G__22718__i] \x3d arguments[G__22718__i + 3]; ++G__22718__i;}\n args \x3d new cljs.core.IndexedSeq(G__22718__a,0,null);\n} \nreturn G__22712__delegate.call(this,x,y,z,args);};\nG__22712.cljs$lang$maxFixedArity \x3d 3;\nG__22712.cljs$lang$applyTo \x3d (function (arglist__22720){\nvar x \x3d cljs.core.first(arglist__22720);\narglist__22720 \x3d cljs.core.next(arglist__22720);\nvar y \x3d cljs.core.first(arglist__22720);\narglist__22720 \x3d cljs.core.next(arglist__22720);\nvar z \x3d cljs.core.first(arglist__22720);\nvar args \x3d cljs.core.rest(arglist__22720);\nreturn G__22712__delegate(x,y,z,args);\n});\nG__22712.cljs$core$IFn$_invoke$arity$variadic \x3d G__22712__delegate;\nreturn G__22712;\n})()\n;\ncljs$core$ep1 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$ep1__0.call(this);\ncase 1:\nreturn cljs$core$ep1__1.call(this,x);\ncase 2:\nreturn cljs$core$ep1__2.call(this,x,y);\ncase 3:\nreturn cljs$core$ep1__3.call(this,x,y,z);\ndefault:\nvar G__22722 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22723__i \x3d 0, G__22723__a \x3d new Array(arguments.length - 3);\nwhile (G__22723__i \x3c G__22723__a.length) {G__22723__a[G__22723__i] \x3d arguments[G__22723__i + 3]; ++G__22723__i;}\nG__22722 \x3d new cljs.core.IndexedSeq(G__22723__a,0,null);\n}\nreturn cljs$core$ep1__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22722);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$ep1.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$ep1.cljs$lang$applyTo \x3d cljs$core$ep1__4.cljs$lang$applyTo;\ncljs$core$ep1.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$ep1__0;\ncljs$core$ep1.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$ep1__1;\ncljs$core$ep1.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$ep1__2;\ncljs$core$ep1.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$ep1__3;\ncljs$core$ep1.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$ep1__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$ep1;\n})()\n}));\n\n(cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2 \x3d (function (p1,p2){\nreturn (function() {\nvar cljs$core$ep2 \x3d null;\nvar cljs$core$ep2__0 \x3d (function (){\nreturn true;\n});\nvar cljs$core$ep2__1 \x3d (function (x){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep2__2 \x3d (function (x,y){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$2)){\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep2__3 \x3d (function (x,y,z){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(z) : p1.call(null, z));\nif(cljs.core.truth_(and__5000__auto____$2)){\nvar and__5000__auto____$3 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$3)){\nvar and__5000__auto____$4 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$4)){\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(z) : p2.call(null, z));\n} else {\nreturn and__5000__auto____$4;\n}\n} else {\nreturn and__5000__auto____$3;\n}\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep2__4 \x3d (function() { \nvar G__22746__delegate \x3d function (x,y,z,args){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d cljs$core$ep2.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.every_QMARK_((function (p1__18878_SHARP_){\nvar and__5000__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(p1__18878_SHARP_) : p1.call(null, p1__18878_SHARP_));\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(p1__18878_SHARP_) : p2.call(null, p1__18878_SHARP_));\n} else {\nreturn and__5000__auto____$1;\n}\n}),args);\n} else {\nreturn and__5000__auto__;\n}\n})());\n};\nvar G__22746 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22747__i \x3d 0, G__22747__a \x3d new Array(arguments.length - 3);\nwhile (G__22747__i \x3c G__22747__a.length) {G__22747__a[G__22747__i] \x3d arguments[G__22747__i + 3]; ++G__22747__i;}\n args \x3d new cljs.core.IndexedSeq(G__22747__a,0,null);\n} \nreturn G__22746__delegate.call(this,x,y,z,args);};\nG__22746.cljs$lang$maxFixedArity \x3d 3;\nG__22746.cljs$lang$applyTo \x3d (function (arglist__22749){\nvar x \x3d cljs.core.first(arglist__22749);\narglist__22749 \x3d cljs.core.next(arglist__22749);\nvar y \x3d cljs.core.first(arglist__22749);\narglist__22749 \x3d cljs.core.next(arglist__22749);\nvar z \x3d cljs.core.first(arglist__22749);\nvar args \x3d cljs.core.rest(arglist__22749);\nreturn G__22746__delegate(x,y,z,args);\n});\nG__22746.cljs$core$IFn$_invoke$arity$variadic \x3d G__22746__delegate;\nreturn G__22746;\n})()\n;\ncljs$core$ep2 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$ep2__0.call(this);\ncase 1:\nreturn cljs$core$ep2__1.call(this,x);\ncase 2:\nreturn cljs$core$ep2__2.call(this,x,y);\ncase 3:\nreturn cljs$core$ep2__3.call(this,x,y,z);\ndefault:\nvar G__22750 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22751__i \x3d 0, G__22751__a \x3d new Array(arguments.length - 3);\nwhile (G__22751__i \x3c G__22751__a.length) {G__22751__a[G__22751__i] \x3d arguments[G__22751__i + 3]; ++G__22751__i;}\nG__22750 \x3d new cljs.core.IndexedSeq(G__22751__a,0,null);\n}\nreturn cljs$core$ep2__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22750);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$ep2.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$ep2.cljs$lang$applyTo \x3d cljs$core$ep2__4.cljs$lang$applyTo;\ncljs$core$ep2.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$ep2__0;\ncljs$core$ep2.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$ep2__1;\ncljs$core$ep2.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$ep2__2;\ncljs$core$ep2.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$ep2__3;\ncljs$core$ep2.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$ep2__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$ep2;\n})()\n}));\n\n(cljs.core.every_pred.cljs$core$IFn$_invoke$arity$3 \x3d (function (p1,p2,p3){\nreturn (function() {\nvar cljs$core$ep3 \x3d null;\nvar cljs$core$ep3__0 \x3d (function (){\nreturn true;\n});\nvar cljs$core$ep3__1 \x3d (function (x){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(x) : p3.call(null, x));\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep3__2 \x3d (function (x,y){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$2)){\nvar and__5000__auto____$3 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$3)){\nvar and__5000__auto____$4 \x3d (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(x) : p3.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$4)){\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(y) : p3.call(null, y));\n} else {\nreturn and__5000__auto____$4;\n}\n} else {\nreturn and__5000__auto____$3;\n}\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep3__3 \x3d (function (x,y,z){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(z) : p1.call(null, z));\nif(cljs.core.truth_(and__5000__auto____$2)){\nvar and__5000__auto____$3 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$3)){\nvar and__5000__auto____$4 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$4)){\nvar and__5000__auto____$5 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(z) : p2.call(null, z));\nif(cljs.core.truth_(and__5000__auto____$5)){\nvar and__5000__auto____$6 \x3d (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(x) : p3.call(null, x));\nif(cljs.core.truth_(and__5000__auto____$6)){\nvar and__5000__auto____$7 \x3d (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(y) : p3.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$7)){\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(z) : p3.call(null, z));\n} else {\nreturn and__5000__auto____$7;\n}\n} else {\nreturn and__5000__auto____$6;\n}\n} else {\nreturn and__5000__auto____$5;\n}\n} else {\nreturn and__5000__auto____$4;\n}\n} else {\nreturn and__5000__auto____$3;\n}\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})());\n});\nvar cljs$core$ep3__4 \x3d (function() { \nvar G__22757__delegate \x3d function (x,y,z,args){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d cljs$core$ep3.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.every_QMARK_((function (p1__18879_SHARP_){\nvar and__5000__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(p1__18879_SHARP_) : p1.call(null, p1__18879_SHARP_));\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(p1__18879_SHARP_) : p2.call(null, p1__18879_SHARP_));\nif(cljs.core.truth_(and__5000__auto____$2)){\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(p1__18879_SHARP_) : p3.call(null, p1__18879_SHARP_));\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n}),args);\n} else {\nreturn and__5000__auto__;\n}\n})());\n};\nvar G__22757 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22761__i \x3d 0, G__22761__a \x3d new Array(arguments.length - 3);\nwhile (G__22761__i \x3c G__22761__a.length) {G__22761__a[G__22761__i] \x3d arguments[G__22761__i + 3]; ++G__22761__i;}\n args \x3d new cljs.core.IndexedSeq(G__22761__a,0,null);\n} \nreturn G__22757__delegate.call(this,x,y,z,args);};\nG__22757.cljs$lang$maxFixedArity \x3d 3;\nG__22757.cljs$lang$applyTo \x3d (function (arglist__22762){\nvar x \x3d cljs.core.first(arglist__22762);\narglist__22762 \x3d cljs.core.next(arglist__22762);\nvar y \x3d cljs.core.first(arglist__22762);\narglist__22762 \x3d cljs.core.next(arglist__22762);\nvar z \x3d cljs.core.first(arglist__22762);\nvar args \x3d cljs.core.rest(arglist__22762);\nreturn G__22757__delegate(x,y,z,args);\n});\nG__22757.cljs$core$IFn$_invoke$arity$variadic \x3d G__22757__delegate;\nreturn G__22757;\n})()\n;\ncljs$core$ep3 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$ep3__0.call(this);\ncase 1:\nreturn cljs$core$ep3__1.call(this,x);\ncase 2:\nreturn cljs$core$ep3__2.call(this,x,y);\ncase 3:\nreturn cljs$core$ep3__3.call(this,x,y,z);\ndefault:\nvar G__22763 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22764__i \x3d 0, G__22764__a \x3d new Array(arguments.length - 3);\nwhile (G__22764__i \x3c G__22764__a.length) {G__22764__a[G__22764__i] \x3d arguments[G__22764__i + 3]; ++G__22764__i;}\nG__22763 \x3d new cljs.core.IndexedSeq(G__22764__a,0,null);\n}\nreturn cljs$core$ep3__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22763);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$ep3.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$ep3.cljs$lang$applyTo \x3d cljs$core$ep3__4.cljs$lang$applyTo;\ncljs$core$ep3.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$ep3__0;\ncljs$core$ep3.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$ep3__1;\ncljs$core$ep3.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$ep3__2;\ncljs$core$ep3.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$ep3__3;\ncljs$core$ep3.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$ep3__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$ep3;\n})()\n}));\n\n(cljs.core.every_pred.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p1,p2,p3,ps){\nvar ps__$1 \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(p1,p2,p3,ps);\nreturn (function() {\nvar cljs$core$epn \x3d null;\nvar cljs$core$epn__0 \x3d (function (){\nreturn true;\n});\nvar cljs$core$epn__1 \x3d (function (x){\nreturn cljs.core.every_QMARK_((function (p1__18880_SHARP_){\nreturn (p1__18880_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18880_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__18880_SHARP_.call(null, x));\n}),ps__$1);\n});\nvar cljs$core$epn__2 \x3d (function (x,y){\nreturn cljs.core.every_QMARK_((function (p1__18881_SHARP_){\nvar and__5000__auto__ \x3d (p1__18881_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18881_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__18881_SHARP_.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (p1__18881_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18881_SHARP_.cljs$core$IFn$_invoke$arity$1(y) : p1__18881_SHARP_.call(null, y));\n} else {\nreturn and__5000__auto__;\n}\n}),ps__$1);\n});\nvar cljs$core$epn__3 \x3d (function (x,y,z){\nreturn cljs.core.every_QMARK_((function (p1__18882_SHARP_){\nvar and__5000__auto__ \x3d (p1__18882_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18882_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__18882_SHARP_.call(null, x));\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d (p1__18882_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18882_SHARP_.cljs$core$IFn$_invoke$arity$1(y) : p1__18882_SHARP_.call(null, y));\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn (p1__18882_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18882_SHARP_.cljs$core$IFn$_invoke$arity$1(z) : p1__18882_SHARP_.call(null, z));\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n}),ps__$1);\n});\nvar cljs$core$epn__4 \x3d (function() { \nvar G__22769__delegate \x3d function (x,y,z,args){\nreturn cljs.core.boolean$((function (){var and__5000__auto__ \x3d cljs$core$epn.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.every_QMARK_((function (p1__18883_SHARP_){\nreturn cljs.core.every_QMARK_(p1__18883_SHARP_,args);\n}),ps__$1);\n} else {\nreturn and__5000__auto__;\n}\n})());\n};\nvar G__22769 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22774__i \x3d 0, G__22774__a \x3d new Array(arguments.length - 3);\nwhile (G__22774__i \x3c G__22774__a.length) {G__22774__a[G__22774__i] \x3d arguments[G__22774__i + 3]; ++G__22774__i;}\n args \x3d new cljs.core.IndexedSeq(G__22774__a,0,null);\n} \nreturn G__22769__delegate.call(this,x,y,z,args);};\nG__22769.cljs$lang$maxFixedArity \x3d 3;\nG__22769.cljs$lang$applyTo \x3d (function (arglist__22775){\nvar x \x3d cljs.core.first(arglist__22775);\narglist__22775 \x3d cljs.core.next(arglist__22775);\nvar y \x3d cljs.core.first(arglist__22775);\narglist__22775 \x3d cljs.core.next(arglist__22775);\nvar z \x3d cljs.core.first(arglist__22775);\nvar args \x3d cljs.core.rest(arglist__22775);\nreturn G__22769__delegate(x,y,z,args);\n});\nG__22769.cljs$core$IFn$_invoke$arity$variadic \x3d G__22769__delegate;\nreturn G__22769;\n})()\n;\ncljs$core$epn \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$epn__0.call(this);\ncase 1:\nreturn cljs$core$epn__1.call(this,x);\ncase 2:\nreturn cljs$core$epn__2.call(this,x,y);\ncase 3:\nreturn cljs$core$epn__3.call(this,x,y,z);\ndefault:\nvar G__22780 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22781__i \x3d 0, G__22781__a \x3d new Array(arguments.length - 3);\nwhile (G__22781__i \x3c G__22781__a.length) {G__22781__a[G__22781__i] \x3d arguments[G__22781__i + 3]; ++G__22781__i;}\nG__22780 \x3d new cljs.core.IndexedSeq(G__22781__a,0,null);\n}\nreturn cljs$core$epn__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22780);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$epn.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$epn.cljs$lang$applyTo \x3d cljs$core$epn__4.cljs$lang$applyTo;\ncljs$core$epn.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$epn__0;\ncljs$core$epn.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$epn__1;\ncljs$core$epn.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$epn__2;\ncljs$core$epn.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$epn__3;\ncljs$core$epn.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$epn__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$epn;\n})()\n}));\n\n/** @this {Function} */\n(cljs.core.every_pred.cljs$lang$applyTo \x3d (function (seq18885){\nvar G__18886 \x3d cljs.core.first(seq18885);\nvar seq18885__$1 \x3d cljs.core.next(seq18885);\nvar G__18887 \x3d cljs.core.first(seq18885__$1);\nvar seq18885__$2 \x3d cljs.core.next(seq18885__$1);\nvar G__18888 \x3d cljs.core.first(seq18885__$2);\nvar seq18885__$3 \x3d cljs.core.next(seq18885__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18886,G__18887,G__18888,seq18885__$3);\n}));\n\n(cljs.core.every_pred.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Takes a set of predicates and returns a function f that returns the first logical true value\n * returned by one of its composing predicates against any of its arguments, else it returns\n * logical false. Note that f is short-circuiting in that it will stop execution on the first\n * argument that triggers a logical true result against the original predicates.\n */\ncljs.core.some_fn \x3d (function cljs$core$some_fn(var_args){\nvar G__18901 \x3d arguments.length;\nswitch (G__18901) {\ncase 1:\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22789 \x3d arguments.length;\nvar i__5727__auto___22790 \x3d (0);\nwhile(true){\nif((i__5727__auto___22790 \x3c len__5726__auto___22789)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22790]));\n\nvar G__22791 \x3d (i__5727__auto___22790 + (1));\ni__5727__auto___22790 \x3d G__22791;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.some_fn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.some_fn.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn (function() {\nvar cljs$core$sp1 \x3d null;\nvar cljs$core$sp1__0 \x3d (function (){\nreturn null;\n});\nvar cljs$core$sp1__1 \x3d (function (x){\nreturn (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x));\n});\nvar cljs$core$sp1__2 \x3d (function (x,y){\nvar or__5002__auto__ \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(y) : p.call(null, y));\n}\n});\nvar cljs$core$sp1__3 \x3d (function (x,y,z){\nvar or__5002__auto__ \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(y) : p.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(z) : p.call(null, z));\n}\n}\n});\nvar cljs$core$sp1__4 \x3d (function() { \nvar G__22794__delegate \x3d function (x,y,z,args){\nvar or__5002__auto__ \x3d cljs$core$sp1.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.some(p,args);\n}\n};\nvar G__22794 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22795__i \x3d 0, G__22795__a \x3d new Array(arguments.length - 3);\nwhile (G__22795__i \x3c G__22795__a.length) {G__22795__a[G__22795__i] \x3d arguments[G__22795__i + 3]; ++G__22795__i;}\n args \x3d new cljs.core.IndexedSeq(G__22795__a,0,null);\n} \nreturn G__22794__delegate.call(this,x,y,z,args);};\nG__22794.cljs$lang$maxFixedArity \x3d 3;\nG__22794.cljs$lang$applyTo \x3d (function (arglist__22797){\nvar x \x3d cljs.core.first(arglist__22797);\narglist__22797 \x3d cljs.core.next(arglist__22797);\nvar y \x3d cljs.core.first(arglist__22797);\narglist__22797 \x3d cljs.core.next(arglist__22797);\nvar z \x3d cljs.core.first(arglist__22797);\nvar args \x3d cljs.core.rest(arglist__22797);\nreturn G__22794__delegate(x,y,z,args);\n});\nG__22794.cljs$core$IFn$_invoke$arity$variadic \x3d G__22794__delegate;\nreturn G__22794;\n})()\n;\ncljs$core$sp1 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$sp1__0.call(this);\ncase 1:\nreturn cljs$core$sp1__1.call(this,x);\ncase 2:\nreturn cljs$core$sp1__2.call(this,x,y);\ncase 3:\nreturn cljs$core$sp1__3.call(this,x,y,z);\ndefault:\nvar G__22798 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22799__i \x3d 0, G__22799__a \x3d new Array(arguments.length - 3);\nwhile (G__22799__i \x3c G__22799__a.length) {G__22799__a[G__22799__i] \x3d arguments[G__22799__i + 3]; ++G__22799__i;}\nG__22798 \x3d new cljs.core.IndexedSeq(G__22799__a,0,null);\n}\nreturn cljs$core$sp1__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22798);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$sp1.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$sp1.cljs$lang$applyTo \x3d cljs$core$sp1__4.cljs$lang$applyTo;\ncljs$core$sp1.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$sp1__0;\ncljs$core$sp1.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$sp1__1;\ncljs$core$sp1.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$sp1__2;\ncljs$core$sp1.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$sp1__3;\ncljs$core$sp1.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$sp1__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$sp1;\n})()\n}));\n\n(cljs.core.some_fn.cljs$core$IFn$_invoke$arity$2 \x3d (function (p1,p2){\nreturn (function() {\nvar cljs$core$sp2 \x3d null;\nvar cljs$core$sp2__0 \x3d (function (){\nreturn null;\n});\nvar cljs$core$sp2__1 \x3d (function (x){\nvar or__5002__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\n}\n});\nvar cljs$core$sp2__2 \x3d (function (x,y){\nvar or__5002__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\n}\n}\n}\n});\nvar cljs$core$sp2__3 \x3d (function (x,y,z){\nvar or__5002__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(z) : p1.call(null, z));\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nvar or__5002__auto____$3 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$3)){\nreturn or__5002__auto____$3;\n} else {\nvar or__5002__auto____$4 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$4)){\nreturn or__5002__auto____$4;\n} else {\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(z) : p2.call(null, z));\n}\n}\n}\n}\n}\n});\nvar cljs$core$sp2__4 \x3d (function() { \nvar G__22808__delegate \x3d function (x,y,z,args){\nvar or__5002__auto__ \x3d cljs$core$sp2.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.some((function (p1__18890_SHARP_){\nvar or__5002__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(p1__18890_SHARP_) : p1.call(null, p1__18890_SHARP_));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(p1__18890_SHARP_) : p2.call(null, p1__18890_SHARP_));\n}\n}),args);\n}\n};\nvar G__22808 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22815__i \x3d 0, G__22815__a \x3d new Array(arguments.length - 3);\nwhile (G__22815__i \x3c G__22815__a.length) {G__22815__a[G__22815__i] \x3d arguments[G__22815__i + 3]; ++G__22815__i;}\n args \x3d new cljs.core.IndexedSeq(G__22815__a,0,null);\n} \nreturn G__22808__delegate.call(this,x,y,z,args);};\nG__22808.cljs$lang$maxFixedArity \x3d 3;\nG__22808.cljs$lang$applyTo \x3d (function (arglist__22818){\nvar x \x3d cljs.core.first(arglist__22818);\narglist__22818 \x3d cljs.core.next(arglist__22818);\nvar y \x3d cljs.core.first(arglist__22818);\narglist__22818 \x3d cljs.core.next(arglist__22818);\nvar z \x3d cljs.core.first(arglist__22818);\nvar args \x3d cljs.core.rest(arglist__22818);\nreturn G__22808__delegate(x,y,z,args);\n});\nG__22808.cljs$core$IFn$_invoke$arity$variadic \x3d G__22808__delegate;\nreturn G__22808;\n})()\n;\ncljs$core$sp2 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$sp2__0.call(this);\ncase 1:\nreturn cljs$core$sp2__1.call(this,x);\ncase 2:\nreturn cljs$core$sp2__2.call(this,x,y);\ncase 3:\nreturn cljs$core$sp2__3.call(this,x,y,z);\ndefault:\nvar G__22819 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22820__i \x3d 0, G__22820__a \x3d new Array(arguments.length - 3);\nwhile (G__22820__i \x3c G__22820__a.length) {G__22820__a[G__22820__i] \x3d arguments[G__22820__i + 3]; ++G__22820__i;}\nG__22819 \x3d new cljs.core.IndexedSeq(G__22820__a,0,null);\n}\nreturn cljs$core$sp2__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22819);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$sp2.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$sp2.cljs$lang$applyTo \x3d cljs$core$sp2__4.cljs$lang$applyTo;\ncljs$core$sp2.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$sp2__0;\ncljs$core$sp2.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$sp2__1;\ncljs$core$sp2.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$sp2__2;\ncljs$core$sp2.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$sp2__3;\ncljs$core$sp2.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$sp2__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$sp2;\n})()\n}));\n\n(cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3 \x3d (function (p1,p2,p3){\nreturn (function() {\nvar cljs$core$sp3 \x3d null;\nvar cljs$core$sp3__0 \x3d (function (){\nreturn null;\n});\nvar cljs$core$sp3__1 \x3d (function (x){\nvar or__5002__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(x) : p3.call(null, x));\n}\n}\n});\nvar cljs$core$sp3__2 \x3d (function (x,y){\nvar or__5002__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nvar or__5002__auto____$3 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$3)){\nreturn or__5002__auto____$3;\n} else {\nvar or__5002__auto____$4 \x3d (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(x) : p3.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$4)){\nreturn or__5002__auto____$4;\n} else {\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(y) : p3.call(null, y));\n}\n}\n}\n}\n}\n});\nvar cljs$core$sp3__3 \x3d (function (x,y,z){\nvar or__5002__auto__ \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(x) : p1.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(y) : p1.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(z) : p1.call(null, z));\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nvar or__5002__auto____$3 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(x) : p2.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$3)){\nreturn or__5002__auto____$3;\n} else {\nvar or__5002__auto____$4 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(y) : p2.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$4)){\nreturn or__5002__auto____$4;\n} else {\nvar or__5002__auto____$5 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(z) : p2.call(null, z));\nif(cljs.core.truth_(or__5002__auto____$5)){\nreturn or__5002__auto____$5;\n} else {\nvar or__5002__auto____$6 \x3d (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(x) : p3.call(null, x));\nif(cljs.core.truth_(or__5002__auto____$6)){\nreturn or__5002__auto____$6;\n} else {\nvar or__5002__auto____$7 \x3d (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(y) : p3.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$7)){\nreturn or__5002__auto____$7;\n} else {\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(z) : p3.call(null, z));\n}\n}\n}\n}\n}\n}\n}\n}\n});\nvar cljs$core$sp3__4 \x3d (function() { \nvar G__22828__delegate \x3d function (x,y,z,args){\nvar or__5002__auto__ \x3d cljs$core$sp3.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.some((function (p1__18891_SHARP_){\nvar or__5002__auto____$1 \x3d (p1.cljs$core$IFn$_invoke$arity$1 ? p1.cljs$core$IFn$_invoke$arity$1(p1__18891_SHARP_) : p1.call(null, p1__18891_SHARP_));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d (p2.cljs$core$IFn$_invoke$arity$1 ? p2.cljs$core$IFn$_invoke$arity$1(p1__18891_SHARP_) : p2.call(null, p1__18891_SHARP_));\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nreturn (p3.cljs$core$IFn$_invoke$arity$1 ? p3.cljs$core$IFn$_invoke$arity$1(p1__18891_SHARP_) : p3.call(null, p1__18891_SHARP_));\n}\n}\n}),args);\n}\n};\nvar G__22828 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22832__i \x3d 0, G__22832__a \x3d new Array(arguments.length - 3);\nwhile (G__22832__i \x3c G__22832__a.length) {G__22832__a[G__22832__i] \x3d arguments[G__22832__i + 3]; ++G__22832__i;}\n args \x3d new cljs.core.IndexedSeq(G__22832__a,0,null);\n} \nreturn G__22828__delegate.call(this,x,y,z,args);};\nG__22828.cljs$lang$maxFixedArity \x3d 3;\nG__22828.cljs$lang$applyTo \x3d (function (arglist__22836){\nvar x \x3d cljs.core.first(arglist__22836);\narglist__22836 \x3d cljs.core.next(arglist__22836);\nvar y \x3d cljs.core.first(arglist__22836);\narglist__22836 \x3d cljs.core.next(arglist__22836);\nvar z \x3d cljs.core.first(arglist__22836);\nvar args \x3d cljs.core.rest(arglist__22836);\nreturn G__22828__delegate(x,y,z,args);\n});\nG__22828.cljs$core$IFn$_invoke$arity$variadic \x3d G__22828__delegate;\nreturn G__22828;\n})()\n;\ncljs$core$sp3 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$sp3__0.call(this);\ncase 1:\nreturn cljs$core$sp3__1.call(this,x);\ncase 2:\nreturn cljs$core$sp3__2.call(this,x,y);\ncase 3:\nreturn cljs$core$sp3__3.call(this,x,y,z);\ndefault:\nvar G__22837 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22838__i \x3d 0, G__22838__a \x3d new Array(arguments.length - 3);\nwhile (G__22838__i \x3c G__22838__a.length) {G__22838__a[G__22838__i] \x3d arguments[G__22838__i + 3]; ++G__22838__i;}\nG__22837 \x3d new cljs.core.IndexedSeq(G__22838__a,0,null);\n}\nreturn cljs$core$sp3__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22837);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$sp3.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$sp3.cljs$lang$applyTo \x3d cljs$core$sp3__4.cljs$lang$applyTo;\ncljs$core$sp3.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$sp3__0;\ncljs$core$sp3.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$sp3__1;\ncljs$core$sp3.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$sp3__2;\ncljs$core$sp3.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$sp3__3;\ncljs$core$sp3.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$sp3__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$sp3;\n})()\n}));\n\n(cljs.core.some_fn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p1,p2,p3,ps){\nvar ps__$1 \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(p1,p2,p3,ps);\nreturn (function() {\nvar cljs$core$spn \x3d null;\nvar cljs$core$spn__0 \x3d (function (){\nreturn null;\n});\nvar cljs$core$spn__1 \x3d (function (x){\nreturn cljs.core.some((function (p1__18892_SHARP_){\nreturn (p1__18892_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18892_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__18892_SHARP_.call(null, x));\n}),ps__$1);\n});\nvar cljs$core$spn__2 \x3d (function (x,y){\nreturn cljs.core.some((function (p1__18893_SHARP_){\nvar or__5002__auto__ \x3d (p1__18893_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18893_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__18893_SHARP_.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (p1__18893_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18893_SHARP_.cljs$core$IFn$_invoke$arity$1(y) : p1__18893_SHARP_.call(null, y));\n}\n}),ps__$1);\n});\nvar cljs$core$spn__3 \x3d (function (x,y,z){\nreturn cljs.core.some((function (p1__18894_SHARP_){\nvar or__5002__auto__ \x3d (p1__18894_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18894_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p1__18894_SHARP_.call(null, x));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (p1__18894_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18894_SHARP_.cljs$core$IFn$_invoke$arity$1(y) : p1__18894_SHARP_.call(null, y));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn (p1__18894_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__18894_SHARP_.cljs$core$IFn$_invoke$arity$1(z) : p1__18894_SHARP_.call(null, z));\n}\n}\n}),ps__$1);\n});\nvar cljs$core$spn__4 \x3d (function() { \nvar G__22842__delegate \x3d function (x,y,z,args){\nvar or__5002__auto__ \x3d cljs$core$spn.cljs$core$IFn$_invoke$arity$3(x,y,z);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.some((function (p1__18895_SHARP_){\nreturn cljs.core.some(p1__18895_SHARP_,args);\n}),ps__$1);\n}\n};\nvar G__22842 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22844__i \x3d 0, G__22844__a \x3d new Array(arguments.length - 3);\nwhile (G__22844__i \x3c G__22844__a.length) {G__22844__a[G__22844__i] \x3d arguments[G__22844__i + 3]; ++G__22844__i;}\n args \x3d new cljs.core.IndexedSeq(G__22844__a,0,null);\n} \nreturn G__22842__delegate.call(this,x,y,z,args);};\nG__22842.cljs$lang$maxFixedArity \x3d 3;\nG__22842.cljs$lang$applyTo \x3d (function (arglist__22848){\nvar x \x3d cljs.core.first(arglist__22848);\narglist__22848 \x3d cljs.core.next(arglist__22848);\nvar y \x3d cljs.core.first(arglist__22848);\narglist__22848 \x3d cljs.core.next(arglist__22848);\nvar z \x3d cljs.core.first(arglist__22848);\nvar args \x3d cljs.core.rest(arglist__22848);\nreturn G__22842__delegate(x,y,z,args);\n});\nG__22842.cljs$core$IFn$_invoke$arity$variadic \x3d G__22842__delegate;\nreturn G__22842;\n})()\n;\ncljs$core$spn \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$spn__0.call(this);\ncase 1:\nreturn cljs$core$spn__1.call(this,x);\ncase 2:\nreturn cljs$core$spn__2.call(this,x,y);\ncase 3:\nreturn cljs$core$spn__3.call(this,x,y,z);\ndefault:\nvar G__22849 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__22850__i \x3d 0, G__22850__a \x3d new Array(arguments.length - 3);\nwhile (G__22850__i \x3c G__22850__a.length) {G__22850__a[G__22850__i] \x3d arguments[G__22850__i + 3]; ++G__22850__i;}\nG__22849 \x3d new cljs.core.IndexedSeq(G__22850__a,0,null);\n}\nreturn cljs$core$spn__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__22849);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$spn.cljs$lang$maxFixedArity \x3d 3;\ncljs$core$spn.cljs$lang$applyTo \x3d cljs$core$spn__4.cljs$lang$applyTo;\ncljs$core$spn.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$spn__0;\ncljs$core$spn.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$spn__1;\ncljs$core$spn.cljs$core$IFn$_invoke$arity$2 \x3d cljs$core$spn__2;\ncljs$core$spn.cljs$core$IFn$_invoke$arity$3 \x3d cljs$core$spn__3;\ncljs$core$spn.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$spn__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn cljs$core$spn;\n})()\n}));\n\n/** @this {Function} */\n(cljs.core.some_fn.cljs$lang$applyTo \x3d (function (seq18897){\nvar G__18898 \x3d cljs.core.first(seq18897);\nvar seq18897__$1 \x3d cljs.core.next(seq18897);\nvar G__18899 \x3d cljs.core.first(seq18897__$1);\nvar seq18897__$2 \x3d cljs.core.next(seq18897__$1);\nvar G__18900 \x3d cljs.core.first(seq18897__$2);\nvar seq18897__$3 \x3d cljs.core.next(seq18897__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18898,G__18899,G__18900,seq18897__$3);\n}));\n\n(cljs.core.some_fn.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns a lazy sequence consisting of the result of applying f to\n * the set of first items of each coll, followed by applying f to the\n * set of second items in each coll, until any one of the colls is\n * exhausted. Any remaining items in other colls are ignored. Function\n * f should accept number-of-colls arguments. Returns a transducer when\n * no collection is provided.\n */\ncljs.core.map \x3d (function cljs$core$map(var_args){\nvar G__18909 \x3d arguments.length;\nswitch (G__18909) {\ncase 1:\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___22853 \x3d arguments.length;\nvar i__5727__auto___22854 \x3d (0);\nwhile(true){\nif((i__5727__auto___22854 \x3c len__5726__auto___22853)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___22854]));\n\nvar G__22856 \x3d (i__5727__auto___22854 + (1));\ni__5727__auto___22854 \x3d G__22856;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((4) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((4)),(0),null)):null);\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.map.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (function (rf){\nreturn (function() {\nvar G__22857 \x3d null;\nvar G__22857__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22857__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22857__2 \x3d (function (result,input){\nvar G__18910 \x3d result;\nvar G__18911 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(input) : f.call(null, input));\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(G__18910,G__18911) : rf.call(null, G__18910,G__18911));\n});\nvar G__22857__3 \x3d (function() { \nvar G__22858__delegate \x3d function (result,input,inputs){\nvar G__18912 \x3d result;\nvar G__18913 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,input,inputs);\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(G__18912,G__18913) : rf.call(null, G__18912,G__18913));\n};\nvar G__22858 \x3d function (result,input,var_args){\nvar inputs \x3d null;\nif (arguments.length \x3e 2) {\nvar G__22859__i \x3d 0, G__22859__a \x3d new Array(arguments.length - 2);\nwhile (G__22859__i \x3c G__22859__a.length) {G__22859__a[G__22859__i] \x3d arguments[G__22859__i + 2]; ++G__22859__i;}\n inputs \x3d new cljs.core.IndexedSeq(G__22859__a,0,null);\n} \nreturn G__22858__delegate.call(this,result,input,inputs);};\nG__22858.cljs$lang$maxFixedArity \x3d 2;\nG__22858.cljs$lang$applyTo \x3d (function (arglist__22860){\nvar result \x3d cljs.core.first(arglist__22860);\narglist__22860 \x3d cljs.core.next(arglist__22860);\nvar input \x3d cljs.core.first(arglist__22860);\nvar inputs \x3d cljs.core.rest(arglist__22860);\nreturn G__22858__delegate(result,input,inputs);\n});\nG__22858.cljs$core$IFn$_invoke$arity$variadic \x3d G__22858__delegate;\nreturn G__22858;\n})()\n;\nG__22857 \x3d function(result,input,var_args){\nvar inputs \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__22857__0.call(this);\ncase 1:\nreturn G__22857__1.call(this,result);\ncase 2:\nreturn G__22857__2.call(this,result,input);\ndefault:\nvar G__22861 \x3d null;\nif (arguments.length \x3e 2) {\nvar G__22862__i \x3d 0, G__22862__a \x3d new Array(arguments.length - 2);\nwhile (G__22862__i \x3c G__22862__a.length) {G__22862__a[G__22862__i] \x3d arguments[G__22862__i + 2]; ++G__22862__i;}\nG__22861 \x3d new cljs.core.IndexedSeq(G__22862__a,0,null);\n}\nreturn G__22857__3.cljs$core$IFn$_invoke$arity$variadic(result,input, G__22861);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22857.cljs$lang$maxFixedArity \x3d 2;\nG__22857.cljs$lang$applyTo \x3d G__22857__3.cljs$lang$applyTo;\nG__22857.cljs$core$IFn$_invoke$arity$0 \x3d G__22857__0;\nG__22857.cljs$core$IFn$_invoke$arity$1 \x3d G__22857__1;\nG__22857.cljs$core$IFn$_invoke$arity$2 \x3d G__22857__2;\nG__22857.cljs$core$IFn$_invoke$arity$variadic \x3d G__22857__3.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__22857;\n})()\n});\n}));\n\n(cljs.core.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s)){\nvar c \x3d cljs.core.chunk_first(s);\nvar size \x3d cljs.core.count(c);\nvar b \x3d cljs.core.chunk_buffer(size);\nvar n__5593__auto___22863 \x3d size;\nvar i_22865 \x3d (0);\nwhile(true){\nif((i_22865 \x3c n__5593__auto___22863)){\ncljs.core.chunk_append(b,(function (){var G__18914 \x3d cljs.core._nth(c,i_22865);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18914) : f.call(null, G__18914));\n})());\n\nvar G__22866 \x3d (i_22865 + (1));\ni_22865 \x3d G__22866;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.chunk_cons(cljs.core.chunk(b),cljs.core.map.cljs$core$IFn$_invoke$arity$2(f,cljs.core.chunk_rest(s)));\n} else {\nreturn cljs.core.cons((function (){var G__18915 \x3d cljs.core.first(s);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18915) : f.call(null, G__18915));\n})(),cljs.core.map.cljs$core$IFn$_invoke$arity$2(f,cljs.core.rest(s)));\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,c1,c2){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nif(((s1) \x26\x26 (s2))){\nreturn cljs.core.cons((function (){var G__18916 \x3d cljs.core.first(s1);\nvar G__18917 \x3d cljs.core.first(s2);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18916,G__18917) : f.call(null, G__18916,G__18917));\n})(),cljs.core.map.cljs$core$IFn$_invoke$arity$3(f,cljs.core.rest(s1),cljs.core.rest(s2)));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.map.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,c1,c2,c3){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nvar s3 \x3d cljs.core.seq(c3);\nif(((s1) \x26\x26 (((s2) \x26\x26 (s3))))){\nreturn cljs.core.cons((function (){var G__18918 \x3d cljs.core.first(s1);\nvar G__18919 \x3d cljs.core.first(s2);\nvar G__18920 \x3d cljs.core.first(s3);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__18918,G__18919,G__18920) : f.call(null, G__18918,G__18919,G__18920));\n})(),cljs.core.map.cljs$core$IFn$_invoke$arity$4(f,cljs.core.rest(s1),cljs.core.rest(s2),cljs.core.rest(s3)));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,c1,c2,c3,colls){\nvar step \x3d (function cljs$core$step(cs){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar ss \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.seq,cs);\nif(cljs.core.every_QMARK_(cljs.core.identity,ss)){\nreturn cljs.core.cons(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,ss),cljs$core$step(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.rest,ss)));\n} else {\nreturn null;\n}\n}),null,null));\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__18902_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,p1__18902_SHARP_);\n}),step(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(colls,c3,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c2,c1], 0))));\n}));\n\n/** @this {Function} */\n(cljs.core.map.cljs$lang$applyTo \x3d (function (seq18904){\nvar G__18905 \x3d cljs.core.first(seq18904);\nvar seq18904__$1 \x3d cljs.core.next(seq18904);\nvar G__18906 \x3d cljs.core.first(seq18904__$1);\nvar seq18904__$2 \x3d cljs.core.next(seq18904__$1);\nvar G__18907 \x3d cljs.core.first(seq18904__$2);\nvar seq18904__$3 \x3d cljs.core.next(seq18904__$2);\nvar G__18908 \x3d cljs.core.first(seq18904__$3);\nvar seq18904__$4 \x3d cljs.core.next(seq18904__$3);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18905,G__18906,G__18907,G__18908,seq18904__$4);\n}));\n\n(cljs.core.map.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Returns a lazy sequence of the first n items in coll, or all items if\n * there are fewer than n. Returns a stateful transducer when\n * no collection is provided.\n */\ncljs.core.take \x3d (function cljs$core$take(var_args){\nvar G__18922 \x3d arguments.length;\nswitch (G__18922) {\ncase 1:\nreturn cljs.core.take.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.take.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.take.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nif(typeof n \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? n)\x22));\n}\n\nreturn (function (rf){\nvar na \x3d cljs.core.volatile_BANG_(n);\nreturn (function() {\nvar G__22885 \x3d null;\nvar G__22885__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22885__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22885__2 \x3d (function (result,input){\nvar n__$1 \x3d cljs.core.deref(na);\nvar nn \x3d na.cljs$core$IVolatile$_vreset_BANG_$arity$2(null, (na.cljs$core$IDeref$_deref$arity$1(null, ) - (1)));\nvar result__$1 \x3d (((n__$1 \x3e (0)))?(rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input)):result);\nif((!((nn \x3e (0))))){\nreturn cljs.core.ensure_reduced(result__$1);\n} else {\nreturn result__$1;\n}\n});\nG__22885 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__22885__0.call(this);\ncase 1:\nreturn G__22885__1.call(this,result);\ncase 2:\nreturn G__22885__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22885.cljs$core$IFn$_invoke$arity$0 \x3d G__22885__0;\nG__22885.cljs$core$IFn$_invoke$arity$1 \x3d G__22885__1;\nG__22885.cljs$core$IFn$_invoke$arity$2 \x3d G__22885__2;\nreturn G__22885;\n})()\n});\n}));\n\n(cljs.core.take.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nif(typeof n \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? n)\x22));\n}\n\nreturn (new cljs.core.LazySeq(null,(function (){\nif((n \x3e (0))){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nreturn cljs.core.cons(cljs.core.first(s),cljs.core.take.cljs$core$IFn$_invoke$arity$2((n - (1)),cljs.core.rest(s)));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.take.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a laziness-preserving sequence of all but the first n items in coll.\n * Returns a stateful transducer when no collection is provided.\n */\ncljs.core.drop \x3d (function cljs$core$drop(var_args){\nvar G__18924 \x3d arguments.length;\nswitch (G__18924) {\ncase 1:\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.drop.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nif(typeof n \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? n)\x22));\n}\n\nreturn (function (rf){\nvar na \x3d cljs.core.volatile_BANG_(n);\nreturn (function() {\nvar G__22894 \x3d null;\nvar G__22894__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22894__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22894__2 \x3d (function (result,input){\nvar n__$1 \x3d cljs.core.deref(na);\nna.cljs$core$IVolatile$_vreset_BANG_$arity$2(null, (na.cljs$core$IDeref$_deref$arity$1(null, ) - (1)));\n\nif((n__$1 \x3e (0))){\nreturn result;\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n}\n});\nG__22894 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__22894__0.call(this);\ncase 1:\nreturn G__22894__1.call(this,result);\ncase 2:\nreturn G__22894__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22894.cljs$core$IFn$_invoke$arity$0 \x3d G__22894__0;\nG__22894.cljs$core$IFn$_invoke$arity$1 \x3d G__22894__1;\nG__22894.cljs$core$IFn$_invoke$arity$2 \x3d G__22894__2;\nreturn G__22894;\n})()\n});\n}));\n\n(cljs.core.drop.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nif(typeof n \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? n)\x22));\n}\n\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition1$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IDrop$))))?true:false):false)){\nvar or__5002__auto__ \x3d (((n \x3e (0)))?coll.cljs$core$IDrop$_drop$arity$2(null, Math.ceil(n)):cljs.core.seq(coll));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n} else {\nvar step \x3d (function (n__$1,coll__$1){\nwhile(true){\nvar s \x3d cljs.core.seq(coll__$1);\nif((((n__$1 \x3e (0))) \x26\x26 (s))){\nvar G__22925 \x3d (n__$1 - (1));\nvar G__22926 \x3d cljs.core.rest(s);\nn__$1 \x3d G__22925;\ncoll__$1 \x3d G__22926;\ncontinue;\n} else {\nreturn s;\n}\nbreak;\n}\n});\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn step(n,coll);\n}),null,null));\n}\n}));\n\n(cljs.core.drop.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Return a lazy sequence of all but the last n (default 1) items in coll\n */\ncljs.core.drop_last \x3d (function cljs$core$drop_last(var_args){\nvar G__18927 \x3d arguments.length;\nswitch (G__18927) {\ncase 1:\nreturn cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2((1),s);\n}));\n\n(cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,s){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (x,_){\nreturn x;\n}),s,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(n,s));\n}));\n\n(cljs.core.drop_last.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a seq of the last n items in coll. Depending on the type\n * of coll may be no better than linear time. For vectors, see also subvec.\n */\ncljs.core.take_last \x3d (function cljs$core$take_last(n,coll){\nvar s \x3d cljs.core.seq(coll);\nvar lead \x3d cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(n,coll));\nwhile(true){\nif(lead){\nvar G__22933 \x3d cljs.core.next(s);\nvar G__22934 \x3d cljs.core.next(lead);\ns \x3d G__22933;\nlead \x3d G__22934;\ncontinue;\n} else {\nreturn s;\n}\nbreak;\n}\n});\n/**\n * Returns a lazy sequence of the items in coll starting from the\n * first item for which (pred item) returns logical false. Returns a\n * stateful transducer when no collection is provided.\n */\ncljs.core.drop_while \x3d (function cljs$core$drop_while(var_args){\nvar G__18929 \x3d arguments.length;\nswitch (G__18929) {\ncase 1:\nreturn cljs.core.drop_while.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.drop_while.cljs$core$IFn$_invoke$arity$1 \x3d (function (pred){\nreturn (function (rf){\nvar da \x3d cljs.core.volatile_BANG_(true);\nreturn (function() {\nvar G__22937 \x3d null;\nvar G__22937__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__22937__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__22937__2 \x3d (function (result,input){\nvar drop_QMARK_ \x3d cljs.core.deref(da);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d drop_QMARK_;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(input) : pred.call(null, input));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn result;\n} else {\ncljs.core.vreset_BANG_(da,null);\n\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n}\n});\nG__22937 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__22937__0.call(this);\ncase 1:\nreturn G__22937__1.call(this,result);\ncase 2:\nreturn G__22937__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22937.cljs$core$IFn$_invoke$arity$0 \x3d G__22937__0;\nG__22937.cljs$core$IFn$_invoke$arity$1 \x3d G__22937__1;\nG__22937.cljs$core$IFn$_invoke$arity$2 \x3d G__22937__2;\nreturn G__22937;\n})()\n});\n}));\n\n(cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nvar step \x3d (function (pred__$1,coll__$1){\nwhile(true){\nvar s \x3d cljs.core.seq(coll__$1);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d s;\nif(and__5000__auto__){\nvar G__18930 \x3d cljs.core.first(s);\nreturn (pred__$1.cljs$core$IFn$_invoke$arity$1 ? pred__$1.cljs$core$IFn$_invoke$arity$1(G__18930) : pred__$1.call(null, G__18930));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nvar G__22942 \x3d pred__$1;\nvar G__22943 \x3d cljs.core.rest(s);\npred__$1 \x3d G__22942;\ncoll__$1 \x3d G__22943;\ncontinue;\n} else {\nreturn s;\n}\nbreak;\n}\n});\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn step(pred,coll);\n}),null,null));\n}));\n\n(cljs.core.drop_while.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Cycle \x3d (function (meta,all,prev,current,_next){\nthis.meta \x3d meta;\nthis.all \x3d all;\nthis.prev \x3d prev;\nthis.current \x3d current;\nthis._next \x3d _next;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 26083532;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1;\n});\n(cljs.core.Cycle.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.Cycle.prototype.currentval \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nif(self__.current){\n} else {\nvar temp__5802__auto___22946 \x3d cljs.core.next(self__.prev);\nif(temp__5802__auto___22946){\nvar c_22948 \x3d temp__5802__auto___22946;\n(self__.current \x3d c_22948);\n} else {\n(self__.current \x3d self__.all);\n}\n}\n\nreturn self__.current;\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ISeq$_rest$arity$1(null, );\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (!((self__.current \x3d\x3d null)));\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar s \x3d coll__$1.currentval();\nvar ret \x3d cljs.core.first(s);\nwhile(true){\nvar s__$1 \x3d (function (){var or__5002__auto__ \x3d cljs.core.next(s);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn self__.all;\n}\n})();\nvar ret__$1 \x3d (function (){var G__18933 \x3d ret;\nvar G__18934 \x3d cljs.core.first(s__$1);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18933,G__18934) : f.call(null, G__18933,G__18934));\n})();\nif(cljs.core.reduced_QMARK_(ret__$1)){\nreturn cljs.core.deref(ret__$1);\n} else {\nvar G__22960 \x3d s__$1;\nvar G__22961 \x3d ret__$1;\ns \x3d G__22960;\nret \x3d G__22961;\ncontinue;\n}\nbreak;\n}\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar s \x3d coll__$1.currentval();\nvar ret \x3d start;\nwhile(true){\nvar ret__$1 \x3d (function (){var G__18935 \x3d ret;\nvar G__18936 \x3d cljs.core.first(s);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18935,G__18936) : f.call(null, G__18935,G__18936));\n})();\nif(cljs.core.reduced_QMARK_(ret__$1)){\nreturn cljs.core.deref(ret__$1);\n} else {\nvar G__22968 \x3d (function (){var or__5002__auto__ \x3d cljs.core.next(s);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn self__.all;\n}\n})();\nvar G__22969 \x3d ret__$1;\ns \x3d G__22968;\nret \x3d G__22969;\ncontinue;\n}\nbreak;\n}\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.first(coll__$1.currentval());\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__._next \x3d\x3d null)){\n(self__._next \x3d (new cljs.core.Cycle(null,self__.all,coll__$1.currentval(),null,null)));\n} else {\n}\n\nreturn self__._next;\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.Cycle(new_meta,self__.all,self__.prev,self__.current,self__._next));\n}\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.Cycle.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22all\x22,\x22all\x22,-1762306027,null),new cljs.core.Symbol(null,\x22prev\x22,\x22prev\x22,43462301,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22current\x22,\x22current\x22,552492924,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_next\x22,\x22_next\x22,101877036,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Cycle.cljs$lang$type \x3d true);\n\n(cljs.core.Cycle.cljs$lang$ctorStr \x3d \x22cljs.core/Cycle\x22);\n\n(cljs.core.Cycle.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Cycle\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Cycle.\n */\ncljs.core.__GT_Cycle \x3d (function cljs$core$__GT_Cycle(meta,all,prev,current,_next){\nreturn (new cljs.core.Cycle(meta,all,prev,current,_next));\n});\n\n/**\n * Returns a lazy (infinite!) sequence of repetitions of the items in coll.\n */\ncljs.core.cycle \x3d (function cljs$core$cycle(coll){\nvar temp__5802__auto__ \x3d cljs.core.seq(coll);\nif(temp__5802__auto__){\nvar vals \x3d temp__5802__auto__;\nreturn (new cljs.core.Cycle(null,vals,null,vals,null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n});\n/**\n * Returns a vector of [(take n coll) (drop n coll)]\n */\ncljs.core.split_at \x3d (function cljs$core$split_at(n,coll){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,coll),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(n,coll)], null);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Repeat \x3d (function (meta,count,val,next,__hash){\nthis.meta \x3d meta;\nthis.count \x3d count;\nthis.val \x3d val;\nthis.next \x3d next;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 262145;\n});\n(cljs.core.Repeat.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.Repeat.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Repeat.prototype.indexOf \x3d (function() {\nvar G__22989 \x3d null;\nvar G__22989__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__22989__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__22989 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__22989__1.call(this,x);\ncase 2:\nreturn G__22989__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22989.cljs$core$IFn$_invoke$arity$1 \x3d G__22989__1;\nG__22989.cljs$core$IFn$_invoke$arity$2 \x3d G__22989__2;\nreturn G__22989;\n})()\n);\n\n(cljs.core.Repeat.prototype.lastIndexOf \x3d (function() {\nvar G__22992 \x3d null;\nvar G__22992__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,self__.count);\n});\nvar G__22992__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__22992 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__22992__1.call(this,x);\ncase 2:\nreturn G__22992__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__22992.cljs$core$IFn$_invoke$arity$1 \x3d G__22992__1;\nG__22992.cljs$core$IFn$_invoke$arity$2 \x3d G__22992__2;\nreturn G__22992;\n})()\n);\n\n(cljs.core.Repeat.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.next \x3d\x3d null)){\nif((self__.count \x3e (1))){\n(self__.next \x3d (new cljs.core.Repeat(null,(self__.count - (1)),self__.val,null,null)));\n\nreturn self__.next;\n} else {\nif(((-1) \x3d\x3d\x3d self__.count)){\nreturn coll__$1;\n} else {\nreturn null;\n}\n}\n} else {\nreturn self__.next;\n}\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn false;\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.count \x3d\x3d\x3d (-1))){\nvar ret \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(self__.val,self__.val) : f.call(null, self__.val,self__.val));\nwhile(true){\nif(cljs.core.reduced_QMARK_(ret)){\nreturn cljs.core.deref(ret);\n} else {\nvar G__23002 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(ret,self__.val) : f.call(null, ret,self__.val));\nret \x3d G__23002;\ncontinue;\n}\nbreak;\n}\n} else {\nvar i \x3d (1);\nvar ret \x3d self__.val;\nwhile(true){\nif((i \x3c self__.count)){\nvar ret__$1 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(ret,self__.val) : f.call(null, ret,self__.val));\nif(cljs.core.reduced_QMARK_(ret__$1)){\nreturn cljs.core.deref(ret__$1);\n} else {\nvar G__23005 \x3d (i + (1));\nvar G__23006 \x3d ret__$1;\ni \x3d G__23005;\nret \x3d G__23006;\ncontinue;\n}\n} else {\nreturn ret;\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.count \x3d\x3d\x3d (-1))){\nvar ret \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(start,self__.val) : f.call(null, start,self__.val));\nwhile(true){\nif(cljs.core.reduced_QMARK_(ret)){\nreturn cljs.core.deref(ret);\n} else {\nvar G__23010 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(ret,self__.val) : f.call(null, ret,self__.val));\nret \x3d G__23010;\ncontinue;\n}\nbreak;\n}\n} else {\nvar i \x3d (0);\nvar ret \x3d start;\nwhile(true){\nif((i \x3c self__.count)){\nvar ret__$1 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(ret,self__.val) : f.call(null, ret,self__.val));\nif(cljs.core.reduced_QMARK_(ret__$1)){\nreturn cljs.core.deref(ret__$1);\n} else {\nvar G__23013 \x3d (i + (1));\nvar G__23014 \x3d ret__$1;\ni \x3d G__23013;\nret \x3d G__23014;\ncontinue;\n}\n} else {\nreturn ret;\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.next \x3d\x3d null)){\nif((self__.count \x3e (1))){\n(self__.next \x3d (new cljs.core.Repeat(null,(self__.count - (1)),self__.val,null,null)));\n\nreturn self__.next;\n} else {\nif(((-1) \x3d\x3d\x3d self__.count)){\nreturn coll__$1;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}\n} else {\nreturn self__.next;\n}\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.Repeat(new_meta,self__.count,self__.val,self__.next,null));\n}\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.count \x3d\x3d\x3d (-1))){\nreturn coll__$1;\n} else {\nvar dropped_count \x3d (self__.count - n);\nif((dropped_count \x3e (0))){\nreturn (new cljs.core.Repeat(null,dropped_count,self__.val,null,null));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.core.Repeat.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22count\x22,\x22count\x22,-514511684,null),new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22next\x22,\x22next\x22,1522830042,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Repeat.cljs$lang$type \x3d true);\n\n(cljs.core.Repeat.cljs$lang$ctorStr \x3d \x22cljs.core/Repeat\x22);\n\n(cljs.core.Repeat.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Repeat\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Repeat.\n */\ncljs.core.__GT_Repeat \x3d (function cljs$core$__GT_Repeat(meta,count,val,next,__hash){\nreturn (new cljs.core.Repeat(meta,count,val,next,__hash));\n});\n\n/**\n * Returns a lazy (infinite!, or length n if supplied) sequence of xs.\n */\ncljs.core.repeat \x3d (function cljs$core$repeat(var_args){\nvar G__18938 \x3d arguments.length;\nswitch (G__18938) {\ncase 1:\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn (new cljs.core.Repeat(null,(-1),x,null,null));\n}));\n\n(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,x){\nif((n \x3e (0))){\nreturn (new cljs.core.Repeat(null,n,x,null,null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.repeat.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * DEPRECATED: Use \x27repeat\x27 instead.\n * Returns a lazy seq of n xs.\n */\ncljs.core.replicate \x3d (function cljs$core$replicate(n,x){\nreturn cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(x));\n});\n/**\n * Takes a function of no args, presumably with side effects, and\n * returns an infinite (or length n if supplied) lazy sequence of calls\n * to it\n */\ncljs.core.repeatedly \x3d (function cljs$core$repeatedly(var_args){\nvar G__18940 \x3d arguments.length;\nswitch (G__18940) {\ncase 1:\nreturn cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons((f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, )),cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(f));\n}),null,null));\n}));\n\n(cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,f){\nreturn cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(f));\n}));\n\n(cljs.core.repeatedly.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.core.UNREALIZED_SEED \x3d ({});\n\n/**\n* @constructor\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Iterate \x3d (function (meta,f,prev_seed,seed,next){\nthis.meta \x3d meta;\nthis.f \x3d f;\nthis.prev_seed \x3d prev_seed;\nthis.seed \x3d seed;\nthis.next \x3d next;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 26083532;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1;\n});\n(cljs.core.Iterate.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ISeq$_rest$arity$1(null, );\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (!((self__.seed \x3d\x3d\x3d cljs.core.UNREALIZED_SEED)));\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,rf){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar first \x3d coll__$1.cljs$core$ISeq$_first$arity$1(null, );\nvar v \x3d (self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(first) : self__.f.call(null, first));\nvar ret \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(first,v) : rf.call(null, first,v));\nvar v__$1 \x3d v;\nwhile(true){\nif(cljs.core.reduced_QMARK_(ret)){\nreturn cljs.core.deref(ret);\n} else {\nvar v__$2 \x3d (self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(v__$1) : self__.f.call(null, v__$1));\nvar G__23048 \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(ret,v__$2) : rf.call(null, ret,v__$2));\nvar G__23049 \x3d v__$2;\nret \x3d G__23048;\nv__$1 \x3d G__23049;\ncontinue;\n}\nbreak;\n}\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,rf,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar v \x3d coll__$1.cljs$core$ISeq$_first$arity$1(null, );\nvar ret \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(start,v) : rf.call(null, start,v));\nvar v__$1 \x3d v;\nwhile(true){\nif(cljs.core.reduced_QMARK_(ret)){\nreturn cljs.core.deref(ret);\n} else {\nvar v__$2 \x3d (self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(v__$1) : self__.f.call(null, v__$1));\nvar G__23053 \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(ret,v__$2) : rf.call(null, ret,v__$2));\nvar G__23054 \x3d v__$2;\nret \x3d G__23053;\nv__$1 \x3d G__23054;\ncontinue;\n}\nbreak;\n}\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((cljs.core.UNREALIZED_SEED \x3d\x3d\x3d self__.seed)){\n(self__.seed \x3d (self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(self__.prev_seed) : self__.f.call(null, self__.prev_seed)));\n} else {\n}\n\nreturn self__.seed;\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.next \x3d\x3d null)){\n(self__.next \x3d (new cljs.core.Iterate(null,self__.f,coll__$1.cljs$core$ISeq$_first$arity$1(null, ),cljs.core.UNREALIZED_SEED,null)));\n} else {\n}\n\nreturn self__.next;\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.Iterate(new_meta,self__.f,self__.prev_seed,self__.seed,self__.next));\n}\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.Iterate.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22prev-seed\x22,\x22prev-seed\x22,2126381367,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22seed\x22,\x22seed\x22,1709144854,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22next\x22,\x22next\x22,1522830042,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Iterate.cljs$lang$type \x3d true);\n\n(cljs.core.Iterate.cljs$lang$ctorStr \x3d \x22cljs.core/Iterate\x22);\n\n(cljs.core.Iterate.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Iterate\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Iterate.\n */\ncljs.core.__GT_Iterate \x3d (function cljs$core$__GT_Iterate(meta,f,prev_seed,seed,next){\nreturn (new cljs.core.Iterate(meta,f,prev_seed,seed,next));\n});\n\n/**\n * Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects\n */\ncljs.core.iterate \x3d (function cljs$core$iterate(f,x){\nreturn (new cljs.core.Iterate(null,f,null,x,null));\n});\n/**\n * Returns a lazy seq of the first item in each coll, then the second etc.\n */\ncljs.core.interleave \x3d (function cljs$core$interleave(var_args){\nvar G__18945 \x3d arguments.length;\nswitch (G__18945) {\ncase 0:\nreturn cljs.core.interleave.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.interleave.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.interleave.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___23073 \x3d arguments.length;\nvar i__5727__auto___23074 \x3d (0);\nwhile(true){\nif((i__5727__auto___23074 \x3c len__5726__auto___23073)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___23074]));\n\nvar G__23075 \x3d (i__5727__auto___23074 + (1));\ni__5727__auto___23074 \x3d G__23075;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.interleave.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.interleave.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.interleave.cljs$core$IFn$_invoke$arity$1 \x3d (function (c1){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn c1;\n}),null,null));\n}));\n\n(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2 \x3d (function (c1,c2){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s1 \x3d cljs.core.seq(c1);\nvar s2 \x3d cljs.core.seq(c2);\nif(((s1) \x26\x26 (s2))){\nreturn cljs.core.cons(cljs.core.first(s1),cljs.core.cons(cljs.core.first(s2),cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(s1),cljs.core.rest(s2))));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.interleave.cljs$core$IFn$_invoke$arity$variadic \x3d (function (c1,c2,colls){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar ss \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.seq,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(colls,c2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c1], 0)));\nif(cljs.core.every_QMARK_(cljs.core.identity,ss)){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,ss),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.interleave,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.rest,ss)));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n/** @this {Function} */\n(cljs.core.interleave.cljs$lang$applyTo \x3d (function (seq18942){\nvar G__18943 \x3d cljs.core.first(seq18942);\nvar seq18942__$1 \x3d cljs.core.next(seq18942);\nvar G__18944 \x3d cljs.core.first(seq18942__$1);\nvar seq18942__$2 \x3d cljs.core.next(seq18942__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18943,G__18944,seq18942__$2);\n}));\n\n(cljs.core.interleave.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns a lazy seq of the elements of coll separated by sep.\n * Returns a stateful transducer when no collection is provided.\n */\ncljs.core.interpose \x3d (function cljs$core$interpose(var_args){\nvar G__18947 \x3d arguments.length;\nswitch (G__18947) {\ncase 1:\nreturn cljs.core.interpose.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.interpose.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.interpose.cljs$core$IFn$_invoke$arity$1 \x3d (function (sep){\nreturn (function (rf){\nvar started \x3d cljs.core.volatile_BANG_(false);\nreturn (function() {\nvar G__23087 \x3d null;\nvar G__23087__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__23087__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__23087__2 \x3d (function (result,input){\nif(cljs.core.truth_(cljs.core.deref(started))){\nvar sepr \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,sep) : rf.call(null, result,sep));\nif(cljs.core.reduced_QMARK_(sepr)){\nreturn sepr;\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(sepr,input) : rf.call(null, sepr,input));\n}\n} else {\ncljs.core.vreset_BANG_(started,true);\n\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n}\n});\nG__23087 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__23087__0.call(this);\ncase 1:\nreturn G__23087__1.call(this,result);\ncase 2:\nreturn G__23087__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23087.cljs$core$IFn$_invoke$arity$0 \x3d G__23087__0;\nG__23087.cljs$core$IFn$_invoke$arity$1 \x3d G__23087__1;\nG__23087.cljs$core$IFn$_invoke$arity$2 \x3d G__23087__2;\nreturn G__23087;\n})()\n});\n}));\n\n(cljs.core.interpose.cljs$core$IFn$_invoke$arity$2 \x3d (function (sep,coll){\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2((1),cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(sep),coll));\n}));\n\n(cljs.core.interpose.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Take a collection of collections, and return a lazy seq\n * of items from the inner collection\n */\ncljs.core.flatten1 \x3d (function cljs$core$flatten1(colls){\nvar cat \x3d (function cljs$core$flatten1_$_cat(coll,colls__$1){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5802__auto__ \x3d cljs.core.seq(coll);\nif(temp__5802__auto__){\nvar coll__$1 \x3d temp__5802__auto__;\nreturn cljs.core.cons(cljs.core.first(coll__$1),cljs$core$flatten1_$_cat(cljs.core.rest(coll__$1),colls__$1));\n} else {\nif(cljs.core.seq(colls__$1)){\nreturn cljs$core$flatten1_$_cat(cljs.core.first(colls__$1),cljs.core.rest(colls__$1));\n} else {\nreturn null;\n}\n}\n}),null,null));\n});\nreturn cat(null,colls);\n});\n/**\n * Returns the result of applying concat to the result of applying map\n * to f and colls. Thus function f should return a collection. Returns\n * a transducer when no collections are provided\n */\ncljs.core.mapcat \x3d (function cljs$core$mapcat(var_args){\nvar G__18951 \x3d arguments.length;\nswitch (G__18951) {\ncase 1:\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___23104 \x3d arguments.length;\nvar i__5727__auto___23105 \x3d (0);\nwhile(true){\nif((i__5727__auto___23105 \x3c len__5726__auto___23104)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___23105]));\n\nvar G__23106 \x3d (i__5727__auto___23105 + (1));\ni__5727__auto___23105 \x3d G__23106;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((1) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$1(f),cljs.core.cat);\n}));\n\n(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,colls){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.map,f,colls));\n}));\n\n/** @this {Function} */\n(cljs.core.mapcat.cljs$lang$applyTo \x3d (function (seq18949){\nvar G__18950 \x3d cljs.core.first(seq18949);\nvar seq18949__$1 \x3d cljs.core.next(seq18949);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18950,seq18949__$1);\n}));\n\n(cljs.core.mapcat.cljs$lang$maxFixedArity \x3d (1));\n\n/**\n * Returns a lazy sequence of the items in coll for which\n * (pred item) returns logical true. pred must be free of side-effects.\n * Returns a transducer when no collection is provided.\n */\ncljs.core.filter \x3d (function cljs$core$filter(var_args){\nvar G__18953 \x3d arguments.length;\nswitch (G__18953) {\ncase 1:\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.filter.cljs$core$IFn$_invoke$arity$1 \x3d (function (pred){\nreturn (function (rf){\nreturn (function() {\nvar G__23114 \x3d null;\nvar G__23114__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__23114__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__23114__2 \x3d (function (result,input){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(input) : pred.call(null, input)))){\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n} else {\nreturn result;\n}\n});\nG__23114 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__23114__0.call(this);\ncase 1:\nreturn G__23114__1.call(this,result);\ncase 2:\nreturn G__23114__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23114.cljs$core$IFn$_invoke$arity$0 \x3d G__23114__0;\nG__23114.cljs$core$IFn$_invoke$arity$1 \x3d G__23114__1;\nG__23114.cljs$core$IFn$_invoke$arity$2 \x3d G__23114__2;\nreturn G__23114;\n})()\n});\n}));\n\n(cljs.core.filter.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s)){\nvar c \x3d cljs.core.chunk_first(s);\nvar size \x3d cljs.core.count(c);\nvar b \x3d cljs.core.chunk_buffer(size);\nvar n__5593__auto___23119 \x3d size;\nvar i_23120 \x3d (0);\nwhile(true){\nif((i_23120 \x3c n__5593__auto___23119)){\nif(cljs.core.truth_((function (){var G__18954 \x3d cljs.core._nth(c,i_23120);\nreturn (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(G__18954) : pred.call(null, G__18954));\n})())){\ncljs.core.chunk_append(b,cljs.core._nth(c,i_23120));\n} else {\n}\n\nvar G__23124 \x3d (i_23120 + (1));\ni_23120 \x3d G__23124;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core.chunk_cons(cljs.core.chunk(b),cljs.core.filter.cljs$core$IFn$_invoke$arity$2(pred,cljs.core.chunk_rest(s)));\n} else {\nvar f \x3d cljs.core.first(s);\nvar r \x3d cljs.core.rest(s);\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(f) : pred.call(null, f)))){\nreturn cljs.core.cons(f,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(pred,r));\n} else {\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2(pred,r);\n}\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.filter.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a lazy sequence of the items in coll for which\n * (pred item) returns logical false. pred must be free of side-effects.\n * Returns a transducer when no collection is provided.\n */\ncljs.core.remove \x3d (function cljs$core$remove(var_args){\nvar G__18956 \x3d arguments.length;\nswitch (G__18956) {\ncase 1:\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.remove.cljs$core$IFn$_invoke$arity$1 \x3d (function (pred){\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$1(cljs.core.complement(pred));\n}));\n\n(cljs.core.remove.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.complement(pred),coll);\n}));\n\n(cljs.core.remove.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a lazy sequence of the nodes in a tree, via a depth-first walk.\n * branch? must be a fn of one arg that returns true if passed a node\n * that can have children (but may not). children must be a fn of one\n * arg that returns a sequence of the children. Will only be called on\n * nodes for which branch? returns true. Root is the root node of the\n * tree.\n */\ncljs.core.tree_seq \x3d (function cljs$core$tree_seq(branch_QMARK_,children,root){\nvar walk \x3d (function cljs$core$tree_seq_$_walk(node){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons(node,(cljs.core.truth_((branch_QMARK_.cljs$core$IFn$_invoke$arity$1 ? branch_QMARK_.cljs$core$IFn$_invoke$arity$1(node) : branch_QMARK_.call(null, node)))?cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs$core$tree_seq_$_walk,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(children.cljs$core$IFn$_invoke$arity$1 ? children.cljs$core$IFn$_invoke$arity$1(node) : children.call(null, node))], 0)):null));\n}),null,null));\n});\nreturn walk(root);\n});\n/**\n * Takes any nested combination of sequential things (lists, vectors,\n * etc.) and returns their contents as a single, flat sequence.\n * (flatten nil) returns nil.\n */\ncljs.core.flatten \x3d (function cljs$core$flatten(x){\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__18957_SHARP_){\nreturn (!(cljs.core.sequential_QMARK_(p1__18957_SHARP_)));\n}),cljs.core.rest(cljs.core.tree_seq(cljs.core.sequential_QMARK_,cljs.core.seq,x)));\n});\n/**\n * Returns a new coll consisting of to-coll with all of the items of\n * from-coll conjoined. A transducer may be supplied.\n */\ncljs.core.into \x3d (function cljs$core$into(var_args){\nvar G__18959 \x3d arguments.length;\nswitch (G__18959) {\ncase 0:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.into.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cljs.core.into.cljs$core$IFn$_invoke$arity$1 \x3d (function (to){\nreturn to;\n}));\n\n(cljs.core.into.cljs$core$IFn$_invoke$arity$2 \x3d (function (to,from){\nif((!((to \x3d\x3d null)))){\nif((((!((to \x3d\x3d null))))?(((((to.cljs$lang$protocol_mask$partition1$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d to.cljs$core$IEditableCollection$))))?true:false):false)){\nreturn cljs.core._with_meta(cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj_BANG_,cljs.core.transient$(to),from)),cljs.core.meta(to));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,to,from);\n}\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,to,from);\n}\n}));\n\n(cljs.core.into.cljs$core$IFn$_invoke$arity$3 \x3d (function (to,xform,from){\nif((((!((to \x3d\x3d null))))?(((((to.cljs$lang$protocol_mask$partition1$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d to.cljs$core$IEditableCollection$))))?true:false):false)){\nvar tm \x3d cljs.core.meta(to);\nvar rf \x3d (function() {\nvar G__23141 \x3d null;\nvar G__23141__1 \x3d (function (coll){\nreturn cljs.core._with_meta(cljs.core.persistent_BANG_(coll),tm);\n});\nvar G__23141__2 \x3d (function (coll,v){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(coll,v);\n});\nG__23141 \x3d function(coll,v){\nswitch(arguments.length){\ncase 1:\nreturn G__23141__1.call(this,coll);\ncase 2:\nreturn G__23141__2.call(this,coll,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23141.cljs$core$IFn$_invoke$arity$1 \x3d G__23141__1;\nG__23141.cljs$core$IFn$_invoke$arity$2 \x3d G__23141__2;\nreturn G__23141;\n})()\n;\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,rf,cljs.core.transient$(to),from);\n} else {\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(xform,cljs.core.conj,to,from);\n}\n}));\n\n(cljs.core.into.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a vector consisting of the result of applying f to the\n * set of first items of each coll, followed by applying f to the set\n * of second items in each coll, until any one of the colls is\n * exhausted. Any remaining items in other colls are ignored. Function\n * f should accept number-of-colls arguments.\n */\ncljs.core.mapv \x3d (function cljs$core$mapv(var_args){\nvar G__18968 \x3d arguments.length;\nswitch (G__18968) {\ncase 2:\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___23146 \x3d arguments.length;\nvar i__5727__auto___23147 \x3d (0);\nwhile(true){\nif((i__5727__auto___23147 \x3c len__5726__auto___23146)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___23147]));\n\nvar G__23150 \x3d (i__5727__auto___23147 + (1));\ni__5727__auto___23147 \x3d G__23150;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((4) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((4)),(0),null)):null);\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (v,o){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(o) : f.call(null, o)));\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),coll));\n}));\n\n(cljs.core.mapv.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,c1,c2){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$3(f,c1,c2));\n}));\n\n(cljs.core.mapv.cljs$core$IFn$_invoke$arity$4 \x3d (function (f,c1,c2,c3){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$4(f,c1,c2,c3));\n}));\n\n(cljs.core.mapv.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,c1,c2,c3,colls){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(cljs.core.map,f,c1,c2,c3,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([colls], 0)));\n}));\n\n/** @this {Function} */\n(cljs.core.mapv.cljs$lang$applyTo \x3d (function (seq18963){\nvar G__18964 \x3d cljs.core.first(seq18963);\nvar seq18963__$1 \x3d cljs.core.next(seq18963);\nvar G__18965 \x3d cljs.core.first(seq18963__$1);\nvar seq18963__$2 \x3d cljs.core.next(seq18963__$1);\nvar G__18966 \x3d cljs.core.first(seq18963__$2);\nvar seq18963__$3 \x3d cljs.core.next(seq18963__$2);\nvar G__18967 \x3d cljs.core.first(seq18963__$3);\nvar seq18963__$4 \x3d cljs.core.next(seq18963__$3);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18964,G__18965,G__18966,G__18967,seq18963__$4);\n}));\n\n(cljs.core.mapv.cljs$lang$maxFixedArity \x3d (4));\n\n/**\n * Returns a vector of the items in coll for which\n * (pred item) returns logical true. pred must be free of side-effects.\n */\ncljs.core.filterv \x3d (function cljs$core$filterv(pred,coll){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (v,o){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(o) : pred.call(null, o)))){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,o);\n} else {\nreturn v;\n}\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),coll));\n});\n/**\n * Returns a lazy sequence of lists of n items each, at offsets step\n * apart. If step is not supplied, defaults to n, i.e. the partitions\n * do not overlap. If a pad collection is supplied, use its elements as\n * necessary to complete last partition up to n items. In case there are\n * not enough padding elements, return a partition with less than n items.\n */\ncljs.core.partition \x3d (function cljs$core$partition(var_args){\nvar G__18970 \x3d arguments.length;\nswitch (G__18970) {\ncase 2:\nreturn cljs.core.partition.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.partition.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.partition.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.partition.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nreturn cljs.core.partition.cljs$core$IFn$_invoke$arity$3(n,n,coll);\n}));\n\n(cljs.core.partition.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,step,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar p \x3d cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,s);\nif((n \x3d\x3d\x3d cljs.core.count(p))){\nreturn cljs.core.cons(p,cljs.core.partition.cljs$core$IFn$_invoke$arity$3(n,step,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(step,s)));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partition.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,step,pad,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar p \x3d cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,s);\nif((n \x3d\x3d\x3d cljs.core.count(p))){\nreturn cljs.core.cons(p,cljs.core.partition.cljs$core$IFn$_invoke$arity$4(n,step,pad,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(step,s)));\n} else {\nreturn (new cljs.core.List(null,cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(p,pad)),null,(1),null));\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partition.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns the value in a nested associative structure,\n * where ks is a sequence of keys. Returns nil if the key is not present,\n * or the not-found value if supplied.\n */\ncljs.core.get_in \x3d (function cljs$core$get_in(var_args){\nvar G__18972 \x3d arguments.length;\nswitch (G__18972) {\ncase 2:\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2 \x3d (function (m,ks){\nvar m__$1 \x3d m;\nvar ks__$1 \x3d cljs.core.seq(ks);\nwhile(true){\nif((ks__$1 \x3d\x3d null)){\nreturn m__$1;\n} else {\nvar G__23175 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m__$1,cljs.core.first(ks__$1));\nvar G__23176 \x3d cljs.core.next(ks__$1);\nm__$1 \x3d G__23175;\nks__$1 \x3d G__23176;\ncontinue;\n}\nbreak;\n}\n}));\n\n(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,ks,not_found){\nvar sentinel \x3d cljs.core.lookup_sentinel;\nvar m__$1 \x3d m;\nvar ks__$1 \x3d cljs.core.seq(ks);\nwhile(true){\nif((!((ks__$1 \x3d\x3d null)))){\nvar m__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(m__$1,cljs.core.first(ks__$1),sentinel);\nif((sentinel \x3d\x3d\x3d m__$2)){\nreturn not_found;\n} else {\nvar G__23181 \x3d sentinel;\nvar G__23182 \x3d m__$2;\nvar G__23183 \x3d cljs.core.next(ks__$1);\nsentinel \x3d G__23181;\nm__$1 \x3d G__23182;\nks__$1 \x3d G__23183;\ncontinue;\n}\n} else {\nreturn m__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.get_in.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Associates a value in a nested associative structure, where ks is a\n * sequence of keys and v is the new value and returns a new nested structure.\n * If any levels do not exist, hash-maps will be created.\n */\ncljs.core.assoc_in \x3d (function cljs$core$assoc_in(m,p__18973,v){\nvar vec__18974 \x3d p__18973;\nvar seq__18975 \x3d cljs.core.seq(vec__18974);\nvar first__18976 \x3d cljs.core.first(seq__18975);\nvar seq__18975__$1 \x3d cljs.core.next(seq__18975);\nvar k \x3d first__18976;\nvar ks \x3d seq__18975__$1;\nif(ks){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__18977 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__18978 \x3d ks;\nvar G__18979 \x3d v;\nreturn (cljs.core.assoc_in.cljs$core$IFn$_invoke$arity$3 ? cljs.core.assoc_in.cljs$core$IFn$_invoke$arity$3(G__18977,G__18978,G__18979) : cljs.core.assoc_in.call(null, G__18977,G__18978,G__18979));\n})());\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n});\n/**\n * \x27Updates\x27 a value in a nested associative structure, where ks is a\n * sequence of keys and f is a function that will take the old value\n * and any supplied args and return the new value, and returns a new\n * nested structure. If any levels do not exist, hash-maps will be\n * created.\n */\ncljs.core.update_in \x3d (function cljs$core$update_in(var_args){\nvar G__18988 \x3d arguments.length;\nswitch (G__18988) {\ncase 3:\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___23191 \x3d arguments.length;\nvar i__5727__auto___23192 \x3d (0);\nwhile(true){\nif((i__5727__auto___23192 \x3c len__5726__auto___23191)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___23192]));\n\nvar G__23197 \x3d (i__5727__auto___23192 + (1));\ni__5727__auto___23192 \x3d G__23197;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((6) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((6)),(0),null)):null);\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,p__18989,f){\nvar vec__18990 \x3d p__18989;\nvar seq__18991 \x3d cljs.core.seq(vec__18990);\nvar first__18992 \x3d cljs.core.first(seq__18991);\nvar seq__18991__$1 \x3d cljs.core.next(seq__18991);\nvar k \x3d first__18992;\nvar ks \x3d seq__18991__$1;\nif(ks){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),ks,f));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__18993 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__18993) : f.call(null, G__18993));\n})());\n}\n}));\n\n(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,p__18994,f,a){\nvar vec__18995 \x3d p__18994;\nvar seq__18996 \x3d cljs.core.seq(vec__18995);\nvar first__18997 \x3d cljs.core.first(seq__18996);\nvar seq__18996__$1 \x3d cljs.core.next(seq__18996);\nvar k \x3d first__18997;\nvar ks \x3d seq__18996__$1;\nif(ks){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),ks,f,a));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__18998 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__18999 \x3d a;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__18998,G__18999) : f.call(null, G__18998,G__18999));\n})());\n}\n}));\n\n(cljs.core.update_in.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,p__19000,f,a,b){\nvar vec__19001 \x3d p__19000;\nvar seq__19002 \x3d cljs.core.seq(vec__19001);\nvar first__19003 \x3d cljs.core.first(seq__19002);\nvar seq__19002__$1 \x3d cljs.core.next(seq__19002);\nvar k \x3d first__19003;\nvar ks \x3d seq__19002__$1;\nif(ks){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.update_in.cljs$core$IFn$_invoke$arity$5(cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),ks,f,a,b));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19004 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__19005 \x3d a;\nvar G__19006 \x3d b;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19004,G__19005,G__19006) : f.call(null, G__19004,G__19005,G__19006));\n})());\n}\n}));\n\n(cljs.core.update_in.cljs$core$IFn$_invoke$arity$6 \x3d (function (m,p__19007,f,a,b,c){\nvar vec__19008 \x3d p__19007;\nvar seq__19009 \x3d cljs.core.seq(vec__19008);\nvar first__19010 \x3d cljs.core.first(seq__19009);\nvar seq__19009__$1 \x3d cljs.core.next(seq__19009);\nvar k \x3d first__19010;\nvar ks \x3d seq__19009__$1;\nif(ks){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.update_in.cljs$core$IFn$_invoke$arity$6(cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),ks,f,a,b,c));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19011 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__19012 \x3d a;\nvar G__19013 \x3d b;\nvar G__19014 \x3d c;\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(G__19011,G__19012,G__19013,G__19014) : f.call(null, G__19011,G__19012,G__19013,G__19014));\n})());\n}\n}));\n\n(cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,p__19015,f,a,b,c,args){\nvar vec__19016 \x3d p__19015;\nvar seq__19017 \x3d cljs.core.seq(vec__19016);\nvar first__19018 \x3d cljs.core.first(seq__19017);\nvar seq__19017__$1 \x3d cljs.core.next(seq__19017);\nvar k \x3d first__19018;\nvar ks \x3d seq__19017__$1;\nif(ks){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(cljs.core.update_in,cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),ks,f,a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b,c,args], 0)));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(f,cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),a,b,c,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args], 0)));\n}\n}));\n\n/** @this {Function} */\n(cljs.core.update_in.cljs$lang$applyTo \x3d (function (seq18981){\nvar G__18982 \x3d cljs.core.first(seq18981);\nvar seq18981__$1 \x3d cljs.core.next(seq18981);\nvar G__18983 \x3d cljs.core.first(seq18981__$1);\nvar seq18981__$2 \x3d cljs.core.next(seq18981__$1);\nvar G__18984 \x3d cljs.core.first(seq18981__$2);\nvar seq18981__$3 \x3d cljs.core.next(seq18981__$2);\nvar G__18985 \x3d cljs.core.first(seq18981__$3);\nvar seq18981__$4 \x3d cljs.core.next(seq18981__$3);\nvar G__18986 \x3d cljs.core.first(seq18981__$4);\nvar seq18981__$5 \x3d cljs.core.next(seq18981__$4);\nvar G__18987 \x3d cljs.core.first(seq18981__$5);\nvar seq18981__$6 \x3d cljs.core.next(seq18981__$5);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__18982,G__18983,G__18984,G__18985,G__18986,G__18987,seq18981__$6);\n}));\n\n(cljs.core.update_in.cljs$lang$maxFixedArity \x3d (6));\n\n/**\n * \x27Updates\x27 a value in an associative structure, where k is a\n * key and f is a function that will take the old value\n * and any supplied args and return the new value, and returns a new\n * structure. If the key does not exist, nil is passed as the old value.\n */\ncljs.core.update \x3d (function cljs$core$update(var_args){\nvar G__19027 \x3d arguments.length;\nswitch (G__19027) {\ncase 3:\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___23222 \x3d arguments.length;\nvar i__5727__auto___23223 \x3d (0);\nwhile(true){\nif((i__5727__auto___23223 \x3c len__5726__auto___23222)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___23223]));\n\nvar G__23225 \x3d (i__5727__auto___23223 + (1));\ni__5727__auto___23223 \x3d G__23225;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((6) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((6)),(0),null)):null);\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.update.cljs$core$IFn$_invoke$arity$3 \x3d (function (m,k,f){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19028 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__19028) : f.call(null, G__19028));\n})());\n}));\n\n(cljs.core.update.cljs$core$IFn$_invoke$arity$4 \x3d (function (m,k,f,x){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19029 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__19030 \x3d x;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__19029,G__19030) : f.call(null, G__19029,G__19030));\n})());\n}));\n\n(cljs.core.update.cljs$core$IFn$_invoke$arity$5 \x3d (function (m,k,f,x,y){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19031 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__19032 \x3d x;\nvar G__19033 \x3d y;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19031,G__19032,G__19033) : f.call(null, G__19031,G__19032,G__19033));\n})());\n}));\n\n(cljs.core.update.cljs$core$IFn$_invoke$arity$6 \x3d (function (m,k,f,x,y,z){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19034 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__19035 \x3d x;\nvar G__19036 \x3d y;\nvar G__19037 \x3d z;\nreturn (f.cljs$core$IFn$_invoke$arity$4 ? f.cljs$core$IFn$_invoke$arity$4(G__19034,G__19035,G__19036,G__19037) : f.call(null, G__19034,G__19035,G__19036,G__19037));\n})());\n}));\n\n(cljs.core.update.cljs$core$IFn$_invoke$arity$variadic \x3d (function (m,k,f,x,y,z,more){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(f,cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k),x,y,z,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([more], 0)));\n}));\n\n/** @this {Function} */\n(cljs.core.update.cljs$lang$applyTo \x3d (function (seq19020){\nvar G__19021 \x3d cljs.core.first(seq19020);\nvar seq19020__$1 \x3d cljs.core.next(seq19020);\nvar G__19022 \x3d cljs.core.first(seq19020__$1);\nvar seq19020__$2 \x3d cljs.core.next(seq19020__$1);\nvar G__19023 \x3d cljs.core.first(seq19020__$2);\nvar seq19020__$3 \x3d cljs.core.next(seq19020__$2);\nvar G__19024 \x3d cljs.core.first(seq19020__$3);\nvar seq19020__$4 \x3d cljs.core.next(seq19020__$3);\nvar G__19025 \x3d cljs.core.first(seq19020__$4);\nvar seq19020__$5 \x3d cljs.core.next(seq19020__$4);\nvar G__19026 \x3d cljs.core.first(seq19020__$5);\nvar seq19020__$6 \x3d cljs.core.next(seq19020__$5);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19021,G__19022,G__19023,G__19024,G__19025,G__19026,seq19020__$6);\n}));\n\n(cljs.core.update.cljs$lang$maxFixedArity \x3d (6));\n\n\n/**\n* @constructor\n*/\ncljs.core.VectorNode \x3d (function (edit,arr){\nthis.edit \x3d edit;\nthis.arr \x3d arr;\n});\n\n(cljs.core.VectorNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22edit\x22,\x22edit\x22,-1302639,null),new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null)], null);\n}));\n\n(cljs.core.VectorNode.cljs$lang$type \x3d true);\n\n(cljs.core.VectorNode.cljs$lang$ctorStr \x3d \x22cljs.core/VectorNode\x22);\n\n(cljs.core.VectorNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/VectorNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/VectorNode.\n */\ncljs.core.__GT_VectorNode \x3d (function cljs$core$__GT_VectorNode(edit,arr){\nreturn (new cljs.core.VectorNode(edit,arr));\n});\n\ncljs.core.pv_fresh_node \x3d (function cljs$core$pv_fresh_node(edit){\nreturn (new cljs.core.VectorNode(edit,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]));\n});\ncljs.core.pv_aget \x3d (function cljs$core$pv_aget(node,idx){\nreturn (node.arr[idx]);\n});\ncljs.core.pv_aset \x3d (function cljs$core$pv_aset(node,idx,val){\nreturn (node.arr[idx] \x3d val);\n});\ncljs.core.pv_clone_node \x3d (function cljs$core$pv_clone_node(node){\nreturn (new cljs.core.VectorNode(node.edit,cljs.core.aclone(node.arr)));\n});\ncljs.core.tail_off \x3d (function cljs$core$tail_off(pv){\nvar cnt \x3d pv.cnt;\nif((cnt \x3c (32))){\nreturn (0);\n} else {\nreturn (((cnt - (1)) \x3e\x3e\x3e (5)) \x3c\x3c (5));\n}\n});\ncljs.core.new_path \x3d (function cljs$core$new_path(edit,level,node){\nvar ll \x3d level;\nvar ret \x3d node;\nwhile(true){\nif((ll \x3d\x3d\x3d (0))){\nreturn ret;\n} else {\nvar embed \x3d ret;\nvar r \x3d cljs.core.pv_fresh_node(edit);\nvar _ \x3d cljs.core.pv_aset(r,(0),embed);\nvar G__23255 \x3d (ll - (5));\nvar G__23256 \x3d r;\nll \x3d G__23255;\nret \x3d G__23256;\ncontinue;\n}\nbreak;\n}\n});\ncljs.core.push_tail \x3d (function cljs$core$push_tail(pv,level,parent,tailnode){\nvar ret \x3d cljs.core.pv_clone_node(parent);\nvar subidx \x3d (((pv.cnt - (1)) \x3e\x3e\x3e level) \x26 (31));\nif(((5) \x3d\x3d\x3d level)){\ncljs.core.pv_aset(ret,subidx,tailnode);\n\nreturn ret;\n} else {\nvar child \x3d cljs.core.pv_aget(parent,subidx);\nif((!((child \x3d\x3d null)))){\nvar node_to_insert \x3d (function (){var G__19038 \x3d pv;\nvar G__19039 \x3d (level - (5));\nvar G__19040 \x3d child;\nvar G__19041 \x3d tailnode;\nreturn (cljs.core.push_tail.cljs$core$IFn$_invoke$arity$4 ? cljs.core.push_tail.cljs$core$IFn$_invoke$arity$4(G__19038,G__19039,G__19040,G__19041) : cljs.core.push_tail.call(null, G__19038,G__19039,G__19040,G__19041));\n})();\ncljs.core.pv_aset(ret,subidx,node_to_insert);\n\nreturn ret;\n} else {\nvar node_to_insert \x3d cljs.core.new_path(null,(level - (5)),tailnode);\ncljs.core.pv_aset(ret,subidx,node_to_insert);\n\nreturn ret;\n}\n}\n});\ncljs.core.vector_index_out_of_bounds \x3d (function cljs$core$vector_index_out_of_bounds(i,cnt){\nthrow (new Error([\x22No item \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(i),\x22 in vector of length \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cnt)].join(\x27\x27)));\n});\ncljs.core.first_array_for_longvec \x3d (function cljs$core$first_array_for_longvec(pv){\nvar node \x3d pv.root;\nvar level \x3d pv.shift;\nwhile(true){\nif((level \x3e (0))){\nvar G__23267 \x3d cljs.core.pv_aget(node,(0));\nvar G__23268 \x3d (level - (5));\nnode \x3d G__23267;\nlevel \x3d G__23268;\ncontinue;\n} else {\nreturn node.arr;\n}\nbreak;\n}\n});\ncljs.core.unchecked_array_for \x3d (function cljs$core$unchecked_array_for(pv,i){\nif((i \x3e\x3d cljs.core.tail_off(pv))){\nreturn pv.tail;\n} else {\nvar node \x3d pv.root;\nvar level \x3d pv.shift;\nwhile(true){\nif((level \x3e (0))){\nvar G__23273 \x3d cljs.core.pv_aget(node,((i \x3e\x3e\x3e level) \x26 (31)));\nvar G__23274 \x3d (level - (5));\nnode \x3d G__23273;\nlevel \x3d G__23274;\ncontinue;\n} else {\nreturn node.arr;\n}\nbreak;\n}\n}\n});\ncljs.core.array_for \x3d (function cljs$core$array_for(pv,i){\nif(((((0) \x3c\x3d i)) \x26\x26 ((i \x3c pv.cnt)))){\nreturn cljs.core.unchecked_array_for(pv,i);\n} else {\nreturn cljs.core.vector_index_out_of_bounds(i,pv.cnt);\n}\n});\ncljs.core.do_assoc \x3d (function cljs$core$do_assoc(pv,level,node,i,val){\nvar ret \x3d cljs.core.pv_clone_node(node);\nif((level \x3d\x3d\x3d (0))){\ncljs.core.pv_aset(ret,(i \x26 (31)),val);\n\nreturn ret;\n} else {\nvar subidx \x3d ((i \x3e\x3e\x3e level) \x26 (31));\ncljs.core.pv_aset(ret,subidx,(function (){var G__19042 \x3d pv;\nvar G__19043 \x3d (level - (5));\nvar G__19044 \x3d cljs.core.pv_aget(node,subidx);\nvar G__19045 \x3d i;\nvar G__19046 \x3d val;\nreturn (cljs.core.do_assoc.cljs$core$IFn$_invoke$arity$5 ? cljs.core.do_assoc.cljs$core$IFn$_invoke$arity$5(G__19042,G__19043,G__19044,G__19045,G__19046) : cljs.core.do_assoc.call(null, G__19042,G__19043,G__19044,G__19045,G__19046));\n})());\n\nreturn ret;\n}\n});\ncljs.core.pop_tail \x3d (function cljs$core$pop_tail(pv,level,node){\nvar subidx \x3d (((pv.cnt - (2)) \x3e\x3e\x3e level) \x26 (31));\nif((level \x3e (5))){\nvar new_child \x3d (function (){var G__19047 \x3d pv;\nvar G__19048 \x3d (level - (5));\nvar G__19049 \x3d cljs.core.pv_aget(node,subidx);\nreturn (cljs.core.pop_tail.cljs$core$IFn$_invoke$arity$3 ? cljs.core.pop_tail.cljs$core$IFn$_invoke$arity$3(G__19047,G__19048,G__19049) : cljs.core.pop_tail.call(null, G__19047,G__19048,G__19049));\n})();\nif((((new_child \x3d\x3d null)) \x26\x26 ((subidx \x3d\x3d\x3d (0))))){\nreturn null;\n} else {\nvar ret \x3d cljs.core.pv_clone_node(node);\ncljs.core.pv_aset(ret,subidx,new_child);\n\nreturn ret;\n}\n} else {\nif((subidx \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nvar ret \x3d cljs.core.pv_clone_node(node);\ncljs.core.pv_aset(ret,subidx,null);\n\nreturn ret;\n\n}\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.RangedIterator \x3d (function (i,base,arr,v,start,end){\nthis.i \x3d i;\nthis.base \x3d base;\nthis.arr \x3d arr;\nthis.v \x3d v;\nthis.start \x3d start;\nthis.end \x3d end;\n});\n(cljs.core.RangedIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn (self__.i \x3c self__.end);\n}));\n\n(cljs.core.RangedIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif(((self__.i - self__.base) \x3d\x3d\x3d (32))){\n(self__.arr \x3d cljs.core.unchecked_array_for(self__.v,self__.i));\n\n(self__.base \x3d (self__.base + (32)));\n} else {\n}\n\nvar ret \x3d (self__.arr[(self__.i \x26 (31))]);\n(self__.i \x3d (self__.i + (1)));\n\nreturn ret;\n}));\n\n(cljs.core.RangedIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22base\x22,\x22base\x22,1825810849,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null),new cljs.core.Symbol(null,\x22start\x22,\x22start\x22,1285322546,null),new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null)], null);\n}));\n\n(cljs.core.RangedIterator.cljs$lang$type \x3d true);\n\n(cljs.core.RangedIterator.cljs$lang$ctorStr \x3d \x22cljs.core/RangedIterator\x22);\n\n(cljs.core.RangedIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/RangedIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/RangedIterator.\n */\ncljs.core.__GT_RangedIterator \x3d (function cljs$core$__GT_RangedIterator(i,base,arr,v,start,end){\nreturn (new cljs.core.RangedIterator(i,base,arr,v,start,end));\n});\n\ncljs.core.ranged_iterator \x3d (function cljs$core$ranged_iterator(v,start,end){\nvar i \x3d start;\nreturn (new cljs.core.RangedIterator(i,(i - (i % (32))),(((start \x3c cljs.core.count(v)))?cljs.core.unchecked_array_for(v,i):null),v,start,end));\n});\ncljs.core.pv_reduce \x3d (function cljs$core$pv_reduce(var_args){\nvar G__19051 \x3d arguments.length;\nswitch (G__19051) {\ncase 4:\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4 \x3d (function (pv,f,start,end){\nif((start \x3c end)){\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(pv,f,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(pv,start),(start + (1)),end);\n} else {\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n}\n}));\n\n(cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5 \x3d (function (pv,f,init,start,end){\nvar acc \x3d init;\nvar i \x3d start;\nvar arr \x3d cljs.core.unchecked_array_for(pv,start);\nwhile(true){\nif((i \x3c end)){\nvar j \x3d (i \x26 (31));\nvar arr__$1 \x3d (((j \x3d\x3d\x3d (0)))?cljs.core.unchecked_array_for(pv,i):arr);\nvar nacc \x3d (function (){var G__19052 \x3d acc;\nvar G__19053 \x3d (arr__$1[j]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__19052,G__19053) : f.call(null, G__19052,G__19053));\n})();\nif(cljs.core.reduced_QMARK_(nacc)){\nreturn cljs.core.deref(nacc);\n} else {\nvar G__23296 \x3d nacc;\nvar G__23297 \x3d (i + (1));\nvar G__23298 \x3d arr__$1;\nacc \x3d G__23296;\ni \x3d G__23297;\narr \x3d G__23298;\ncontinue;\n}\n} else {\nreturn acc;\n}\nbreak;\n}\n}));\n\n(cljs.core.pv_reduce.cljs$lang$maxFixedArity \x3d 5);\n\n\n\n\n\n\n\n/**\n * Marker protocol\n * @interface\n */\ncljs.core.APersistentVector \x3d function(){};\n\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.APersistentVector}\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IVector}\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEditableCollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.ILookup}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.PersistentVector \x3d (function (meta,cnt,shift,root,tail,__hash){\nthis.meta \x3d meta;\nthis.cnt \x3d cnt;\nthis.shift \x3d shift;\nthis.root \x3d root;\nthis.tail \x3d tail;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 167666463;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 401412;\n});\n(cljs.core.PersistentVector.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentVector.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c self__.cnt)))){\nreturn (new cljs.core.MapEntry(n,(cljs.core.unchecked_array_for(coll__$1,n)[(n \x26 (31))]),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentVector.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentVector.prototype.indexOf \x3d (function() {\nvar G__23300 \x3d null;\nvar G__23300__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23300__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23300 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23300__1.call(this,x);\ncase 2:\nreturn G__23300__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23300.cljs$core$IFn$_invoke$arity$1 \x3d G__23300__1;\nG__23300.cljs$core$IFn$_invoke$arity$2 \x3d G__23300__2;\nreturn G__23300;\n})()\n);\n\n(cljs.core.PersistentVector.prototype.lastIndexOf \x3d (function() {\nvar G__23302 \x3d null;\nvar G__23302__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__23302__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23302 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23302__1.call(this,x);\ncase 2:\nreturn G__23302__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23302.cljs$core$IFn$_invoke$arity$1 \x3d G__23302__1;\nG__23302.cljs$core$IFn$_invoke$arity$2 \x3d G__23302__2;\nreturn G__23302;\n})()\n);\n\n(cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(typeof k \x3d\x3d\x3d \x27number\x27){\nreturn coll__$1.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (v,f,init){\nvar self__ \x3d this;\nvar v__$1 \x3d this;\nvar i \x3d (0);\nvar init__$1 \x3d init;\nwhile(true){\nif((i \x3c self__.cnt)){\nvar arr \x3d cljs.core.unchecked_array_for(v__$1,i);\nvar len \x3d arr.length;\nvar init__$2 \x3d (function (){var j \x3d (0);\nvar init__$2 \x3d init__$1;\nwhile(true){\nif((j \x3c len)){\nvar init__$3 \x3d (function (){var G__19055 \x3d init__$2;\nvar G__19056 \x3d (j + i);\nvar G__19057 \x3d (arr[j]);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19055,G__19056,G__19057) : f.call(null, G__19055,G__19056,G__19057));\n})();\nif(cljs.core.reduced_QMARK_(init__$3)){\nreturn init__$3;\n} else {\nvar G__23310 \x3d (j + (1));\nvar G__23311 \x3d init__$3;\nj \x3d G__23310;\ninit__$2 \x3d G__23311;\ncontinue;\n}\n} else {\nreturn init__$2;\n}\nbreak;\n}\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn cljs.core.deref(init__$2);\n} else {\nvar G__23312 \x3d (i + len);\nvar G__23313 \x3d init__$2;\ni \x3d G__23312;\ninit__$1 \x3d G__23313;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$APersistentVector$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (cljs.core.array_for(coll__$1,n)[(n \x26 (31))]);\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (coll,n,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c self__.cnt)))){\nreturn (cljs.core.unchecked_array_for(coll__$1,n)[(n \x26 (31))]);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IVector$_assoc_n$arity$3 \x3d (function (coll,n,val){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c self__.cnt)))){\nif((cljs.core.tail_off(coll__$1) \x3c\x3d n)){\nvar new_tail \x3d cljs.core.aclone(self__.tail);\n(new_tail[(n \x26 (31))] \x3d val);\n\nreturn (new cljs.core.PersistentVector(self__.meta,self__.cnt,self__.shift,self__.root,new_tail,null));\n} else {\nreturn (new cljs.core.PersistentVector(self__.meta,self__.cnt,self__.shift,cljs.core.do_assoc(coll__$1,self__.shift,self__.root,n,val),self__.tail,null));\n}\n} else {\nif((n \x3d\x3d\x3d self__.cnt)){\nreturn coll__$1.cljs$core$ICollection$_conj$arity$2(null, val);\n} else {\nthrow (new Error([\x22Index \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(n),\x22 out of bounds [0,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.cnt),\x22]\x22].join(\x27\x27)));\n\n}\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.ranged_iterator(this$__$1,(0),self__.cnt);\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.PersistentVector(self__.meta,self__.cnt,self__.shift,self__.root,self__.tail,self__.__hash));\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.cnt;\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nreturn coll__$1.cljs$core$IIndexed$_nth$arity$2(null, (self__.cnt - (1)));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3d\x3d\x3d (0))){\nthrow (new Error(\x22Can\x27t pop empty vector\x22));\n} else {\nif(((1) \x3d\x3d\x3d self__.cnt)){\nreturn cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,self__.meta);\n} else {\nif(((1) \x3c (self__.cnt - cljs.core.tail_off(coll__$1)))){\nreturn (new cljs.core.PersistentVector(self__.meta,(self__.cnt - (1)),self__.shift,self__.root,self__.tail.slice((0),(-1)),null));\n} else {\nvar new_tail \x3d cljs.core.unchecked_array_for(coll__$1,(self__.cnt - (2)));\nvar nr \x3d cljs.core.pop_tail(coll__$1,self__.shift,self__.root);\nvar new_root \x3d (((nr \x3d\x3d null))?cljs.core.PersistentVector.EMPTY_NODE:nr);\nvar cnt_1 \x3d (self__.cnt - (1));\nif(((((5) \x3c self__.shift)) \x26\x26 ((cljs.core.pv_aget(new_root,(1)) \x3d\x3d null)))){\nreturn (new cljs.core.PersistentVector(self__.meta,cnt_1,(self__.shift - (5)),cljs.core.pv_aget(new_root,(0)),new_tail,null));\n} else {\nreturn (new cljs.core.PersistentVector(self__.meta,cnt_1,self__.shift,new_root,new_tail,null));\n}\n\n}\n}\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nreturn (new cljs.core.RSeq(coll__$1,(self__.cnt - (1)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((other instanceof cljs.core.PersistentVector)){\nif((self__.cnt \x3d\x3d\x3d cljs.core.count(other))){\nvar me_iter \x3d coll__$1.cljs$core$IIterable$_iterator$arity$1(null, );\nvar you_iter \x3d other.cljs$core$IIterable$_iterator$arity$1(null, );\nwhile(true){\nif(me_iter.hasNext()){\nvar x \x3d me_iter.next();\nvar y \x3d you_iter.next();\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,y)){\ncontinue;\n} else {\nreturn false;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n} else {\nreturn false;\n}\n} else {\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.TransientVector(self__.cnt,self__.shift,(cljs.core.tv_editable_root.cljs$core$IFn$_invoke$arity$1 ? cljs.core.tv_editable_root.cljs$core$IFn$_invoke$arity$1(self__.root) : cljs.core.tv_editable_root.call(null, self__.root)),(cljs.core.tv_editable_tail.cljs$core$IFn$_invoke$arity$1 ? cljs.core.tv_editable_tail.cljs$core$IFn$_invoke$arity$1(self__.tail) : cljs.core.tv_editable_tail.call(null, self__.tail))));\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,self__.meta);\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (v,f){\nvar self__ \x3d this;\nvar v__$1 \x3d this;\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(v__$1,f,(0),self__.cnt);\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (v,f,init){\nvar self__ \x3d this;\nvar v__$1 \x3d this;\nvar i \x3d (0);\nvar init__$1 \x3d init;\nwhile(true){\nif((i \x3c self__.cnt)){\nvar arr \x3d cljs.core.unchecked_array_for(v__$1,i);\nvar len \x3d arr.length;\nvar init__$2 \x3d (function (){var j \x3d (0);\nvar init__$2 \x3d init__$1;\nwhile(true){\nif((j \x3c len)){\nvar init__$3 \x3d (function (){var G__19058 \x3d init__$2;\nvar G__19059 \x3d (arr[j]);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__19058,G__19059) : f.call(null, G__19058,G__19059));\n})();\nif(cljs.core.reduced_QMARK_(init__$3)){\nreturn init__$3;\n} else {\nvar G__23336 \x3d (j + (1));\nvar G__23337 \x3d init__$3;\nj \x3d G__23336;\ninit__$2 \x3d G__23337;\ncontinue;\n}\n} else {\nreturn init__$2;\n}\nbreak;\n}\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn cljs.core.deref(init__$2);\n} else {\nvar G__23342 \x3d (i + len);\nvar G__23343 \x3d init__$2;\ni \x3d G__23342;\ninit__$1 \x3d G__23343;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (coll,k,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(typeof k \x3d\x3d\x3d \x27number\x27){\nreturn coll__$1.cljs$core$IVector$_assoc_n$arity$3(null, k,v);\n} else {\nthrow (new Error(\x22Vector\x27s key for assoc must be a number.\x22));\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.integer_QMARK_(k)){\nreturn ((((0) \x3c\x3d k)) \x26\x26 ((k \x3c self__.cnt)));\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nif((self__.cnt \x3c\x3d (32))){\nreturn (new cljs.core.IndexedSeq(self__.tail,(0),null));\n} else {\nvar G__19060 \x3d coll__$1;\nvar G__19061 \x3d cljs.core.first_array_for_longvec(coll__$1);\nvar G__19062 \x3d (0);\nvar G__19063 \x3d (0);\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19060,G__19061,G__19062,G__19063) : cljs.core.chunked_seq.call(null, G__19060,G__19061,G__19062,G__19063));\n\n}\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentVector(new_meta,self__.cnt,self__.shift,self__.root,self__.tail,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((self__.cnt - cljs.core.tail_off(coll__$1)) \x3c (32))){\nvar len \x3d self__.tail.length;\nvar new_tail \x3d (new Array((len + (1))));\nvar n__5593__auto___23362 \x3d len;\nvar i_23363 \x3d (0);\nwhile(true){\nif((i_23363 \x3c n__5593__auto___23362)){\n(new_tail[i_23363] \x3d (self__.tail[i_23363]));\n\nvar G__23364 \x3d (i_23363 + (1));\ni_23363 \x3d G__23364;\ncontinue;\n} else {\n}\nbreak;\n}\n\n(new_tail[len] \x3d o);\n\nreturn (new cljs.core.PersistentVector(self__.meta,(self__.cnt + (1)),self__.shift,self__.root,new_tail,null));\n} else {\nvar root_overflow_QMARK_ \x3d ((self__.cnt \x3e\x3e\x3e (5)) \x3e ((1) \x3c\x3c self__.shift));\nvar new_shift \x3d ((root_overflow_QMARK_)?(self__.shift + (5)):self__.shift);\nvar new_root \x3d ((root_overflow_QMARK_)?(function (){var n_r \x3d cljs.core.pv_fresh_node(null);\ncljs.core.pv_aset(n_r,(0),self__.root);\n\ncljs.core.pv_aset(n_r,(1),cljs.core.new_path(null,self__.shift,(new cljs.core.VectorNode(null,self__.tail))));\n\nreturn n_r;\n})():cljs.core.push_tail(coll__$1,self__.shift,self__.root,(new cljs.core.VectorNode(null,self__.tail))));\nreturn (new cljs.core.PersistentVector(self__.meta,(self__.cnt + (1)),new_shift,new_root,[o],null));\n}\n}));\n\n(cljs.core.PersistentVector.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19064 \x3d (arguments.length - (1));\nswitch (G__19064) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.PersistentVector.prototype.apply \x3d (function (self__,args19054){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19054)));\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nif(typeof k \x3d\x3d\x3d \x27number\x27){\nreturn coll.cljs$core$IIndexed$_nth$arity$2(null, k);\n} else {\nthrow (new Error(\x22Key must be integer\x22));\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((n \x3c self__.cnt)){\nvar offset \x3d (n % (32));\nvar G__19065 \x3d coll__$1;\nvar G__19066 \x3d cljs.core.unchecked_array_for(coll__$1,n);\nvar G__19067 \x3d (n - offset);\nvar G__19068 \x3d offset;\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19065,G__19066,G__19067,G__19068) : cljs.core.chunked_seq.call(null, G__19065,G__19066,G__19067,G__19068));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentVector.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.Symbol(null,\x22shift\x22,\x22shift\x22,-1657295705,null),new cljs.core.Symbol(null,\x22root\x22,\x22root\x22,1191874074,null),new cljs.core.Symbol(null,\x22tail\x22,\x22tail\x22,494507963,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentVector.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentVector.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentVector\x22);\n\n(cljs.core.PersistentVector.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentVector\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentVector.\n */\ncljs.core.__GT_PersistentVector \x3d (function cljs$core$__GT_PersistentVector(meta,cnt,shift,root,tail,__hash){\nreturn (new cljs.core.PersistentVector(meta,cnt,shift,root,tail,__hash));\n});\n\n(cljs.core.PersistentVector.EMPTY_NODE \x3d (new cljs.core.VectorNode(null,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null])));\n(cljs.core.PersistentVector.EMPTY \x3d (new cljs.core.PersistentVector(null,(0),(5),cljs.core.PersistentVector.EMPTY_NODE,[],cljs.core.empty_ordered_hash)));\n(cljs.core.PersistentVector.fromArray \x3d (function (xs,no_clone){\nvar l \x3d xs.length;\nvar xs__$1 \x3d ((no_clone)?xs:cljs.core.aclone(xs));\nif((l \x3c (32))){\nreturn (new cljs.core.PersistentVector(null,l,(5),cljs.core.PersistentVector.EMPTY_NODE,xs__$1,null));\n} else {\nvar node \x3d xs__$1.slice((0),(32));\nvar v \x3d (new cljs.core.PersistentVector(null,(32),(5),cljs.core.PersistentVector.EMPTY_NODE,node,null));\nvar i \x3d (32);\nvar out \x3d v.cljs$core$IEditableCollection$_as_transient$arity$1(null, );\nwhile(true){\nif((i \x3c l)){\nvar G__23398 \x3d (i + (1));\nvar G__23399 \x3d cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(out,(xs__$1[i]));\ni \x3d G__23398;\nout \x3d G__23399;\ncontinue;\n} else {\nreturn cljs.core.persistent_BANG_(out);\n}\nbreak;\n}\n}\n}));\n(cljs.core.PersistentVector.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Creates a new vector containing the contents of coll. JavaScript arrays\n * will be aliased and should not be modified.\n */\ncljs.core.vec \x3d (function cljs$core$vec(coll){\nif(cljs.core.truth_((cljs.core.map_entry_QMARK_.cljs$core$IFn$_invoke$arity$1 ? cljs.core.map_entry_QMARK_.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.map_entry_QMARK_.call(null, coll)))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.key.call(null, coll)),(cljs.core.val.cljs$core$IFn$_invoke$arity$1 ? cljs.core.val.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.val.call(null, coll))], null);\n} else {\nif(cljs.core.vector_QMARK_(coll)){\nreturn cljs.core.with_meta(coll,null);\n} else {\nif(cljs.core.array_QMARK_(coll)){\nreturn cljs.core.PersistentVector.fromArray(coll,true);\n} else {\nreturn cljs.core._persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj_BANG_,cljs.core._as_transient(cljs.core.PersistentVector.EMPTY),coll));\n\n}\n}\n}\n});\n/**\n * Creates a new vector containing the args.\n */\ncljs.core.vector \x3d (function cljs$core$vector(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23404 \x3d arguments.length;\nvar i__5727__auto___23405 \x3d (0);\nwhile(true){\nif((i__5727__auto___23405 \x3c len__5726__auto___23404)){\nargs__5732__auto__.push((arguments[i__5727__auto___23405]));\n\nvar G__23406 \x3d (i__5727__auto___23405 + (1));\ni__5727__auto___23405 \x3d G__23406;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.vector.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.vector.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nif((((args instanceof cljs.core.IndexedSeq)) \x26\x26 ((args.i \x3d\x3d\x3d (0))))){\nreturn cljs.core.PersistentVector.fromArray(args.arr,(!(cljs.core.array_QMARK_(args.arr))));\n} else {\nreturn cljs.core.vec(args);\n}\n}));\n\n(cljs.core.vector.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.vector.cljs$lang$applyTo \x3d (function (seq19069){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19069));\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ASeq}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IChunkedNext}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IChunkedSeq}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.ChunkedSeq \x3d (function (vec,node,i,off,meta,__hash){\nthis.vec \x3d vec;\nthis.node \x3d node;\nthis.i \x3d i;\nthis.off \x3d off;\nthis.meta \x3d meta;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32375020;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 263680;\n});\n(cljs.core.ChunkedSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.ChunkedSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.ChunkedSeq.prototype.indexOf \x3d (function() {\nvar G__23408 \x3d null;\nvar G__23408__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23408__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23408 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23408__1.call(this,x);\ncase 2:\nreturn G__23408__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23408.cljs$core$IFn$_invoke$arity$1 \x3d G__23408__1;\nG__23408.cljs$core$IFn$_invoke$arity$2 \x3d G__23408__2;\nreturn G__23408;\n})()\n);\n\n(cljs.core.ChunkedSeq.prototype.lastIndexOf \x3d (function() {\nvar G__23410 \x3d null;\nvar G__23410__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__23410__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23410 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23410__1.call(this,x);\ncase 2:\nreturn G__23410__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23410.cljs$core$IFn$_invoke$arity$1 \x3d G__23410__1;\nG__23410.cljs$core$IFn$_invoke$arity$2 \x3d G__23410__2;\nreturn G__23410;\n})()\n);\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((self__.off + (1)) \x3c self__.node.length)){\nvar s \x3d (function (){var G__19070 \x3d self__.vec;\nvar G__19071 \x3d self__.node;\nvar G__19072 \x3d self__.i;\nvar G__19073 \x3d (self__.off + (1));\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19070,G__19071,G__19072,G__19073) : cljs.core.chunked_seq.call(null, G__19070,G__19071,G__19072,G__19073));\n})();\nif((s \x3d\x3d null)){\nreturn null;\n} else {\nreturn s;\n}\n} else {\nreturn coll__$1.cljs$core$IChunkedNext$_chunked_next$arity$1(null, );\n}\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(self__.vec,f,(self__.i + self__.off),cljs.core.count(self__.vec));\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(self__.vec,f,start,(self__.i + self__.off),cljs.core.count(self__.vec));\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (self__.node[self__.off]);\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((self__.off + (1)) \x3c self__.node.length)){\nvar s \x3d (function (){var G__19074 \x3d self__.vec;\nvar G__19075 \x3d self__.node;\nvar G__19076 \x3d self__.i;\nvar G__19077 \x3d (self__.off + (1));\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19074,G__19075,G__19076,G__19077) : cljs.core.chunked_seq.call(null, G__19074,G__19075,G__19076,G__19077));\n})();\nif((s \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn s;\n}\n} else {\nreturn coll__$1.cljs$core$IChunkedSeq$_chunked_rest$arity$1(null, );\n}\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$2(self__.node,self__.off);\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar end \x3d (self__.i + self__.node.length);\nif((end \x3c cljs.core._count(self__.vec))){\nvar G__19078 \x3d self__.vec;\nvar G__19079 \x3d cljs.core.unchecked_array_for(self__.vec,end);\nvar G__19080 \x3d end;\nvar G__19081 \x3d (0);\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19078,G__19079,G__19080,G__19081) : cljs.core.chunked_seq.call(null, G__19078,G__19079,G__19080,G__19081));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5(self__.vec,self__.node,self__.i,self__.off,new_meta) : cljs.core.chunked_seq.call(null, self__.vec,self__.node,self__.i,self__.off,new_meta));\n}\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar o \x3d (self__.off + n);\nif((o \x3c self__.node.length)){\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(self__.vec,self__.node,self__.i,o) : cljs.core.chunked_seq.call(null, self__.vec,self__.node,self__.i,o));\n} else {\nvar i__$1 \x3d (self__.i + o);\nif((i__$1 \x3c cljs.core._count(self__.vec))){\nvar new_offset \x3d (i__$1 % (32));\nvar G__19082 \x3d self__.vec;\nvar G__19083 \x3d cljs.core.unchecked_array_for(self__.vec,i__$1);\nvar G__19084 \x3d (i__$1 - new_offset);\nvar G__19085 \x3d new_offset;\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19082,G__19083,G__19084,G__19085) : cljs.core.chunked_seq.call(null, G__19082,G__19083,G__19084,G__19085));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar end \x3d (self__.i + self__.node.length);\nif((end \x3c cljs.core._count(self__.vec))){\nvar G__19086 \x3d self__.vec;\nvar G__19087 \x3d cljs.core.unchecked_array_for(self__.vec,end);\nvar G__19088 \x3d end;\nvar G__19089 \x3d (0);\nreturn (cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 ? cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(G__19086,G__19087,G__19088,G__19089) : cljs.core.chunked_seq.call(null, G__19086,G__19087,G__19088,G__19089));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.ChunkedSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22vec\x22,\x22vec\x22,982683596,null),new cljs.core.Symbol(null,\x22node\x22,\x22node\x22,-2073234571,null),new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22off\x22,\x22off\x22,-2047994980,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ChunkedSeq.cljs$lang$type \x3d true);\n\n(cljs.core.ChunkedSeq.cljs$lang$ctorStr \x3d \x22cljs.core/ChunkedSeq\x22);\n\n(cljs.core.ChunkedSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ChunkedSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ChunkedSeq.\n */\ncljs.core.__GT_ChunkedSeq \x3d (function cljs$core$__GT_ChunkedSeq(vec,node,i,off,meta,__hash){\nreturn (new cljs.core.ChunkedSeq(vec,node,i,off,meta,__hash));\n});\n\n(cljs.core.ChunkedSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.chunked_seq \x3d (function cljs$core$chunked_seq(var_args){\nvar G__19091 \x3d arguments.length;\nswitch (G__19091) {\ncase 3:\nreturn cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (vec,i,off){\nreturn (new cljs.core.ChunkedSeq(vec,cljs.core.array_for(vec,i),i,off,null,null));\n}));\n\n(cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4 \x3d (function (vec,node,i,off){\nreturn (new cljs.core.ChunkedSeq(vec,node,i,off,null,null));\n}));\n\n(cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5 \x3d (function (vec,node,i,off,meta){\nreturn (new cljs.core.ChunkedSeq(vec,node,i,off,meta,null));\n}));\n\n(cljs.core.chunked_seq.cljs$lang$maxFixedArity \x3d 5);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IVector}\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.ILookup}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Subvec \x3d (function (meta,v,start,end,__hash){\nthis.meta \x3d meta;\nthis.v \x3d v;\nthis.start \x3d start;\nthis.end \x3d end;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 167666463;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.core.Subvec.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Subvec.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((n \x3c (0))){\nreturn null;\n} else {\nvar idx \x3d (self__.start + n);\nif((idx \x3c self__.end)){\nreturn (new cljs.core.MapEntry(n,cljs.core._lookup(self__.v,idx),null));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.core.Subvec.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.Subvec.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Subvec.prototype.indexOf \x3d (function() {\nvar G__23457 \x3d null;\nvar G__23457__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23457__2 \x3d (function (x,start__$1){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start__$1);\n});\nG__23457 \x3d function(x,start__$1){\nswitch(arguments.length){\ncase 1:\nreturn G__23457__1.call(this,x);\ncase 2:\nreturn G__23457__2.call(this,x,start__$1);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23457.cljs$core$IFn$_invoke$arity$1 \x3d G__23457__1;\nG__23457.cljs$core$IFn$_invoke$arity$2 \x3d G__23457__2;\nreturn G__23457;\n})()\n);\n\n(cljs.core.Subvec.prototype.lastIndexOf \x3d (function() {\nvar G__23464 \x3d null;\nvar G__23464__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__23464__2 \x3d (function (x,start__$1){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start__$1);\n});\nG__23464 \x3d function(x,start__$1){\nswitch(arguments.length){\ncase 1:\nreturn G__23464__1.call(this,x);\ncase 2:\nreturn G__23464__2.call(this,x,start__$1);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23464.cljs$core$IFn$_invoke$arity$1 \x3d G__23464__1;\nG__23464.cljs$core$IFn$_invoke$arity$2 \x3d G__23464__2;\nreturn G__23464;\n})()\n);\n\n(cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(typeof k \x3d\x3d\x3d \x27number\x27){\nreturn coll__$1.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (coll,f,init){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar i \x3d self__.start;\nvar j \x3d (0);\nvar init__$1 \x3d init;\nwhile(true){\nif((i \x3c self__.end)){\nvar init__$2 \x3d (function (){var G__19093 \x3d init__$1;\nvar G__19094 \x3d j;\nvar G__19095 \x3d cljs.core._nth(self__.v,i);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19093,G__19094,G__19095) : f.call(null, G__19093,G__19094,G__19095));\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn cljs.core.deref(init__$2);\n} else {\nvar G__23472 \x3d (i + (1));\nvar G__23473 \x3d (j + (1));\nvar G__23474 \x3d init__$2;\ni \x3d G__23472;\nj \x3d G__23473;\ninit__$1 \x3d G__23474;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((n \x3c (0))) || ((self__.end \x3c\x3d (self__.start + n))))){\nreturn cljs.core.vector_index_out_of_bounds(n,(self__.end - self__.start));\n} else {\nreturn cljs.core._nth(self__.v,(self__.start + n));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (coll,n,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((n \x3c (0))) || ((self__.end \x3c\x3d (self__.start + n))))){\nreturn not_found;\n} else {\nreturn cljs.core._nth(self__.v,(self__.start + n),not_found);\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3 \x3d (function (coll,n,val){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar v_pos \x3d (self__.start + n);\nif((((n \x3c (0))) || (((self__.end + (1)) \x3c\x3d v_pos)))){\nthrow (new Error([\x22Index \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(n),\x22 out of bounds [0,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(coll__$1.cljs$core$ICounted$_count$arity$1(null, )),\x22]\x22].join(\x27\x27)));\n} else {\nvar G__19096 \x3d self__.meta;\nvar G__19097 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.v,v_pos,val);\nvar G__19098 \x3d self__.start;\nvar G__19099 \x3d (function (){var x__5087__auto__ \x3d self__.end;\nvar y__5088__auto__ \x3d (v_pos + (1));\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})();\nvar G__19100 \x3d null;\nreturn (cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5 ? cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(G__19096,G__19097,G__19098,G__19099,G__19100) : cljs.core.build_subvec.call(null, G__19096,G__19097,G__19098,G__19099,G__19100));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((!((self__.v \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.v.cljs$core$APersistentVector$))))?true:false):false)){\nreturn cljs.core.ranged_iterator(self__.v,self__.start,self__.end);\n} else {\nreturn cljs.core.seq_iter(coll__$1);\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.Subvec(self__.meta,self__.v,self__.start,self__.end,self__.__hash));\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (self__.end - self__.start);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.start \x3d\x3d\x3d self__.end)){\nreturn null;\n} else {\nreturn cljs.core._nth(self__.v,(self__.end - (1)));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.start \x3d\x3d\x3d self__.end)){\nthrow (new Error(\x22Can\x27t pop empty vector\x22));\n} else {\nvar G__19102 \x3d self__.meta;\nvar G__19103 \x3d self__.v;\nvar G__19104 \x3d self__.start;\nvar G__19105 \x3d (self__.end - (1));\nvar G__19106 \x3d null;\nreturn (cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5 ? cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(G__19102,G__19103,G__19104,G__19105,G__19106) : cljs.core.build_subvec.call(null, G__19102,G__19103,G__19104,G__19105,G__19106));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((!((self__.start \x3d\x3d\x3d self__.end)))){\nreturn (new cljs.core.RSeq(coll__$1,((self__.end - self__.start) - (1)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,self__.meta);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((!((self__.v \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.v.cljs$core$APersistentVector$))))?true:false):false)){\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(self__.v,f,self__.start,self__.end);\n} else {\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(coll__$1,f);\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,init){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((!((self__.v \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.v.cljs$core$APersistentVector$))))?true:false):false)){\nreturn cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(self__.v,f,init,self__.start,self__.end);\n} else {\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(coll__$1,f,init);\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (coll,key,val){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(typeof key \x3d\x3d\x3d \x27number\x27){\nreturn coll__$1.cljs$core$IVector$_assoc_n$arity$3(null, key,val);\n} else {\nthrow (new Error(\x22Subvec\x27s key for assoc must be a number.\x22));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (coll,key){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.integer_QMARK_(key)){\nreturn ((((0) \x3c\x3d key)) \x26\x26 ((key \x3c (self__.end - self__.start))));\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar subvec_seq \x3d (function cljs$core$subvec_seq(i){\nif((i \x3d\x3d\x3d self__.end)){\nreturn null;\n} else {\nreturn cljs.core.cons(cljs.core._nth(self__.v,i),(new cljs.core.LazySeq(null,(function (){\nreturn cljs$core$subvec_seq((i + (1)));\n}),null,null)));\n}\n});\nreturn subvec_seq(self__.start);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5 ? cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(new_meta,self__.v,self__.start,self__.end,self__.__hash) : cljs.core.build_subvec.call(null, new_meta,self__.v,self__.start,self__.end,self__.__hash));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar G__19109 \x3d self__.meta;\nvar G__19110 \x3d cljs.core._assoc_n(self__.v,self__.end,o);\nvar G__19111 \x3d self__.start;\nvar G__19112 \x3d (self__.end + (1));\nvar G__19113 \x3d null;\nreturn (cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5 ? cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(G__19109,G__19110,G__19111,G__19112,G__19113) : cljs.core.build_subvec.call(null, G__19109,G__19110,G__19111,G__19112,G__19113));\n}));\n\n(cljs.core.Subvec.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19114 \x3d (arguments.length - (1));\nswitch (G__19114) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.Subvec.prototype.apply \x3d (function (self__,args19092){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19092)));\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$IIndexed$_nth$arity$2(null, k);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.Subvec.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null),new cljs.core.Symbol(null,\x22start\x22,\x22start\x22,1285322546,null),new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Subvec.cljs$lang$type \x3d true);\n\n(cljs.core.Subvec.cljs$lang$ctorStr \x3d \x22cljs.core/Subvec\x22);\n\n(cljs.core.Subvec.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Subvec\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Subvec.\n */\ncljs.core.__GT_Subvec \x3d (function cljs$core$__GT_Subvec(meta,v,start,end,__hash){\nreturn (new cljs.core.Subvec(meta,v,start,end,__hash));\n});\n\n(cljs.core.Subvec.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.build_subvec \x3d (function cljs$core$build_subvec(meta,v,start,end,__hash){\nwhile(true){\nif((v instanceof cljs.core.Subvec)){\nvar G__23506 \x3d meta;\nvar G__23507 \x3d v.v;\nvar G__23508 \x3d (v.start + start);\nvar G__23509 \x3d (v.start + end);\nvar G__23510 \x3d __hash;\nmeta \x3d G__23506;\nv \x3d G__23507;\nstart \x3d G__23508;\nend \x3d G__23509;\n__hash \x3d G__23510;\ncontinue;\n} else {\nif(cljs.core.vector_QMARK_(v)){\n} else {\nthrow (new Error(\x22v must satisfy IVector\x22));\n}\n\nif((((start \x3c (0))) || ((((end \x3c start)) || ((end \x3e cljs.core.count(v))))))){\nthrow (new Error(\x22Index out of bounds\x22));\n} else {\n}\n\nreturn (new cljs.core.Subvec(meta,v,start,end,__hash));\n}\nbreak;\n}\n});\n/**\n * Returns a persistent vector of the items in vector from\n * start (inclusive) to end (exclusive). If end is not supplied,\n * defaults to (count vector). This operation is O(1) and very fast, as\n * the resulting vector shares structure with the original and no\n * trimming is done.\n */\ncljs.core.subvec \x3d (function cljs$core$subvec(var_args){\nvar G__19116 \x3d arguments.length;\nswitch (G__19116) {\ncase 2:\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.subvec.cljs$core$IFn$_invoke$arity$2 \x3d (function (v,start){\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(v,start,cljs.core.count(v));\n}));\n\n(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3 \x3d (function (v,start,end){\nif((((!((start \x3d\x3d null)))) \x26\x26 ((!((end \x3d\x3d null)))))){\n} else {\nthrow (new Error(\x22Assert failed: (and (not (nil? start)) (not (nil? end)))\x22));\n}\n\nreturn cljs.core.build_subvec(null,v,(start | (0)),(end | (0)),null);\n}));\n\n(cljs.core.subvec.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.tv_ensure_editable \x3d (function cljs$core$tv_ensure_editable(edit,node){\nif((edit \x3d\x3d\x3d node.edit)){\nreturn node;\n} else {\nreturn (new cljs.core.VectorNode(edit,cljs.core.aclone(node.arr)));\n}\n});\ncljs.core.tv_editable_root \x3d (function cljs$core$tv_editable_root(node){\nreturn (new cljs.core.VectorNode(({}),cljs.core.aclone(node.arr)));\n});\ncljs.core.tv_editable_tail \x3d (function cljs$core$tv_editable_tail(tl){\nvar ret \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\ncljs.core.array_copy(tl,(0),ret,(0),tl.length);\n\nreturn ret;\n});\ncljs.core.tv_push_tail \x3d (function cljs$core$tv_push_tail(tv,level,parent,tail_node){\nvar ret \x3d cljs.core.tv_ensure_editable(tv.root.edit,parent);\nvar subidx \x3d (((tv.cnt - (1)) \x3e\x3e\x3e level) \x26 (31));\ncljs.core.pv_aset(ret,subidx,(((level \x3d\x3d\x3d (5)))?tail_node:(function (){var child \x3d cljs.core.pv_aget(ret,subidx);\nif((!((child \x3d\x3d null)))){\nvar G__19119 \x3d tv;\nvar G__19120 \x3d (level - (5));\nvar G__19121 \x3d child;\nvar G__19122 \x3d tail_node;\nreturn (cljs.core.tv_push_tail.cljs$core$IFn$_invoke$arity$4 ? cljs.core.tv_push_tail.cljs$core$IFn$_invoke$arity$4(G__19119,G__19120,G__19121,G__19122) : cljs.core.tv_push_tail.call(null, G__19119,G__19120,G__19121,G__19122));\n} else {\nreturn cljs.core.new_path(tv.root.edit,(level - (5)),tail_node);\n}\n})()));\n\nreturn ret;\n});\ncljs.core.tv_pop_tail \x3d (function cljs$core$tv_pop_tail(tv,level,node){\nvar node__$1 \x3d cljs.core.tv_ensure_editable(tv.root.edit,node);\nvar subidx \x3d (((tv.cnt - (2)) \x3e\x3e\x3e level) \x26 (31));\nif((level \x3e (5))){\nvar new_child \x3d (function (){var G__19123 \x3d tv;\nvar G__19124 \x3d (level - (5));\nvar G__19125 \x3d cljs.core.pv_aget(node__$1,subidx);\nreturn (cljs.core.tv_pop_tail.cljs$core$IFn$_invoke$arity$3 ? cljs.core.tv_pop_tail.cljs$core$IFn$_invoke$arity$3(G__19123,G__19124,G__19125) : cljs.core.tv_pop_tail.call(null, G__19123,G__19124,G__19125));\n})();\nif((((new_child \x3d\x3d null)) \x26\x26 ((subidx \x3d\x3d\x3d (0))))){\nreturn null;\n} else {\ncljs.core.pv_aset(node__$1,subidx,new_child);\n\nreturn node__$1;\n}\n} else {\nif((subidx \x3d\x3d\x3d (0))){\nreturn null;\n} else {\ncljs.core.pv_aset(node__$1,subidx,null);\n\nreturn node__$1;\n\n}\n}\n});\ncljs.core.unchecked_editable_array_for \x3d (function cljs$core$unchecked_editable_array_for(tv,i){\nif((i \x3e\x3d cljs.core.tail_off(tv))){\nreturn tv.tail;\n} else {\nvar root \x3d tv.root;\nvar node \x3d root;\nvar level \x3d tv.shift;\nwhile(true){\nif((level \x3e (0))){\nvar G__23532 \x3d cljs.core.tv_ensure_editable(root.edit,cljs.core.pv_aget(node,((i \x3e\x3e\x3e level) \x26 (31))));\nvar G__23533 \x3d (level - (5));\nnode \x3d G__23532;\nlevel \x3d G__23533;\ncontinue;\n} else {\nreturn node.arr;\n}\nbreak;\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ITransientCollection}\n * @implements {cljs.core.ITransientVector}\n * @implements {cljs.core.ITransientAssociative}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.TransientVector \x3d (function (cnt,shift,root,tail){\nthis.cnt \x3d cnt;\nthis.shift \x3d shift;\nthis.root \x3d root;\nthis.tail \x3d tail;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 88;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 275;\n});\n(cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 \x3d (function (tcoll,o){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.root.edit){\nif(((self__.cnt - cljs.core.tail_off(tcoll__$1)) \x3c (32))){\n(self__.tail[(self__.cnt \x26 (31))] \x3d o);\n\n(self__.cnt \x3d (self__.cnt + (1)));\n\nreturn tcoll__$1;\n} else {\nvar tail_node \x3d (new cljs.core.VectorNode(self__.root.edit,self__.tail));\nvar new_tail \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(new_tail[(0)] \x3d o);\n\n(self__.tail \x3d new_tail);\n\nif(((self__.cnt \x3e\x3e\x3e (5)) \x3e ((1) \x3c\x3c self__.shift))){\nvar new_root_array \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\nvar new_shift \x3d (self__.shift + (5));\n(new_root_array[(0)] \x3d self__.root);\n\n(new_root_array[(1)] \x3d cljs.core.new_path(self__.root.edit,self__.shift,tail_node));\n\n(self__.root \x3d (new cljs.core.VectorNode(self__.root.edit,new_root_array)));\n\n(self__.shift \x3d new_shift);\n\n(self__.cnt \x3d (self__.cnt + (1)));\n\nreturn tcoll__$1;\n} else {\nvar new_root \x3d cljs.core.tv_push_tail(tcoll__$1,self__.shift,self__.root,tail_node);\n(self__.root \x3d new_root);\n\n(self__.cnt \x3d (self__.cnt + (1)));\n\nreturn tcoll__$1;\n}\n}\n} else {\nthrow (new Error(\x22conj! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.root.edit){\n(self__.root.edit \x3d null);\n\nvar len \x3d (self__.cnt - cljs.core.tail_off(tcoll__$1));\nvar trimmed_tail \x3d (new Array(len));\ncljs.core.array_copy(self__.tail,(0),trimmed_tail,(0),len);\n\nreturn (new cljs.core.PersistentVector(null,self__.cnt,self__.shift,self__.root,trimmed_tail,null));\n} else {\nthrow (new Error(\x22persistent! called twice\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 \x3d (function (tcoll,key,val){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(typeof key \x3d\x3d\x3d \x27number\x27){\nreturn tcoll__$1.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(null, key,val);\n} else {\nthrow (new Error(\x22TransientVector\x27s key for assoc! must be a number.\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3 \x3d (function (tcoll,n,val){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.root.edit){\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c self__.cnt)))){\nif((cljs.core.tail_off(tcoll__$1) \x3c\x3d n)){\n(self__.tail[(n \x26 (31))] \x3d val);\n\nreturn tcoll__$1;\n} else {\nvar new_root \x3d (function cljs$core$go(level,node){\nvar node__$1 \x3d cljs.core.tv_ensure_editable(self__.root.edit,node);\nif((level \x3d\x3d\x3d (0))){\ncljs.core.pv_aset(node__$1,(n \x26 (31)),val);\n\nreturn node__$1;\n} else {\nvar subidx \x3d ((n \x3e\x3e\x3e level) \x26 (31));\ncljs.core.pv_aset(node__$1,subidx,cljs$core$go((level - (5)),cljs.core.pv_aget(node__$1,subidx)));\n\nreturn node__$1;\n}\n})(self__.shift,self__.root);\n(self__.root \x3d new_root);\n\nreturn tcoll__$1;\n}\n} else {\nif((n \x3d\x3d\x3d self__.cnt)){\nreturn tcoll__$1.cljs$core$ITransientCollection$_conj_BANG_$arity$2(null, val);\n} else {\nthrow (new Error([\x22Index \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(n),\x22 out of bounds for TransientVector of length\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.cnt)].join(\x27\x27)));\n\n}\n}\n} else {\nthrow (new Error(\x22assoc! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_pop_BANG_$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.root.edit){\nif((self__.cnt \x3d\x3d\x3d (0))){\nthrow (new Error(\x22Can\x27t pop empty vector\x22));\n} else {\nif(((1) \x3d\x3d\x3d self__.cnt)){\n(self__.cnt \x3d (0));\n\nreturn tcoll__$1;\n} else {\nif((((self__.cnt - (1)) \x26 (31)) \x3e (0))){\n(self__.cnt \x3d (self__.cnt - (1)));\n\nreturn tcoll__$1;\n} else {\nvar new_tail \x3d cljs.core.unchecked_editable_array_for(tcoll__$1,(self__.cnt - (2)));\nvar new_root \x3d (function (){var nr \x3d cljs.core.tv_pop_tail(tcoll__$1,self__.shift,self__.root);\nif((!((nr \x3d\x3d null)))){\nreturn nr;\n} else {\nreturn (new cljs.core.VectorNode(self__.root.edit,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]));\n}\n})();\nif(((((5) \x3c self__.shift)) \x26\x26 ((cljs.core.pv_aget(new_root,(1)) \x3d\x3d null)))){\nvar new_root__$1 \x3d cljs.core.tv_ensure_editable(self__.root.edit,cljs.core.pv_aget(new_root,(0)));\n(self__.root \x3d new_root__$1);\n\n(self__.shift \x3d (self__.shift - (5)));\n\n(self__.cnt \x3d (self__.cnt - (1)));\n\n(self__.tail \x3d new_tail);\n\nreturn tcoll__$1;\n} else {\n(self__.root \x3d new_root);\n\n(self__.cnt \x3d (self__.cnt - (1)));\n\n(self__.tail \x3d new_tail);\n\nreturn tcoll__$1;\n}\n\n}\n}\n}\n} else {\nthrow (new Error(\x22pop! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(self__.root.edit){\nreturn self__.cnt;\n} else {\nthrow (new Error(\x22count after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(self__.root.edit){\nreturn (cljs.core.array_for(coll__$1,n)[(n \x26 (31))]);\n} else {\nthrow (new Error(\x22nth after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (coll,n,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c self__.cnt)))){\nreturn coll__$1.cljs$core$IIndexed$_nth$arity$2(null, n);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((!(self__.root.edit))){\nthrow (new Error(\x22lookup after persistent!\x22));\n} else {\nif(typeof k \x3d\x3d\x3d \x27number\x27){\nreturn coll__$1.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n} else {\nreturn not_found;\n\n}\n}\n}));\n\n(cljs.core.TransientVector.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19127 \x3d (arguments.length - (1));\nswitch (G__19127) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.TransientVector.prototype.apply \x3d (function (self__,args19126){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19126)));\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.TransientVector.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.TransientVector.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22shift\x22,\x22shift\x22,-1657295705,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22root\x22,\x22root\x22,1191874074,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22tail\x22,\x22tail\x22,494507963,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.TransientVector.cljs$lang$type \x3d true);\n\n(cljs.core.TransientVector.cljs$lang$ctorStr \x3d \x22cljs.core/TransientVector\x22);\n\n(cljs.core.TransientVector.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/TransientVector\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/TransientVector.\n */\ncljs.core.__GT_TransientVector \x3d (function cljs$core$__GT_TransientVector(cnt,shift,root,tail){\nreturn (new cljs.core.TransientVector(cnt,shift,root,tail));\n});\n\n\n/**\n* @constructor\n*/\ncljs.core.PersistentQueueIter \x3d (function (fseq,riter){\nthis.fseq \x3d fseq;\nthis.riter \x3d riter;\n});\n(cljs.core.PersistentQueueIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar or__5002__auto__ \x3d (((!((self__.fseq \x3d\x3d null)))) \x26\x26 (cljs.core.seq(self__.fseq)));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d (!((self__.riter \x3d\x3d null)));\nif(and__5000__auto__){\nreturn self__.riter.hasNext();\n} else {\nreturn and__5000__auto__;\n}\n}\n}));\n\n(cljs.core.PersistentQueueIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((!((self__.fseq \x3d\x3d null)))){\nvar ret \x3d cljs.core.first(self__.fseq);\n(self__.fseq \x3d cljs.core.next(self__.fseq));\n\nreturn ret;\n} else {\nif((((!((self__.riter \x3d\x3d null)))) \x26\x26 (self__.riter.hasNext()))){\nreturn self__.riter.next();\n} else {\nthrow (new Error(\x22No such element\x22));\n\n}\n}\n}));\n\n(cljs.core.PersistentQueueIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.PersistentQueueIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22fseq\x22,\x22fseq\x22,-1466412450,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22riter\x22,\x22riter\x22,-237834262,null)], null);\n}));\n\n(cljs.core.PersistentQueueIter.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentQueueIter.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentQueueIter\x22);\n\n(cljs.core.PersistentQueueIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentQueueIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentQueueIter.\n */\ncljs.core.__GT_PersistentQueueIter \x3d (function cljs$core$__GT_PersistentQueueIter(fseq,riter){\nreturn (new cljs.core.PersistentQueueIter(fseq,riter));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.PersistentQueueSeq \x3d (function (meta,front,rear,__hash){\nthis.meta \x3d meta;\nthis.front \x3d front;\nthis.rear \x3d rear;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 31850700;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.PersistentQueueSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.indexOf \x3d (function() {\nvar G__23570 \x3d null;\nvar G__23570__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23570__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23570 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23570__1.call(this,x);\ncase 2:\nreturn G__23570__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23570.cljs$core$IFn$_invoke$arity$1 \x3d G__23570__1;\nG__23570.cljs$core$IFn$_invoke$arity$2 \x3d G__23570__2;\nreturn G__23570;\n})()\n);\n\n(cljs.core.PersistentQueueSeq.prototype.lastIndexOf \x3d (function() {\nvar G__23575 \x3d null;\nvar G__23575__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__23575__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23575 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23575__1.call(this,x);\ncase 2:\nreturn G__23575__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23575.cljs$core$IFn$_invoke$arity$1 \x3d G__23575__1;\nG__23575.cljs$core$IFn$_invoke$arity$2 \x3d G__23575__2;\nreturn G__23575;\n})()\n);\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar temp__5802__auto__ \x3d cljs.core.next(self__.front);\nif(temp__5802__auto__){\nvar f1 \x3d temp__5802__auto__;\nreturn (new cljs.core.PersistentQueueSeq(self__.meta,f1,self__.rear,null));\n} else {\nif((!((self__.rear \x3d\x3d null)))){\nreturn (new cljs.core.PersistentQueueSeq(self__.meta,self__.rear,null,null));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.List.EMPTY,self__.meta);\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.first(self__.front);\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar temp__5802__auto__ \x3d cljs.core.next(self__.front);\nif(temp__5802__auto__){\nvar f1 \x3d temp__5802__auto__;\nreturn (new cljs.core.PersistentQueueSeq(self__.meta,f1,self__.rear,null));\n} else {\nif((self__.rear \x3d\x3d null)){\nreturn coll__$1.cljs$core$IEmptyableCollection$_empty$arity$1(null, );\n} else {\nreturn (new cljs.core.PersistentQueueSeq(self__.meta,self__.rear,null,null));\n}\n}\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentQueueSeq(new_meta,self__.front,self__.rear,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.PersistentQueueSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22front\x22,\x22front\x22,117022539,null),new cljs.core.Symbol(null,\x22rear\x22,\x22rear\x22,-900164830,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentQueueSeq.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentQueueSeq.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentQueueSeq\x22);\n\n(cljs.core.PersistentQueueSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentQueueSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentQueueSeq.\n */\ncljs.core.__GT_PersistentQueueSeq \x3d (function cljs$core$__GT_PersistentQueueSeq(meta,front,rear,__hash){\nreturn (new cljs.core.PersistentQueueSeq(meta,front,rear,__hash));\n});\n\n(cljs.core.PersistentQueueSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.PersistentQueue \x3d (function (meta,count,front,rear,__hash){\nthis.meta \x3d meta;\nthis.count \x3d count;\nthis.front \x3d front;\nthis.rear \x3d rear;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 31858766;\n});\n(cljs.core.PersistentQueue.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentQueue.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentQueue.prototype.indexOf \x3d (function() {\nvar G__23596 \x3d null;\nvar G__23596__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23596__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23596 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23596__1.call(this,x);\ncase 2:\nreturn G__23596__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23596.cljs$core$IFn$_invoke$arity$1 \x3d G__23596__1;\nG__23596.cljs$core$IFn$_invoke$arity$2 \x3d G__23596__2;\nreturn G__23596;\n})()\n);\n\n(cljs.core.PersistentQueue.prototype.lastIndexOf \x3d (function() {\nvar G__23597 \x3d null;\nvar G__23597__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(self__.count.cljs$core$IFn$_invoke$arity$1 ? self__.count.cljs$core$IFn$_invoke$arity$1(coll) : self__.count.call(null, coll)));\n});\nvar G__23597__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23597 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23597__1.call(this,x);\ncase 2:\nreturn G__23597__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23597.cljs$core$IFn$_invoke$arity$1 \x3d G__23597__1;\nG__23597.cljs$core$IFn$_invoke$arity$2 \x3d G__23597__2;\nreturn G__23597;\n})()\n);\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentQueueIter(self__.front,cljs.core._iterator(self__.rear)));\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentQueue(self__.meta,self__.count,self__.front,self__.rear,self__.__hash));\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.count;\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.first(self__.front);\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.truth_(self__.front)){\nvar temp__5802__auto__ \x3d cljs.core.next(self__.front);\nif(temp__5802__auto__){\nvar f1 \x3d temp__5802__auto__;\nreturn (new cljs.core.PersistentQueue(self__.meta,(self__.count - (1)),f1,self__.rear,null));\n} else {\nreturn (new cljs.core.PersistentQueue(self__.meta,(self__.count - (1)),cljs.core.seq(self__.rear),cljs.core.PersistentVector.EMPTY,null));\n}\n} else {\nreturn coll__$1;\n}\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.PersistentQueue.EMPTY,self__.meta);\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.first(self__.front);\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.rest(cljs.core.seq(coll__$1));\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar rear__$1 \x3d cljs.core.seq(self__.rear);\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d self__.front;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn rear__$1;\n}\n})())){\nreturn (new cljs.core.PersistentQueueSeq(null,self__.front,cljs.core.seq(rear__$1),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentQueue(new_meta,self__.count,self__.front,self__.rear,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.truth_(self__.front)){\nreturn (new cljs.core.PersistentQueue(self__.meta,(self__.count + (1)),self__.front,cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5002__auto__ \x3d self__.rear;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),o),null));\n} else {\nreturn (new cljs.core.PersistentQueue(self__.meta,(self__.count + (1)),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(self__.front,o),cljs.core.PersistentVector.EMPTY,null));\n}\n}));\n\n(cljs.core.PersistentQueue.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22count\x22,\x22count\x22,-514511684,null),new cljs.core.Symbol(null,\x22front\x22,\x22front\x22,117022539,null),new cljs.core.Symbol(null,\x22rear\x22,\x22rear\x22,-900164830,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentQueue.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentQueue.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentQueue\x22);\n\n(cljs.core.PersistentQueue.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentQueue\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentQueue.\n */\ncljs.core.__GT_PersistentQueue \x3d (function cljs$core$__GT_PersistentQueue(meta,count,front,rear,__hash){\nreturn (new cljs.core.PersistentQueue(meta,count,front,rear,__hash));\n});\n\n(cljs.core.PersistentQueue.EMPTY \x3d (new cljs.core.PersistentQueue(null,(0),null,cljs.core.PersistentVector.EMPTY,cljs.core.empty_ordered_hash)));\n(cljs.core.PersistentQueue.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n*/\ncljs.core.NeverEquiv \x3d (function (){\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2097152;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.NeverEquiv.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (o,other){\nvar self__ \x3d this;\nvar o__$1 \x3d this;\nreturn false;\n}));\n\n(cljs.core.NeverEquiv.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cljs.core.NeverEquiv.cljs$lang$type \x3d true);\n\n(cljs.core.NeverEquiv.cljs$lang$ctorStr \x3d \x22cljs.core/NeverEquiv\x22);\n\n(cljs.core.NeverEquiv.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/NeverEquiv\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/NeverEquiv.\n */\ncljs.core.__GT_NeverEquiv \x3d (function cljs$core$__GT_NeverEquiv(){\nreturn (new cljs.core.NeverEquiv());\n});\n\ncljs.core.never_equiv \x3d (new cljs.core.NeverEquiv());\n/**\n * Test map equivalence. Returns true if x equals y, otherwise returns false.\n */\ncljs.core.equiv_map \x3d (function cljs$core$equiv_map(x,y){\nreturn cljs.core.boolean$(((((cljs.core.map_QMARK_(y)) \x26\x26 ((!(cljs.core.record_QMARK_(y))))))?(((cljs.core.count(x) \x3d\x3d\x3d cljs.core.count(y)))?(((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition0$ \x26 (1048576))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IKVReduce$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IKVReduce,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IKVReduce,x)))?cljs.core.reduce_kv((function (_,k,v){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(y,k,cljs.core.never_equiv),v)){\nreturn true;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,x):cljs.core.every_QMARK_((function (xkv){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(y,cljs.core.first(xkv),cljs.core.never_equiv),cljs.core.second(xkv));\n}),x)):null):null));\n});\ncljs.core.scan_array \x3d (function cljs$core$scan_array(incr,k,array){\nvar len \x3d array.length;\nvar i \x3d (0);\nwhile(true){\nif((i \x3c len)){\nif((k \x3d\x3d\x3d (array[i]))){\nreturn i;\n} else {\nvar G__23616 \x3d (i + incr);\ni \x3d G__23616;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});\ncljs.core.obj_map_compare_keys \x3d (function cljs$core$obj_map_compare_keys(a,b){\nvar a__$1 \x3d cljs.core.hash(a);\nvar b__$1 \x3d cljs.core.hash(b);\nif((a__$1 \x3c b__$1)){\nreturn (-1);\n} else {\nif((a__$1 \x3e b__$1)){\nreturn (1);\n} else {\nreturn (0);\n\n}\n}\n});\ncljs.core.obj_map__GT_hash_map \x3d (function cljs$core$obj_map__GT_hash_map(m,k,v){\nvar ks \x3d m.keys;\nvar len \x3d ks.length;\nvar so \x3d m.strobj;\nvar mm \x3d cljs.core.meta(m);\nvar i \x3d (0);\nvar out \x3d cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);\nwhile(true){\nif((i \x3c len)){\nvar k__$1 \x3d (ks[i]);\nvar G__23618 \x3d (i + (1));\nvar G__23619 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(out,k__$1,cljs.core.goog$module$goog$object.get(so,k__$1));\ni \x3d G__23618;\nout \x3d G__23619;\ncontinue;\n} else {\nreturn cljs.core._with_meta(cljs.core.persistent_BANG_(cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(out,k,v)),mm);\n}\nbreak;\n}\n});\ncljs.core.obj_clone \x3d (function cljs$core$obj_clone(obj,ks){\nvar new_obj \x3d ({});\nvar l \x3d ks.length;\nvar i_23620 \x3d (0);\nwhile(true){\nif((i_23620 \x3c l)){\nvar k_23621 \x3d (ks[i_23620]);\ncljs.core.goog$module$goog$object.set(new_obj,k_23621,cljs.core.goog$module$goog$object.get(obj,k_23621));\n\nvar G__23622 \x3d (i_23620 + (1));\ni_23620 \x3d G__23622;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn new_obj;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEditableCollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.ObjMap \x3d (function (meta,keys,strobj,update_count,__hash){\nthis.meta \x3d meta;\nthis.keys \x3d keys;\nthis.strobj \x3d strobj;\nthis.update_count \x3d update_count;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 16123663;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 4;\n});\n(cljs.core.ObjMap.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ObjMap.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((typeof k \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!((cljs.core.scan_array((1),k,self__.keys) \x3d\x3d null)))))){\nreturn (new cljs.core.MapEntry(k,(self__.strobj[k]),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.ObjMap.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.ObjMap.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((typeof k \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!((cljs.core.scan_array((1),k,self__.keys) \x3d\x3d null)))))){\nreturn (self__.strobj[k]);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (coll,f,init){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar len \x3d self__.keys.length;\nvar keys__$1 \x3d self__.keys.sort(cljs.core.obj_map_compare_keys);\nvar init__$1 \x3d init;\nwhile(true){\nif(cljs.core.seq(keys__$1)){\nvar k \x3d cljs.core.first(keys__$1);\nvar init__$2 \x3d (function (){var G__19133 \x3d init__$1;\nvar G__19134 \x3d k;\nvar G__19135 \x3d (self__.strobj[k]);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19133,G__19134,G__19135) : f.call(null, G__19133,G__19134,G__19135));\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn cljs.core.deref(init__$2);\n} else {\nvar G__23638 \x3d cljs.core.rest(keys__$1);\nvar G__23639 \x3d init__$2;\nkeys__$1 \x3d G__23638;\ninit__$1 \x3d G__23639;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.keys.length;\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_unordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_map(coll__$1,other);\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.transient$(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashMap.EMPTY,coll__$1));\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.ObjMap.EMPTY,self__.meta);\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((typeof k \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!((cljs.core.scan_array((1),k,self__.keys) \x3d\x3d null)))))){\nvar new_keys \x3d cljs.core.aclone(self__.keys);\nvar new_strobj \x3d cljs.core.obj_clone(self__.strobj,self__.keys);\nnew_keys.splice(cljs.core.scan_array((1),k,new_keys),(1));\n\ndelete new_strobj[k];\n\nreturn (new cljs.core.ObjMap(self__.meta,new_keys,new_strobj,(self__.update_count + (1)),null));\n} else {\nreturn coll__$1;\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (coll,k,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(typeof k \x3d\x3d\x3d \x27string\x27){\nif((((self__.update_count \x3e cljs.core.ObjMap.HASHMAP_THRESHOLD)) || ((self__.keys.length \x3e\x3d cljs.core.ObjMap.HASHMAP_THRESHOLD)))){\nreturn cljs.core.obj_map__GT_hash_map(coll__$1,k,v);\n} else {\nif((!((cljs.core.scan_array((1),k,self__.keys) \x3d\x3d null)))){\nvar new_strobj \x3d cljs.core.obj_clone(self__.strobj,self__.keys);\ncljs.core.goog$module$goog$object.set(new_strobj,k,v);\n\nreturn (new cljs.core.ObjMap(self__.meta,self__.keys,new_strobj,(self__.update_count + (1)),null));\n} else {\nvar new_strobj \x3d cljs.core.obj_clone(self__.strobj,self__.keys);\nvar new_keys \x3d cljs.core.aclone(self__.keys);\ncljs.core.goog$module$goog$object.set(new_strobj,k,v);\n\nnew_keys.push(k);\n\nreturn (new cljs.core.ObjMap(self__.meta,new_keys,new_strobj,(self__.update_count + (1)),null));\n}\n}\n} else {\nreturn cljs.core.obj_map__GT_hash_map(coll__$1,k,v);\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((typeof k \x3d\x3d\x3d \x27string\x27) \x26\x26 ((!((cljs.core.scan_array((1),k,self__.keys) \x3d\x3d null)))))){\nreturn true;\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.keys.length \x3e (0))){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__19131_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__19131_SHARP_,(self__.strobj[p1__19131_SHARP_])],null));\n}),self__.keys.sort(cljs.core.obj_map_compare_keys));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.ObjMap(new_meta,self__.keys,self__.strobj,self__.update_count,self__.__hash));\n}\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,entry){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry)){\nreturn coll__$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry,(0)),cljs.core._nth(entry,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,coll__$1,entry);\n}\n}));\n\n(cljs.core.ObjMap.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19136 \x3d (arguments.length - (1));\nswitch (G__19136) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.ObjMap.prototype.apply \x3d (function (self__,args19132){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19132)));\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.ObjMap.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22keys\x22,\x22keys\x22,-1586012071,null),new cljs.core.Symbol(null,\x22strobj\x22,\x22strobj\x22,1088091283,null),new cljs.core.Symbol(null,\x22update-count\x22,\x22update-count\x22,-411982269,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ObjMap.cljs$lang$type \x3d true);\n\n(cljs.core.ObjMap.cljs$lang$ctorStr \x3d \x22cljs.core/ObjMap\x22);\n\n(cljs.core.ObjMap.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ObjMap\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ObjMap.\n */\ncljs.core.__GT_ObjMap \x3d (function cljs$core$__GT_ObjMap(meta,keys,strobj,update_count,__hash){\nreturn (new cljs.core.ObjMap(meta,keys,strobj,update_count,__hash));\n});\n\n(cljs.core.ObjMap.EMPTY \x3d (new cljs.core.ObjMap(null,[],({}),(0),cljs.core.empty_unordered_hash)));\n(cljs.core.ObjMap.HASHMAP_THRESHOLD \x3d (8));\n(cljs.core.ObjMap.fromObject \x3d (function (ks,obj){\nreturn (new cljs.core.ObjMap(null,ks,obj,(0),null));\n}));\n\n/**\n* @constructor\n*/\ncljs.core.RecordIter \x3d (function (i,record,base_count,fields,ext_map_iter){\nthis.i \x3d i;\nthis.record \x3d record;\nthis.base_count \x3d base_count;\nthis.fields \x3d fields;\nthis.ext_map_iter \x3d ext_map_iter;\n});\n(cljs.core.RecordIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar or__5002__auto__ \x3d (self__.i \x3c self__.base_count);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn self__.ext_map_iter.hasNext();\n}\n}));\n\n(cljs.core.RecordIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((self__.i \x3c self__.base_count)){\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(self__.fields,self__.i);\n(self__.i \x3d (self__.i + (1)));\n\nreturn (new cljs.core.MapEntry(k,cljs.core._lookup(self__.record,k),null));\n} else {\nreturn self__.ext_map_iter.next();\n}\n}));\n\n(cljs.core.RecordIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.RecordIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22record\x22,\x22record\x22,861424668,null),new cljs.core.Symbol(null,\x22base-count\x22,\x22base-count\x22,-1180647182,null),new cljs.core.Symbol(null,\x22fields\x22,\x22fields\x22,-291534703,null),new cljs.core.Symbol(null,\x22ext-map-iter\x22,\x22ext-map-iter\x22,-1215982757,null)], null);\n}));\n\n(cljs.core.RecordIter.cljs$lang$type \x3d true);\n\n(cljs.core.RecordIter.cljs$lang$ctorStr \x3d \x22cljs.core/RecordIter\x22);\n\n(cljs.core.RecordIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/RecordIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/RecordIter.\n */\ncljs.core.__GT_RecordIter \x3d (function cljs$core$__GT_RecordIter(i,record,base_count,fields,ext_map_iter){\nreturn (new cljs.core.RecordIter(i,record,base_count,fields,ext_map_iter));\n});\n\n\n/**\n* @constructor\n*/\ncljs.core.ES6EntriesIterator \x3d (function (s){\nthis.s \x3d s;\n});\n(cljs.core.ES6EntriesIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((!((self__.s \x3d\x3d null)))){\nvar vec__19139 \x3d cljs.core.first(self__.s);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19139,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19139,(1),null);\n(self__.s \x3d cljs.core.next(self__.s));\n\nreturn ({\x22value\x22: [k,v], \x22done\x22: false});\n} else {\nreturn ({\x22value\x22: null, \x22done\x22: true});\n}\n}));\n\n(cljs.core.ES6EntriesIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ES6EntriesIterator.cljs$lang$type \x3d true);\n\n(cljs.core.ES6EntriesIterator.cljs$lang$ctorStr \x3d \x22cljs.core/ES6EntriesIterator\x22);\n\n(cljs.core.ES6EntriesIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ES6EntriesIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ES6EntriesIterator.\n */\ncljs.core.__GT_ES6EntriesIterator \x3d (function cljs$core$__GT_ES6EntriesIterator(s){\nreturn (new cljs.core.ES6EntriesIterator(s));\n});\n\ncljs.core.es6_entries_iterator \x3d (function cljs$core$es6_entries_iterator(coll){\nreturn (new cljs.core.ES6EntriesIterator(cljs.core.seq(coll)));\n});\n\n/**\n* @constructor\n*/\ncljs.core.ES6SetEntriesIterator \x3d (function (s){\nthis.s \x3d s;\n});\n(cljs.core.ES6SetEntriesIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((!((self__.s \x3d\x3d null)))){\nvar x \x3d cljs.core.first(self__.s);\n(self__.s \x3d cljs.core.next(self__.s));\n\nreturn ({\x22value\x22: [x,x], \x22done\x22: false});\n} else {\nreturn ({\x22value\x22: null, \x22done\x22: true});\n}\n}));\n\n(cljs.core.ES6SetEntriesIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ES6SetEntriesIterator.cljs$lang$type \x3d true);\n\n(cljs.core.ES6SetEntriesIterator.cljs$lang$ctorStr \x3d \x22cljs.core/ES6SetEntriesIterator\x22);\n\n(cljs.core.ES6SetEntriesIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ES6SetEntriesIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ES6SetEntriesIterator.\n */\ncljs.core.__GT_ES6SetEntriesIterator \x3d (function cljs$core$__GT_ES6SetEntriesIterator(s){\nreturn (new cljs.core.ES6SetEntriesIterator(s));\n});\n\ncljs.core.es6_set_entries_iterator \x3d (function cljs$core$es6_set_entries_iterator(coll){\nreturn (new cljs.core.ES6SetEntriesIterator(cljs.core.seq(coll)));\n});\ncljs.core.array_index_of_nil_QMARK_ \x3d (function cljs$core$array_index_of_nil_QMARK_(arr){\nvar len \x3d arr.length;\nvar i \x3d (0);\nwhile(true){\nif((len \x3c\x3d i)){\nreturn (-1);\n} else {\nif(((arr[i]) \x3d\x3d null)){\nreturn i;\n} else {\nvar G__23681 \x3d (i + (2));\ni \x3d G__23681;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.core.array_index_of_keyword_QMARK_ \x3d (function cljs$core$array_index_of_keyword_QMARK_(arr,k){\nvar len \x3d arr.length;\nvar kstr \x3d k.fqn;\nvar i \x3d (0);\nwhile(true){\nif((len \x3c\x3d i)){\nreturn (-1);\n} else {\nif(((((arr[i]) instanceof cljs.core.Keyword)) \x26\x26 ((kstr \x3d\x3d\x3d (arr[i]).fqn)))){\nreturn i;\n} else {\nvar G__23682 \x3d (i + (2));\ni \x3d G__23682;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.core.array_index_of_symbol_QMARK_ \x3d (function cljs$core$array_index_of_symbol_QMARK_(arr,k){\nvar len \x3d arr.length;\nvar kstr \x3d k.str;\nvar i \x3d (0);\nwhile(true){\nif((len \x3c\x3d i)){\nreturn (-1);\n} else {\nif(((((arr[i]) instanceof cljs.core.Symbol)) \x26\x26 ((kstr \x3d\x3d\x3d (arr[i]).str)))){\nreturn i;\n} else {\nvar G__23683 \x3d (i + (2));\ni \x3d G__23683;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.core.array_index_of_identical_QMARK_ \x3d (function cljs$core$array_index_of_identical_QMARK_(arr,k){\nvar len \x3d arr.length;\nvar i \x3d (0);\nwhile(true){\nif((len \x3c\x3d i)){\nreturn (-1);\n} else {\nif((k \x3d\x3d\x3d (arr[i]))){\nreturn i;\n} else {\nvar G__23684 \x3d (i + (2));\ni \x3d G__23684;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.core.array_index_of_equiv_QMARK_ \x3d (function cljs$core$array_index_of_equiv_QMARK_(arr,k){\nvar len \x3d arr.length;\nvar i \x3d (0);\nwhile(true){\nif((len \x3c\x3d i)){\nreturn (-1);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,(arr[i]))){\nreturn i;\n} else {\nvar G__23695 \x3d (i + (2));\ni \x3d G__23695;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.core.array_index_of \x3d (function cljs$core$array_index_of(arr,k){\nif((k instanceof cljs.core.Keyword)){\nreturn cljs.core.array_index_of_keyword_QMARK_(arr,k);\n} else {\nif(((typeof k \x3d\x3d\x3d \x27string\x27) || (typeof k \x3d\x3d\x3d \x27number\x27))){\nreturn cljs.core.array_index_of_identical_QMARK_(arr,k);\n} else {\nif((k instanceof cljs.core.Symbol)){\nreturn cljs.core.array_index_of_symbol_QMARK_(arr,k);\n} else {\nif((k \x3d\x3d null)){\nreturn cljs.core.array_index_of_nil_QMARK_(arr);\n} else {\nreturn cljs.core.array_index_of_equiv_QMARK_(arr,k);\n\n}\n}\n}\n}\n});\ncljs.core.array_map_index_of \x3d (function cljs$core$array_map_index_of(m,k){\nreturn cljs.core.array_index_of(m.arr,k);\n});\ncljs.core.array_extend_kv \x3d (function cljs$core$array_extend_kv(arr,k,v){\nvar l \x3d arr.length;\nvar narr \x3d (new Array((l + (2))));\nvar i_23714 \x3d (0);\nwhile(true){\nif((i_23714 \x3c l)){\n(narr[i_23714] \x3d (arr[i_23714]));\n\nvar G__23719 \x3d (i_23714 + (1));\ni_23714 \x3d G__23719;\ncontinue;\n} else {\n}\nbreak;\n}\n\n(narr[l] \x3d k);\n\n(narr[(l + (1))] \x3d v);\n\nreturn narr;\n});\ncljs.core.array_map_extend_kv \x3d (function cljs$core$array_map_extend_kv(m,k,v){\nreturn cljs.core.array_extend_kv(m.arr,k,v);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IVector}\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.IMapEntry}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.ILookup}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.MapEntry \x3d (function (key,val,__hash){\nthis.key \x3d key;\nthis.val \x3d val;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 166619935;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.MapEntry.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.MapEntry.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nvar G__19143 \x3d k;\nswitch (G__19143) {\ncase (0):\nreturn (new cljs.core.MapEntry((0),self__.key,null));\n\nbreak;\ncase (1):\nreturn (new cljs.core.MapEntry((1),self__.val,null));\n\nbreak;\ndefault:\nreturn null;\n\n}\n}));\n\n(cljs.core.MapEntry.prototype.indexOf \x3d (function() {\nvar G__23744 \x3d null;\nvar G__23744__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23744__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23744 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23744__1.call(this,x);\ncase 2:\nreturn G__23744__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23744.cljs$core$IFn$_invoke$arity$1 \x3d G__23744__1;\nG__23744.cljs$core$IFn$_invoke$arity$2 \x3d G__23744__2;\nreturn G__23744;\n})()\n);\n\n(cljs.core.MapEntry.prototype.lastIndexOf \x3d (function() {\nvar G__23757 \x3d null;\nvar G__23757__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__23757__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23757 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23757__1.call(this,x);\ncase 2:\nreturn G__23757__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23757.cljs$core$IFn$_invoke$arity$1 \x3d G__23757__1;\nG__23757.cljs$core$IFn$_invoke$arity$2 \x3d G__23757__2;\nreturn G__23757;\n})()\n);\n\n(cljs.core.MapEntry.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn node__$1.cljs$core$IIndexed$_nth$arity$3(null, k,null);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (node,k,not_found){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn node__$1.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (node,n){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nif((n \x3d\x3d\x3d (0))){\nreturn self__.key;\n} else {\nif((n \x3d\x3d\x3d (1))){\nreturn self__.val;\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n\n}\n}\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (node,n,not_found){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nif((n \x3d\x3d\x3d (0))){\nreturn self__.key;\n} else {\nif((n \x3d\x3d\x3d (1))){\nreturn self__.val;\n} else {\nreturn not_found;\n\n}\n}\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IVector$_assoc_n$arity$3 \x3d (function (node,n,v){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null).cljs$core$IVector$_assoc_n$arity$3(null, n,v);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (2);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IMapEntry$_key$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.key;\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IMapEntry$_val$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key], null);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (new cljs.core.IndexedSeq([self__.val,self__.key],(0),null));\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (node,f){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(node__$1,f);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (node,f,start){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(node__$1,f,start);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (node,k,v){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null),k,v);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (((k \x3d\x3d\x3d (0))) || ((k \x3d\x3d\x3d (1))));\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (new cljs.core.IndexedSeq([self__.key,self__.val],(0),null));\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (node,meta){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null),meta);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (node,o){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val,o], null);\n}));\n\n(cljs.core.MapEntry.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19144 \x3d (arguments.length - (1));\nswitch (G__19144) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.MapEntry.prototype.apply \x3d (function (self__,args19142){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19142)));\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node.cljs$core$IIndexed$_nth$arity$2(null, k);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.MapEntry.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22key\x22,\x22key\x22,124488940,null),new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.MapEntry.cljs$lang$type \x3d true);\n\n(cljs.core.MapEntry.cljs$lang$ctorStr \x3d \x22cljs.core/MapEntry\x22);\n\n(cljs.core.MapEntry.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/MapEntry\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/MapEntry.\n */\ncljs.core.__GT_MapEntry \x3d (function cljs$core$__GT_MapEntry(key,val,__hash){\nreturn (new cljs.core.MapEntry(key,val,__hash));\n});\n\n/**\n * Returns true if x satisfies IMapEntry\n */\ncljs.core.map_entry_QMARK_ \x3d (function cljs$core$map_entry_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif((((x.cljs$lang$protocol_mask$partition0$ \x26 (2048))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMapEntry$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.PersistentArrayMapSeq \x3d (function (arr,i,_meta){\nthis.arr \x3d arr;\nthis.i \x3d i;\nthis._meta \x3d _meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374990;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 262144;\n});\n(cljs.core.PersistentArrayMapSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.indexOf \x3d (function() {\nvar G__23798 \x3d null;\nvar G__23798__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__23798__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23798 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23798__1.call(this,x);\ncase 2:\nreturn G__23798__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23798.cljs$core$IFn$_invoke$arity$1 \x3d G__23798__1;\nG__23798.cljs$core$IFn$_invoke$arity$2 \x3d G__23798__2;\nreturn G__23798;\n})()\n);\n\n(cljs.core.PersistentArrayMapSeq.prototype.lastIndexOf \x3d (function() {\nvar G__23802 \x3d null;\nvar G__23802__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__23802__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__23802 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__23802__1.call(this,x);\ncase 2:\nreturn G__23802__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23802.cljs$core$IFn$_invoke$arity$1 \x3d G__23802__1;\nG__23802.cljs$core$IFn$_invoke$arity$2 \x3d G__23802__2;\nreturn G__23802;\n})()\n);\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__._meta;\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.i \x3c (self__.arr.length - (2)))){\nreturn (new cljs.core.PersistentArrayMapSeq(self__.arr,(self__.i + (2)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn ((self__.arr.length - self__.i) / (2));\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.hash_ordered_coll(coll__$1);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.MapEntry((self__.arr[self__.i]),(self__.arr[(self__.i + (1))]),null));\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.i \x3c (self__.arr.length - (2)))){\nreturn (new cljs.core.PersistentArrayMapSeq(self__.arr,(self__.i + (2)),null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__._meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentArrayMapSeq(self__.arr,self__.i,new_meta));\n}\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((n \x3c coll__$1.cljs$core$ICounted$_count$arity$1(null, ))){\nreturn (new cljs.core.PersistentArrayMapSeq(self__.arr,(self__.i + ((2) * n)),null));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentArrayMapSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22_meta\x22,\x22_meta\x22,-1716892533,null)], null);\n}));\n\n(cljs.core.PersistentArrayMapSeq.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentArrayMapSeq.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentArrayMapSeq\x22);\n\n(cljs.core.PersistentArrayMapSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentArrayMapSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentArrayMapSeq.\n */\ncljs.core.__GT_PersistentArrayMapSeq \x3d (function cljs$core$__GT_PersistentArrayMapSeq(arr,i,_meta){\nreturn (new cljs.core.PersistentArrayMapSeq(arr,i,_meta));\n});\n\n(cljs.core.PersistentArrayMapSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.persistent_array_map_seq \x3d (function cljs$core$persistent_array_map_seq(arr,i,_meta){\nif((i \x3c\x3d (arr.length - (2)))){\nreturn (new cljs.core.PersistentArrayMapSeq(arr,i,_meta));\n} else {\nreturn null;\n}\n});\n\n\n/**\n* @constructor\n*/\ncljs.core.PersistentArrayMapIterator \x3d (function (arr,i,cnt){\nthis.arr \x3d arr;\nthis.i \x3d i;\nthis.cnt \x3d cnt;\n});\n(cljs.core.PersistentArrayMapIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.i \x3c self__.cnt);\n}));\n\n(cljs.core.PersistentArrayMapIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d (new cljs.core.MapEntry((self__.arr[self__.i]),(self__.arr[(self__.i + (1))]),null));\n(self__.i \x3d (self__.i + (2)));\n\nreturn ret;\n}));\n\n(cljs.core.PersistentArrayMapIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null)], null);\n}));\n\n(cljs.core.PersistentArrayMapIterator.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentArrayMapIterator.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentArrayMapIterator\x22);\n\n(cljs.core.PersistentArrayMapIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentArrayMapIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentArrayMapIterator.\n */\ncljs.core.__GT_PersistentArrayMapIterator \x3d (function cljs$core$__GT_PersistentArrayMapIterator(arr,i,cnt){\nreturn (new cljs.core.PersistentArrayMapIterator(arr,i,cnt));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEditableCollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.PersistentArrayMap \x3d (function (meta,cnt,arr,__hash){\nthis.meta \x3d meta;\nthis.cnt \x3d cnt;\nthis.arr \x3d arr;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 16647951;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 401412;\n});\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar idx \x3d cljs.core.array_map_index_of(coll__$1,k);\nif((idx \x3d\x3d\x3d (-1))){\nreturn null;\n} else {\nreturn (new cljs.core.MapEntry((self__.arr[idx]),(self__.arr[(idx + (1))]),null));\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.keys \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator((cljs.core.keys.cljs$core$IFn$_invoke$arity$1 ? cljs.core.keys.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.keys.call(null, coll)));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.entries \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_entries_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.values \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator((cljs.core.vals.cljs$core$IFn$_invoke$arity$1 ? cljs.core.vals.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.vals.call(null, coll)));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.has \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.contains_QMARK_(coll,k);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.get \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.forEach \x3d (function (f){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar seq__19147 \x3d cljs.core.seq(coll);\nvar chunk__19148 \x3d null;\nvar count__19149 \x3d (0);\nvar i__19150 \x3d (0);\nwhile(true){\nif((i__19150 \x3c count__19149)){\nvar vec__19157 \x3d chunk__19148.cljs$core$IIndexed$_nth$arity$2(null, i__19150);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19157,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19157,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__23894 \x3d seq__19147;\nvar G__23895 \x3d chunk__19148;\nvar G__23896 \x3d count__19149;\nvar G__23897 \x3d (i__19150 + (1));\nseq__19147 \x3d G__23894;\nchunk__19148 \x3d G__23895;\ncount__19149 \x3d G__23896;\ni__19150 \x3d G__23897;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19147);\nif(temp__5804__auto__){\nvar seq__19147__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19147__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19147__$1);\nvar G__23902 \x3d cljs.core.chunk_rest(seq__19147__$1);\nvar G__23903 \x3d c__5525__auto__;\nvar G__23904 \x3d cljs.core.count(c__5525__auto__);\nvar G__23905 \x3d (0);\nseq__19147 \x3d G__23902;\nchunk__19148 \x3d G__23903;\ncount__19149 \x3d G__23904;\ni__19150 \x3d G__23905;\ncontinue;\n} else {\nvar vec__19160 \x3d cljs.core.first(seq__19147__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19160,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19160,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__23907 \x3d cljs.core.next(seq__19147__$1);\nvar G__23908 \x3d null;\nvar G__23909 \x3d (0);\nvar G__23910 \x3d (0);\nseq__19147 \x3d G__23907;\nchunk__19148 \x3d G__23908;\ncount__19149 \x3d G__23909;\ni__19150 \x3d G__23910;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar idx \x3d cljs.core.array_map_index_of(coll__$1,k);\nif((idx \x3d\x3d\x3d (-1))){\nreturn not_found;\n} else {\nreturn (self__.arr[(idx + (1))]);\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (coll,f,init){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar len \x3d self__.arr.length;\nvar i \x3d (0);\nvar init__$1 \x3d init;\nwhile(true){\nif((i \x3c len)){\nvar init__$2 \x3d (function (){var G__19163 \x3d init__$1;\nvar G__19164 \x3d (self__.arr[i]);\nvar G__19165 \x3d (self__.arr[(i + (1))]);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19163,G__19164,G__19165) : f.call(null, G__19163,G__19164,G__19165));\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn cljs.core.deref(init__$2);\n} else {\nvar G__23918 \x3d (i + (2));\nvar G__23919 \x3d init__$2;\ni \x3d G__23918;\ninit__$1 \x3d G__23919;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (new cljs.core.PersistentArrayMapIterator(self__.arr,(0),(self__.cnt * (2))));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.PersistentArrayMap(self__.meta,self__.cnt,self__.arr,self__.__hash));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.cnt;\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_unordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(((cljs.core.map_QMARK_(other)) \x26\x26 ((!(cljs.core.record_QMARK_(other)))))){\nvar alen \x3d self__.arr.length;\nvar other__$1 \x3d other;\nif((self__.cnt \x3d\x3d\x3d other__$1.cljs$core$ICounted$_count$arity$1(null, ))){\nvar i \x3d (0);\nwhile(true){\nif((i \x3c alen)){\nvar v \x3d other__$1.cljs$core$ILookup$_lookup$arity$3(null, (self__.arr[i]),cljs.core.lookup_sentinel);\nif((!((v \x3d\x3d\x3d cljs.core.lookup_sentinel)))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((self__.arr[(i + (1))]),v)){\nvar G__23921 \x3d (i + (2));\ni \x3d G__23921;\ncontinue;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.TransientArrayMap(({}),self__.arr.length,cljs.core.aclone(self__.arr)));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.PersistentArrayMap.EMPTY,self__.meta);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2(coll__$1,f);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3(coll__$1,f,start);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar idx \x3d cljs.core.array_map_index_of(coll__$1,k);\nif((idx \x3e\x3d (0))){\nvar len \x3d self__.arr.length;\nvar new_len \x3d (len - (2));\nif((new_len \x3d\x3d\x3d (0))){\nreturn coll__$1.cljs$core$IEmptyableCollection$_empty$arity$1(null, );\n} else {\nvar new_arr \x3d (new Array(new_len));\nvar s \x3d (0);\nvar d \x3d (0);\nwhile(true){\nif((s \x3e\x3d len)){\nreturn (new cljs.core.PersistentArrayMap(self__.meta,(self__.cnt - (1)),new_arr,null));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,(self__.arr[s]))){\nvar G__23929 \x3d (s + (2));\nvar G__23930 \x3d d;\ns \x3d G__23929;\nd \x3d G__23930;\ncontinue;\n} else {\n(new_arr[d] \x3d (self__.arr[s]));\n\n(new_arr[(d + (1))] \x3d (self__.arr[(s + (1))]));\n\nvar G__23932 \x3d (s + (2));\nvar G__23933 \x3d (d + (2));\ns \x3d G__23932;\nd \x3d G__23933;\ncontinue;\n\n}\n}\nbreak;\n}\n}\n} else {\nreturn coll__$1;\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (coll,k,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar idx \x3d cljs.core.array_map_index_of(coll__$1,k);\nif((idx \x3d\x3d\x3d (-1))){\nif((self__.cnt \x3c cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD)){\nvar arr__$1 \x3d cljs.core.array_map_extend_kv(coll__$1,k,v);\nreturn (new cljs.core.PersistentArrayMap(self__.meta,(self__.cnt + (1)),arr__$1,null));\n} else {\nreturn cljs.core._with_meta(cljs.core._assoc(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashMap.EMPTY,coll__$1),k,v),self__.meta);\n}\n} else {\nif((v \x3d\x3d\x3d (self__.arr[(idx + (1))]))){\nreturn coll__$1;\n} else {\nvar arr__$1 \x3d (function (){var G__19168 \x3d cljs.core.aclone(self__.arr);\n(G__19168[(idx + (1))] \x3d v);\n\nreturn G__19168;\n})();\nreturn (new cljs.core.PersistentArrayMap(self__.meta,self__.cnt,arr__$1,null));\n\n}\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (!((cljs.core.array_map_index_of(coll__$1,k) \x3d\x3d\x3d (-1))));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.persistent_array_map_seq(self__.arr,(0),null);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentArrayMap(new_meta,self__.cnt,self__.arr,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,entry){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry)){\nreturn coll__$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry,(0)),cljs.core._nth(entry,(1)));\n} else {\nvar ret \x3d coll__$1;\nvar es \x3d cljs.core.seq(entry);\nwhile(true){\nif((es \x3d\x3d null)){\nreturn ret;\n} else {\nvar e \x3d cljs.core.first(es);\nif(cljs.core.vector_QMARK_(e)){\nvar G__23940 \x3d cljs.core._assoc(ret,cljs.core._nth(e,(0)),cljs.core._nth(e,(1)));\nvar G__23941 \x3d cljs.core.next(es);\nret \x3d G__23940;\nes \x3d G__23941;\ncontinue;\n} else {\nthrow (new Error(\x22conj on a map takes map entries or seqables of map entries\x22));\n}\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19169 \x3d (arguments.length - (1));\nswitch (G__19169) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.PersistentArrayMap.prototype.apply \x3d (function (self__,args19146){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19146)));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (coll,n){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar temp__5808__auto__ \x3d coll__$1.cljs$core$ISeqable$_seq$arity$1(null, );\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar s \x3d temp__5808__auto__;\nreturn cljs.core._drop(s,n);\n}\n}));\n\n(cljs.core.PersistentArrayMap.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentArrayMap.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentArrayMap.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentArrayMap\x22);\n\n(cljs.core.PersistentArrayMap.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentArrayMap\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentArrayMap.\n */\ncljs.core.__GT_PersistentArrayMap \x3d (function cljs$core$__GT_PersistentArrayMap(meta,cnt,arr,__hash){\nreturn (new cljs.core.PersistentArrayMap(meta,cnt,arr,__hash));\n});\n\n(cljs.core.PersistentArrayMap.EMPTY \x3d (new cljs.core.PersistentArrayMap(null,(0),[],cljs.core.empty_unordered_hash)));\n(cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD \x3d (8));\n(cljs.core.PersistentArrayMap.fromArray \x3d (function (arr,no_clone,no_check){\nvar arr__$1 \x3d ((no_clone)?arr:cljs.core.aclone(arr));\nvar arr__$2 \x3d ((no_check)?arr__$1:(function (){var ret \x3d [];\nvar i_23952 \x3d (0);\nwhile(true){\nif((i_23952 \x3c arr__$1.length)){\nvar k_23953 \x3d (arr__$1[i_23952]);\nvar v_23954 \x3d (arr__$1[(i_23952 + (1))]);\nvar idx_23955 \x3d cljs.core.array_index_of(ret,k_23953);\nif((idx_23955 \x3d\x3d\x3d (-1))){\nret.push(k_23953);\n\nret.push(v_23954);\n} else {\n}\n\nvar G__23956 \x3d (i_23952 + (2));\ni_23952 \x3d G__23956;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn ret;\n})());\nvar cnt \x3d (arr__$2.length / (2));\nreturn (new cljs.core.PersistentArrayMap(null,cnt,arr__$2,null));\n}));\n(cljs.core.PersistentArrayMap.createWithCheck \x3d (function (arr){\nvar ret \x3d [];\nvar i_23957 \x3d (0);\nwhile(true){\nif((i_23957 \x3c arr.length)){\nvar k_23959 \x3d (arr[i_23957]);\nvar v_23960 \x3d (arr[(i_23957 + (1))]);\nvar idx_23961 \x3d cljs.core.array_index_of(ret,k_23959);\nif((idx_23961 \x3d\x3d\x3d (-1))){\nvar G__19170_23962 \x3d ret;\nG__19170_23962.push(k_23959);\n\nG__19170_23962.push(v_23960);\n\n} else {\nthrow (new Error([\x22Duplicate key: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k_23959)].join(\x27\x27)));\n}\n\nvar G__23963 \x3d (i_23957 + (2));\ni_23957 \x3d G__23963;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar cnt \x3d (arr.length / (2));\nreturn (new cljs.core.PersistentArrayMap(null,cnt,arr,null));\n}));\ncljs.core.key_test \x3d (function cljs$core$key_test(key,other){\nif((key \x3d\x3d\x3d other)){\nreturn true;\n} else {\nif(cljs.core.keyword_identical_QMARK_(key,other)){\nreturn true;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,other);\n\n}\n}\n});\ncljs.core.pam_dupes_QMARK_ \x3d (function cljs$core$pam_dupes_QMARK_(arr){\nvar i \x3d (0);\nwhile(true){\nif((i \x3c arr.length)){\nvar dupe_QMARK_ \x3d (function (){var j \x3d (0);\nwhile(true){\nif((j \x3c i)){\nvar or__5002__auto__ \x3d cljs.core.key_test((arr[i]),(arr[j]));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar G__23978 \x3d ((2) + j);\nj \x3d G__23978;\ncontinue;\n}\n} else {\nreturn false;\n}\nbreak;\n}\n})();\nvar or__5002__auto__ \x3d dupe_QMARK_;\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar G__23979 \x3d ((2) + i);\ni \x3d G__23979;\ncontinue;\n}\n} else {\nreturn false;\n}\nbreak;\n}\n});\ncljs.core.pam_new_size \x3d (function cljs$core$pam_new_size(arr){\nvar i \x3d (0);\nvar n \x3d (0);\nwhile(true){\nif((i \x3c arr.length)){\nvar dupe_QMARK_ \x3d (function (){var j \x3d (0);\nwhile(true){\nif((j \x3c i)){\nvar or__5002__auto__ \x3d cljs.core.key_test((arr[i]),(arr[j]));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar G__23986 \x3d ((2) + j);\nj \x3d G__23986;\ncontinue;\n}\n} else {\nreturn false;\n}\nbreak;\n}\n})();\nvar G__23987 \x3d ((2) + i);\nvar G__23988 \x3d ((dupe_QMARK_)?n:(n + (2)));\ni \x3d G__23987;\nn \x3d G__23988;\ncontinue;\n} else {\nreturn n;\n}\nbreak;\n}\n});\ncljs.core.pam_grow_seed_array \x3d (function cljs$core$pam_grow_seed_array(seed,trailing){\nvar seed_cnt \x3d (seed.length - (1));\nvar extra_kvs \x3d cljs.core.seq(trailing);\nvar ret \x3d (new Array((seed_cnt + ((2) * cljs.core.count(extra_kvs)))));\nvar ret__$1 \x3d cljs.core.array_copy(seed,(0),ret,(0),seed_cnt);\nvar i \x3d seed_cnt;\nvar extra_kvs__$1 \x3d extra_kvs;\nwhile(true){\nif(extra_kvs__$1){\nvar kv \x3d cljs.core.first(extra_kvs__$1);\n(ret__$1[i] \x3d cljs.core._key(kv));\n\n(ret__$1[(i + (1))] \x3d cljs.core._val(kv));\n\nvar G__23993 \x3d ((2) + seed_cnt);\nvar G__23994 \x3d cljs.core.next(extra_kvs__$1);\ni \x3d G__23993;\nextra_kvs__$1 \x3d G__23994;\ncontinue;\n} else {\nreturn ret__$1;\n}\nbreak;\n}\n});\n(cljs.core.PersistentArrayMap.createAsIfByAssoc \x3d (function (init){\nvar len \x3d init.length;\nvar has_trailing_QMARK_ \x3d ((1) \x3d\x3d\x3d (len \x26 (1)));\nif((!(((has_trailing_QMARK_) || (cljs.core.pam_dupes_QMARK_(init)))))){\nreturn (new cljs.core.PersistentArrayMap(null,(len / (2)),init,null));\n} else {\nreturn cljs.core.PersistentArrayMap.createAsIfByAssocComplexPath(init,has_trailing_QMARK_);\n}\n}));\n(cljs.core.PersistentArrayMap.createAsIfByAssocComplexPath \x3d (function (init,has_trailing_QMARK_){\nvar init__$1 \x3d ((has_trailing_QMARK_)?cljs.core.pam_grow_seed_array(init,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(init[(init.length - (1))]))):init);\nvar n \x3d cljs.core.pam_new_size(init__$1);\nvar len \x3d init__$1.length;\nif((n \x3c len)){\nvar nodups \x3d (new Array(n));\nvar i_23999 \x3d (0);\nvar m_24000 \x3d (0);\nwhile(true){\nif((i_23999 \x3c len)){\nvar dupe_QMARK__24001 \x3d (function (){var j \x3d (0);\nwhile(true){\nif((j \x3c m_24000)){\nvar or__5002__auto__ \x3d cljs.core.key_test((init__$1[i_23999]),(init__$1[j]));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar G__24006 \x3d ((2) + j);\nj \x3d G__24006;\ncontinue;\n}\n} else {\nreturn false;\n}\nbreak;\n}\n})();\nif((!(dupe_QMARK__24001))){\nvar j_24007 \x3d (function (){var j_24007 \x3d (len - (2));\nwhile(true){\nif((j_24007 \x3e\x3d i_23999)){\nif(cljs.core.key_test((init__$1[i_23999]),(init__$1[j_24007]))){\nreturn j_24007;\n} else {\nvar G__24011 \x3d (j_24007 - (2));\nj_24007 \x3d G__24011;\ncontinue;\n}\n} else {\nreturn j_24007;\n}\nbreak;\n}\n})();\n(nodups[m_24000] \x3d (init__$1[i_23999]));\n\n(nodups[(m_24000 + (1))] \x3d (init__$1[(j_24007 + (1))]));\n\nvar G__24012 \x3d ((2) + i_23999);\nvar G__24013 \x3d ((2) + m_24000);\ni_23999 \x3d G__24012;\nm_24000 \x3d G__24013;\ncontinue;\n} else {\nvar G__24016 \x3d ((2) + i_23999);\nvar G__24017 \x3d m_24000;\ni_23999 \x3d G__24016;\nm_24000 \x3d G__24017;\ncontinue;\n}\n} else {\n}\nbreak;\n}\n\nreturn (new cljs.core.PersistentArrayMap(null,(nodups.length / (2)),nodups,null));\n} else {\nreturn (new cljs.core.PersistentArrayMap(null,(init__$1.length / (2)),init__$1,null));\n}\n}));\n(cljs.core.PersistentArrayMap.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ITransientMap}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ITransientCollection}\n * @implements {cljs.core.ITransientAssociative}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.TransientArrayMap \x3d (function (editable_QMARK_,len,arr){\nthis.editable_QMARK_ \x3d editable_QMARK_;\nthis.len \x3d len;\nthis.arr \x3d arr;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 259;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 56;\n});\n(cljs.core.TransientArrayMap.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.editable_QMARK_){\nreturn cljs.core.quot(self__.len,(2));\n} else {\nthrow (new Error(\x22count after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (tcoll,k){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn tcoll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (tcoll,k,not_found){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.editable_QMARK_){\nvar idx \x3d cljs.core.array_map_index_of(tcoll__$1,k);\nif((idx \x3d\x3d\x3d (-1))){\nreturn not_found;\n} else {\nreturn (self__.arr[(idx + (1))]);\n}\n} else {\nthrow (new Error(\x22lookup after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 \x3d (function (tcoll,o){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.editable_QMARK_){\nif(cljs.core.map_entry_QMARK_(o)){\nreturn tcoll__$1.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(null, (cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(o) : cljs.core.key.call(null, o)),(cljs.core.val.cljs$core$IFn$_invoke$arity$1 ? cljs.core.val.cljs$core$IFn$_invoke$arity$1(o) : cljs.core.val.call(null, o)));\n} else {\nif(cljs.core.vector_QMARK_(o)){\nreturn tcoll__$1.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(null, (o.cljs$core$IFn$_invoke$arity$1 ? o.cljs$core$IFn$_invoke$arity$1((0)) : o.call(null, (0))),(o.cljs$core$IFn$_invoke$arity$1 ? o.cljs$core$IFn$_invoke$arity$1((1)) : o.call(null, (1))));\n} else {\nvar es \x3d cljs.core.seq(o);\nvar tcoll__$2 \x3d tcoll__$1;\nwhile(true){\nvar temp__5802__auto__ \x3d cljs.core.first(es);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar e \x3d temp__5802__auto__;\nvar G__24032 \x3d cljs.core.next(es);\nvar G__24033 \x3d cljs.core._assoc_BANG_(tcoll__$2,(cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(e) : cljs.core.key.call(null, e)),(cljs.core.val.cljs$core$IFn$_invoke$arity$1 ? cljs.core.val.cljs$core$IFn$_invoke$arity$1(e) : cljs.core.val.call(null, e)));\nes \x3d G__24032;\ntcoll__$2 \x3d G__24033;\ncontinue;\n} else {\nreturn tcoll__$2;\n}\nbreak;\n}\n\n}\n}\n} else {\nthrow (new Error(\x22conj! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.editable_QMARK_){\n(self__.editable_QMARK_ \x3d false);\n\nreturn (new cljs.core.PersistentArrayMap(null,cljs.core.quot(self__.len,(2)),self__.arr,null));\n} else {\nthrow (new Error(\x22persistent! called twice\x22));\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 \x3d (function (tcoll,key,val){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.editable_QMARK_){\nvar idx \x3d cljs.core.array_map_index_of(tcoll__$1,key);\nif((idx \x3d\x3d\x3d (-1))){\nif(((self__.len + (2)) \x3c\x3d ((2) * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD))){\n(self__.len \x3d (self__.len + (2)));\n\nself__.arr.push(key);\n\nself__.arr.push(val);\n\nreturn tcoll__$1;\n} else {\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3((cljs.core.array__GT_transient_hash_map.cljs$core$IFn$_invoke$arity$2 ? cljs.core.array__GT_transient_hash_map.cljs$core$IFn$_invoke$arity$2(self__.len,self__.arr) : cljs.core.array__GT_transient_hash_map.call(null, self__.len,self__.arr)),key,val);\n}\n} else {\nif((val \x3d\x3d\x3d (self__.arr[(idx + (1))]))){\nreturn tcoll__$1;\n} else {\n(self__.arr[(idx + (1))] \x3d val);\n\nreturn tcoll__$1;\n}\n}\n} else {\nthrow (new Error(\x22assoc! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 \x3d (function (tcoll,key){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif(self__.editable_QMARK_){\nvar idx \x3d cljs.core.array_map_index_of(tcoll__$1,key);\nif((idx \x3e\x3d (0))){\n(self__.arr[idx] \x3d (self__.arr[(self__.len - (2))]));\n\n(self__.arr[(idx + (1))] \x3d (self__.arr[(self__.len - (1))]));\n\nvar G__19172_24040 \x3d self__.arr;\nG__19172_24040.pop();\n\nG__19172_24040.pop();\n\n\n(self__.len \x3d (self__.len - (2)));\n} else {\n}\n\nreturn tcoll__$1;\n} else {\nthrow (new Error(\x22dissoc! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19173 \x3d (arguments.length - (1));\nswitch (G__19173) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.TransientArrayMap.prototype.apply \x3d (function (self__,args19171){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19171)));\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nreturn tcoll.cljs$core$ILookup$_lookup$arity$3(null, key,null);\n}));\n\n(cljs.core.TransientArrayMap.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (key,not_found){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nreturn tcoll.cljs$core$ILookup$_lookup$arity$3(null, key,not_found);\n}));\n\n(cljs.core.TransientArrayMap.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22editable?\x22,\x22editable?\x22,-164945806,null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22len\x22,\x22len\x22,-1230778691,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null)], null);\n}));\n\n(cljs.core.TransientArrayMap.cljs$lang$type \x3d true);\n\n(cljs.core.TransientArrayMap.cljs$lang$ctorStr \x3d \x22cljs.core/TransientArrayMap\x22);\n\n(cljs.core.TransientArrayMap.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/TransientArrayMap\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/TransientArrayMap.\n */\ncljs.core.__GT_TransientArrayMap \x3d (function cljs$core$__GT_TransientArrayMap(editable_QMARK_,len,arr){\nreturn (new cljs.core.TransientArrayMap(editable_QMARK_,len,arr));\n});\n\ncljs.core.array__GT_transient_hash_map \x3d (function cljs$core$array__GT_transient_hash_map(len,arr){\nvar out \x3d cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);\nvar i \x3d (0);\nwhile(true){\nif((i \x3c len)){\nvar G__24069 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(out,(arr[i]),(arr[(i + (1))]));\nvar G__24070 \x3d (i + (2));\nout \x3d G__24069;\ni \x3d G__24070;\ncontinue;\n} else {\nreturn out;\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.Box \x3d (function (val){\nthis.val \x3d val;\n});\n\n(cljs.core.Box.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Box.cljs$lang$type \x3d true);\n\n(cljs.core.Box.cljs$lang$ctorStr \x3d \x22cljs.core/Box\x22);\n\n(cljs.core.Box.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Box\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Box.\n */\ncljs.core.__GT_Box \x3d (function cljs$core$__GT_Box(val){\nreturn (new cljs.core.Box(val));\n});\n\n\n\ncljs.core.mask \x3d (function cljs$core$mask(hash,shift){\nreturn ((hash \x3e\x3e\x3e shift) \x26 (31));\n});\ncljs.core.clone_and_set \x3d (function cljs$core$clone_and_set(var_args){\nvar G__19175 \x3d arguments.length;\nswitch (G__19175) {\ncase 3:\nreturn cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3 \x3d (function (arr,i,a){\nvar G__19176 \x3d cljs.core.aclone(arr);\n(G__19176[i] \x3d a);\n\nreturn G__19176;\n}));\n\n(cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5 \x3d (function (arr,i,a,j,b){\nvar G__19177 \x3d cljs.core.aclone(arr);\n(G__19177[i] \x3d a);\n\n(G__19177[j] \x3d b);\n\nreturn G__19177;\n}));\n\n(cljs.core.clone_and_set.cljs$lang$maxFixedArity \x3d 5);\n\ncljs.core.remove_pair \x3d (function cljs$core$remove_pair(arr,i){\nvar new_arr \x3d (new Array((arr.length - (2))));\ncljs.core.array_copy(arr,(0),new_arr,(0),((2) * i));\n\ncljs.core.array_copy(arr,((2) * (i + (1))),new_arr,((2) * i),(new_arr.length - ((2) * i)));\n\nreturn new_arr;\n});\ncljs.core.bitmap_indexed_node_index \x3d (function cljs$core$bitmap_indexed_node_index(bitmap,bit){\nreturn cljs.core.bit_count((bitmap \x26 (bit - (1))));\n});\ncljs.core.bitpos \x3d (function cljs$core$bitpos(hash,shift){\nreturn ((1) \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\n});\ncljs.core.edit_and_set \x3d (function cljs$core$edit_and_set(var_args){\nvar G__19179 \x3d arguments.length;\nswitch (G__19179) {\ncase 4:\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 6:\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4 \x3d (function (inode,edit,i,a){\nvar editable \x3d inode.ensure_editable(edit);\n(editable.arr[i] \x3d a);\n\nreturn editable;\n}));\n\n(cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6 \x3d (function (inode,edit,i,a,j,b){\nvar editable \x3d inode.ensure_editable(edit);\n(editable.arr[i] \x3d a);\n\n(editable.arr[j] \x3d b);\n\nreturn editable;\n}));\n\n(cljs.core.edit_and_set.cljs$lang$maxFixedArity \x3d 6);\n\ncljs.core.inode_kv_reduce \x3d (function cljs$core$inode_kv_reduce(arr,f,init){\nvar len \x3d arr.length;\nvar i \x3d (0);\nvar init__$1 \x3d init;\nwhile(true){\nif((i \x3c len)){\nvar init__$2 \x3d (function (){var k \x3d (arr[i]);\nif((!((k \x3d\x3d null)))){\nvar G__19180 \x3d init__$1;\nvar G__19181 \x3d k;\nvar G__19182 \x3d (arr[(i + (1))]);\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19180,G__19181,G__19182) : f.call(null, G__19180,G__19181,G__19182));\n} else {\nvar node \x3d (arr[(i + (1))]);\nif((!((node \x3d\x3d null)))){\nreturn node.kv_reduce(f,init__$1);\n} else {\nreturn init__$1;\n}\n}\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn init__$2;\n} else {\nvar G__24160 \x3d (i + (2));\nvar G__24161 \x3d init__$2;\ni \x3d G__24160;\ninit__$1 \x3d G__24161;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.NodeIterator \x3d (function (arr,i,next_entry,next_iter){\nthis.arr \x3d arr;\nthis.i \x3d i;\nthis.next_entry \x3d next_entry;\nthis.next_iter \x3d next_iter;\n});\n(cljs.core.NodeIterator.prototype.advance \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar len \x3d self__.arr.length;\nwhile(true){\nif((self__.i \x3c len)){\nvar key \x3d (self__.arr[self__.i]);\nvar node_or_val \x3d (self__.arr[(self__.i + (1))]);\nvar found \x3d (((!((key \x3d\x3d null))))?(self__.next_entry \x3d (new cljs.core.MapEntry(key,node_or_val,null))):(((!((node_or_val \x3d\x3d null))))?(function (){var new_iter \x3d cljs.core._iterator(node_or_val);\nif(new_iter.hasNext()){\nreturn (self__.next_iter \x3d new_iter);\n} else {\nreturn false;\n}\n})():false\n));\n(self__.i \x3d (self__.i + (2)));\n\nif(found){\nreturn true;\n} else {\ncontinue;\n}\n} else {\nreturn false;\n}\nbreak;\n}\n}));\n\n(cljs.core.NodeIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar or__5002__auto__ \x3d (!((self__.next_entry \x3d\x3d null)));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (!((self__.next_iter \x3d\x3d null)));\nif(or__5002__auto____$1){\nreturn or__5002__auto____$1;\n} else {\nreturn this$.advance();\n}\n}\n}));\n\n(cljs.core.NodeIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((!((self__.next_entry \x3d\x3d null)))){\nvar ret \x3d self__.next_entry;\n(self__.next_entry \x3d null);\n\nreturn ret;\n} else {\nif((!((self__.next_iter \x3d\x3d null)))){\nvar ret \x3d self__.next_iter.next();\nif(self__.next_iter.hasNext()){\n} else {\n(self__.next_iter \x3d null);\n}\n\nreturn ret;\n} else {\nif(this$.advance()){\nreturn this$.next();\n} else {\nthrow (new Error(\x22No such element\x22));\n\n}\n}\n}\n}));\n\n(cljs.core.NodeIterator.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.NodeIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22next-entry\x22,\x22next-entry\x22,1091342476,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22next-iter\x22,\x22next-iter\x22,1526626239,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.NodeIterator.cljs$lang$type \x3d true);\n\n(cljs.core.NodeIterator.cljs$lang$ctorStr \x3d \x22cljs.core/NodeIterator\x22);\n\n(cljs.core.NodeIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/NodeIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/NodeIterator.\n */\ncljs.core.__GT_NodeIterator \x3d (function cljs$core$__GT_NodeIterator(arr,i,next_entry,next_iter){\nreturn (new cljs.core.NodeIterator(arr,i,next_entry,next_iter));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IIterable}\n*/\ncljs.core.BitmapIndexedNode \x3d (function (edit,bitmap,arr){\nthis.edit \x3d edit;\nthis.bitmap \x3d bitmap;\nthis.arr \x3d arr;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 131072;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 0;\n});\n(cljs.core.BitmapIndexedNode.prototype.ensure_editable \x3d (function (e){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((e \x3d\x3d\x3d self__.edit)){\nreturn inode;\n} else {\nvar n \x3d cljs.core.bit_count(self__.bitmap);\nvar new_arr \x3d (new Array((((n \x3c (0)))?(4):((2) * (n + (1))))));\ncljs.core.array_copy(self__.arr,(0),new_arr,(0),((2) * n));\n\nreturn (new cljs.core.BitmapIndexedNode(e,self__.bitmap,new_arr));\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_ \x3d (function (edit__$1,shift,hash,key,removed_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar bit \x3d (1 \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\nif(((self__.bitmap \x26 bit) \x3d\x3d\x3d (0))){\nreturn inode;\n} else {\nvar idx \x3d cljs.core.bitmap_indexed_node_index(self__.bitmap,bit);\nvar key_or_nil \x3d (self__.arr[((2) * idx)]);\nvar val_or_node \x3d (self__.arr[(((2) * idx) + (1))]);\nif((key_or_nil \x3d\x3d null)){\nvar n \x3d val_or_node.inode_without_BANG_(edit__$1,(shift + (5)),hash,key,removed_leaf_QMARK_);\nif((n \x3d\x3d\x3d val_or_node)){\nreturn inode;\n} else {\nif((!((n \x3d\x3d null)))){\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,(((2) * idx) + (1)),n);\n} else {\nif((self__.bitmap \x3d\x3d\x3d bit)){\nreturn null;\n} else {\nreturn inode.edit_and_remove_pair(edit__$1,bit,idx);\n\n}\n}\n}\n} else {\nif(cljs.core.key_test(key,key_or_nil)){\n(removed_leaf_QMARK_.val \x3d true);\n\nreturn inode.edit_and_remove_pair(edit__$1,bit,idx);\n} else {\nreturn inode;\n\n}\n}\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair \x3d (function (e,bit,i){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((self__.bitmap \x3d\x3d\x3d bit)){\nreturn null;\n} else {\nvar editable \x3d inode.ensure_editable(e);\nvar earr \x3d editable.arr;\nvar len \x3d earr.length;\n(editable.bitmap \x3d (bit ^ editable.bitmap));\n\ncljs.core.array_copy(earr,((2) * (i + (1))),earr,((2) * i),(len - ((2) * (i + (1)))));\n\n(earr[(len - (2))] \x3d null);\n\n(earr[(len - (1))] \x3d null);\n\nreturn editable;\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_seq \x3d (function (){\nvar self__ \x3d this;\nvar inode \x3d this;\nreturn (cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1 ? cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(self__.arr) : cljs.core.create_inode_seq.call(null, self__.arr));\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.kv_reduce \x3d (function (f,init){\nvar self__ \x3d this;\nvar inode \x3d this;\nreturn cljs.core.inode_kv_reduce(self__.arr,f,init);\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_lookup \x3d (function (shift,hash,key,not_found){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar bit \x3d (1 \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\nif(((self__.bitmap \x26 bit) \x3d\x3d\x3d (0))){\nreturn not_found;\n} else {\nvar idx \x3d cljs.core.bitmap_indexed_node_index(self__.bitmap,bit);\nvar key_or_nil \x3d (self__.arr[((2) * idx)]);\nvar val_or_node \x3d (self__.arr[(((2) * idx) + (1))]);\nif((key_or_nil \x3d\x3d null)){\nreturn val_or_node.inode_lookup((shift + (5)),hash,key,not_found);\n} else {\nif(cljs.core.key_test(key,key_or_nil)){\nreturn val_or_node;\n} else {\nreturn not_found;\n\n}\n}\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_ \x3d (function (edit__$1,shift,hash,key,val,added_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar bit \x3d (1 \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\nvar idx \x3d cljs.core.bitmap_indexed_node_index(self__.bitmap,bit);\nif(((self__.bitmap \x26 bit) \x3d\x3d\x3d (0))){\nvar n \x3d cljs.core.bit_count(self__.bitmap);\nif((((2) * n) \x3c self__.arr.length)){\nvar editable \x3d inode.ensure_editable(edit__$1);\nvar earr \x3d editable.arr;\n(added_leaf_QMARK_.val \x3d true);\n\ncljs.core.array_copy_downward(earr,((2) * idx),earr,((2) * (idx + (1))),((2) * (n - idx)));\n\n(earr[((2) * idx)] \x3d key);\n\n(earr[(((2) * idx) + (1))] \x3d val);\n\n(editable.bitmap \x3d (editable.bitmap | bit));\n\nreturn editable;\n} else {\nif((n \x3e\x3d (16))){\nvar nodes \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\nvar jdx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\n(nodes[jdx] \x3d cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit__$1,(shift + (5)),hash,key,val,added_leaf_QMARK_));\n\nvar i_24230 \x3d (0);\nvar j_24231 \x3d (0);\nwhile(true){\nif((i_24230 \x3c (32))){\nif((((self__.bitmap \x3e\x3e\x3e i_24230) \x26 (1)) \x3d\x3d\x3d (0))){\nvar G__24233 \x3d (i_24230 + (1));\nvar G__24234 \x3d j_24231;\ni_24230 \x3d G__24233;\nj_24231 \x3d G__24234;\ncontinue;\n} else {\n(nodes[i_24230] \x3d (((!(((self__.arr[j_24231]) \x3d\x3d null))))?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit__$1,(shift + (5)),cljs.core.hash((self__.arr[j_24231])),(self__.arr[j_24231]),(self__.arr[(j_24231 + (1))]),added_leaf_QMARK_):(self__.arr[(j_24231 + (1))])));\n\nvar G__24236 \x3d (i_24230 + (1));\nvar G__24237 \x3d (j_24231 + (2));\ni_24230 \x3d G__24236;\nj_24231 \x3d G__24237;\ncontinue;\n}\n} else {\n}\nbreak;\n}\n\nreturn (new cljs.core.ArrayNode(edit__$1,(n + (1)),nodes));\n} else {\nvar new_arr \x3d (new Array(((2) * (n + (4)))));\ncljs.core.array_copy(self__.arr,(0),new_arr,(0),((2) * idx));\n\n(new_arr[((2) * idx)] \x3d key);\n\n(new_arr[(((2) * idx) + (1))] \x3d val);\n\ncljs.core.array_copy(self__.arr,((2) * idx),new_arr,((2) * (idx + (1))),((2) * (n - idx)));\n\n(added_leaf_QMARK_.val \x3d true);\n\nvar editable \x3d inode.ensure_editable(edit__$1);\n(editable.arr \x3d new_arr);\n\n(editable.bitmap \x3d (editable.bitmap | bit));\n\nreturn editable;\n\n}\n}\n} else {\nvar key_or_nil \x3d (self__.arr[((2) * idx)]);\nvar val_or_node \x3d (self__.arr[(((2) * idx) + (1))]);\nif((key_or_nil \x3d\x3d null)){\nvar n \x3d val_or_node.inode_assoc_BANG_(edit__$1,(shift + (5)),hash,key,val,added_leaf_QMARK_);\nif((n \x3d\x3d\x3d val_or_node)){\nreturn inode;\n} else {\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,(((2) * idx) + (1)),n);\n}\n} else {\nif(cljs.core.key_test(key,key_or_nil)){\nif((val \x3d\x3d\x3d val_or_node)){\nreturn inode;\n} else {\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,(((2) * idx) + (1)),val);\n}\n} else {\n(added_leaf_QMARK_.val \x3d true);\n\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(inode,edit__$1,((2) * idx),null,(((2) * idx) + (1)),(function (){var G__19183 \x3d edit__$1;\nvar G__19184 \x3d (shift + (5));\nvar G__19185 \x3d key_or_nil;\nvar G__19186 \x3d val_or_node;\nvar G__19187 \x3d hash;\nvar G__19188 \x3d key;\nvar G__19189 \x3d val;\nreturn (cljs.core.create_node.cljs$core$IFn$_invoke$arity$7 ? cljs.core.create_node.cljs$core$IFn$_invoke$arity$7(G__19183,G__19184,G__19185,G__19186,G__19187,G__19188,G__19189) : cljs.core.create_node.call(null, G__19183,G__19184,G__19185,G__19186,G__19187,G__19188,G__19189));\n})());\n\n}\n}\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_assoc \x3d (function (shift,hash,key,val,added_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar bit \x3d (1 \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\nvar idx \x3d cljs.core.bitmap_indexed_node_index(self__.bitmap,bit);\nif(((self__.bitmap \x26 bit) \x3d\x3d\x3d (0))){\nvar n \x3d cljs.core.bit_count(self__.bitmap);\nif((n \x3e\x3d (16))){\nvar nodes \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\nvar jdx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\n(nodes[jdx] \x3d cljs.core.BitmapIndexedNode.EMPTY.inode_assoc((shift + (5)),hash,key,val,added_leaf_QMARK_));\n\nvar i_24245 \x3d (0);\nvar j_24246 \x3d (0);\nwhile(true){\nif((i_24245 \x3c (32))){\nif((((self__.bitmap \x3e\x3e\x3e i_24245) \x26 (1)) \x3d\x3d\x3d (0))){\nvar G__24248 \x3d (i_24245 + (1));\nvar G__24249 \x3d j_24246;\ni_24245 \x3d G__24248;\nj_24246 \x3d G__24249;\ncontinue;\n} else {\n(nodes[i_24245] \x3d (((!(((self__.arr[j_24246]) \x3d\x3d null))))?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc((shift + (5)),cljs.core.hash((self__.arr[j_24246])),(self__.arr[j_24246]),(self__.arr[(j_24246 + (1))]),added_leaf_QMARK_):(self__.arr[(j_24246 + (1))])));\n\nvar G__24254 \x3d (i_24245 + (1));\nvar G__24255 \x3d (j_24246 + (2));\ni_24245 \x3d G__24254;\nj_24246 \x3d G__24255;\ncontinue;\n}\n} else {\n}\nbreak;\n}\n\nreturn (new cljs.core.ArrayNode(null,(n + (1)),nodes));\n} else {\nvar new_arr \x3d (new Array(((2) * (n + (1)))));\ncljs.core.array_copy(self__.arr,(0),new_arr,(0),((2) * idx));\n\n(new_arr[((2) * idx)] \x3d key);\n\n(new_arr[(((2) * idx) + (1))] \x3d val);\n\ncljs.core.array_copy(self__.arr,((2) * idx),new_arr,((2) * (idx + (1))),((2) * (n - idx)));\n\n(added_leaf_QMARK_.val \x3d true);\n\nreturn (new cljs.core.BitmapIndexedNode(null,(self__.bitmap | bit),new_arr));\n}\n} else {\nvar key_or_nil \x3d (self__.arr[((2) * idx)]);\nvar val_or_node \x3d (self__.arr[(((2) * idx) + (1))]);\nif((key_or_nil \x3d\x3d null)){\nvar n \x3d val_or_node.inode_assoc((shift + (5)),hash,key,val,added_leaf_QMARK_);\nif((n \x3d\x3d\x3d val_or_node)){\nreturn inode;\n} else {\nreturn (new cljs.core.BitmapIndexedNode(null,self__.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,(((2) * idx) + (1)),n)));\n}\n} else {\nif(cljs.core.key_test(key,key_or_nil)){\nif((val \x3d\x3d\x3d val_or_node)){\nreturn inode;\n} else {\nreturn (new cljs.core.BitmapIndexedNode(null,self__.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,(((2) * idx) + (1)),val)));\n}\n} else {\n(added_leaf_QMARK_.val \x3d true);\n\nreturn (new cljs.core.BitmapIndexedNode(null,self__.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5(self__.arr,((2) * idx),null,(((2) * idx) + (1)),(function (){var G__19190 \x3d (shift + (5));\nvar G__19191 \x3d key_or_nil;\nvar G__19192 \x3d val_or_node;\nvar G__19193 \x3d hash;\nvar G__19194 \x3d key;\nvar G__19195 \x3d val;\nreturn (cljs.core.create_node.cljs$core$IFn$_invoke$arity$6 ? cljs.core.create_node.cljs$core$IFn$_invoke$arity$6(G__19190,G__19191,G__19192,G__19193,G__19194,G__19195) : cljs.core.create_node.call(null, G__19190,G__19191,G__19192,G__19193,G__19194,G__19195));\n})())));\n\n}\n}\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_find \x3d (function (shift,hash,key,not_found){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar bit \x3d (1 \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\nif(((self__.bitmap \x26 bit) \x3d\x3d\x3d (0))){\nreturn not_found;\n} else {\nvar idx \x3d cljs.core.bitmap_indexed_node_index(self__.bitmap,bit);\nvar key_or_nil \x3d (self__.arr[((2) * idx)]);\nvar val_or_node \x3d (self__.arr[(((2) * idx) + (1))]);\nif((key_or_nil \x3d\x3d null)){\nreturn val_or_node.inode_find((shift + (5)),hash,key,not_found);\n} else {\nif(cljs.core.key_test(key,key_or_nil)){\nreturn (new cljs.core.MapEntry(key_or_nil,val_or_node,null));\n} else {\nreturn not_found;\n\n}\n}\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.inode_without \x3d (function (shift,hash,key){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar bit \x3d (1 \x3c\x3c ((hash \x3e\x3e\x3e shift) \x26 0x01f));\nif(((self__.bitmap \x26 bit) \x3d\x3d\x3d (0))){\nreturn inode;\n} else {\nvar idx \x3d cljs.core.bitmap_indexed_node_index(self__.bitmap,bit);\nvar key_or_nil \x3d (self__.arr[((2) * idx)]);\nvar val_or_node \x3d (self__.arr[(((2) * idx) + (1))]);\nif((key_or_nil \x3d\x3d null)){\nvar n \x3d val_or_node.inode_without((shift + (5)),hash,key);\nif((n \x3d\x3d\x3d val_or_node)){\nreturn inode;\n} else {\nif((!((n \x3d\x3d null)))){\nreturn (new cljs.core.BitmapIndexedNode(null,self__.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,(((2) * idx) + (1)),n)));\n} else {\nif((self__.bitmap \x3d\x3d\x3d bit)){\nreturn null;\n} else {\nreturn (new cljs.core.BitmapIndexedNode(null,(self__.bitmap ^ bit),cljs.core.remove_pair(self__.arr,idx)));\n\n}\n}\n}\n} else {\nif(cljs.core.key_test(key,key_or_nil)){\nif((self__.bitmap \x3d\x3d\x3d bit)){\nreturn null;\n} else {\nreturn (new cljs.core.BitmapIndexedNode(null,(self__.bitmap ^ bit),cljs.core.remove_pair(self__.arr,idx)));\n}\n} else {\nreturn inode;\n\n}\n}\n}\n}));\n\n(cljs.core.BitmapIndexedNode.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.NodeIterator(self__.arr,(0),null,null));\n}));\n\n(cljs.core.BitmapIndexedNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22edit\x22,\x22edit\x22,-1302639,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22bitmap\x22,\x22bitmap\x22,501334601,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.BitmapIndexedNode.cljs$lang$type \x3d true);\n\n(cljs.core.BitmapIndexedNode.cljs$lang$ctorStr \x3d \x22cljs.core/BitmapIndexedNode\x22);\n\n(cljs.core.BitmapIndexedNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/BitmapIndexedNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/BitmapIndexedNode.\n */\ncljs.core.__GT_BitmapIndexedNode \x3d (function cljs$core$__GT_BitmapIndexedNode(edit,bitmap,arr){\nreturn (new cljs.core.BitmapIndexedNode(edit,bitmap,arr));\n});\n\n(cljs.core.BitmapIndexedNode.EMPTY \x3d (new cljs.core.BitmapIndexedNode(null,(0),[])));\ncljs.core.pack_array_node \x3d (function cljs$core$pack_array_node(array_node,edit,idx){\nvar arr \x3d array_node.arr;\nvar len \x3d arr.length;\nvar new_arr \x3d (new Array(((2) * (array_node.cnt - (1)))));\nvar i \x3d (0);\nvar j \x3d (1);\nvar bitmap \x3d (0);\nwhile(true){\nif((i \x3c len)){\nif((((!((i \x3d\x3d\x3d idx)))) \x26\x26 ((!(((arr[i]) \x3d\x3d null)))))){\n(new_arr[j] \x3d (arr[i]));\n\nvar G__24283 \x3d (i + (1));\nvar G__24284 \x3d (j + (2));\nvar G__24285 \x3d (bitmap | ((1) \x3c\x3c i));\ni \x3d G__24283;\nj \x3d G__24284;\nbitmap \x3d G__24285;\ncontinue;\n} else {\nvar G__24286 \x3d (i + (1));\nvar G__24287 \x3d j;\nvar G__24288 \x3d bitmap;\ni \x3d G__24286;\nj \x3d G__24287;\nbitmap \x3d G__24288;\ncontinue;\n}\n} else {\nreturn (new cljs.core.BitmapIndexedNode(edit,bitmap,new_arr));\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.ArrayNodeIterator \x3d (function (arr,i,next_iter){\nthis.arr \x3d arr;\nthis.i \x3d i;\nthis.next_iter \x3d next_iter;\n});\n(cljs.core.ArrayNodeIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar len \x3d self__.arr.length;\nwhile(true){\nif((!((((!((self__.next_iter \x3d\x3d null)))) \x26\x26 (self__.next_iter.hasNext()))))){\nif((self__.i \x3c len)){\nvar node \x3d (self__.arr[self__.i]);\n(self__.i \x3d (self__.i + (1)));\n\nif((!((node \x3d\x3d null)))){\n(self__.next_iter \x3d cljs.core._iterator(node));\n} else {\n}\n\ncontinue;\n} else {\nreturn false;\n}\n} else {\nreturn true;\n}\nbreak;\n}\n}));\n\n(cljs.core.ArrayNodeIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif(this$.hasNext()){\nreturn self__.next_iter.next();\n} else {\nthrow (new Error(\x22No such element\x22));\n}\n}));\n\n(cljs.core.ArrayNodeIterator.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.ArrayNodeIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22next-iter\x22,\x22next-iter\x22,1526626239,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ArrayNodeIterator.cljs$lang$type \x3d true);\n\n(cljs.core.ArrayNodeIterator.cljs$lang$ctorStr \x3d \x22cljs.core/ArrayNodeIterator\x22);\n\n(cljs.core.ArrayNodeIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ArrayNodeIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ArrayNodeIterator.\n */\ncljs.core.__GT_ArrayNodeIterator \x3d (function cljs$core$__GT_ArrayNodeIterator(arr,i,next_iter){\nreturn (new cljs.core.ArrayNodeIterator(arr,i,next_iter));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IIterable}\n*/\ncljs.core.ArrayNode \x3d (function (edit,cnt,arr){\nthis.edit \x3d edit;\nthis.cnt \x3d cnt;\nthis.arr \x3d arr;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 131072;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 0;\n});\n(cljs.core.ArrayNode.prototype.ensure_editable \x3d (function (e){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((e \x3d\x3d\x3d self__.edit)){\nreturn inode;\n} else {\nreturn (new cljs.core.ArrayNode(e,self__.cnt,cljs.core.aclone(self__.arr)));\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_without_BANG_ \x3d (function (edit__$1,shift,hash,key,removed_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\nvar node \x3d (self__.arr[idx]);\nif((node \x3d\x3d null)){\nreturn inode;\n} else {\nvar n \x3d node.inode_without_BANG_(edit__$1,(shift + (5)),hash,key,removed_leaf_QMARK_);\nif((n \x3d\x3d\x3d node)){\nreturn inode;\n} else {\nif((n \x3d\x3d null)){\nif((self__.cnt \x3c\x3d (8))){\nreturn cljs.core.pack_array_node(inode,edit__$1,idx);\n} else {\nvar editable \x3d cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,idx,n);\n(editable.cnt \x3d (editable.cnt - (1)));\n\nreturn editable;\n}\n} else {\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,idx,n);\n\n}\n}\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_seq \x3d (function (){\nvar self__ \x3d this;\nvar inode \x3d this;\nreturn (cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1 ? cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1(self__.arr) : cljs.core.create_array_node_seq.call(null, self__.arr));\n}));\n\n(cljs.core.ArrayNode.prototype.kv_reduce \x3d (function (f,init){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar len \x3d self__.arr.length;\nvar i \x3d (0);\nvar init__$1 \x3d init;\nwhile(true){\nif((i \x3c len)){\nvar node \x3d (self__.arr[i]);\nif((!((node \x3d\x3d null)))){\nvar init__$2 \x3d node.kv_reduce(f,init__$1);\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn init__$2;\n} else {\nvar G__24295 \x3d (i + (1));\nvar G__24296 \x3d init__$2;\ni \x3d G__24295;\ninit__$1 \x3d G__24296;\ncontinue;\n}\n} else {\nvar G__24297 \x3d (i + (1));\nvar G__24298 \x3d init__$1;\ni \x3d G__24297;\ninit__$1 \x3d G__24298;\ncontinue;\n}\n} else {\nreturn init__$1;\n}\nbreak;\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_lookup \x3d (function (shift,hash,key,not_found){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\nvar node \x3d (self__.arr[idx]);\nif((!((node \x3d\x3d null)))){\nreturn node.inode_lookup((shift + (5)),hash,key,not_found);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_assoc_BANG_ \x3d (function (edit__$1,shift,hash,key,val,added_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\nvar node \x3d (self__.arr[idx]);\nif((node \x3d\x3d null)){\nvar editable \x3d cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,idx,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit__$1,(shift + (5)),hash,key,val,added_leaf_QMARK_));\n(editable.cnt \x3d (editable.cnt + (1)));\n\nreturn editable;\n} else {\nvar n \x3d node.inode_assoc_BANG_(edit__$1,(shift + (5)),hash,key,val,added_leaf_QMARK_);\nif((n \x3d\x3d\x3d node)){\nreturn inode;\n} else {\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,idx,n);\n}\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_assoc \x3d (function (shift,hash,key,val,added_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\nvar node \x3d (self__.arr[idx]);\nif((node \x3d\x3d null)){\nreturn (new cljs.core.ArrayNode(null,(self__.cnt + (1)),cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,idx,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc((shift + (5)),hash,key,val,added_leaf_QMARK_))));\n} else {\nvar n \x3d node.inode_assoc((shift + (5)),hash,key,val,added_leaf_QMARK_);\nif((n \x3d\x3d\x3d node)){\nreturn inode;\n} else {\nreturn (new cljs.core.ArrayNode(null,self__.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,idx,n)));\n}\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_find \x3d (function (shift,hash,key,not_found){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\nvar node \x3d (self__.arr[idx]);\nif((!((node \x3d\x3d null)))){\nreturn node.inode_find((shift + (5)),hash,key,not_found);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.ArrayNode.prototype.inode_without \x3d (function (shift,hash,key){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d ((hash \x3e\x3e\x3e shift) \x26 0x01f);\nvar node \x3d (self__.arr[idx]);\nif((!((node \x3d\x3d null)))){\nvar n \x3d node.inode_without((shift + (5)),hash,key);\nif((n \x3d\x3d\x3d node)){\nreturn inode;\n} else {\nif((n \x3d\x3d null)){\nif((self__.cnt \x3c\x3d (8))){\nreturn cljs.core.pack_array_node(inode,null,idx);\n} else {\nreturn (new cljs.core.ArrayNode(null,(self__.cnt - (1)),cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,idx,n)));\n}\n} else {\nreturn (new cljs.core.ArrayNode(null,self__.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,idx,n)));\n\n}\n}\n} else {\nreturn inode;\n}\n}));\n\n(cljs.core.ArrayNode.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.ArrayNodeIterator(self__.arr,(0),null));\n}));\n\n(cljs.core.ArrayNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22edit\x22,\x22edit\x22,-1302639,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ArrayNode.cljs$lang$type \x3d true);\n\n(cljs.core.ArrayNode.cljs$lang$ctorStr \x3d \x22cljs.core/ArrayNode\x22);\n\n(cljs.core.ArrayNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ArrayNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ArrayNode.\n */\ncljs.core.__GT_ArrayNode \x3d (function cljs$core$__GT_ArrayNode(edit,cnt,arr){\nreturn (new cljs.core.ArrayNode(edit,cnt,arr));\n});\n\ncljs.core.hash_collision_node_find_index \x3d (function cljs$core$hash_collision_node_find_index(arr,cnt,key){\nvar lim \x3d ((2) * cnt);\nvar i \x3d (0);\nwhile(true){\nif((i \x3c lim)){\nif(cljs.core.key_test(key,(arr[i]))){\nreturn i;\n} else {\nvar G__24314 \x3d (i + (2));\ni \x3d G__24314;\ncontinue;\n}\n} else {\nreturn (-1);\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIterable}\n*/\ncljs.core.HashCollisionNode \x3d (function (edit,collision_hash,cnt,arr){\nthis.edit \x3d edit;\nthis.collision_hash \x3d collision_hash;\nthis.cnt \x3d cnt;\nthis.arr \x3d arr;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 131072;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 0;\n});\n(cljs.core.HashCollisionNode.prototype.ensure_editable \x3d (function (e){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((e \x3d\x3d\x3d self__.edit)){\nreturn inode;\n} else {\nvar new_arr \x3d (new Array(((2) * (self__.cnt + (1)))));\ncljs.core.array_copy(self__.arr,(0),new_arr,(0),((2) * self__.cnt));\n\nreturn (new cljs.core.HashCollisionNode(e,self__.collision_hash,self__.cnt,new_arr));\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_without_BANG_ \x3d (function (edit__$1,shift,hash,key,removed_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d cljs.core.hash_collision_node_find_index(self__.arr,self__.cnt,key);\nif((idx \x3d\x3d\x3d (-1))){\nreturn inode;\n} else {\n(removed_leaf_QMARK_.val \x3d true);\n\nif((self__.cnt \x3d\x3d\x3d (1))){\nreturn null;\n} else {\nvar editable \x3d inode.ensure_editable(edit__$1);\nvar earr \x3d editable.arr;\n(earr[idx] \x3d (earr[(((2) * self__.cnt) - (2))]));\n\n(earr[(idx + (1))] \x3d (earr[(((2) * self__.cnt) - (1))]));\n\n(earr[(((2) * self__.cnt) - (1))] \x3d null);\n\n(earr[(((2) * self__.cnt) - (2))] \x3d null);\n\n(editable.cnt \x3d (editable.cnt - (1)));\n\nreturn editable;\n}\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_seq \x3d (function (){\nvar self__ \x3d this;\nvar inode \x3d this;\nreturn (cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1 ? cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(self__.arr) : cljs.core.create_inode_seq.call(null, self__.arr));\n}));\n\n(cljs.core.HashCollisionNode.prototype.kv_reduce \x3d (function (f,init){\nvar self__ \x3d this;\nvar inode \x3d this;\nreturn cljs.core.inode_kv_reduce(self__.arr,f,init);\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_lookup \x3d (function (shift,hash,key,not_found){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d cljs.core.hash_collision_node_find_index(self__.arr,self__.cnt,key);\nif((idx \x3c (0))){\nreturn not_found;\n} else {\nif(cljs.core.key_test(key,(self__.arr[idx]))){\nreturn (self__.arr[(idx + (1))]);\n} else {\nreturn not_found;\n\n}\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_assoc_BANG_ \x3d (function (edit__$1,shift,hash,key,val,added_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((hash \x3d\x3d\x3d self__.collision_hash)){\nvar idx \x3d cljs.core.hash_collision_node_find_index(self__.arr,self__.cnt,key);\nif((idx \x3d\x3d\x3d (-1))){\nif((self__.arr.length \x3e ((2) * self__.cnt))){\nvar editable \x3d cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(inode,edit__$1,((2) * self__.cnt),key,(((2) * self__.cnt) + (1)),val);\n(added_leaf_QMARK_.val \x3d true);\n\n(editable.cnt \x3d (editable.cnt + (1)));\n\nreturn editable;\n} else {\nvar len \x3d self__.arr.length;\nvar new_arr \x3d (new Array((len + (2))));\ncljs.core.array_copy(self__.arr,(0),new_arr,(0),len);\n\n(new_arr[len] \x3d key);\n\n(new_arr[(len + (1))] \x3d val);\n\n(added_leaf_QMARK_.val \x3d true);\n\nreturn inode.ensure_editable_array(edit__$1,(self__.cnt + (1)),new_arr);\n}\n} else {\nif(((self__.arr[(idx + (1))]) \x3d\x3d\x3d val)){\nreturn inode;\n} else {\nreturn cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(inode,edit__$1,(idx + (1)),val);\n}\n}\n} else {\nreturn (new cljs.core.BitmapIndexedNode(edit__$1,(1 \x3c\x3c ((self__.collision_hash \x3e\x3e\x3e shift) \x26 0x01f)),[null,inode,null,null])).inode_assoc_BANG_(edit__$1,shift,hash,key,val,added_leaf_QMARK_);\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_assoc \x3d (function (shift,hash,key,val,added_leaf_QMARK_){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((hash \x3d\x3d\x3d self__.collision_hash)){\nvar idx \x3d cljs.core.hash_collision_node_find_index(self__.arr,self__.cnt,key);\nif((idx \x3d\x3d\x3d (-1))){\nvar len \x3d ((2) * self__.cnt);\nvar new_arr \x3d (new Array((len + (2))));\ncljs.core.array_copy(self__.arr,(0),new_arr,(0),len);\n\n(new_arr[len] \x3d key);\n\n(new_arr[(len + (1))] \x3d val);\n\n(added_leaf_QMARK_.val \x3d true);\n\nreturn (new cljs.core.HashCollisionNode(null,self__.collision_hash,(self__.cnt + (1)),new_arr));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((self__.arr[(idx + (1))]),val)){\nreturn inode;\n} else {\nreturn (new cljs.core.HashCollisionNode(null,self__.collision_hash,self__.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(self__.arr,(idx + (1)),val)));\n}\n}\n} else {\nreturn (new cljs.core.BitmapIndexedNode(null,(1 \x3c\x3c ((self__.collision_hash \x3e\x3e\x3e shift) \x26 0x01f)),[null,inode])).inode_assoc(shift,hash,key,val,added_leaf_QMARK_);\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.ensure_editable_array \x3d (function (e,count,array){\nvar self__ \x3d this;\nvar inode \x3d this;\nif((e \x3d\x3d\x3d self__.edit)){\n(self__.arr \x3d array);\n\n(self__.cnt \x3d count);\n\nreturn inode;\n} else {\nreturn (new cljs.core.HashCollisionNode(self__.edit,self__.collision_hash,count,array));\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_find \x3d (function (shift,hash,key,not_found){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d cljs.core.hash_collision_node_find_index(self__.arr,self__.cnt,key);\nif((idx \x3c (0))){\nreturn not_found;\n} else {\nif(cljs.core.key_test(key,(self__.arr[idx]))){\nreturn (new cljs.core.MapEntry((self__.arr[idx]),(self__.arr[(idx + (1))]),null));\n} else {\nreturn not_found;\n\n}\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.inode_without \x3d (function (shift,hash,key){\nvar self__ \x3d this;\nvar inode \x3d this;\nvar idx \x3d cljs.core.hash_collision_node_find_index(self__.arr,self__.cnt,key);\nif((idx \x3d\x3d\x3d (-1))){\nreturn inode;\n} else {\nif((self__.cnt \x3d\x3d\x3d (1))){\nreturn null;\n} else {\nreturn (new cljs.core.HashCollisionNode(null,self__.collision_hash,(self__.cnt - (1)),cljs.core.remove_pair(self__.arr,cljs.core.quot(idx,(2)))));\n\n}\n}\n}));\n\n(cljs.core.HashCollisionNode.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.NodeIterator(self__.arr,(0),null,null));\n}));\n\n(cljs.core.HashCollisionNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22edit\x22,\x22edit\x22,-1302639,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22collision-hash\x22,\x22collision-hash\x22,-35831342,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.HashCollisionNode.cljs$lang$type \x3d true);\n\n(cljs.core.HashCollisionNode.cljs$lang$ctorStr \x3d \x22cljs.core/HashCollisionNode\x22);\n\n(cljs.core.HashCollisionNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/HashCollisionNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/HashCollisionNode.\n */\ncljs.core.__GT_HashCollisionNode \x3d (function cljs$core$__GT_HashCollisionNode(edit,collision_hash,cnt,arr){\nreturn (new cljs.core.HashCollisionNode(edit,collision_hash,cnt,arr));\n});\n\ncljs.core.create_node \x3d (function cljs$core$create_node(var_args){\nvar G__19197 \x3d arguments.length;\nswitch (G__19197) {\ncase 6:\nreturn cljs.core.create_node.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase 7:\nreturn cljs.core.create_node.cljs$core$IFn$_invoke$arity$7((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.create_node.cljs$core$IFn$_invoke$arity$6 \x3d (function (shift,key1,val1,key2hash,key2,val2){\nvar key1hash \x3d cljs.core.hash(key1);\nif((key1hash \x3d\x3d\x3d key2hash)){\nreturn (new cljs.core.HashCollisionNode(null,key1hash,(2),[key1,val1,key2,val2]));\n} else {\nvar added_leaf_QMARK_ \x3d (new cljs.core.Box(false));\nreturn cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift,key1hash,key1,val1,added_leaf_QMARK_).inode_assoc(shift,key2hash,key2,val2,added_leaf_QMARK_);\n}\n}));\n\n(cljs.core.create_node.cljs$core$IFn$_invoke$arity$7 \x3d (function (edit,shift,key1,val1,key2hash,key2,val2){\nvar key1hash \x3d cljs.core.hash(key1);\nif((key1hash \x3d\x3d\x3d key2hash)){\nreturn (new cljs.core.HashCollisionNode(null,key1hash,(2),[key1,val1,key2,val2]));\n} else {\nvar added_leaf_QMARK_ \x3d (new cljs.core.Box(false));\nreturn cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit,shift,key1hash,key1,val1,added_leaf_QMARK_).inode_assoc_BANG_(edit,shift,key2hash,key2,val2,added_leaf_QMARK_);\n}\n}));\n\n(cljs.core.create_node.cljs$lang$maxFixedArity \x3d 7);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.NodeSeq \x3d (function (meta,nodes,i,s,__hash){\nthis.meta \x3d meta;\nthis.nodes \x3d nodes;\nthis.i \x3d i;\nthis.s \x3d s;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.NodeSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.NodeSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.NodeSeq.prototype.indexOf \x3d (function() {\nvar G__24373 \x3d null;\nvar G__24373__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24373__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24373 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24373__1.call(this,x);\ncase 2:\nreturn G__24373__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24373.cljs$core$IFn$_invoke$arity$1 \x3d G__24373__1;\nG__24373.cljs$core$IFn$_invoke$arity$2 \x3d G__24373__2;\nreturn G__24373;\n})()\n);\n\n(cljs.core.NodeSeq.prototype.lastIndexOf \x3d (function() {\nvar G__24376 \x3d null;\nvar G__24376__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24376__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24376 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24376__1.call(this,x);\ncase 2:\nreturn G__24376__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24376.cljs$core$IFn$_invoke$arity$1 \x3d G__24376__1;\nG__24376.cljs$core$IFn$_invoke$arity$2 \x3d G__24376__2;\nreturn G__24376;\n})()\n);\n\n(cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.s \x3d\x3d null)){\nvar G__19198 \x3d self__.nodes;\nvar G__19199 \x3d (self__.i + (2));\nvar G__19200 \x3d null;\nreturn (cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(G__19198,G__19199,G__19200) : cljs.core.create_inode_seq.call(null, G__19198,G__19199,G__19200));\n} else {\nvar G__19201 \x3d self__.nodes;\nvar G__19202 \x3d self__.i;\nvar G__19203 \x3d cljs.core.next(self__.s);\nreturn (cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(G__19201,G__19202,G__19203) : cljs.core.create_inode_seq.call(null, G__19201,G__19202,G__19203));\n}\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.s \x3d\x3d null)){\nreturn (new cljs.core.MapEntry((self__.nodes[self__.i]),(self__.nodes[(self__.i + (1))]),null));\n} else {\nreturn cljs.core.first(self__.s);\n}\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar ret \x3d (((self__.s \x3d\x3d null))?(function (){var G__19204 \x3d self__.nodes;\nvar G__19205 \x3d (self__.i + (2));\nvar G__19206 \x3d null;\nreturn (cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(G__19204,G__19205,G__19206) : cljs.core.create_inode_seq.call(null, G__19204,G__19205,G__19206));\n})():(function (){var G__19207 \x3d self__.nodes;\nvar G__19208 \x3d self__.i;\nvar G__19209 \x3d cljs.core.next(self__.s);\nreturn (cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(G__19207,G__19208,G__19209) : cljs.core.create_inode_seq.call(null, G__19207,G__19208,G__19209));\n})());\nif((!((ret \x3d\x3d null)))){\nreturn ret;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1;\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.NodeSeq(new_meta,self__.nodes,self__.i,self__.s,self__.__hash));\n}\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.NodeSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22nodes\x22,\x22nodes\x22,-459054278,null),new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.NodeSeq.cljs$lang$type \x3d true);\n\n(cljs.core.NodeSeq.cljs$lang$ctorStr \x3d \x22cljs.core/NodeSeq\x22);\n\n(cljs.core.NodeSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/NodeSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/NodeSeq.\n */\ncljs.core.__GT_NodeSeq \x3d (function cljs$core$__GT_NodeSeq(meta,nodes,i,s,__hash){\nreturn (new cljs.core.NodeSeq(meta,nodes,i,s,__hash));\n});\n\n(cljs.core.NodeSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.create_inode_seq \x3d (function cljs$core$create_inode_seq(var_args){\nvar G__19211 \x3d arguments.length;\nswitch (G__19211) {\ncase 1:\nreturn cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 3:\nreturn cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (nodes){\nreturn cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(nodes,(0),null);\n}));\n\n(cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (nodes,i,s){\nif((s \x3d\x3d null)){\nvar len \x3d nodes.length;\nvar j \x3d i;\nwhile(true){\nif((j \x3c len)){\nif((!(((nodes[j]) \x3d\x3d null)))){\nreturn (new cljs.core.NodeSeq(null,nodes,j,null,null));\n} else {\nvar temp__5802__auto__ \x3d (nodes[(j + (1))]);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar node \x3d temp__5802__auto__;\nvar temp__5802__auto____$1 \x3d node.inode_seq();\nif(cljs.core.truth_(temp__5802__auto____$1)){\nvar node_seq \x3d temp__5802__auto____$1;\nreturn (new cljs.core.NodeSeq(null,nodes,(j + (2)),node_seq,null));\n} else {\nvar G__24398 \x3d (j + (2));\nj \x3d G__24398;\ncontinue;\n}\n} else {\nvar G__24399 \x3d (j + (2));\nj \x3d G__24399;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn (new cljs.core.NodeSeq(null,nodes,i,s,null));\n}\n}));\n\n(cljs.core.create_inode_seq.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.ArrayNodeSeq \x3d (function (meta,nodes,i,s,__hash){\nthis.meta \x3d meta;\nthis.nodes \x3d nodes;\nthis.i \x3d i;\nthis.s \x3d s;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.ArrayNodeSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.indexOf \x3d (function() {\nvar G__24401 \x3d null;\nvar G__24401__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24401__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24401 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24401__1.call(this,x);\ncase 2:\nreturn G__24401__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24401.cljs$core$IFn$_invoke$arity$1 \x3d G__24401__1;\nG__24401.cljs$core$IFn$_invoke$arity$2 \x3d G__24401__2;\nreturn G__24401;\n})()\n);\n\n(cljs.core.ArrayNodeSeq.prototype.lastIndexOf \x3d (function() {\nvar G__24402 \x3d null;\nvar G__24402__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24402__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24402 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24402__1.call(this,x);\ncase 2:\nreturn G__24402__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24402.cljs$core$IFn$_invoke$arity$1 \x3d G__24402__1;\nG__24402.cljs$core$IFn$_invoke$arity$2 \x3d G__24402__2;\nreturn G__24402;\n})()\n);\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar G__19212 \x3d self__.nodes;\nvar G__19213 \x3d self__.i;\nvar G__19214 \x3d cljs.core.next(self__.s);\nreturn (cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(G__19212,G__19213,G__19214) : cljs.core.create_array_node_seq.call(null, G__19212,G__19213,G__19214));\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.first(self__.s);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar ret \x3d (function (){var G__19215 \x3d self__.nodes;\nvar G__19216 \x3d self__.i;\nvar G__19217 \x3d cljs.core.next(self__.s);\nreturn (cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3 ? cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(G__19215,G__19216,G__19217) : cljs.core.create_array_node_seq.call(null, G__19215,G__19216,G__19217));\n})();\nif((!((ret \x3d\x3d null)))){\nreturn ret;\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1;\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.ArrayNodeSeq(new_meta,self__.nodes,self__.i,self__.s,self__.__hash));\n}\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.ArrayNodeSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22nodes\x22,\x22nodes\x22,-459054278,null),new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.Symbol(null,\x22s\x22,\x22s\x22,-948495851,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ArrayNodeSeq.cljs$lang$type \x3d true);\n\n(cljs.core.ArrayNodeSeq.cljs$lang$ctorStr \x3d \x22cljs.core/ArrayNodeSeq\x22);\n\n(cljs.core.ArrayNodeSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ArrayNodeSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ArrayNodeSeq.\n */\ncljs.core.__GT_ArrayNodeSeq \x3d (function cljs$core$__GT_ArrayNodeSeq(meta,nodes,i,s,__hash){\nreturn (new cljs.core.ArrayNodeSeq(meta,nodes,i,s,__hash));\n});\n\n(cljs.core.ArrayNodeSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.create_array_node_seq \x3d (function cljs$core$create_array_node_seq(var_args){\nvar G__19219 \x3d arguments.length;\nswitch (G__19219) {\ncase 1:\nreturn cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 3:\nreturn cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (nodes){\nreturn cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(nodes,(0),null);\n}));\n\n(cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3 \x3d (function (nodes,i,s){\nif((s \x3d\x3d null)){\nvar len \x3d nodes.length;\nvar j \x3d i;\nwhile(true){\nif((j \x3c len)){\nvar temp__5802__auto__ \x3d (nodes[j]);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar nj \x3d temp__5802__auto__;\nvar temp__5802__auto____$1 \x3d nj.inode_seq();\nif(cljs.core.truth_(temp__5802__auto____$1)){\nvar ns \x3d temp__5802__auto____$1;\nreturn (new cljs.core.ArrayNodeSeq(null,nodes,(j + (1)),ns,null));\n} else {\nvar G__24418 \x3d (j + (1));\nj \x3d G__24418;\ncontinue;\n}\n} else {\nvar G__24419 \x3d (j + (1));\nj \x3d G__24419;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn (new cljs.core.ArrayNodeSeq(null,nodes,i,s,null));\n}\n}));\n\n(cljs.core.create_array_node_seq.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n*/\ncljs.core.HashMapIter \x3d (function (nil_val,root_iter,seen){\nthis.nil_val \x3d nil_val;\nthis.root_iter \x3d root_iter;\nthis.seen \x3d seen;\n});\n(cljs.core.HashMapIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (((!(self__.seen))) || (self__.root_iter.hasNext()));\n}));\n\n(cljs.core.HashMapIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((!(self__.seen))){\n(self__.seen \x3d true);\n\nreturn (new cljs.core.MapEntry(null,self__.nil_val,null));\n} else {\nreturn self__.root_iter.next();\n}\n}));\n\n(cljs.core.HashMapIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.HashMapIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22nil-val\x22,\x22nil-val\x22,-513933559,null),new cljs.core.Symbol(null,\x22root-iter\x22,\x22root-iter\x22,1974672108,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22seen\x22,\x22seen\x22,1121531738,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.HashMapIter.cljs$lang$type \x3d true);\n\n(cljs.core.HashMapIter.cljs$lang$ctorStr \x3d \x22cljs.core/HashMapIter\x22);\n\n(cljs.core.HashMapIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/HashMapIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/HashMapIter.\n */\ncljs.core.__GT_HashMapIter \x3d (function cljs$core$__GT_HashMapIter(nil_val,root_iter,seen){\nreturn (new cljs.core.HashMapIter(nil_val,root_iter,seen));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEditableCollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.PersistentHashMap \x3d (function (meta,cnt,root,has_nil_QMARK_,nil_val,__hash){\nthis.meta \x3d meta;\nthis.cnt \x3d cnt;\nthis.root \x3d root;\nthis.has_nil_QMARK_ \x3d has_nil_QMARK_;\nthis.nil_val \x3d nil_val;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 16123663;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139268;\n});\n(cljs.core.PersistentHashMap.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((k \x3d\x3d null)){\nif(self__.has_nil_QMARK_){\nreturn (new cljs.core.MapEntry(null,self__.nil_val,null));\n} else {\nreturn null;\n}\n} else {\nif((self__.root \x3d\x3d null)){\nreturn null;\n} else {\nreturn self__.root.inode_find((0),cljs.core.hash(k),k,null);\n\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentHashMap.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentHashMap.prototype.keys \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator((cljs.core.keys.cljs$core$IFn$_invoke$arity$1 ? cljs.core.keys.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.keys.call(null, coll)));\n}));\n\n(cljs.core.PersistentHashMap.prototype.entries \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_entries_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentHashMap.prototype.values \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator((cljs.core.vals.cljs$core$IFn$_invoke$arity$1 ? cljs.core.vals.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.vals.call(null, coll)));\n}));\n\n(cljs.core.PersistentHashMap.prototype.has \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.contains_QMARK_(coll,k);\n}));\n\n(cljs.core.PersistentHashMap.prototype.get \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentHashMap.prototype.forEach \x3d (function (f){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar seq__19221 \x3d cljs.core.seq(coll);\nvar chunk__19222 \x3d null;\nvar count__19223 \x3d (0);\nvar i__19224 \x3d (0);\nwhile(true){\nif((i__19224 \x3c count__19223)){\nvar vec__19231 \x3d chunk__19222.cljs$core$IIndexed$_nth$arity$2(null, i__19224);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19231,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19231,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__24446 \x3d seq__19221;\nvar G__24447 \x3d chunk__19222;\nvar G__24448 \x3d count__19223;\nvar G__24449 \x3d (i__19224 + (1));\nseq__19221 \x3d G__24446;\nchunk__19222 \x3d G__24447;\ncount__19223 \x3d G__24448;\ni__19224 \x3d G__24449;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19221);\nif(temp__5804__auto__){\nvar seq__19221__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19221__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19221__$1);\nvar G__24451 \x3d cljs.core.chunk_rest(seq__19221__$1);\nvar G__24452 \x3d c__5525__auto__;\nvar G__24453 \x3d cljs.core.count(c__5525__auto__);\nvar G__24454 \x3d (0);\nseq__19221 \x3d G__24451;\nchunk__19222 \x3d G__24452;\ncount__19223 \x3d G__24453;\ni__19224 \x3d G__24454;\ncontinue;\n} else {\nvar vec__19234 \x3d cljs.core.first(seq__19221__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19234,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19234,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__24456 \x3d cljs.core.next(seq__19221__$1);\nvar G__24457 \x3d null;\nvar G__24458 \x3d (0);\nvar G__24459 \x3d (0);\nseq__19221 \x3d G__24456;\nchunk__19222 \x3d G__24457;\ncount__19223 \x3d G__24458;\ni__19224 \x3d G__24459;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((k \x3d\x3d null)){\nif(self__.has_nil_QMARK_){\nreturn self__.nil_val;\n} else {\nreturn not_found;\n}\n} else {\nif((self__.root \x3d\x3d null)){\nreturn not_found;\n} else {\nreturn self__.root.inode_lookup((0),cljs.core.hash(k),k,not_found);\n\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (coll,f,init){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar init__$1 \x3d ((self__.has_nil_QMARK_)?(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(init,null,self__.nil_val) : f.call(null, init,null,self__.nil_val)):init);\nif(cljs.core.reduced_QMARK_(init__$1)){\nreturn cljs.core.deref(init__$1);\n} else {\nif((!((self__.root \x3d\x3d null)))){\nreturn cljs.core.unreduced(self__.root.kv_reduce(f,init__$1));\n} else {\nreturn init__$1;\n\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar root_iter \x3d ((self__.root)?cljs.core._iterator(self__.root):cljs.core.nil_iter());\nif(self__.has_nil_QMARK_){\nreturn (new cljs.core.HashMapIter(self__.nil_val,root_iter,false));\n} else {\nreturn root_iter;\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.PersistentHashMap(self__.meta,self__.cnt,self__.root,self__.has_nil_QMARK_,self__.nil_val,self__.__hash));\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.cnt;\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_unordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_map(coll__$1,other);\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.TransientHashMap(({}),self__.root,self__.cnt,self__.has_nil_QMARK_,self__.nil_val));\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.PersistentHashMap.EMPTY,self__.meta);\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((k \x3d\x3d null)){\nif(self__.has_nil_QMARK_){\nreturn (new cljs.core.PersistentHashMap(self__.meta,(self__.cnt - (1)),self__.root,false,null,null));\n} else {\nreturn coll__$1;\n}\n} else {\nif((self__.root \x3d\x3d null)){\nreturn coll__$1;\n} else {\nvar new_root \x3d self__.root.inode_without((0),cljs.core.hash(k),k);\nif((new_root \x3d\x3d\x3d self__.root)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentHashMap(self__.meta,(self__.cnt - (1)),new_root,self__.has_nil_QMARK_,self__.nil_val,null));\n}\n\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (coll,k,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((k \x3d\x3d null)){\nif(((self__.has_nil_QMARK_) \x26\x26 ((v \x3d\x3d\x3d self__.nil_val)))){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentHashMap(self__.meta,((self__.has_nil_QMARK_)?self__.cnt:(self__.cnt + (1))),self__.root,true,v,null));\n}\n} else {\nvar added_leaf_QMARK_ \x3d (new cljs.core.Box(false));\nvar new_root \x3d (((self__.root \x3d\x3d null))?cljs.core.BitmapIndexedNode.EMPTY:self__.root).inode_assoc((0),cljs.core.hash(k),k,v,added_leaf_QMARK_);\nif((new_root \x3d\x3d\x3d self__.root)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentHashMap(self__.meta,((added_leaf_QMARK_.val)?(self__.cnt + (1)):self__.cnt),new_root,self__.has_nil_QMARK_,self__.nil_val,null));\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((k \x3d\x3d null)){\nreturn self__.has_nil_QMARK_;\n} else {\nif((self__.root \x3d\x3d null)){\nreturn false;\n} else {\nreturn (!((self__.root.inode_lookup((0),cljs.core.hash(k),k,cljs.core.lookup_sentinel) \x3d\x3d\x3d cljs.core.lookup_sentinel)));\n\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nvar s \x3d (((!((self__.root \x3d\x3d null))))?self__.root.inode_seq():null);\nif(self__.has_nil_QMARK_){\nreturn cljs.core.cons((new cljs.core.MapEntry(null,self__.nil_val,null)),s);\n} else {\nreturn s;\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentHashMap(new_meta,self__.cnt,self__.root,self__.has_nil_QMARK_,self__.nil_val,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,entry){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry)){\nreturn coll__$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry,(0)),cljs.core._nth(entry,(1)));\n} else {\nvar ret \x3d coll__$1;\nvar es \x3d cljs.core.seq(entry);\nwhile(true){\nif((es \x3d\x3d null)){\nreturn ret;\n} else {\nvar e \x3d cljs.core.first(es);\nif(cljs.core.vector_QMARK_(e)){\nvar G__24467 \x3d cljs.core._assoc(ret,cljs.core._nth(e,(0)),cljs.core._nth(e,(1)));\nvar G__24468 \x3d cljs.core.next(es);\nret \x3d G__24467;\nes \x3d G__24468;\ncontinue;\n} else {\nthrow (new Error(\x22conj on a map takes map entries or seqables of map entries\x22));\n}\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19239 \x3d (arguments.length - (1));\nswitch (G__19239) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.PersistentHashMap.prototype.apply \x3d (function (self__,args19220){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19220)));\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentHashMap.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.Symbol(null,\x22root\x22,\x22root\x22,1191874074,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22has-nil?\x22,\x22has-nil?\x22,825886722,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null)),new cljs.core.Symbol(null,\x22nil-val\x22,\x22nil-val\x22,-513933559,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentHashMap.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentHashMap.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentHashMap\x22);\n\n(cljs.core.PersistentHashMap.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentHashMap\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentHashMap.\n */\ncljs.core.__GT_PersistentHashMap \x3d (function cljs$core$__GT_PersistentHashMap(meta,cnt,root,has_nil_QMARK_,nil_val,__hash){\nreturn (new cljs.core.PersistentHashMap(meta,cnt,root,has_nil_QMARK_,nil_val,__hash));\n});\n\n(cljs.core.PersistentHashMap.EMPTY \x3d (new cljs.core.PersistentHashMap(null,(0),null,false,null,cljs.core.empty_unordered_hash)));\n(cljs.core.PersistentHashMap.fromArray \x3d (function (arr,no_clone){\nvar arr__$1 \x3d ((no_clone)?arr:cljs.core.aclone(arr));\nvar len \x3d arr__$1.length;\nvar i \x3d (0);\nvar ret \x3d cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);\nwhile(true){\nif((i \x3c len)){\nvar G__24500 \x3d (i + (2));\nvar G__24501 \x3d cljs.core._assoc_BANG_(ret,(arr__$1[i]),(arr__$1[(i + (1))]));\ni \x3d G__24500;\nret \x3d G__24501;\ncontinue;\n} else {\nreturn cljs.core._persistent_BANG_(ret);\n}\nbreak;\n}\n}));\n(cljs.core.PersistentHashMap.fromArrays \x3d (function (ks,vs){\nvar len \x3d ks.length;\nvar i \x3d (0);\nvar out \x3d cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);\nwhile(true){\nif((i \x3c len)){\nif((vs.length \x3c\x3d i)){\nthrow (new Error([\x22No value supplied for key: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((ks[i]))].join(\x27\x27)));\n} else {\nvar G__24502 \x3d (i + (1));\nvar G__24503 \x3d cljs.core._assoc_BANG_(out,(ks[i]),(vs[i]));\ni \x3d G__24502;\nout \x3d G__24503;\ncontinue;\n}\n} else {\nreturn cljs.core.persistent_BANG_(out);\n}\nbreak;\n}\n}));\n(cljs.core.PersistentHashMap.createWithCheck \x3d (function (arr){\nvar len \x3d arr.length;\nvar ret \x3d cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);\nvar i_24507 \x3d (0);\nwhile(true){\nif((i_24507 \x3c len)){\ncljs.core._assoc_BANG_(ret,(arr[i_24507]),(arr[(i_24507 + (1))]));\n\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._count(ret),((i_24507 / (2)) + (1)))){\nthrow (new Error([\x22Duplicate key: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arr[i_24507]))].join(\x27\x27)));\n} else {\nvar G__24509 \x3d (i_24507 + (2));\ni_24507 \x3d G__24509;\ncontinue;\n}\n} else {\n}\nbreak;\n}\n\nreturn cljs.core._persistent_BANG_(ret);\n}));\n(cljs.core.PersistentHashMap.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ITransientMap}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ITransientCollection}\n * @implements {cljs.core.ITransientAssociative}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.TransientHashMap \x3d (function (edit,root,count,has_nil_QMARK_,nil_val){\nthis.edit \x3d edit;\nthis.root \x3d root;\nthis.count \x3d count;\nthis.has_nil_QMARK_ \x3d has_nil_QMARK_;\nthis.nil_val \x3d nil_val;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 259;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 56;\n});\n(cljs.core.TransientHashMap.prototype.conj_BANG_ \x3d (function (o){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nif(self__.edit){\nif(cljs.core.map_entry_QMARK_(o)){\nreturn tcoll.assoc_BANG_((cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(o) : cljs.core.key.call(null, o)),(cljs.core.val.cljs$core$IFn$_invoke$arity$1 ? cljs.core.val.cljs$core$IFn$_invoke$arity$1(o) : cljs.core.val.call(null, o)));\n} else {\nif(cljs.core.vector_QMARK_(o)){\nreturn tcoll.assoc_BANG_((o.cljs$core$IFn$_invoke$arity$1 ? o.cljs$core$IFn$_invoke$arity$1((0)) : o.call(null, (0))),(o.cljs$core$IFn$_invoke$arity$1 ? o.cljs$core$IFn$_invoke$arity$1((1)) : o.call(null, (1))));\n} else {\nvar es \x3d cljs.core.seq(o);\nvar tcoll__$1 \x3d tcoll;\nwhile(true){\nvar temp__5802__auto__ \x3d cljs.core.first(es);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar e \x3d temp__5802__auto__;\nvar G__24515 \x3d cljs.core.next(es);\nvar G__24516 \x3d tcoll__$1.assoc_BANG_((cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(e) : cljs.core.key.call(null, e)),(cljs.core.val.cljs$core$IFn$_invoke$arity$1 ? cljs.core.val.cljs$core$IFn$_invoke$arity$1(e) : cljs.core.val.call(null, e)));\nes \x3d G__24515;\ntcoll__$1 \x3d G__24516;\ncontinue;\n} else {\nreturn tcoll__$1;\n}\nbreak;\n}\n\n}\n}\n} else {\nthrow (new Error(\x22conj! after persistent\x22));\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.assoc_BANG_ \x3d (function (k,v){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nif(self__.edit){\nif((k \x3d\x3d null)){\nif((self__.nil_val \x3d\x3d\x3d v)){\n} else {\n(self__.nil_val \x3d v);\n}\n\nif(self__.has_nil_QMARK_){\n} else {\n(self__.count \x3d (self__.count + (1)));\n\n(self__.has_nil_QMARK_ \x3d true);\n}\n\nreturn tcoll;\n} else {\nvar added_leaf_QMARK_ \x3d (new cljs.core.Box(false));\nvar node \x3d (((self__.root \x3d\x3d null))?cljs.core.BitmapIndexedNode.EMPTY:self__.root).inode_assoc_BANG_(self__.edit,(0),cljs.core.hash(k),k,v,added_leaf_QMARK_);\nif((node \x3d\x3d\x3d self__.root)){\n} else {\n(self__.root \x3d node);\n}\n\nif(added_leaf_QMARK_.val){\n(self__.count \x3d (self__.count + (1)));\n} else {\n}\n\nreturn tcoll;\n}\n} else {\nthrow (new Error(\x22assoc! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.without_BANG_ \x3d (function (k){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nif(self__.edit){\nif((k \x3d\x3d null)){\nif(self__.has_nil_QMARK_){\n(self__.has_nil_QMARK_ \x3d false);\n\n(self__.nil_val \x3d null);\n\n(self__.count \x3d (self__.count - (1)));\n\nreturn tcoll;\n} else {\nreturn tcoll;\n}\n} else {\nif((self__.root \x3d\x3d null)){\nreturn tcoll;\n} else {\nvar removed_leaf_QMARK_ \x3d (new cljs.core.Box(false));\nvar node \x3d self__.root.inode_without_BANG_(self__.edit,(0),cljs.core.hash(k),k,removed_leaf_QMARK_);\nif((node \x3d\x3d\x3d self__.root)){\n} else {\n(self__.root \x3d node);\n}\n\nif(removed_leaf_QMARK_.val){\n(self__.count \x3d (self__.count - (1)));\n} else {\n}\n\nreturn tcoll;\n}\n}\n} else {\nthrow (new Error(\x22dissoc! after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.persistent_BANG_ \x3d (function (){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nif(self__.edit){\n(self__.edit \x3d null);\n\nreturn (new cljs.core.PersistentHashMap(null,self__.count,self__.root,self__.has_nil_QMARK_,self__.nil_val,null));\n} else {\nthrow (new Error(\x22persistent! called twice\x22));\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(self__.edit){\nreturn self__.count;\n} else {\nthrow (new Error(\x22count after persistent!\x22));\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (tcoll,k){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif((k \x3d\x3d null)){\nif(self__.has_nil_QMARK_){\nreturn self__.nil_val;\n} else {\nreturn null;\n}\n} else {\nif((self__.root \x3d\x3d null)){\nreturn null;\n} else {\nreturn self__.root.inode_lookup((0),cljs.core.hash(k),k);\n}\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (tcoll,k,not_found){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif((k \x3d\x3d null)){\nif(self__.has_nil_QMARK_){\nreturn self__.nil_val;\n} else {\nreturn not_found;\n}\n} else {\nif((self__.root \x3d\x3d null)){\nreturn not_found;\n} else {\nreturn self__.root.inode_lookup((0),cljs.core.hash(k),k,not_found);\n}\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 \x3d (function (tcoll,val){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn tcoll__$1.conj_BANG_(val);\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn tcoll__$1.persistent_BANG_();\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 \x3d (function (tcoll,key,val){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn tcoll__$1.assoc_BANG_(key,val);\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 \x3d (function (tcoll,key){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn tcoll__$1.without_BANG_(key);\n}));\n\n(cljs.core.TransientHashMap.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19241 \x3d (arguments.length - (1));\nswitch (G__19241) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.TransientHashMap.prototype.apply \x3d (function (self__,args19240){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19240)));\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (key){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nreturn tcoll.cljs$core$ILookup$_lookup$arity$2(null, key);\n}));\n\n(cljs.core.TransientHashMap.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (key,not_found){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nreturn tcoll.cljs$core$ILookup$_lookup$arity$3(null, key,not_found);\n}));\n\n(cljs.core.TransientHashMap.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22edit\x22,\x22edit\x22,-1302639,null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22root\x22,\x22root\x22,1191874074,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22count\x22,\x22count\x22,-514511684,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22has-nil?\x22,\x22has-nil?\x22,825886722,null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null),new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22nil-val\x22,\x22nil-val\x22,-513933559,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.TransientHashMap.cljs$lang$type \x3d true);\n\n(cljs.core.TransientHashMap.cljs$lang$ctorStr \x3d \x22cljs.core/TransientHashMap\x22);\n\n(cljs.core.TransientHashMap.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/TransientHashMap\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/TransientHashMap.\n */\ncljs.core.__GT_TransientHashMap \x3d (function cljs$core$__GT_TransientHashMap(edit,root,count,has_nil_QMARK_,nil_val){\nreturn (new cljs.core.TransientHashMap(edit,root,count,has_nil_QMARK_,nil_val));\n});\n\ncljs.core.tree_map_seq_push \x3d (function cljs$core$tree_map_seq_push(node,stack,ascending_QMARK_){\nvar t \x3d node;\nvar stack__$1 \x3d stack;\nwhile(true){\nif((!((t \x3d\x3d null)))){\nvar G__24528 \x3d ((ascending_QMARK_)?t.left:t.right);\nvar G__24529 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(stack__$1,t);\nt \x3d G__24528;\nstack__$1 \x3d G__24529;\ncontinue;\n} else {\nreturn stack__$1;\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.PersistentTreeMapSeq \x3d (function (meta,stack,ascending_QMARK_,cnt,__hash){\nthis.meta \x3d meta;\nthis.stack \x3d stack;\nthis.ascending_QMARK_ \x3d ascending_QMARK_;\nthis.cnt \x3d cnt;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374990;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.PersistentTreeMapSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.indexOf \x3d (function() {\nvar G__24532 \x3d null;\nvar G__24532__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24532__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24532 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24532__1.call(this,x);\ncase 2:\nreturn G__24532__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24532.cljs$core$IFn$_invoke$arity$1 \x3d G__24532__1;\nG__24532.cljs$core$IFn$_invoke$arity$2 \x3d G__24532__2;\nreturn G__24532;\n})()\n);\n\n(cljs.core.PersistentTreeMapSeq.prototype.lastIndexOf \x3d (function() {\nvar G__24533 \x3d null;\nvar G__24533__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24533__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24533 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24533__1.call(this,x);\ncase 2:\nreturn G__24533__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24533.cljs$core$IFn$_invoke$arity$1 \x3d G__24533__1;\nG__24533.cljs$core$IFn$_invoke$arity$2 \x3d G__24533__2;\nreturn G__24533;\n})()\n);\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar t \x3d cljs.core.first(self__.stack);\nvar next_stack \x3d cljs.core.tree_map_seq_push(((self__.ascending_QMARK_)?t.right:t.left),cljs.core.next(self__.stack),self__.ascending_QMARK_);\nif((next_stack \x3d\x3d null)){\nreturn null;\n} else {\nreturn (new cljs.core.PersistentTreeMapSeq(null,next_stack,self__.ascending_QMARK_,(self__.cnt - (1)),null));\n}\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3c (0))){\nreturn (cljs.core.count(cljs.core.next(coll__$1)) + (1));\n} else {\nreturn self__.cnt;\n}\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.peek(self__.stack);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar t \x3d cljs.core.first(self__.stack);\nvar next_stack \x3d cljs.core.tree_map_seq_push(((self__.ascending_QMARK_)?t.right:t.left),cljs.core.next(self__.stack),self__.ascending_QMARK_);\nif((!((next_stack \x3d\x3d null)))){\nreturn (new cljs.core.PersistentTreeMapSeq(null,next_stack,self__.ascending_QMARK_,(self__.cnt - (1)),null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1;\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentTreeMapSeq(new_meta,self__.stack,self__.ascending_QMARK_,self__.cnt,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.PersistentTreeMapSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22stack\x22,\x22stack\x22,847125597,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22ascending?\x22,\x22ascending?\x22,-1938452653,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22boolean\x22,\x22boolean\x22,-278886877,null)], null)),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentTreeMapSeq.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentTreeMapSeq.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentTreeMapSeq\x22);\n\n(cljs.core.PersistentTreeMapSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentTreeMapSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentTreeMapSeq.\n */\ncljs.core.__GT_PersistentTreeMapSeq \x3d (function cljs$core$__GT_PersistentTreeMapSeq(meta,stack,ascending_QMARK_,cnt,__hash){\nreturn (new cljs.core.PersistentTreeMapSeq(meta,stack,ascending_QMARK_,cnt,__hash));\n});\n\n(cljs.core.PersistentTreeMapSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.create_tree_map_seq \x3d (function cljs$core$create_tree_map_seq(tree,ascending_QMARK_,cnt){\nreturn (new cljs.core.PersistentTreeMapSeq(null,cljs.core.tree_map_seq_push(tree,null,ascending_QMARK_),ascending_QMARK_,cnt,null));\n});\n\ncljs.core.balance_left \x3d (function cljs$core$balance_left(key,val,ins,right){\nif((ins instanceof cljs.core.RedNode)){\nif((ins.left instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(ins.key,ins.val,ins.left.blacken(),(new cljs.core.BlackNode(key,val,ins.right,right,null)),null));\n} else {\nif((ins.right instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(ins.right.key,ins.right.val,(new cljs.core.BlackNode(ins.key,ins.val,ins.left,ins.right.left,null)),(new cljs.core.BlackNode(key,val,ins.right.right,right,null)),null));\n} else {\nreturn (new cljs.core.BlackNode(key,val,ins,right,null));\n\n}\n}\n} else {\nreturn (new cljs.core.BlackNode(key,val,ins,right,null));\n}\n});\ncljs.core.balance_right \x3d (function cljs$core$balance_right(key,val,left,ins){\nif((ins instanceof cljs.core.RedNode)){\nif((ins.right instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(ins.key,ins.val,(new cljs.core.BlackNode(key,val,left,ins.left,null)),ins.right.blacken(),null));\n} else {\nif((ins.left instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(ins.left.key,ins.left.val,(new cljs.core.BlackNode(key,val,left,ins.left.left,null)),(new cljs.core.BlackNode(ins.key,ins.val,ins.left.right,ins.right,null)),null));\n} else {\nreturn (new cljs.core.BlackNode(key,val,left,ins,null));\n\n}\n}\n} else {\nreturn (new cljs.core.BlackNode(key,val,left,ins,null));\n}\n});\ncljs.core.balance_left_del \x3d (function cljs$core$balance_left_del(key,val,del,right){\nif((del instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(key,val,del.blacken(),right,null));\n} else {\nif((right instanceof cljs.core.BlackNode)){\nreturn cljs.core.balance_right(key,val,del,right.redden());\n} else {\nif((((right instanceof cljs.core.RedNode)) \x26\x26 ((right.left instanceof cljs.core.BlackNode)))){\nreturn (new cljs.core.RedNode(right.left.key,right.left.val,(new cljs.core.BlackNode(key,val,del,right.left.left,null)),cljs.core.balance_right(right.key,right.val,right.left.right,right.right.redden()),null));\n} else {\nthrow (new Error(\x22red-black tree invariant violation\x22));\n\n}\n}\n}\n});\ncljs.core.balance_right_del \x3d (function cljs$core$balance_right_del(key,val,left,del){\nif((del instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(key,val,left,del.blacken(),null));\n} else {\nif((left instanceof cljs.core.BlackNode)){\nreturn cljs.core.balance_left(key,val,left.redden(),del);\n} else {\nif((((left instanceof cljs.core.RedNode)) \x26\x26 ((left.right instanceof cljs.core.BlackNode)))){\nreturn (new cljs.core.RedNode(left.right.key,left.right.val,cljs.core.balance_left(left.key,left.val,left.left.redden(),left.right.left),(new cljs.core.BlackNode(key,val,left.right.right,del,null)),null));\n} else {\nthrow (new Error(\x22red-black tree invariant violation\x22));\n\n}\n}\n}\n});\ncljs.core.tree_map_kv_reduce \x3d (function cljs$core$tree_map_kv_reduce(node,f,init){\nvar init__$1 \x3d (((!((node.left \x3d\x3d null))))?(function (){var G__19242 \x3d node.left;\nvar G__19243 \x3d f;\nvar G__19244 \x3d init;\nreturn (cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3 ? cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3(G__19242,G__19243,G__19244) : cljs.core.tree_map_kv_reduce.call(null, G__19242,G__19243,G__19244));\n})():init);\nif(cljs.core.reduced_QMARK_(init__$1)){\nreturn init__$1;\n} else {\nvar init__$2 \x3d (function (){var G__19245 \x3d init__$1;\nvar G__19246 \x3d node.key;\nvar G__19247 \x3d node.val;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__19245,G__19246,G__19247) : f.call(null, G__19245,G__19246,G__19247));\n})();\nif(cljs.core.reduced_QMARK_(init__$2)){\nreturn init__$2;\n} else {\nif((!((node.right \x3d\x3d null)))){\nvar G__19248 \x3d node.right;\nvar G__19249 \x3d f;\nvar G__19250 \x3d init__$2;\nreturn (cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3 ? cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3(G__19248,G__19249,G__19250) : cljs.core.tree_map_kv_reduce.call(null, G__19248,G__19249,G__19250));\n} else {\nreturn init__$2;\n}\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IVector}\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.IMapEntry}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.ILookup}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.BlackNode \x3d (function (key,val,left,right,__hash){\nthis.key \x3d key;\nthis.val \x3d val;\nthis.left \x3d left;\nthis.right \x3d right;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 166619935;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.BlackNode.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.BlackNode.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nvar G__19252 \x3d k;\nswitch (G__19252) {\ncase (0):\nreturn (new cljs.core.MapEntry((0),self__.key,null));\n\nbreak;\ncase (1):\nreturn (new cljs.core.MapEntry((1),self__.val,null));\n\nbreak;\ndefault:\nreturn null;\n\n}\n}));\n\n(cljs.core.BlackNode.prototype.lastIndexOf \x3d (function() {\nvar G__24573 \x3d null;\nvar G__24573__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24573__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24573 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24573__1.call(this,x);\ncase 2:\nreturn G__24573__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24573.cljs$core$IFn$_invoke$arity$1 \x3d G__24573__1;\nG__24573.cljs$core$IFn$_invoke$arity$2 \x3d G__24573__2;\nreturn G__24573;\n})()\n);\n\n(cljs.core.BlackNode.prototype.indexOf \x3d (function() {\nvar G__24574 \x3d null;\nvar G__24574__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24574__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24574 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24574__1.call(this,x);\ncase 2:\nreturn G__24574__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24574.cljs$core$IFn$_invoke$arity$1 \x3d G__24574__1;\nG__24574.cljs$core$IFn$_invoke$arity$2 \x3d G__24574__2;\nreturn G__24574;\n})()\n);\n\n(cljs.core.BlackNode.prototype.add_right \x3d (function (ins){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn ins.balance_right(node);\n}));\n\n(cljs.core.BlackNode.prototype.redden \x3d (function (){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.RedNode(self__.key,self__.val,self__.left,self__.right,null));\n}));\n\n(cljs.core.BlackNode.prototype.blacken \x3d (function (){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node;\n}));\n\n(cljs.core.BlackNode.prototype.add_left \x3d (function (ins){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn ins.balance_left(node);\n}));\n\n(cljs.core.BlackNode.prototype.replace \x3d (function (key__$1,val__$1,left__$1,right__$1){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.BlackNode(key__$1,val__$1,left__$1,right__$1,null));\n}));\n\n(cljs.core.BlackNode.prototype.balance_left \x3d (function (parent){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.BlackNode(parent.key,parent.val,node,parent.right,null));\n}));\n\n(cljs.core.BlackNode.prototype.balance_right \x3d (function (parent){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.BlackNode(parent.key,parent.val,parent.left,node,null));\n}));\n\n(cljs.core.BlackNode.prototype.remove_left \x3d (function (del){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn cljs.core.balance_left_del(self__.key,self__.val,del,self__.right);\n}));\n\n(cljs.core.BlackNode.prototype.kv_reduce \x3d (function (f,init){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn cljs.core.tree_map_kv_reduce(node,f,init);\n}));\n\n(cljs.core.BlackNode.prototype.remove_right \x3d (function (del){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn cljs.core.balance_right_del(self__.key,self__.val,self__.left,del);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn node__$1.cljs$core$IIndexed$_nth$arity$3(null, k,null);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (node,k,not_found){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn node__$1.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (node,n){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nif((n \x3d\x3d\x3d (0))){\nreturn self__.key;\n} else {\nif((n \x3d\x3d\x3d (1))){\nreturn self__.val;\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n\n}\n}\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (node,n,not_found){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nif((n \x3d\x3d\x3d (0))){\nreturn self__.key;\n} else {\nif((n \x3d\x3d\x3d (1))){\nreturn self__.val;\n} else {\nreturn not_found;\n\n}\n}\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3 \x3d (function (node,n,v){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null).cljs$core$IVector$_assoc_n$arity$3(null, n,v);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (2);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.key;\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key], null);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (new cljs.core.IndexedSeq([self__.val,self__.key],(0),null));\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (node,f){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(node__$1,f);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (node,f,start){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(node__$1,f,start);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (node,k,v){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null),k,v);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (((k \x3d\x3d\x3d (0))) || ((k \x3d\x3d\x3d (1))));\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (new cljs.core.IndexedSeq([self__.key,self__.val],(0),null));\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (node,meta){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core._with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null),meta);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (node,o){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val,o], null);\n}));\n\n(cljs.core.BlackNode.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19253 \x3d (arguments.length - (1));\nswitch (G__19253) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.BlackNode.prototype.apply \x3d (function (self__,args19251){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19251)));\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node.cljs$core$IIndexed$_nth$arity$2(null, k);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.BlackNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22key\x22,\x22key\x22,124488940,null),new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.Symbol(null,\x22left\x22,\x22left\x22,1241415590,null),new cljs.core.Symbol(null,\x22right\x22,\x22right\x22,1187949694,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.BlackNode.cljs$lang$type \x3d true);\n\n(cljs.core.BlackNode.cljs$lang$ctorStr \x3d \x22cljs.core/BlackNode\x22);\n\n(cljs.core.BlackNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/BlackNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/BlackNode.\n */\ncljs.core.__GT_BlackNode \x3d (function cljs$core$__GT_BlackNode(key,val,left,right,__hash){\nreturn (new cljs.core.BlackNode(key,val,left,right,__hash));\n});\n\n(cljs.core.BlackNode.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IVector}\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IStack}\n * @implements {cljs.core.IMapEntry}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.ILookup}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.RedNode \x3d (function (key,val,left,right,__hash){\nthis.key \x3d key;\nthis.val \x3d val;\nthis.left \x3d left;\nthis.right \x3d right;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 166619935;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.RedNode.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.RedNode.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nvar G__19255 \x3d k;\nswitch (G__19255) {\ncase (0):\nreturn (new cljs.core.MapEntry((0),self__.key,null));\n\nbreak;\ncase (1):\nreturn (new cljs.core.MapEntry((1),self__.val,null));\n\nbreak;\ndefault:\nreturn null;\n\n}\n}));\n\n(cljs.core.RedNode.prototype.lastIndexOf \x3d (function() {\nvar G__24625 \x3d null;\nvar G__24625__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24625__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24625 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24625__1.call(this,x);\ncase 2:\nreturn G__24625__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24625.cljs$core$IFn$_invoke$arity$1 \x3d G__24625__1;\nG__24625.cljs$core$IFn$_invoke$arity$2 \x3d G__24625__2;\nreturn G__24625;\n})()\n);\n\n(cljs.core.RedNode.prototype.indexOf \x3d (function() {\nvar G__24626 \x3d null;\nvar G__24626__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24626__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24626 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24626__1.call(this,x);\ncase 2:\nreturn G__24626__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24626.cljs$core$IFn$_invoke$arity$1 \x3d G__24626__1;\nG__24626.cljs$core$IFn$_invoke$arity$2 \x3d G__24626__2;\nreturn G__24626;\n})()\n);\n\n(cljs.core.RedNode.prototype.add_right \x3d (function (ins){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.RedNode(self__.key,self__.val,self__.left,ins,null));\n}));\n\n(cljs.core.RedNode.prototype.redden \x3d (function (){\nvar self__ \x3d this;\nvar node \x3d this;\nthrow (new Error(\x22red-black tree invariant violation\x22));\n}));\n\n(cljs.core.RedNode.prototype.blacken \x3d (function (){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.BlackNode(self__.key,self__.val,self__.left,self__.right,null));\n}));\n\n(cljs.core.RedNode.prototype.add_left \x3d (function (ins){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.RedNode(self__.key,self__.val,ins,self__.right,null));\n}));\n\n(cljs.core.RedNode.prototype.replace \x3d (function (key__$1,val__$1,left__$1,right__$1){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.RedNode(key__$1,val__$1,left__$1,right__$1,null));\n}));\n\n(cljs.core.RedNode.prototype.balance_left \x3d (function (parent){\nvar self__ \x3d this;\nvar node \x3d this;\nif((self__.left instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(self__.key,self__.val,self__.left.blacken(),(new cljs.core.BlackNode(parent.key,parent.val,self__.right,parent.right,null)),null));\n} else {\nif((self__.right instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(self__.right.key,self__.right.val,(new cljs.core.BlackNode(self__.key,self__.val,self__.left,self__.right.left,null)),(new cljs.core.BlackNode(parent.key,parent.val,self__.right.right,parent.right,null)),null));\n} else {\nreturn (new cljs.core.BlackNode(parent.key,parent.val,node,parent.right,null));\n\n}\n}\n}));\n\n(cljs.core.RedNode.prototype.balance_right \x3d (function (parent){\nvar self__ \x3d this;\nvar node \x3d this;\nif((self__.right instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(self__.key,self__.val,(new cljs.core.BlackNode(parent.key,parent.val,parent.left,self__.left,null)),self__.right.blacken(),null));\n} else {\nif((self__.left instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(self__.left.key,self__.left.val,(new cljs.core.BlackNode(parent.key,parent.val,parent.left,self__.left.left,null)),(new cljs.core.BlackNode(self__.key,self__.val,self__.left.right,self__.right,null)),null));\n} else {\nreturn (new cljs.core.BlackNode(parent.key,parent.val,parent.left,node,null));\n\n}\n}\n}));\n\n(cljs.core.RedNode.prototype.remove_left \x3d (function (del){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.RedNode(self__.key,self__.val,del,self__.right,null));\n}));\n\n(cljs.core.RedNode.prototype.kv_reduce \x3d (function (f,init){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn cljs.core.tree_map_kv_reduce(node,f,init);\n}));\n\n(cljs.core.RedNode.prototype.remove_right \x3d (function (del){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn (new cljs.core.RedNode(self__.key,self__.val,self__.left,del,null));\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn node__$1.cljs$core$IIndexed$_nth$arity$3(null, k,null);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (node,k,not_found){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn node__$1.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (node,n){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nif((n \x3d\x3d\x3d (0))){\nreturn self__.key;\n} else {\nif((n \x3d\x3d\x3d (1))){\nreturn self__.val;\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n\n}\n}\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (node,n,not_found){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nif((n \x3d\x3d\x3d (0))){\nreturn self__.key;\n} else {\nif((n \x3d\x3d\x3d (1))){\nreturn self__.val;\n} else {\nreturn not_found;\n\n}\n}\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3 \x3d (function (node,n,v){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null).cljs$core$IVector$_assoc_n$arity$3(null, n,v);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (2);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.key;\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key], null);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (new cljs.core.IndexedSeq([self__.val,self__.key],(0),null));\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (node,f){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(node__$1,f);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (node,f,start){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(node__$1,f,start);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (node,k,v){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null),k,v);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (node,k){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (((k \x3d\x3d\x3d (0))) || ((k \x3d\x3d\x3d (1))));\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (node){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn (new cljs.core.IndexedSeq([self__.key,self__.val],(0),null));\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (node,meta){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn cljs.core._with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val], null),meta);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (node,o){\nvar self__ \x3d this;\nvar node__$1 \x3d this;\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.key,self__.val,o], null);\n}));\n\n(cljs.core.RedNode.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19256 \x3d (arguments.length - (1));\nswitch (G__19256) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.RedNode.prototype.apply \x3d (function (self__,args19254){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19254)));\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node.cljs$core$IIndexed$_nth$arity$2(null, k);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar node \x3d this;\nreturn node.cljs$core$IIndexed$_nth$arity$3(null, k,not_found);\n}));\n\n(cljs.core.RedNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22key\x22,\x22key\x22,124488940,null),new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.Symbol(null,\x22left\x22,\x22left\x22,1241415590,null),new cljs.core.Symbol(null,\x22right\x22,\x22right\x22,1187949694,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.RedNode.cljs$lang$type \x3d true);\n\n(cljs.core.RedNode.cljs$lang$ctorStr \x3d \x22cljs.core/RedNode\x22);\n\n(cljs.core.RedNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/RedNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/RedNode.\n */\ncljs.core.__GT_RedNode \x3d (function cljs$core$__GT_RedNode(key,val,left,right,__hash){\nreturn (new cljs.core.RedNode(key,val,left,right,__hash));\n});\n\n(cljs.core.RedNode.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.tree_map_add \x3d (function cljs$core$tree_map_add(comp,tree,k,v,found){\nif((tree \x3d\x3d null)){\nreturn (new cljs.core.RedNode(k,v,null,null,null));\n} else {\nvar c \x3d (function (){var G__19257 \x3d k;\nvar G__19258 \x3d tree.key;\nreturn (comp.cljs$core$IFn$_invoke$arity$2 ? comp.cljs$core$IFn$_invoke$arity$2(G__19257,G__19258) : comp.call(null, G__19257,G__19258));\n})();\nif((c \x3d\x3d\x3d (0))){\n(found[(0)] \x3d tree);\n\nreturn null;\n} else {\nif((c \x3c (0))){\nvar ins \x3d (function (){var G__19259 \x3d comp;\nvar G__19260 \x3d tree.left;\nvar G__19261 \x3d k;\nvar G__19262 \x3d v;\nvar G__19263 \x3d found;\nreturn (cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5 ? cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5(G__19259,G__19260,G__19261,G__19262,G__19263) : cljs.core.tree_map_add.call(null, G__19259,G__19260,G__19261,G__19262,G__19263));\n})();\nif((!((ins \x3d\x3d null)))){\nreturn tree.add_left(ins);\n} else {\nreturn null;\n}\n} else {\nvar ins \x3d (function (){var G__19264 \x3d comp;\nvar G__19265 \x3d tree.right;\nvar G__19266 \x3d k;\nvar G__19267 \x3d v;\nvar G__19268 \x3d found;\nreturn (cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5 ? cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5(G__19264,G__19265,G__19266,G__19267,G__19268) : cljs.core.tree_map_add.call(null, G__19264,G__19265,G__19266,G__19267,G__19268));\n})();\nif((!((ins \x3d\x3d null)))){\nreturn tree.add_right(ins);\n} else {\nreturn null;\n}\n\n}\n}\n}\n});\ncljs.core.tree_map_append \x3d (function cljs$core$tree_map_append(left,right){\nif((left \x3d\x3d null)){\nreturn right;\n} else {\nif((right \x3d\x3d null)){\nreturn left;\n} else {\nif((left instanceof cljs.core.RedNode)){\nif((right instanceof cljs.core.RedNode)){\nvar app \x3d (function (){var G__19269 \x3d left.right;\nvar G__19270 \x3d right.left;\nreturn (cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2 ? cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(G__19269,G__19270) : cljs.core.tree_map_append.call(null, G__19269,G__19270));\n})();\nif((app instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(app.key,app.val,(new cljs.core.RedNode(left.key,left.val,left.left,app.left,null)),(new cljs.core.RedNode(right.key,right.val,app.right,right.right,null)),null));\n} else {\nreturn (new cljs.core.RedNode(left.key,left.val,left.left,(new cljs.core.RedNode(right.key,right.val,app,right.right,null)),null));\n}\n} else {\nreturn (new cljs.core.RedNode(left.key,left.val,left.left,(function (){var G__19271 \x3d left.right;\nvar G__19272 \x3d right;\nreturn (cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2 ? cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(G__19271,G__19272) : cljs.core.tree_map_append.call(null, G__19271,G__19272));\n})(),null));\n}\n} else {\nif((right instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(right.key,right.val,(function (){var G__19273 \x3d left;\nvar G__19274 \x3d right.left;\nreturn (cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2 ? cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(G__19273,G__19274) : cljs.core.tree_map_append.call(null, G__19273,G__19274));\n})(),right.right,null));\n} else {\nvar app \x3d (function (){var G__19275 \x3d left.right;\nvar G__19276 \x3d right.left;\nreturn (cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2 ? cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(G__19275,G__19276) : cljs.core.tree_map_append.call(null, G__19275,G__19276));\n})();\nif((app instanceof cljs.core.RedNode)){\nreturn (new cljs.core.RedNode(app.key,app.val,(new cljs.core.BlackNode(left.key,left.val,left.left,app.left,null)),(new cljs.core.BlackNode(right.key,right.val,app.right,right.right,null)),null));\n} else {\nreturn cljs.core.balance_left_del(left.key,left.val,left.left,(new cljs.core.BlackNode(right.key,right.val,app,right.right,null)));\n}\n\n}\n}\n}\n}\n});\ncljs.core.tree_map_remove \x3d (function cljs$core$tree_map_remove(comp,tree,k,found){\nif((!((tree \x3d\x3d null)))){\nvar c \x3d (function (){var G__19277 \x3d k;\nvar G__19278 \x3d tree.key;\nreturn (comp.cljs$core$IFn$_invoke$arity$2 ? comp.cljs$core$IFn$_invoke$arity$2(G__19277,G__19278) : comp.call(null, G__19277,G__19278));\n})();\nif((c \x3d\x3d\x3d (0))){\n(found[(0)] \x3d tree);\n\nreturn cljs.core.tree_map_append(tree.left,tree.right);\n} else {\nif((c \x3c (0))){\nvar del \x3d (function (){var G__19279 \x3d comp;\nvar G__19280 \x3d tree.left;\nvar G__19281 \x3d k;\nvar G__19282 \x3d found;\nreturn (cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4 ? cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4(G__19279,G__19280,G__19281,G__19282) : cljs.core.tree_map_remove.call(null, G__19279,G__19280,G__19281,G__19282));\n})();\nif((((!((del \x3d\x3d null)))) || ((!(((found[(0)]) \x3d\x3d null)))))){\nif((tree.left instanceof cljs.core.BlackNode)){\nreturn cljs.core.balance_left_del(tree.key,tree.val,del,tree.right);\n} else {\nreturn (new cljs.core.RedNode(tree.key,tree.val,del,tree.right,null));\n}\n} else {\nreturn null;\n}\n} else {\nvar del \x3d (function (){var G__19283 \x3d comp;\nvar G__19284 \x3d tree.right;\nvar G__19285 \x3d k;\nvar G__19286 \x3d found;\nreturn (cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4 ? cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4(G__19283,G__19284,G__19285,G__19286) : cljs.core.tree_map_remove.call(null, G__19283,G__19284,G__19285,G__19286));\n})();\nif((((!((del \x3d\x3d null)))) || ((!(((found[(0)]) \x3d\x3d null)))))){\nif((tree.right instanceof cljs.core.BlackNode)){\nreturn cljs.core.balance_right_del(tree.key,tree.val,tree.left,del);\n} else {\nreturn (new cljs.core.RedNode(tree.key,tree.val,tree.left,del,null));\n}\n} else {\nreturn null;\n}\n\n}\n}\n} else {\nreturn null;\n}\n});\ncljs.core.tree_map_replace \x3d (function cljs$core$tree_map_replace(comp,tree,k,v){\nvar tk \x3d tree.key;\nvar c \x3d (comp.cljs$core$IFn$_invoke$arity$2 ? comp.cljs$core$IFn$_invoke$arity$2(k,tk) : comp.call(null, k,tk));\nif((c \x3d\x3d\x3d (0))){\nreturn tree.replace(tk,v,tree.left,tree.right);\n} else {\nif((c \x3c (0))){\nreturn tree.replace(tk,tree.val,(function (){var G__19287 \x3d comp;\nvar G__19288 \x3d tree.left;\nvar G__19289 \x3d k;\nvar G__19290 \x3d v;\nreturn (cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4 ? cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4(G__19287,G__19288,G__19289,G__19290) : cljs.core.tree_map_replace.call(null, G__19287,G__19288,G__19289,G__19290));\n})(),tree.right);\n} else {\nreturn tree.replace(tk,tree.val,tree.left,(function (){var G__19291 \x3d comp;\nvar G__19292 \x3d tree.right;\nvar G__19293 \x3d k;\nvar G__19294 \x3d v;\nreturn (cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4 ? cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4(G__19291,G__19292,G__19293,G__19294) : cljs.core.tree_map_replace.call(null, G__19291,G__19292,G__19293,G__19294));\n})());\n\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IFind}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISorted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.PersistentTreeMap \x3d (function (comp,tree,cnt,meta,__hash){\nthis.comp \x3d comp;\nthis.tree \x3d tree;\nthis.cnt \x3d cnt;\nthis.meta \x3d meta;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 418776847;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 8192;\n});\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$_find$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.entry_at(k);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.forEach \x3d (function (f){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar seq__19296 \x3d cljs.core.seq(coll);\nvar chunk__19297 \x3d null;\nvar count__19298 \x3d (0);\nvar i__19299 \x3d (0);\nwhile(true){\nif((i__19299 \x3c count__19298)){\nvar vec__19306 \x3d chunk__19297.cljs$core$IIndexed$_nth$arity$2(null, i__19299);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19306,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19306,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__24708 \x3d seq__19296;\nvar G__24709 \x3d chunk__19297;\nvar G__24710 \x3d count__19298;\nvar G__24711 \x3d (i__19299 + (1));\nseq__19296 \x3d G__24708;\nchunk__19297 \x3d G__24709;\ncount__19298 \x3d G__24710;\ni__19299 \x3d G__24711;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19296);\nif(temp__5804__auto__){\nvar seq__19296__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19296__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19296__$1);\nvar G__24712 \x3d cljs.core.chunk_rest(seq__19296__$1);\nvar G__24713 \x3d c__5525__auto__;\nvar G__24714 \x3d cljs.core.count(c__5525__auto__);\nvar G__24715 \x3d (0);\nseq__19296 \x3d G__24712;\nchunk__19297 \x3d G__24713;\ncount__19298 \x3d G__24714;\ni__19299 \x3d G__24715;\ncontinue;\n} else {\nvar vec__19309 \x3d cljs.core.first(seq__19296__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19309,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19309,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__24717 \x3d cljs.core.next(seq__19296__$1);\nvar G__24718 \x3d null;\nvar G__24719 \x3d (0);\nvar G__24720 \x3d (0);\nseq__19296 \x3d G__24717;\nchunk__19297 \x3d G__24718;\ncount__19298 \x3d G__24719;\ni__19299 \x3d G__24720;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.get \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.entries \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_entries_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.keys \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator((cljs.core.keys.cljs$core$IFn$_invoke$arity$1 ? cljs.core.keys.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.keys.call(null, coll)));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.values \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator((cljs.core.vals.cljs$core$IFn$_invoke$arity$1 ? cljs.core.vals.cljs$core$IFn$_invoke$arity$1(coll) : cljs.core.vals.call(null, coll)));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.entry_at \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar t \x3d self__.tree;\nwhile(true){\nif((!((t \x3d\x3d null)))){\nvar c \x3d (function (){var G__19312 \x3d k;\nvar G__19313 \x3d t.key;\nreturn (self__.comp.cljs$core$IFn$_invoke$arity$2 ? self__.comp.cljs$core$IFn$_invoke$arity$2(G__19312,G__19313) : self__.comp.call(null, G__19312,G__19313));\n})();\nif((c \x3d\x3d\x3d (0))){\nreturn t;\n} else {\nif((c \x3c (0))){\nvar G__24725 \x3d t.left;\nt \x3d G__24725;\ncontinue;\n} else {\nvar G__24726 \x3d t.right;\nt \x3d G__24726;\ncontinue;\n\n}\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.has \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.contains_QMARK_(coll,k);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, k,null);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,k,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar n \x3d coll__$1.entry_at(k);\nif((!((n \x3d\x3d null)))){\nreturn n.val;\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (coll,f,init){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((!((self__.tree \x3d\x3d null)))){\nreturn cljs.core.unreduced(cljs.core.tree_map_kv_reduce(self__.tree,f,init));\n} else {\nreturn init;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.PersistentTreeMap(self__.comp,self__.tree,self__.cnt,self__.meta,self__.__hash));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.cnt;\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nreturn cljs.core.create_tree_map_seq(self__.tree,false,self__.cnt);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_unordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_map(coll__$1,other);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentTreeMap(self__.comp,null,(0),self__.meta,(0)));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar found \x3d [null];\nvar t \x3d cljs.core.tree_map_remove(self__.comp,self__.tree,k,found);\nif((t \x3d\x3d null)){\nif((cljs.core.nth.cljs$core$IFn$_invoke$arity$2(found,(0)) \x3d\x3d null)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentTreeMap(self__.comp,null,(0),self__.meta,null));\n}\n} else {\nreturn (new cljs.core.PersistentTreeMap(self__.comp,t.blacken(),(self__.cnt - (1)),self__.meta,null));\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (coll,k,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar found \x3d [null];\nvar t \x3d cljs.core.tree_map_add(self__.comp,self__.tree,k,v,found);\nif((t \x3d\x3d null)){\nvar found_node \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(found,(0));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,found_node.val)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentTreeMap(self__.comp,cljs.core.tree_map_replace(self__.comp,self__.tree,k,v),self__.cnt,self__.meta,null));\n}\n} else {\nreturn (new cljs.core.PersistentTreeMap(self__.comp,t.blacken(),(self__.cnt + (1)),self__.meta,null));\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (coll,k){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (!((coll__$1.entry_at(k) \x3d\x3d null)));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nreturn cljs.core.create_tree_map_seq(self__.tree,true,self__.cnt);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentTreeMap(self__.comp,self__.tree,self__.cnt,new_meta,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,entry){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry)){\nreturn coll__$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry,(0)),cljs.core._nth(entry,(1)));\n} else {\nvar ret \x3d coll__$1;\nvar es \x3d cljs.core.seq(entry);\nwhile(true){\nif((es \x3d\x3d null)){\nreturn ret;\n} else {\nvar e \x3d cljs.core.first(es);\nif(cljs.core.vector_QMARK_(e)){\nvar G__24735 \x3d cljs.core._assoc(ret,cljs.core._nth(e,(0)),cljs.core._nth(e,(1)));\nvar G__24736 \x3d cljs.core.next(es);\nret \x3d G__24735;\nes \x3d G__24736;\ncontinue;\n} else {\nthrow (new Error(\x22conj on a map takes map entries or seqables of map entries\x22));\n}\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19314 \x3d (arguments.length - (1));\nswitch (G__19314) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.apply \x3d (function (self__,args19295){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19295)));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq$arity$2 \x3d (function (coll,ascending_QMARK_){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nreturn cljs.core.create_tree_map_seq(self__.tree,ascending_QMARK_,self__.cnt);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 \x3d (function (coll,k,ascending_QMARK_){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.cnt \x3e (0))){\nvar stack \x3d null;\nvar t \x3d self__.tree;\nwhile(true){\nif((!((t \x3d\x3d null)))){\nvar c \x3d (function (){var G__19317 \x3d k;\nvar G__19318 \x3d t.key;\nreturn (self__.comp.cljs$core$IFn$_invoke$arity$2 ? self__.comp.cljs$core$IFn$_invoke$arity$2(G__19317,G__19318) : self__.comp.call(null, G__19317,G__19318));\n})();\nif((c \x3d\x3d\x3d (0))){\nreturn (new cljs.core.PersistentTreeMapSeq(null,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(stack,t),ascending_QMARK_,(-1),null));\n} else {\nif(cljs.core.truth_(ascending_QMARK_)){\nif((c \x3c (0))){\nvar G__24740 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(stack,t);\nvar G__24741 \x3d t.left;\nstack \x3d G__24740;\nt \x3d G__24741;\ncontinue;\n} else {\nvar G__24742 \x3d stack;\nvar G__24743 \x3d t.right;\nstack \x3d G__24742;\nt \x3d G__24743;\ncontinue;\n}\n} else {\nif((c \x3e (0))){\nvar G__24744 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(stack,t);\nvar G__24745 \x3d t.right;\nstack \x3d G__24744;\nt \x3d G__24745;\ncontinue;\n} else {\nvar G__24746 \x3d stack;\nvar G__24747 \x3d t.left;\nstack \x3d G__24746;\nt \x3d G__24747;\ncontinue;\n}\n\n}\n}\n} else {\nif((stack \x3d\x3d null)){\nreturn null;\n} else {\nreturn (new cljs.core.PersistentTreeMapSeq(null,stack,ascending_QMARK_,(-1),null));\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_entry_key$arity$2 \x3d (function (coll,entry){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (cljs.core.key.cljs$core$IFn$_invoke$arity$1 ? cljs.core.key.cljs$core$IFn$_invoke$arity$1(entry) : cljs.core.key.call(null, entry));\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_comparator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.comp;\n}));\n\n(cljs.core.PersistentTreeMap.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22comp\x22,\x22comp\x22,-1462482139,null),new cljs.core.Symbol(null,\x22tree\x22,\x22tree\x22,1444219499,null),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentTreeMap.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentTreeMap.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentTreeMap\x22);\n\n(cljs.core.PersistentTreeMap.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentTreeMap\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentTreeMap.\n */\ncljs.core.__GT_PersistentTreeMap \x3d (function cljs$core$__GT_PersistentTreeMap(comp,tree,cnt,meta,__hash){\nreturn (new cljs.core.PersistentTreeMap(comp,tree,cnt,meta,__hash));\n});\n\n(cljs.core.PersistentTreeMap.EMPTY \x3d (new cljs.core.PersistentTreeMap(cljs.core.compare,null,(0),null,cljs.core.empty_unordered_hash)));\n(cljs.core.PersistentTreeMap.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * keyval \x3d\x3e key val\n * Returns a new hash map with supplied mappings.\n */\ncljs.core.hash_map \x3d (function cljs$core$hash_map(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24751 \x3d arguments.length;\nvar i__5727__auto___24752 \x3d (0);\nwhile(true){\nif((i__5727__auto___24752 \x3c len__5726__auto___24751)){\nargs__5732__auto__.push((arguments[i__5727__auto___24752]));\n\nvar G__24753 \x3d (i__5727__auto___24752 + (1));\ni__5727__auto___24752 \x3d G__24753;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.hash_map.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.hash_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keyvals){\nvar in$ \x3d cljs.core.seq(keyvals);\nvar out \x3d cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);\nwhile(true){\nif(in$){\nvar in_SINGLEQUOTE_ \x3d cljs.core.next(in$);\nif((in_SINGLEQUOTE_ \x3d\x3d null)){\nthrow (new Error([\x22No value supplied for key: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(in$))].join(\x27\x27)));\n} else {\nvar G__24754 \x3d cljs.core.next(in_SINGLEQUOTE_);\nvar G__24755 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(out,cljs.core.first(in$),cljs.core.first(in_SINGLEQUOTE_));\nin$ \x3d G__24754;\nout \x3d G__24755;\ncontinue;\n}\n} else {\nreturn cljs.core.persistent_BANG_(out);\n}\nbreak;\n}\n}));\n\n(cljs.core.hash_map.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.hash_map.cljs$lang$applyTo \x3d (function (seq19319){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19319));\n}));\n\n/**\n * keyval \x3d\x3e key val\n * Returns a new array map with supplied mappings.\n */\ncljs.core.array_map \x3d (function cljs$core$array_map(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24756 \x3d arguments.length;\nvar i__5727__auto___24757 \x3d (0);\nwhile(true){\nif((i__5727__auto___24757 \x3c len__5726__auto___24756)){\nargs__5732__auto__.push((arguments[i__5727__auto___24757]));\n\nvar G__24760 \x3d (i__5727__auto___24757 + (1));\ni__5727__auto___24757 \x3d G__24760;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.array_map.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.array_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keyvals){\nvar arr \x3d (((((keyvals instanceof cljs.core.IndexedSeq)) \x26\x26 ((keyvals.i \x3d\x3d\x3d (0)))))?keyvals.arr:cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(keyvals));\nif(cljs.core.odd_QMARK_(arr.length)){\nthrow (new Error([\x22No value supplied for key: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.last(arr))].join(\x27\x27)));\n} else {\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc(arr);\n}\n}));\n\n(cljs.core.array_map.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.array_map.cljs$lang$applyTo \x3d (function (seq19320){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19320));\n}));\n\n/**\n * Builds a map from a seq as described in\n * https://clojure.org/reference/special_forms#keyword-arguments\n */\ncljs.core.seq_to_map_for_destructuring \x3d (function cljs$core$seq_to_map_for_destructuring(s){\nif(cljs.core.next(s)){\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc(cljs.core.to_array(s));\n} else {\nif(cljs.core.seq(s)){\nreturn cljs.core.first(s);\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n}\n});\n/**\n * keyval \x3d\x3e key val\n * Returns a new object map with supplied mappings.\n */\ncljs.core.obj_map \x3d (function cljs$core$obj_map(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24772 \x3d arguments.length;\nvar i__5727__auto___24773 \x3d (0);\nwhile(true){\nif((i__5727__auto___24773 \x3c len__5726__auto___24772)){\nargs__5732__auto__.push((arguments[i__5727__auto___24773]));\n\nvar G__24774 \x3d (i__5727__auto___24773 + (1));\ni__5727__auto___24773 \x3d G__24774;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.obj_map.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.obj_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keyvals){\nvar ks \x3d [];\nvar obj \x3d ({});\nvar kvs \x3d cljs.core.seq(keyvals);\nwhile(true){\nif(kvs){\nks.push(cljs.core.first(kvs));\n\ncljs.core.goog$module$goog$object.set(obj,cljs.core.first(kvs),cljs.core.second(kvs));\n\nvar G__24775 \x3d cljs.core.nnext(kvs);\nkvs \x3d G__24775;\ncontinue;\n} else {\nreturn cljs.core.ObjMap.fromObject(ks,obj);\n}\nbreak;\n}\n}));\n\n(cljs.core.obj_map.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.obj_map.cljs$lang$applyTo \x3d (function (seq19321){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19321));\n}));\n\n/**\n * keyval \x3d\x3e key val\n * Returns a new sorted map with supplied mappings.\n */\ncljs.core.sorted_map \x3d (function cljs$core$sorted_map(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24776 \x3d arguments.length;\nvar i__5727__auto___24777 \x3d (0);\nwhile(true){\nif((i__5727__auto___24777 \x3c len__5726__auto___24776)){\nargs__5732__auto__.push((arguments[i__5727__auto___24777]));\n\nvar G__24778 \x3d (i__5727__auto___24777 + (1));\ni__5727__auto___24777 \x3d G__24778;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.sorted_map.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.sorted_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keyvals){\nvar in$ \x3d cljs.core.seq(keyvals);\nvar out \x3d cljs.core.PersistentTreeMap.EMPTY;\nwhile(true){\nif(in$){\nvar G__24779 \x3d cljs.core.nnext(in$);\nvar G__24780 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(out,cljs.core.first(in$),cljs.core.second(in$));\nin$ \x3d G__24779;\nout \x3d G__24780;\ncontinue;\n} else {\nreturn out;\n}\nbreak;\n}\n}));\n\n(cljs.core.sorted_map.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.sorted_map.cljs$lang$applyTo \x3d (function (seq19324){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19324));\n}));\n\n/**\n * keyval \x3d\x3e key val\n * Returns a new sorted map with supplied mappings, using the supplied comparator.\n */\ncljs.core.sorted_map_by \x3d (function cljs$core$sorted_map_by(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24781 \x3d arguments.length;\nvar i__5727__auto___24782 \x3d (0);\nwhile(true){\nif((i__5727__auto___24782 \x3c len__5726__auto___24781)){\nargs__5732__auto__.push((arguments[i__5727__auto___24782]));\n\nvar G__24783 \x3d (i__5727__auto___24782 + (1));\ni__5727__auto___24782 \x3d G__24783;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.sorted_map_by.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.sorted_map_by.cljs$core$IFn$_invoke$arity$variadic \x3d (function (comparator,keyvals){\nvar in$ \x3d cljs.core.seq(keyvals);\nvar out \x3d (new cljs.core.PersistentTreeMap(cljs.core.fn__GT_comparator(comparator),null,(0),null,(0)));\nwhile(true){\nif(in$){\nvar G__24784 \x3d cljs.core.nnext(in$);\nvar G__24785 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(out,cljs.core.first(in$),cljs.core.second(in$));\nin$ \x3d G__24784;\nout \x3d G__24785;\ncontinue;\n} else {\nreturn out;\n}\nbreak;\n}\n}));\n\n(cljs.core.sorted_map_by.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.sorted_map_by.cljs$lang$applyTo \x3d (function (seq19325){\nvar G__19326 \x3d cljs.core.first(seq19325);\nvar seq19325__$1 \x3d cljs.core.next(seq19325);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19326,seq19325__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.KeySeq \x3d (function (mseq,_meta){\nthis.mseq \x3d mseq;\nthis._meta \x3d _meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.KeySeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.KeySeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.KeySeq.prototype.indexOf \x3d (function() {\nvar G__24790 \x3d null;\nvar G__24790__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24790__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24790 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24790__1.call(this,x);\ncase 2:\nreturn G__24790__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24790.cljs$core$IFn$_invoke$arity$1 \x3d G__24790__1;\nG__24790.cljs$core$IFn$_invoke$arity$2 \x3d G__24790__2;\nreturn G__24790;\n})()\n);\n\n(cljs.core.KeySeq.prototype.lastIndexOf \x3d (function() {\nvar G__24793 \x3d null;\nvar G__24793__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24793__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24793 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24793__1.call(this,x);\ncase 2:\nreturn G__24793__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24793.cljs$core$IFn$_invoke$arity$1 \x3d G__24793__1;\nG__24793.cljs$core$IFn$_invoke$arity$2 \x3d G__24793__2;\nreturn G__24793;\n})()\n);\n\n(cljs.core.KeySeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__._meta;\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar nseq \x3d (((((!((self__.mseq \x3d\x3d null))))?(((((self__.mseq.cljs$lang$protocol_mask$partition0$ \x26 (128))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.mseq.cljs$core$INext$))))?true:(((!self__.mseq.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq):false)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq)))?self__.mseq.cljs$core$INext$_next$arity$1(null, ):cljs.core.next(self__.mseq));\nif((nseq \x3d\x3d null)){\nreturn null;\n} else {\nreturn (new cljs.core.KeySeq(nseq,null));\n}\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.hash_ordered_coll(coll__$1);\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar me \x3d self__.mseq.cljs$core$ISeq$_first$arity$1(null, );\nreturn me.cljs$core$IMapEntry$_key$arity$1(null, );\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar nseq \x3d (((((!((self__.mseq \x3d\x3d null))))?(((((self__.mseq.cljs$lang$protocol_mask$partition0$ \x26 (128))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.mseq.cljs$core$INext$))))?true:(((!self__.mseq.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq):false)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq)))?self__.mseq.cljs$core$INext$_next$arity$1(null, ):cljs.core.next(self__.mseq));\nif((!((nseq \x3d\x3d null)))){\nreturn (new cljs.core.KeySeq(nseq,null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__._meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.KeySeq(self__.mseq,new_meta));\n}\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.KeySeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22mseq\x22,\x22mseq\x22,1602647196,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null)], null)),new cljs.core.Symbol(null,\x22_meta\x22,\x22_meta\x22,-1716892533,null)], null);\n}));\n\n(cljs.core.KeySeq.cljs$lang$type \x3d true);\n\n(cljs.core.KeySeq.cljs$lang$ctorStr \x3d \x22cljs.core/KeySeq\x22);\n\n(cljs.core.KeySeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/KeySeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/KeySeq.\n */\ncljs.core.__GT_KeySeq \x3d (function cljs$core$__GT_KeySeq(mseq,_meta){\nreturn (new cljs.core.KeySeq(mseq,_meta));\n});\n\n(cljs.core.KeySeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Returns a sequence of the map\x27s keys, in the same order as (seq map).\n */\ncljs.core.keys \x3d (function cljs$core$keys(map){\nvar temp__5804__auto__ \x3d cljs.core.seq(map);\nif(temp__5804__auto__){\nvar mseq \x3d temp__5804__auto__;\nreturn (new cljs.core.KeySeq(mseq,null));\n} else {\nreturn null;\n}\n});\n/**\n * Returns the key of the map entry.\n */\ncljs.core.key \x3d (function cljs$core$key(map_entry){\nreturn cljs.core._key(map_entry);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.ValSeq \x3d (function (mseq,_meta){\nthis.mseq \x3d mseq;\nthis._meta \x3d _meta;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.ValSeq.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.ValSeq.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.ValSeq.prototype.indexOf \x3d (function() {\nvar G__24798 \x3d null;\nvar G__24798__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__24798__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24798 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24798__1.call(this,x);\ncase 2:\nreturn G__24798__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24798.cljs$core$IFn$_invoke$arity$1 \x3d G__24798__1;\nG__24798.cljs$core$IFn$_invoke$arity$2 \x3d G__24798__2;\nreturn G__24798;\n})()\n);\n\n(cljs.core.ValSeq.prototype.lastIndexOf \x3d (function() {\nvar G__24799 \x3d null;\nvar G__24799__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__24799__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start);\n});\nG__24799 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__24799__1.call(this,x);\ncase 2:\nreturn G__24799__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__24799.cljs$core$IFn$_invoke$arity$1 \x3d G__24799__1;\nG__24799.cljs$core$IFn$_invoke$arity$2 \x3d G__24799__2;\nreturn G__24799;\n})()\n);\n\n(cljs.core.ValSeq.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__._meta;\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$INext$_next$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar nseq \x3d (((((!((self__.mseq \x3d\x3d null))))?(((((self__.mseq.cljs$lang$protocol_mask$partition0$ \x26 (128))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.mseq.cljs$core$INext$))))?true:(((!self__.mseq.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq):false)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq)))?self__.mseq.cljs$core$INext$_next$arity$1(null, ):cljs.core.next(self__.mseq));\nif((nseq \x3d\x3d null)){\nreturn null;\n} else {\nreturn (new cljs.core.ValSeq(nseq,null));\n}\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.hash_ordered_coll(coll__$1);\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.equiv_sequential(coll__$1,other);\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (coll,f){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,coll__$1);\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (coll,f,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(f,start,coll__$1);\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar me \x3d self__.mseq.cljs$core$ISeq$_first$arity$1(null, );\nreturn me.cljs$core$IMapEntry$_val$arity$1(null, );\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar nseq \x3d (((((!((self__.mseq \x3d\x3d null))))?(((((self__.mseq.cljs$lang$protocol_mask$partition0$ \x26 (128))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d self__.mseq.cljs$core$INext$))))?true:(((!self__.mseq.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq):false)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,self__.mseq)))?self__.mseq.cljs$core$INext$_next$arity$1(null, ):cljs.core.next(self__.mseq));\nif((!((nseq \x3d\x3d null)))){\nreturn (new cljs.core.ValSeq(nseq,null));\n} else {\nreturn cljs.core.List.EMPTY;\n}\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1;\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__._meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.ValSeq(self__.mseq,new_meta));\n}\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.cons(o,coll__$1);\n}));\n\n(cljs.core.ValSeq.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22mseq\x22,\x22mseq\x22,1602647196,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null)], null)),new cljs.core.Symbol(null,\x22_meta\x22,\x22_meta\x22,-1716892533,null)], null);\n}));\n\n(cljs.core.ValSeq.cljs$lang$type \x3d true);\n\n(cljs.core.ValSeq.cljs$lang$ctorStr \x3d \x22cljs.core/ValSeq\x22);\n\n(cljs.core.ValSeq.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ValSeq\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ValSeq.\n */\ncljs.core.__GT_ValSeq \x3d (function cljs$core$__GT_ValSeq(mseq,_meta){\nreturn (new cljs.core.ValSeq(mseq,_meta));\n});\n\n(cljs.core.ValSeq.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Returns a sequence of the map\x27s values, in the same order as (seq map).\n */\ncljs.core.vals \x3d (function cljs$core$vals(map){\nvar temp__5804__auto__ \x3d cljs.core.seq(map);\nif(temp__5804__auto__){\nvar mseq \x3d temp__5804__auto__;\nreturn (new cljs.core.ValSeq(mseq,null));\n} else {\nreturn null;\n}\n});\n/**\n * Returns the value in the map entry.\n */\ncljs.core.val \x3d (function cljs$core$val(map_entry){\nreturn cljs.core._val(map_entry);\n});\n/**\n * Returns a map that consists of the rest of the maps conj-ed onto\n * the first. If a key occurs in more than one map, the mapping from\n * the latter (left-to-right) will be the mapping in the result.\n */\ncljs.core.merge \x3d (function cljs$core$merge(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24807 \x3d arguments.length;\nvar i__5727__auto___24808 \x3d (0);\nwhile(true){\nif((i__5727__auto___24808 \x3c len__5726__auto___24807)){\nargs__5732__auto__.push((arguments[i__5727__auto___24808]));\n\nvar G__24809 \x3d (i__5727__auto___24808 + (1));\ni__5727__auto___24808 \x3d G__24809;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic \x3d (function (maps){\nif(cljs.core.truth_(cljs.core.some(cljs.core.identity,maps))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2((function (p1__19331_SHARP_,p2__19332_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2((function (){var or__5002__auto__ \x3d p1__19331_SHARP_;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),p2__19332_SHARP_);\n}),maps);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.merge.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.merge.cljs$lang$applyTo \x3d (function (seq19333){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19333));\n}));\n\n/**\n * Returns a map that consists of the rest of the maps conj-ed onto\n * the first. If a key occurs in more than one map, the mapping(s)\n * from the latter (left-to-right) will be combined with the mapping in\n * the result by calling (f val-in-result val-in-latter).\n */\ncljs.core.merge_with \x3d (function cljs$core$merge_with(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24812 \x3d arguments.length;\nvar i__5727__auto___24813 \x3d (0);\nwhile(true){\nif((i__5727__auto___24813 \x3c len__5726__auto___24812)){\nargs__5732__auto__.push((arguments[i__5727__auto___24813]));\n\nvar G__24814 \x3d (i__5727__auto___24813 + (1));\ni__5727__auto___24813 \x3d G__24814;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,maps){\nif(cljs.core.truth_(cljs.core.some(cljs.core.identity,maps))){\nvar merge_entry \x3d (function (m,e){\nvar k \x3d cljs.core.key(e);\nvar v \x3d cljs.core.val(e);\nif(cljs.core.contains_QMARK_(m,k)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,(function (){var G__19336 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nvar G__19337 \x3d v;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__19336,G__19337) : f.call(null, G__19336,G__19337));\n})());\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}\n});\nvar merge2 \x3d (function (m1,m2){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(merge_entry,(function (){var or__5002__auto__ \x3d m1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}\n})(),cljs.core.seq(m2));\n});\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(merge2,maps);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.merge_with.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.merge_with.cljs$lang$applyTo \x3d (function (seq19334){\nvar G__19335 \x3d cljs.core.first(seq19334);\nvar seq19334__$1 \x3d cljs.core.next(seq19334);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19335,seq19334__$1);\n}));\n\n/**\n * Returns a map containing only those entries in map whose key is in keys\n */\ncljs.core.select_keys \x3d (function cljs$core$select_keys(map,keyseq){\nvar ret \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar keys \x3d cljs.core.seq(keyseq);\nwhile(true){\nif(keys){\nvar key \x3d cljs.core.first(keys);\nvar entry \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map,key,new cljs.core.Keyword(\x22cljs.core\x22,\x22not-found\x22,\x22cljs.core/not-found\x22,-1572889185));\nvar G__24817 \x3d ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(entry,new cljs.core.Keyword(\x22cljs.core\x22,\x22not-found\x22,\x22cljs.core/not-found\x22,-1572889185)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,key,entry):ret);\nvar G__24818 \x3d cljs.core.next(keys);\nret \x3d G__24817;\nkeys \x3d G__24818;\ncontinue;\n} else {\nreturn cljs.core._with_meta(ret,cljs.core.meta(map));\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.HashSetIter \x3d (function (iter){\nthis.iter \x3d iter;\n});\n(cljs.core.HashSetIter.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.iter.hasNext();\n}));\n\n(cljs.core.HashSetIter.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(self__.iter.hasNext()){\nreturn self__.iter.next().key;\n} else {\nthrow (new Error(\x22No such element\x22));\n}\n}));\n\n(cljs.core.HashSetIter.prototype.remove \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (new Error(\x22Unsupported operation\x22));\n}));\n\n(cljs.core.HashSetIter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22iter\x22,\x22iter\x22,-1346195486,null)], null);\n}));\n\n(cljs.core.HashSetIter.cljs$lang$type \x3d true);\n\n(cljs.core.HashSetIter.cljs$lang$ctorStr \x3d \x22cljs.core/HashSetIter\x22);\n\n(cljs.core.HashSetIter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/HashSetIter\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/HashSetIter.\n */\ncljs.core.__GT_HashSetIter \x3d (function cljs$core$__GT_HashSetIter(iter){\nreturn (new cljs.core.HashSetIter(iter));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IEditableCollection}\n * @implements {cljs.core.ISet}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.PersistentHashSet \x3d (function (meta,hash_map,__hash){\nthis.meta \x3d meta;\nthis.hash_map \x3d hash_map;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 15077647;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139268;\n});\n(cljs.core.PersistentHashSet.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentHashSet.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentHashSet.prototype.keys \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentHashSet.prototype.entries \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_set_entries_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentHashSet.prototype.values \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentHashSet.prototype.has \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.contains_QMARK_(coll,k);\n}));\n\n(cljs.core.PersistentHashSet.prototype.forEach \x3d (function (f){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar seq__19341 \x3d cljs.core.seq(coll);\nvar chunk__19342 \x3d null;\nvar count__19343 \x3d (0);\nvar i__19344 \x3d (0);\nwhile(true){\nif((i__19344 \x3c count__19343)){\nvar vec__19351 \x3d chunk__19342.cljs$core$IIndexed$_nth$arity$2(null, i__19344);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19351,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19351,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__24845 \x3d seq__19341;\nvar G__24846 \x3d chunk__19342;\nvar G__24847 \x3d count__19343;\nvar G__24848 \x3d (i__19344 + (1));\nseq__19341 \x3d G__24845;\nchunk__19342 \x3d G__24846;\ncount__19343 \x3d G__24847;\ni__19344 \x3d G__24848;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19341);\nif(temp__5804__auto__){\nvar seq__19341__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19341__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19341__$1);\nvar G__24853 \x3d cljs.core.chunk_rest(seq__19341__$1);\nvar G__24854 \x3d c__5525__auto__;\nvar G__24855 \x3d cljs.core.count(c__5525__auto__);\nvar G__24856 \x3d (0);\nseq__19341 \x3d G__24853;\nchunk__19342 \x3d G__24854;\ncount__19343 \x3d G__24855;\ni__19344 \x3d G__24856;\ncontinue;\n} else {\nvar vec__19354 \x3d cljs.core.first(seq__19341__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19354,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19354,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__24861 \x3d cljs.core.next(seq__19341__$1);\nvar G__24862 \x3d null;\nvar G__24863 \x3d (0);\nvar G__24864 \x3d (0);\nseq__19341 \x3d G__24861;\nchunk__19342 \x3d G__24862;\ncount__19343 \x3d G__24863;\ni__19344 \x3d G__24864;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, v,null);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,v,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar temp__5802__auto__ \x3d cljs.core._find(self__.hash_map,v);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar entry \x3d temp__5802__auto__;\nreturn cljs.core.key(entry);\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.HashSetIter(cljs.core._iterator(self__.hash_map)));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.PersistentHashSet(self__.meta,self__.hash_map,self__.__hash));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._count(self__.hash_map);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_unordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar and__5000__auto__ \x3d cljs.core.set_QMARK_(other);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d (cljs.core.count(coll__$1) \x3d\x3d\x3d cljs.core.count(other));\nif(and__5000__auto____$1){\ntry{return cljs.core.reduce_kv((function (p1__19339_SHARP_,p2__19338_SHARP_){\nvar or__5002__auto__ \x3d cljs.core.contains_QMARK_(other,p2__19338_SHARP_);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,self__.hash_map);\n}catch (e19357){if((e19357 instanceof Error)){\nvar ex \x3d e19357;\nreturn false;\n} else {\nthrow e19357;\n\n}\n}} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.TransientHashSet(cljs.core._as_transient(self__.hash_map)));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._with_meta(cljs.core.PersistentHashSet.EMPTY,self__.meta);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ISet$_disjoin$arity$2 \x3d (function (coll,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentHashSet(self__.meta,cljs.core._dissoc(self__.hash_map,v),null));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.keys(self__.hash_map);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentHashSet(new_meta,self__.hash_map,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentHashSet(self__.meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.hash_map,o,null),null));\n}));\n\n(cljs.core.PersistentHashSet.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19358 \x3d (arguments.length - (1));\nswitch (G__19358) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.PersistentHashSet.prototype.apply \x3d (function (self__,args19340){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19340)));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentHashSet.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22hash-map\x22,\x22hash-map\x22,-439030950,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentHashSet.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentHashSet.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentHashSet\x22);\n\n(cljs.core.PersistentHashSet.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentHashSet\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentHashSet.\n */\ncljs.core.__GT_PersistentHashSet \x3d (function cljs$core$__GT_PersistentHashSet(meta,hash_map,__hash){\nreturn (new cljs.core.PersistentHashSet(meta,hash_map,__hash));\n});\n\n(cljs.core.PersistentHashSet.EMPTY \x3d (new cljs.core.PersistentHashSet(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.empty_unordered_hash)));\n(cljs.core.PersistentHashSet.fromArray \x3d (function (items,no_clone){\nvar len \x3d items.length;\nif((len \x3c\x3d cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD)){\nvar arr \x3d ((no_clone)?items:cljs.core.aclone(items));\nvar i \x3d (0);\nvar out \x3d cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);\nwhile(true){\nif((i \x3c len)){\nvar G__24971 \x3d (i + (1));\nvar G__24972 \x3d cljs.core._assoc_BANG_(out,(items[i]),null);\ni \x3d G__24971;\nout \x3d G__24972;\ncontinue;\n} else {\nreturn (new cljs.core.PersistentHashSet(null,cljs.core._persistent_BANG_(out),null));\n}\nbreak;\n}\n} else {\nvar i \x3d (0);\nvar out \x3d cljs.core.transient$(cljs.core.PersistentHashSet.EMPTY);\nwhile(true){\nif((i \x3c len)){\nvar G__24973 \x3d (i + (1));\nvar G__24974 \x3d cljs.core._conj_BANG_(out,(items[i]));\ni \x3d G__24973;\nout \x3d G__24974;\ncontinue;\n} else {\nreturn cljs.core._persistent_BANG_(out);\n}\nbreak;\n}\n}\n}));\n(cljs.core.PersistentHashSet.createWithCheck \x3d (function (items){\nvar len \x3d items.length;\nvar t \x3d cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY);\nvar n__5593__auto___24976 \x3d len;\nvar i_24977 \x3d (0);\nwhile(true){\nif((i_24977 \x3c n__5593__auto___24976)){\ncljs.core._conj_BANG_(t,(items[i_24977]));\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(t),(i_24977 + (1)))){\n} else {\nthrow (new Error([\x22Duplicate key: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((items[i_24977]))].join(\x27\x27)));\n}\n\nvar G__24979 \x3d (i_24977 + (1));\ni_24977 \x3d G__24979;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core._persistent_BANG_(t);\n}));\n(cljs.core.PersistentHashSet.createAsIfByAssoc \x3d (function (items){\nvar len \x3d items.length;\nvar t \x3d cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY);\nvar n__5593__auto___24980 \x3d len;\nvar i_24981 \x3d (0);\nwhile(true){\nif((i_24981 \x3c n__5593__auto___24980)){\ncljs.core._conj_BANG_(t,(items[i_24981]));\n\nvar G__24982 \x3d (i_24981 + (1));\ni_24981 \x3d G__24982;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn cljs.core._persistent_BANG_(t);\n}));\n(cljs.core.PersistentHashSet.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.ITransientSet}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ITransientCollection}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.TransientHashSet \x3d (function (transient_map){\nthis.transient_map \x3d transient_map;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 136;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 259;\n});\n(cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 \x3d (function (tcoll,o){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\n(self__.transient_map \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(self__.transient_map,o,null));\n\nreturn tcoll__$1;\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn (new cljs.core.PersistentHashSet(null,cljs.core.persistent_BANG_(self__.transient_map),null));\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 \x3d (function (tcoll,v){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\n(self__.transient_map \x3d cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(self__.transient_map,v));\n\nreturn tcoll__$1;\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (tcoll){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn cljs.core.count(self__.transient_map);\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (tcoll,v){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nreturn tcoll__$1.cljs$core$ILookup$_lookup$arity$3(null, v,null);\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (tcoll,v,not_found){\nvar self__ \x3d this;\nvar tcoll__$1 \x3d this;\nif((cljs.core._lookup(self__.transient_map,v,cljs.core.lookup_sentinel) \x3d\x3d\x3d cljs.core.lookup_sentinel)){\nreturn not_found;\n} else {\nreturn v;\n}\n}));\n\n(cljs.core.TransientHashSet.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19360 \x3d (arguments.length - (1));\nswitch (G__19360) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.TransientHashSet.prototype.apply \x3d (function (self__,args19359){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19359)));\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nif((cljs.core._lookup(self__.transient_map,k,cljs.core.lookup_sentinel) \x3d\x3d\x3d cljs.core.lookup_sentinel)){\nreturn null;\n} else {\nreturn k;\n}\n}));\n\n(cljs.core.TransientHashSet.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar tcoll \x3d this;\nif((cljs.core._lookup(self__.transient_map,k,cljs.core.lookup_sentinel) \x3d\x3d\x3d cljs.core.lookup_sentinel)){\nreturn not_found;\n} else {\nreturn k;\n}\n}));\n\n(cljs.core.TransientHashSet.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22transient-map\x22,\x22transient-map\x22,351764893,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.TransientHashSet.cljs$lang$type \x3d true);\n\n(cljs.core.TransientHashSet.cljs$lang$ctorStr \x3d \x22cljs.core/TransientHashSet\x22);\n\n(cljs.core.TransientHashSet.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/TransientHashSet\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/TransientHashSet.\n */\ncljs.core.__GT_TransientHashSet \x3d (function cljs$core$__GT_TransientHashSet(transient_map){\nreturn (new cljs.core.TransientHashSet(transient_map));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IReversible}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ISet}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISorted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.PersistentTreeSet \x3d (function (meta,tree_map,__hash){\nthis.meta \x3d meta;\nthis.tree_map \x3d tree_map;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 417730831;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 8192;\n});\n(cljs.core.PersistentTreeSet.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.keys \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.entries \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_set_entries_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.values \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.es6_iterator(cljs.core.seq(coll));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.has \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.contains_QMARK_(coll,k);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.forEach \x3d (function (f){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar seq__19364 \x3d cljs.core.seq(coll);\nvar chunk__19365 \x3d null;\nvar count__19366 \x3d (0);\nvar i__19367 \x3d (0);\nwhile(true){\nif((i__19367 \x3c count__19366)){\nvar vec__19374 \x3d chunk__19365.cljs$core$IIndexed$_nth$arity$2(null, i__19367);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19374,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19374,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__25010 \x3d seq__19364;\nvar G__25011 \x3d chunk__19365;\nvar G__25012 \x3d count__19366;\nvar G__25013 \x3d (i__19367 + (1));\nseq__19364 \x3d G__25010;\nchunk__19365 \x3d G__25011;\ncount__19366 \x3d G__25012;\ni__19367 \x3d G__25013;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19364);\nif(temp__5804__auto__){\nvar seq__19364__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19364__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19364__$1);\nvar G__25021 \x3d cljs.core.chunk_rest(seq__19364__$1);\nvar G__25022 \x3d c__5525__auto__;\nvar G__25023 \x3d cljs.core.count(c__5525__auto__);\nvar G__25024 \x3d (0);\nseq__19364 \x3d G__25021;\nchunk__19365 \x3d G__25022;\ncount__19366 \x3d G__25023;\ni__19367 \x3d G__25024;\ncontinue;\n} else {\nvar vec__19377 \x3d cljs.core.first(seq__19364__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19377,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19377,(1),null);\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n\n\nvar G__25025 \x3d cljs.core.next(seq__19364__$1);\nvar G__25026 \x3d null;\nvar G__25027 \x3d (0);\nvar G__25028 \x3d (0);\nseq__19364 \x3d G__25025;\nchunk__19365 \x3d G__25026;\ncount__19366 \x3d G__25027;\ni__19367 \x3d G__25028;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (coll,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn coll__$1.cljs$core$ILookup$_lookup$arity$3(null, v,null);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (coll,v,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar n \x3d self__.tree_map.entry_at(v);\nif((!((n \x3d\x3d null)))){\nreturn n.key;\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.PersistentTreeSet(self__.meta,self__.tree_map,self__.__hash));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.count(self__.tree_map);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IReversible$_rseq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((cljs.core.count(self__.tree_map) \x3e (0))){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.key,cljs.core.rseq(self__.tree_map));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_unordered_coll(coll__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (coll,other){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar and__5000__auto__ \x3d cljs.core.set_QMARK_(other);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d (cljs.core.count(coll__$1) \x3d\x3d\x3d cljs.core.count(other));\nif(and__5000__auto____$1){\ntry{return cljs.core.reduce_kv((function (p1__19362_SHARP_,p2__19361_SHARP_){\nvar or__5002__auto__ \x3d cljs.core.contains_QMARK_(other,p2__19361_SHARP_);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.reduced(false);\n}\n}),true,self__.tree_map);\n}catch (e19380){if((e19380 instanceof Error)){\nvar ex \x3d e19380;\nreturn false;\n} else {\nthrow e19380;\n\n}\n}} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentTreeSet(self__.meta,cljs.core._empty(self__.tree_map),(0)));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ISet$_disjoin$arity$2 \x3d (function (coll,v){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentTreeSet(self__.meta,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.tree_map,v),null));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.keys(self__.tree_map);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (coll,new_meta){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn coll__$1;\n} else {\nreturn (new cljs.core.PersistentTreeSet(new_meta,self__.tree_map,self__.__hash));\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (coll,o){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.PersistentTreeSet(self__.meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.tree_map,o,null),null));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19381 \x3d (arguments.length - (1));\nswitch (G__19381) {\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.PersistentTreeSet.prototype.apply \x3d (function (self__,args19363){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19363)));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$2(null, k);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,not_found){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn coll.cljs$core$ILookup$_lookup$arity$3(null, k,not_found);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq$arity$2 \x3d (function (coll,ascending_QMARK_){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.key,cljs.core._sorted_seq(self__.tree_map,ascending_QMARK_));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 \x3d (function (coll,k,ascending_QMARK_){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.key,cljs.core._sorted_seq_from(self__.tree_map,k,ascending_QMARK_));\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_entry_key$arity$2 \x3d (function (coll,entry){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn entry;\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_comparator$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._comparator(self__.tree_map);\n}));\n\n(cljs.core.PersistentTreeSet.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22tree-map\x22,\x22tree-map\x22,1373073049,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.PersistentTreeSet.cljs$lang$type \x3d true);\n\n(cljs.core.PersistentTreeSet.cljs$lang$ctorStr \x3d \x22cljs.core/PersistentTreeSet\x22);\n\n(cljs.core.PersistentTreeSet.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/PersistentTreeSet\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/PersistentTreeSet.\n */\ncljs.core.__GT_PersistentTreeSet \x3d (function cljs$core$__GT_PersistentTreeSet(meta,tree_map,__hash){\nreturn (new cljs.core.PersistentTreeSet(meta,tree_map,__hash));\n});\n\n(cljs.core.PersistentTreeSet.EMPTY \x3d (new cljs.core.PersistentTreeSet(null,cljs.core.PersistentTreeMap.EMPTY,cljs.core.empty_unordered_hash)));\n(cljs.core.PersistentTreeSet.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\ncljs.core.set_from_indexed_seq \x3d (function cljs$core$set_from_indexed_seq(iseq){\nvar arr \x3d iseq.arr;\nvar ret \x3d (function (){var a__5590__auto__ \x3d arr;\nvar l__5591__auto__ \x3d a__5590__auto__.length;\nvar i \x3d (0);\nvar res \x3d cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY);\nwhile(true){\nif((i \x3c l__5591__auto__)){\nvar G__25075 \x3d (i + (1));\nvar G__25076 \x3d cljs.core._conj_BANG_(res,(arr[i]));\ni \x3d G__25075;\nres \x3d G__25076;\ncontinue;\n} else {\nreturn res;\n}\nbreak;\n}\n})();\nreturn ret.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(null, );\n});\n/**\n * Returns a set of the distinct elements of coll.\n */\ncljs.core.set \x3d (function cljs$core$set(coll){\nif(cljs.core.set_QMARK_(coll)){\nreturn cljs.core.with_meta(coll,null);\n} else {\nvar in$ \x3d cljs.core.seq(coll);\nif((in$ \x3d\x3d null)){\nreturn cljs.core.PersistentHashSet.EMPTY;\n} else {\nif((((in$ instanceof cljs.core.IndexedSeq)) \x26\x26 ((in$.i \x3d\x3d\x3d (0))))){\nreturn cljs.core.PersistentHashSet.createAsIfByAssoc(in$.arr);\n} else {\nvar in$__$1 \x3d in$;\nvar out \x3d cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY);\nwhile(true){\nif((!((in$__$1 \x3d\x3d null)))){\nvar G__25079 \x3d cljs.core.next(in$__$1);\nvar G__25080 \x3d cljs.core._conj_BANG_(out,cljs.core._first(in$__$1));\nin$__$1 \x3d G__25079;\nout \x3d G__25080;\ncontinue;\n} else {\nreturn cljs.core.persistent_BANG_(out);\n}\nbreak;\n}\n\n}\n}\n}\n});\n/**\n * Returns a new hash set with supplied keys. Any equal keys are\n * handled as if by repeated uses of conj.\n */\ncljs.core.hash_set \x3d (function cljs$core$hash_set(var_args){\nvar G__19384 \x3d arguments.length;\nswitch (G__19384) {\ncase 0:\nreturn cljs.core.hash_set.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___25085 \x3d arguments.length;\nvar i__5727__auto___25086 \x3d (0);\nwhile(true){\nif((i__5727__auto___25086 \x3c len__5726__auto___25085)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___25086]));\n\nvar G__25088 \x3d (i__5727__auto___25086 + (1));\ni__5727__auto___25086 \x3d G__25088;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((0) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.hash_set.cljs$core$IFn$_invoke$arity$variadic(argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.hash_set.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentHashSet.EMPTY;\n}));\n\n(cljs.core.hash_set.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keys){\nreturn cljs.core.set(keys);\n}));\n\n/** @this {Function} */\n(cljs.core.hash_set.cljs$lang$applyTo \x3d (function (seq19383){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19383));\n}));\n\n(cljs.core.hash_set.cljs$lang$maxFixedArity \x3d (0));\n\n/**\n * Returns a new sorted set with supplied keys.\n */\ncljs.core.sorted_set \x3d (function cljs$core$sorted_set(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25090 \x3d arguments.length;\nvar i__5727__auto___25091 \x3d (0);\nwhile(true){\nif((i__5727__auto___25091 \x3c len__5726__auto___25090)){\nargs__5732__auto__.push((arguments[i__5727__auto___25091]));\n\nvar G__25092 \x3d (i__5727__auto___25091 + (1));\ni__5727__auto___25091 \x3d G__25092;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.sorted_set.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.sorted_set.cljs$core$IFn$_invoke$arity$variadic \x3d (function (keys){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,cljs.core.PersistentTreeSet.EMPTY,keys);\n}));\n\n(cljs.core.sorted_set.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.sorted_set.cljs$lang$applyTo \x3d (function (seq19385){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19385));\n}));\n\n/**\n * Returns a new sorted set with supplied keys, using the supplied comparator.\n */\ncljs.core.sorted_set_by \x3d (function cljs$core$sorted_set_by(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25094 \x3d arguments.length;\nvar i__5727__auto___25095 \x3d (0);\nwhile(true){\nif((i__5727__auto___25095 \x3c len__5726__auto___25094)){\nargs__5732__auto__.push((arguments[i__5727__auto___25095]));\n\nvar G__25096 \x3d (i__5727__auto___25095 + (1));\ni__5727__auto___25095 \x3d G__25096;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.sorted_set_by.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.sorted_set_by.cljs$core$IFn$_invoke$arity$variadic \x3d (function (comparator,keys){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,(new cljs.core.PersistentTreeSet(null,cljs.core.sorted_map_by(comparator),(0))),keys);\n}));\n\n(cljs.core.sorted_set_by.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.sorted_set_by.cljs$lang$applyTo \x3d (function (seq19386){\nvar G__19387 \x3d cljs.core.first(seq19386);\nvar seq19386__$1 \x3d cljs.core.next(seq19386);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19387,seq19386__$1);\n}));\n\n/**\n * Given a map of replacement pairs and a vector/collection, returns a\n * vector/seq with any elements \x3d a key in smap replaced with the\n * corresponding val in smap. Returns a transducer when no collection\n * is provided.\n */\ncljs.core.replace \x3d (function cljs$core$replace(var_args){\nvar G__19391 \x3d arguments.length;\nswitch (G__19391) {\ncase 1:\nreturn cljs.core.replace.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.replace.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.replace.cljs$core$IFn$_invoke$arity$1 \x3d (function (smap){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__19388_SHARP_){\nvar temp__5802__auto__ \x3d cljs.core.find(smap,p1__19388_SHARP_);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar e \x3d temp__5802__auto__;\nreturn cljs.core.val(e);\n} else {\nreturn p1__19388_SHARP_;\n}\n}));\n}));\n\n(cljs.core.replace.cljs$core$IFn$_invoke$arity$2 \x3d (function (smap,coll){\nif(cljs.core.vector_QMARK_(coll)){\nvar n \x3d cljs.core.count(coll);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (v,i){\nvar temp__5802__auto__ \x3d cljs.core.find(smap,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v,i));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar e \x3d temp__5802__auto__;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,i,cljs.core.second(e));\n} else {\nreturn v;\n}\n}),coll,cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,cljs.core.iterate(cljs.core.inc,(0))));\n} else {\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__19389_SHARP_){\nvar temp__5802__auto__ \x3d cljs.core.find(smap,p1__19389_SHARP_);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar e \x3d temp__5802__auto__;\nreturn cljs.core.second(e);\n} else {\nreturn p1__19389_SHARP_;\n}\n}),coll);\n}\n}));\n\n(cljs.core.replace.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a lazy sequence of the elements of coll with duplicates removed.\n * Returns a stateful transducer when no collection is provided.\n */\ncljs.core.distinct \x3d (function cljs$core$distinct(var_args){\nvar G__19393 \x3d arguments.length;\nswitch (G__19393) {\ncase 0:\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.distinct.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (function (rf){\nvar seen \x3d cljs.core.volatile_BANG_(cljs.core.PersistentHashSet.EMPTY);\nreturn (function() {\nvar G__25108 \x3d null;\nvar G__25108__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25108__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__25108__2 \x3d (function (result,input){\nif(cljs.core.contains_QMARK_(cljs.core.deref(seen),input)){\nreturn result;\n} else {\nseen.cljs$core$IVolatile$_vreset_BANG_$arity$2(null, cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen.cljs$core$IDeref$_deref$arity$1(null, ),input));\n\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n}\n});\nG__25108 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25108__0.call(this);\ncase 1:\nreturn G__25108__1.call(this,result);\ncase 2:\nreturn G__25108__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25108.cljs$core$IFn$_invoke$arity$0 \x3d G__25108__0;\nG__25108.cljs$core$IFn$_invoke$arity$1 \x3d G__25108__1;\nG__25108.cljs$core$IFn$_invoke$arity$2 \x3d G__25108__2;\nreturn G__25108;\n})()\n});\n}));\n\n(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nvar step \x3d (function cljs$core$step(xs,seen){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn (function (p__19394,seen__$1){\nwhile(true){\nvar vec__19395 \x3d p__19394;\nvar f \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19395,(0),null);\nvar xs__$1 \x3d vec__19395;\nvar temp__5804__auto__ \x3d cljs.core.seq(xs__$1);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.contains_QMARK_(seen__$1,f)){\nvar G__25112 \x3d cljs.core.rest(s);\nvar G__25113 \x3d seen__$1;\np__19394 \x3d G__25112;\nseen__$1 \x3d G__25113;\ncontinue;\n} else {\nreturn cljs.core.cons(f,cljs$core$step(cljs.core.rest(s),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(seen__$1,f)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n})(xs,seen);\n}),null,null));\n});\nreturn step(coll,cljs.core.PersistentHashSet.EMPTY);\n}));\n\n(cljs.core.distinct.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Return a seq of all but the last item in coll, in linear time\n */\ncljs.core.butlast \x3d (function cljs$core$butlast(s){\nvar ret \x3d cljs.core.PersistentVector.EMPTY;\nvar s__$1 \x3d s;\nwhile(true){\nif(cljs.core.next(s__$1)){\nvar G__25116 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,cljs.core.first(s__$1));\nvar G__25117 \x3d cljs.core.next(s__$1);\nret \x3d G__25116;\ns__$1 \x3d G__25117;\ncontinue;\n} else {\nreturn cljs.core.seq(ret);\n}\nbreak;\n}\n});\n/**\n * Returns the name String of a string, symbol or keyword.\n */\ncljs.core.name \x3d (function cljs$core$name(x){\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition1$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$INamed$))))?true:false):false)){\nreturn x.cljs$core$INamed$_name$arity$1(null, );\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn x;\n} else {\nthrow (new Error([\x22Doesn\x27t support name: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x)].join(\x27\x27)));\n}\n}\n});\n/**\n * Returns a map with the keys mapped to the corresponding vals.\n */\ncljs.core.zipmap \x3d (function cljs$core$zipmap(keys,vals){\nvar map \x3d cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);\nvar ks \x3d cljs.core.seq(keys);\nvar vs \x3d cljs.core.seq(vals);\nwhile(true){\nif(((ks) \x26\x26 (vs))){\nvar G__25120 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(map,cljs.core.first(ks),cljs.core.first(vs));\nvar G__25121 \x3d cljs.core.next(ks);\nvar G__25122 \x3d cljs.core.next(vs);\nmap \x3d G__25120;\nks \x3d G__25121;\nvs \x3d G__25122;\ncontinue;\n} else {\nreturn cljs.core.persistent_BANG_(map);\n}\nbreak;\n}\n});\n/**\n * Returns the x for which (k x), a number, is greatest.\n * \n * If there are multiple such xs, the last one is returned.\n */\ncljs.core.max_key \x3d (function cljs$core$max_key(var_args){\nvar G__19406 \x3d arguments.length;\nswitch (G__19406) {\ncase 2:\nreturn cljs.core.max_key.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.max_key.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___25126 \x3d arguments.length;\nvar i__5727__auto___25127 \x3d (0);\nwhile(true){\nif((i__5727__auto___25127 \x3c len__5726__auto___25126)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___25127]));\n\nvar G__25128 \x3d (i__5727__auto___25127 + (1));\ni__5727__auto___25127 \x3d G__25128;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.max_key.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,x){\nreturn x;\n}));\n\n(cljs.core.max_key.cljs$core$IFn$_invoke$arity$3 \x3d (function (k,x,y){\nif(((k.cljs$core$IFn$_invoke$arity$1 ? k.cljs$core$IFn$_invoke$arity$1(x) : k.call(null, x)) \x3e (k.cljs$core$IFn$_invoke$arity$1 ? k.cljs$core$IFn$_invoke$arity$1(y) : k.call(null, y)))){\nreturn x;\n} else {\nreturn y;\n}\n}));\n\n(cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic \x3d (function (k,x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19399_SHARP_,p2__19400_SHARP_){\nreturn cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(k,p1__19399_SHARP_,p2__19400_SHARP_);\n}),cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(k,x,y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.max_key.cljs$lang$applyTo \x3d (function (seq19402){\nvar G__19403 \x3d cljs.core.first(seq19402);\nvar seq19402__$1 \x3d cljs.core.next(seq19402);\nvar G__19404 \x3d cljs.core.first(seq19402__$1);\nvar seq19402__$2 \x3d cljs.core.next(seq19402__$1);\nvar G__19405 \x3d cljs.core.first(seq19402__$2);\nvar seq19402__$3 \x3d cljs.core.next(seq19402__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19403,G__19404,G__19405,seq19402__$3);\n}));\n\n(cljs.core.max_key.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * Returns the x for which (k x), a number, is least.\n * \n * If there are multiple such xs, the last one is returned.\n */\ncljs.core.min_key \x3d (function cljs$core$min_key(var_args){\nvar G__19414 \x3d arguments.length;\nswitch (G__19414) {\ncase 2:\nreturn cljs.core.min_key.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.min_key.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___25132 \x3d arguments.length;\nvar i__5727__auto___25133 \x3d (0);\nwhile(true){\nif((i__5727__auto___25133 \x3c len__5726__auto___25132)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___25133]));\n\nvar G__25134 \x3d (i__5727__auto___25133 + (1));\ni__5727__auto___25133 \x3d G__25134;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.min_key.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.min_key.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,x){\nreturn x;\n}));\n\n(cljs.core.min_key.cljs$core$IFn$_invoke$arity$3 \x3d (function (k,x,y){\nif(((k.cljs$core$IFn$_invoke$arity$1 ? k.cljs$core$IFn$_invoke$arity$1(x) : k.call(null, x)) \x3c (k.cljs$core$IFn$_invoke$arity$1 ? k.cljs$core$IFn$_invoke$arity$1(y) : k.call(null, y)))){\nreturn x;\n} else {\nreturn y;\n}\n}));\n\n(cljs.core.min_key.cljs$core$IFn$_invoke$arity$variadic \x3d (function (k,x,y,more){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19407_SHARP_,p2__19408_SHARP_){\nreturn cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(k,p1__19407_SHARP_,p2__19408_SHARP_);\n}),cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(k,x,y),more);\n}));\n\n/** @this {Function} */\n(cljs.core.min_key.cljs$lang$applyTo \x3d (function (seq19410){\nvar G__19411 \x3d cljs.core.first(seq19410);\nvar seq19410__$1 \x3d cljs.core.next(seq19410);\nvar G__19412 \x3d cljs.core.first(seq19410__$1);\nvar seq19410__$2 \x3d cljs.core.next(seq19410__$1);\nvar G__19413 \x3d cljs.core.first(seq19410__$2);\nvar seq19410__$3 \x3d cljs.core.next(seq19410__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19411,G__19412,G__19413,seq19410__$3);\n}));\n\n(cljs.core.min_key.cljs$lang$maxFixedArity \x3d (3));\n\n\n/**\n* @constructor\n*/\ncljs.core.ArrayList \x3d (function (arr){\nthis.arr \x3d arr;\n});\n(cljs.core.ArrayList.prototype.add \x3d (function (x){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.arr.push(x);\n}));\n\n(cljs.core.ArrayList.prototype.size \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.arr.length;\n}));\n\n(cljs.core.ArrayList.prototype.clear \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.arr \x3d []);\n}));\n\n(cljs.core.ArrayList.prototype.isEmpty \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.arr.length \x3d\x3d\x3d (0));\n}));\n\n(cljs.core.ArrayList.prototype.toArray \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.arr;\n}));\n\n(cljs.core.ArrayList.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.ArrayList.cljs$lang$type \x3d true);\n\n(cljs.core.ArrayList.cljs$lang$ctorStr \x3d \x22cljs.core/ArrayList\x22);\n\n(cljs.core.ArrayList.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/ArrayList\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/ArrayList.\n */\ncljs.core.__GT_ArrayList \x3d (function cljs$core$__GT_ArrayList(arr){\nreturn (new cljs.core.ArrayList(arr));\n});\n\ncljs.core.array_list \x3d (function cljs$core$array_list(){\nreturn (new cljs.core.ArrayList([]));\n});\n/**\n * Returns a lazy sequence of lists like partition, but may include\n * partitions with fewer than n items at the end. Returns a stateful\n * transducer when no collection is provided.\n */\ncljs.core.partition_all \x3d (function cljs$core$partition_all(var_args){\nvar G__19416 \x3d arguments.length;\nswitch (G__19416) {\ncase 1:\nreturn cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.partition_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nreturn (function (rf){\nvar a \x3d cljs.core.array_list();\nreturn (function() {\nvar G__25148 \x3d null;\nvar G__25148__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25148__1 \x3d (function (result){\nvar result__$1 \x3d (cljs.core.truth_(a.isEmpty())?result:(function (){var v \x3d cljs.core.vec(a.toArray());\na.clear();\n\nreturn cljs.core.unreduced((rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,v) : rf.call(null, result,v)));\n})());\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result__$1) : rf.call(null, result__$1));\n});\nvar G__25148__2 \x3d (function (result,input){\na.add(input);\n\nif((n \x3d\x3d\x3d a.size())){\nvar v \x3d cljs.core.vec(a.toArray());\na.clear();\n\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,v) : rf.call(null, result,v));\n} else {\nreturn result;\n}\n});\nG__25148 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25148__0.call(this);\ncase 1:\nreturn G__25148__1.call(this,result);\ncase 2:\nreturn G__25148__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25148.cljs$core$IFn$_invoke$arity$0 \x3d G__25148__0;\nG__25148.cljs$core$IFn$_invoke$arity$1 \x3d G__25148__1;\nG__25148.cljs$core$IFn$_invoke$arity$2 \x3d G__25148__2;\nreturn G__25148;\n})()\n});\n}));\n\n(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nreturn cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3(n,n,coll);\n}));\n\n(cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,step,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nreturn cljs.core.cons(cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,s),cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3(n,step,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(step,s)));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partition_all.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a vector of [(into [] (take n) coll) (drop n coll)]\n */\ncljs.core.splitv_at \x3d (function cljs$core$splitv_at(n,coll){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),coll),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(n,coll)], null);\n});\n/**\n * Returns a lazy sequence of vectors of n items each, at offsets step\n * apart. If step is not supplied, defaults to n, i.e. the partitions\n * do not overlap. If a pad collection is supplied, use its elements as\n * necessary to complete last partition upto n items. In case there are\n * not enough padding elements, return a partition with less than n items.\n */\ncljs.core.partitionv \x3d (function cljs$core$partitionv(var_args){\nvar G__19418 \x3d arguments.length;\nswitch (G__19418) {\ncase 2:\nreturn cljs.core.partitionv.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.partitionv.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.partitionv.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.partitionv.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nreturn cljs.core.partitionv.cljs$core$IFn$_invoke$arity$3(n,n,coll);\n}));\n\n(cljs.core.partitionv.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,step,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar p \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),s);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(n,cljs.core.count(p))){\nreturn cljs.core.cons(p,cljs.core.partitionv.cljs$core$IFn$_invoke$arity$3(n,step,cljs.core.nthrest(s,step)));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partitionv.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,step,pad,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar p \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),s);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(n,cljs.core.count(p))){\nreturn cljs.core.cons(p,cljs.core.partitionv.cljs$core$IFn$_invoke$arity$4(n,step,pad,cljs.core.nthrest(s,step)));\n} else {\nreturn (new cljs.core.List(null,cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(p,pad)),null,(1),null));\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partitionv.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Returns a lazy sequence of vector partitions, but may include\n * partitions with fewer than n items at the end.\n * Returns a stateful transducer when no collection is provided.\n */\ncljs.core.partitionv_all \x3d (function cljs$core$partitionv_all(var_args){\nvar G__19420 \x3d arguments.length;\nswitch (G__19420) {\ncase 1:\nreturn cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nreturn cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1(n);\n}));\n\n(cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nreturn cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$3(n,n,coll);\n}));\n\n(cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,step,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar seg \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.take.cljs$core$IFn$_invoke$arity$1(n),coll);\nreturn cljs.core.cons(seg,cljs.core.partitionv_all.cljs$core$IFn$_invoke$arity$3(n,step,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(step,s)));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partitionv_all.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a lazy sequence of successive items from coll while\n * (pred item) returns logical true. pred must be free of side-effects.\n * Returns a transducer when no collection is provided.\n */\ncljs.core.take_while \x3d (function cljs$core$take_while(var_args){\nvar G__19422 \x3d arguments.length;\nswitch (G__19422) {\ncase 1:\nreturn cljs.core.take_while.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.take_while.cljs$core$IFn$_invoke$arity$1 \x3d (function (pred){\nreturn (function (rf){\nreturn (function() {\nvar G__25182 \x3d null;\nvar G__25182__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25182__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__25182__2 \x3d (function (result,input){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(input) : pred.call(null, input)))){\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n} else {\nreturn cljs.core.reduced(result);\n}\n});\nG__25182 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25182__0.call(this);\ncase 1:\nreturn G__25182__1.call(this,result);\ncase 2:\nreturn G__25182__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25182.cljs$core$IFn$_invoke$arity$0 \x3d G__25182__0;\nG__25182.cljs$core$IFn$_invoke$arity$1 \x3d G__25182__1;\nG__25182.cljs$core$IFn$_invoke$arity$2 \x3d G__25182__2;\nreturn G__25182;\n})()\n});\n}));\n\n(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nif(cljs.core.truth_((function (){var G__19423 \x3d cljs.core.first(s);\nreturn (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(G__19423) : pred.call(null, G__19423));\n})())){\nreturn cljs.core.cons(cljs.core.first(s),cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(pred,cljs.core.rest(s)));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.take_while.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.core.mk_bound_fn \x3d (function cljs$core$mk_bound_fn(sc,test,key){\nreturn (function (e){\nvar comp \x3d cljs.core._comparator(sc);\nvar G__19424 \x3d (function (){var G__19426 \x3d cljs.core._entry_key(sc,e);\nvar G__19427 \x3d key;\nreturn (comp.cljs$core$IFn$_invoke$arity$2 ? comp.cljs$core$IFn$_invoke$arity$2(G__19426,G__19427) : comp.call(null, G__19426,G__19427));\n})();\nvar G__19425 \x3d (0);\nreturn (test.cljs$core$IFn$_invoke$arity$2 ? test.cljs$core$IFn$_invoke$arity$2(G__19424,G__19425) : test.call(null, G__19424,G__19425));\n});\n});\n/**\n * sc must be a sorted collection, test(s) one of \x3c, \x3c\x3d, \x3e or\n * \x3e\x3d. Returns a seq of those entries with keys ek for\n * which (test (.. sc comparator (compare ek key)) 0) is true\n */\ncljs.core.subseq \x3d (function cljs$core$subseq(var_args){\nvar G__19429 \x3d arguments.length;\nswitch (G__19429) {\ncase 3:\nreturn cljs.core.subseq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn cljs.core.subseq.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.subseq.cljs$core$IFn$_invoke$arity$3 \x3d (function (sc,test,key){\nvar include \x3d cljs.core.mk_bound_fn(sc,test,key);\nif(cljs.core.truth_((function (){var fexpr__19430 \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core._GT_,cljs.core._GT__EQ_]);\nreturn (fexpr__19430.cljs$core$IFn$_invoke$arity$1 ? fexpr__19430.cljs$core$IFn$_invoke$arity$1(test) : fexpr__19430.call(null, test));\n})())){\nvar temp__5804__auto__ \x3d cljs.core._sorted_seq_from(sc,key,true);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar vec__19431 \x3d temp__5804__auto__;\nvar e \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19431,(0),null);\nvar s \x3d vec__19431;\nif(cljs.core.truth_(include(e))){\nreturn s;\n} else {\nreturn cljs.core.next(s);\n}\n} else {\nreturn null;\n}\n} else {\nreturn cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(include,cljs.core._sorted_seq(sc,true));\n}\n}));\n\n(cljs.core.subseq.cljs$core$IFn$_invoke$arity$5 \x3d (function (sc,start_test,start_key,end_test,end_key){\nvar temp__5804__auto__ \x3d cljs.core._sorted_seq_from(sc,start_key,true);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar vec__19434 \x3d temp__5804__auto__;\nvar e \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19434,(0),null);\nvar s \x3d vec__19434;\nreturn cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(cljs.core.mk_bound_fn(sc,end_test,end_key),(cljs.core.truth_(cljs.core.mk_bound_fn(sc,start_test,start_key)(e))?s:cljs.core.next(s)));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.subseq.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * sc must be a sorted collection, test(s) one of \x3c, \x3c\x3d, \x3e or\n * \x3e\x3d. Returns a reverse seq of those entries with keys ek for\n * which (test (.. sc comparator (compare ek key)) 0) is true\n */\ncljs.core.rsubseq \x3d (function cljs$core$rsubseq(var_args){\nvar G__19438 \x3d arguments.length;\nswitch (G__19438) {\ncase 3:\nreturn cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 5:\nreturn cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$3 \x3d (function (sc,test,key){\nvar include \x3d cljs.core.mk_bound_fn(sc,test,key);\nif(cljs.core.truth_((function (){var fexpr__19439 \x3d cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core._LT_,cljs.core._LT__EQ_]);\nreturn (fexpr__19439.cljs$core$IFn$_invoke$arity$1 ? fexpr__19439.cljs$core$IFn$_invoke$arity$1(test) : fexpr__19439.call(null, test));\n})())){\nvar temp__5804__auto__ \x3d cljs.core._sorted_seq_from(sc,key,false);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar vec__19440 \x3d temp__5804__auto__;\nvar e \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19440,(0),null);\nvar s \x3d vec__19440;\nif(cljs.core.truth_(include(e))){\nreturn s;\n} else {\nreturn cljs.core.next(s);\n}\n} else {\nreturn null;\n}\n} else {\nreturn cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(include,cljs.core._sorted_seq(sc,false));\n}\n}));\n\n(cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$5 \x3d (function (sc,start_test,start_key,end_test,end_key){\nvar temp__5804__auto__ \x3d cljs.core._sorted_seq_from(sc,end_key,false);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar vec__19443 \x3d temp__5804__auto__;\nvar e \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19443,(0),null);\nvar s \x3d vec__19443;\nreturn cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(cljs.core.mk_bound_fn(sc,start_test,start_key),(cljs.core.truth_(cljs.core.mk_bound_fn(sc,end_test,end_key)(e))?s:cljs.core.next(s)));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.rsubseq.cljs$lang$maxFixedArity \x3d 5);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.IChunk}\n*/\ncljs.core.IntegerRangeChunk \x3d (function (start,step,count){\nthis.start \x3d start;\nthis.step \x3d step;\nthis.count \x3d count;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 82;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.IntegerRangeChunk.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.count;\n}));\n\n(cljs.core.IntegerRangeChunk.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn self__.start;\n}));\n\n(cljs.core.IntegerRangeChunk.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (coll,i){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (self__.start + (i * self__.step));\n}));\n\n(cljs.core.IntegerRangeChunk.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (coll,i,not_found){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((((i \x3e\x3d (0))) \x26\x26 ((i \x3c self__.count)))){\nreturn (self__.start + (i * self__.step));\n} else {\nreturn not_found;\n}\n}));\n\n(cljs.core.IntegerRangeChunk.prototype.cljs$core$IChunk$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.IntegerRangeChunk.prototype.cljs$core$IChunk$_drop_first$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nif((self__.count \x3c\x3d (1))){\nthrow (new Error(\x22-drop-first of empty chunk\x22));\n} else {\nreturn (new cljs.core.IntegerRangeChunk((self__.start + self__.step),self__.step,(self__.count - (1))));\n}\n}));\n\n(cljs.core.IntegerRangeChunk.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22start\x22,\x22start\x22,1285322546,null),new cljs.core.Symbol(null,\x22step\x22,\x22step\x22,-1365547645,null),new cljs.core.Symbol(null,\x22count\x22,\x22count\x22,-514511684,null)], null);\n}));\n\n(cljs.core.IntegerRangeChunk.cljs$lang$type \x3d true);\n\n(cljs.core.IntegerRangeChunk.cljs$lang$ctorStr \x3d \x22cljs.core/IntegerRangeChunk\x22);\n\n(cljs.core.IntegerRangeChunk.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/IntegerRangeChunk\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/IntegerRangeChunk.\n */\ncljs.core.__GT_IntegerRangeChunk \x3d (function cljs$core$__GT_IntegerRangeChunk(start,step,count){\nreturn (new cljs.core.IntegerRangeChunk(start,step,count));\n});\n\n\n/**\n* @constructor\n*/\ncljs.core.RangeIterator \x3d (function (i,end,step){\nthis.i \x3d i;\nthis.end \x3d end;\nthis.step \x3d step;\n});\n(cljs.core.RangeIterator.prototype.hasNext \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((self__.step \x3e (0))){\nreturn (self__.i \x3c self__.end);\n} else {\nreturn (self__.i \x3e self__.end);\n}\n}));\n\n(cljs.core.RangeIterator.prototype.next \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d self__.i;\n(self__.i \x3d (self__.i + self__.step));\n\nreturn ret;\n}));\n\n(cljs.core.RangeIterator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22i\x22,\x22i\x22,253690212,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null),new cljs.core.Symbol(null,\x22step\x22,\x22step\x22,-1365547645,null)], null);\n}));\n\n(cljs.core.RangeIterator.cljs$lang$type \x3d true);\n\n(cljs.core.RangeIterator.cljs$lang$ctorStr \x3d \x22cljs.core/RangeIterator\x22);\n\n(cljs.core.RangeIterator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/RangeIterator\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/RangeIterator.\n */\ncljs.core.__GT_RangeIterator \x3d (function cljs$core$__GT_RangeIterator(i,end,step){\nreturn (new cljs.core.RangeIterator(i,end,step));\n});\n\n/**\n * Returns exact size of remaining items in an IntegerRange.\n */\ncljs.core.range_count \x3d (function cljs$core$range_count(start,end,step){\nreturn Math.ceil(((end - start) / step));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IDrop}\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IChunkedNext}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IChunkedSeq}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.IntegerRange \x3d (function (meta,start,end,step,cnt,__hash){\nthis.meta \x3d meta;\nthis.start \x3d start;\nthis.end \x3d end;\nthis.step \x3d step;\nthis.cnt \x3d cnt;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32375006;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 402944;\n});\n(cljs.core.IntegerRange.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.IntegerRange.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.IntegerRange.prototype.indexOf \x3d (function() {\nvar G__25201 \x3d null;\nvar G__25201__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__25201__2 \x3d (function (x,start__$1){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start__$1);\n});\nG__25201 \x3d function(x,start__$1){\nswitch(arguments.length){\ncase 1:\nreturn G__25201__1.call(this,x);\ncase 2:\nreturn G__25201__2.call(this,x,start__$1);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25201.cljs$core$IFn$_invoke$arity$1 \x3d G__25201__1;\nG__25201.cljs$core$IFn$_invoke$arity$2 \x3d G__25201__2;\nreturn G__25201;\n})()\n);\n\n(cljs.core.IntegerRange.prototype.lastIndexOf \x3d (function() {\nvar G__25202 \x3d null;\nvar G__25202__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__25202__2 \x3d (function (x,start__$1){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start__$1);\n});\nG__25202 \x3d function(x,start__$1){\nswitch(arguments.length){\ncase 1:\nreturn G__25202__1.call(this,x);\ncase 2:\nreturn G__25202__2.call(this,x,start__$1);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25202.cljs$core$IFn$_invoke$arity$1 \x3d G__25202__1;\nG__25202.cljs$core$IFn$_invoke$arity$2 \x3d G__25202__2;\nreturn G__25202;\n})()\n);\n\n(cljs.core.IntegerRange.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (rng,n){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c rng__$1.cljs$core$ICounted$_count$arity$1(null, ))))){\nreturn (self__.start + (n * self__.step));\n} else {\nif(((((0) \x3c\x3d n)) \x26\x26 ((((self__.start \x3e self__.end)) \x26\x26 ((self__.step \x3d\x3d\x3d (0))))))){\nreturn self__.start;\n} else {\nthrow (new Error(\x22Index out of bounds\x22));\n}\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (rng,n,not_found){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif(((((0) \x3c\x3d n)) \x26\x26 ((n \x3c rng__$1.cljs$core$ICounted$_count$arity$1(null, ))))){\nreturn (self__.start + (n * self__.step));\n} else {\nif(((((0) \x3c\x3d n)) \x26\x26 ((((self__.start \x3e self__.end)) \x26\x26 ((self__.step \x3d\x3d\x3d (0))))))){\nreturn self__.start;\n} else {\nreturn not_found;\n}\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.RangeIterator(self__.start,self__.end,self__.step));\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.IntegerRange(self__.meta,self__.start,self__.end,self__.step,self__.cnt,self__.__hash));\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$INext$_next$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif((self__.step \x3e (0))){\nif(((self__.start + self__.step) \x3c self__.end)){\nreturn (new cljs.core.IntegerRange(null,(self__.start + self__.step),self__.end,self__.step,cljs.core.range_count((self__.start + self__.step),self__.end,self__.step),null));\n} else {\nreturn null;\n}\n} else {\nif(((self__.start + self__.step) \x3e self__.end)){\nreturn (new cljs.core.IntegerRange(null,(self__.start + self__.step),self__.end,self__.step,cljs.core.range_count((self__.start + self__.step),self__.end,self__.step),null));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn self__.cnt;\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(rng__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (rng,other){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.equiv_sequential(rng__$1,other);\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (rng,f){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(rng__$1,f);\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (rng,f,init){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nvar i \x3d self__.start;\nvar ret \x3d init;\nwhile(true){\nif((((self__.step \x3e (0)))?(i \x3c self__.end):(i \x3e self__.end))){\nvar ret__$1 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(ret,i) : f.call(null, ret,i));\nif(cljs.core.reduced_QMARK_(ret__$1)){\nreturn cljs.core.deref(ret__$1);\n} else {\nvar G__25215 \x3d (i + self__.step);\nvar G__25216 \x3d ret__$1;\ni \x3d G__25215;\nret \x3d G__25216;\ncontinue;\n}\n} else {\nreturn ret;\n}\nbreak;\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn self__.start;\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nvar s \x3d rng__$1.cljs$core$INext$_next$arity$1(null, );\nif((s \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn s;\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn rng__$1;\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn (new cljs.core.IntegerRangeChunk(self__.start,self__.step,(function (){var x__5090__auto__ \x3d self__.cnt;\nvar y__5091__auto__ \x3d (32);\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})()));\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif((self__.cnt \x3c\x3d (32))){\nreturn cljs.core.List.EMPTY;\n} else {\nvar start__$1 \x3d (self__.start + (self__.step * (32)));\nif((self__.step \x3e (0))){\nif((self__.end \x3c\x3d start__$1)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn (new cljs.core.IntegerRange(null,start__$1,self__.end,self__.step,cljs.core.range_count(start__$1,self__.end,self__.step),null));\n}\n} else {\nif((self__.step \x3c (0))){\nif((self__.end \x3e\x3d start__$1)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn (new cljs.core.IntegerRange(null,start__$1,self__.end,self__.step,cljs.core.range_count(start__$1,self__.end,self__.step),null));\n}\n} else {\nif((self__.end \x3d\x3d\x3d start__$1)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(start__$1);\n}\n\n}\n}\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (rng,new_meta){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn rng__$1;\n} else {\nreturn (new cljs.core.IntegerRange(new_meta,self__.start,self__.end,self__.step,self__.cnt,self__.__hash));\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (rng,o){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.cons(o,rng__$1);\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IDrop$_drop$arity$2 \x3d (function (rng,n){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif((n \x3e (0))){\nif((n \x3c self__.cnt)){\nreturn (new cljs.core.IntegerRange(null,(self__.start + (self__.step * n)),self__.end,self__.step,(self__.cnt - n),null));\n} else {\nreturn null;\n}\n} else {\nreturn rng__$1;\n}\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.seq(rng__$1.cljs$core$IChunkedSeq$_chunked_rest$arity$1(null, ));\n}));\n\n(cljs.core.IntegerRange.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22start\x22,\x22start\x22,1285322546,null),new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null),new cljs.core.Symbol(null,\x22step\x22,\x22step\x22,-1365547645,null),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.IntegerRange.cljs$lang$type \x3d true);\n\n(cljs.core.IntegerRange.cljs$lang$ctorStr \x3d \x22cljs.core/IntegerRange\x22);\n\n(cljs.core.IntegerRange.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/IntegerRange\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/IntegerRange.\n */\ncljs.core.__GT_IntegerRange \x3d (function cljs$core$__GT_IntegerRange(meta,start,end,step,cnt,__hash){\nreturn (new cljs.core.IntegerRange(meta,start,end,step,cnt,__hash));\n});\n\n(cljs.core.IntegerRange.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.IChunkedNext}\n * @implements {cljs.core.IEmptyableCollection}\n * @implements {cljs.core.ISeq}\n * @implements {cljs.core.INext}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IChunkedSeq}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Range \x3d (function (meta,start,end,step,chunk,chunk_next,__hash){\nthis.meta \x3d meta;\nthis.start \x3d start;\nthis.end \x3d end;\nthis.step \x3d step;\nthis.chunk \x3d chunk;\nthis.chunk_next \x3d chunk_next;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 140800;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32374988;\n});\n(cljs.core.Range.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.Range.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.Range.prototype.indexOf \x3d (function() {\nvar G__25218 \x3d null;\nvar G__25218__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,(0));\n});\nvar G__25218__2 \x3d (function (x,start__$1){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start__$1);\n});\nG__25218 \x3d function(x,start__$1){\nswitch(arguments.length){\ncase 1:\nreturn G__25218__1.call(this,x);\ncase 2:\nreturn G__25218__2.call(this,x,start__$1);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25218.cljs$core$IFn$_invoke$arity$1 \x3d G__25218__1;\nG__25218.cljs$core$IFn$_invoke$arity$2 \x3d G__25218__2;\nreturn G__25218;\n})()\n);\n\n(cljs.core.Range.prototype.lastIndexOf \x3d (function() {\nvar G__25219 \x3d null;\nvar G__25219__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,cljs.core.count(coll));\n});\nvar G__25219__2 \x3d (function (x,start__$1){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll,x,start__$1);\n});\nG__25219 \x3d function(x,start__$1){\nswitch(arguments.length){\ncase 1:\nreturn G__25219__1.call(this,x);\ncase 2:\nreturn G__25219__2.call(this,x,start__$1);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25219.cljs$core$IFn$_invoke$arity$1 \x3d G__25219__1;\nG__25219.cljs$core$IFn$_invoke$arity$2 \x3d G__25219__2;\nreturn G__25219;\n})()\n);\n\n(cljs.core.Range.prototype.forceChunk \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nif((self__.chunk \x3d\x3d null)){\nvar arr \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\nvar val \x3d (function (){var n \x3d (0);\nvar val \x3d self__.start;\nwhile(true){\nif((n \x3c (32))){\n(arr[n] \x3d val);\n\nvar n__$1 \x3d (n + (1));\nvar val__$1 \x3d (val + self__.step);\nif((((self__.step \x3e (0)))?(val__$1 \x3c self__.end):(val__$1 \x3e self__.end))){\nvar G__25220 \x3d n__$1;\nvar G__25221 \x3d val__$1;\nn \x3d G__25220;\nval \x3d G__25221;\ncontinue;\n} else {\nreturn (self__.chunk \x3d cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3(arr,(0),n__$1));\n}\n} else {\nreturn val;\n}\nbreak;\n}\n})();\nif((self__.chunk \x3d\x3d null)){\n(self__.chunk \x3d cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3(arr,(0),(32)));\n\nif((((self__.step \x3e (0)))?(val \x3c self__.end):(val \x3e self__.end))){\nreturn (self__.chunk_next \x3d (new cljs.core.Range(null,val,self__.end,self__.step,null,null,null)));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.RangeIterator(self__.start,self__.end,self__.step));\n}));\n\n(cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn self__.meta;\n}));\n\n(cljs.core.Range.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (new cljs.core.Range(self__.meta,self__.start,self__.end,self__.step,self__.chunk,self__.chunk_next,self__.__hash));\n}));\n\n(cljs.core.Range.prototype.cljs$core$INext$_next$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif((self__.step \x3e (0))){\nif(((self__.start + self__.step) \x3c self__.end)){\nreturn (new cljs.core.Range(null,(self__.start + self__.step),self__.end,self__.step,null,null,null));\n} else {\nreturn null;\n}\n} else {\nif(((self__.start + self__.step) \x3e self__.end)){\nreturn (new cljs.core.Range(null,(self__.start + self__.step),self__.end,self__.step,null,null,null));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d cljs.core.hash_ordered_coll(rng__$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (rng,other){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.equiv_sequential(rng__$1,other);\n}));\n\n(cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.List.EMPTY;\n}));\n\n(cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (rng,f){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(f,rng__$1);\n}));\n\n(cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (rng,f,init){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nvar i \x3d self__.start;\nvar ret \x3d init;\nwhile(true){\nif((((self__.step \x3e (0)))?(i \x3c self__.end):(i \x3e self__.end))){\nvar ret__$1 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(ret,i) : f.call(null, ret,i));\nif(cljs.core.reduced_QMARK_(ret__$1)){\nreturn cljs.core.deref(ret__$1);\n} else {\nvar G__25222 \x3d (i + self__.step);\nvar G__25223 \x3d ret__$1;\ni \x3d G__25222;\nret \x3d G__25223;\ncontinue;\n}\n} else {\nreturn ret;\n}\nbreak;\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn self__.start;\n}));\n\n(cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nvar s \x3d rng__$1.cljs$core$INext$_next$arity$1(null, );\nif((s \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn s;\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn rng__$1;\n}));\n\n(cljs.core.Range.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nrng__$1.forceChunk();\n\nreturn self__.chunk;\n}));\n\n(cljs.core.Range.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nrng__$1.forceChunk();\n\nif((self__.chunk_next \x3d\x3d null)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn self__.chunk_next;\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (rng,new_meta){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nif((new_meta \x3d\x3d\x3d self__.meta)){\nreturn rng__$1;\n} else {\nreturn (new cljs.core.Range(new_meta,self__.start,self__.end,self__.step,self__.chunk,self__.chunk_next,self__.__hash));\n}\n}));\n\n(cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (rng,o){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.cons(o,rng__$1);\n}));\n\n(cljs.core.Range.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 \x3d (function (rng){\nvar self__ \x3d this;\nvar rng__$1 \x3d this;\nreturn cljs.core.seq(rng__$1.cljs$core$IChunkedSeq$_chunked_rest$arity$1(null, ));\n}));\n\n(cljs.core.Range.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null),new cljs.core.Symbol(null,\x22start\x22,\x22start\x22,1285322546,null),new cljs.core.Symbol(null,\x22end\x22,\x22end\x22,1372345569,null),new cljs.core.Symbol(null,\x22step\x22,\x22step\x22,-1365547645,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22chunk\x22,\x22chunk\x22,449371907,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22chunk-next\x22,\x22chunk-next\x22,-547810434,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Range.cljs$lang$type \x3d true);\n\n(cljs.core.Range.cljs$lang$ctorStr \x3d \x22cljs.core/Range\x22);\n\n(cljs.core.Range.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Range\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Range.\n */\ncljs.core.__GT_Range \x3d (function cljs$core$__GT_Range(meta,start,end,step,chunk,chunk_next,__hash){\nreturn (new cljs.core.Range(meta,start,end,step,chunk,chunk_next,__hash));\n});\n\n(cljs.core.Range.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1,\n * and end to infinity.\n */\ncljs.core.range \x3d (function cljs$core$range(var_args){\nvar G__19447 \x3d arguments.length;\nswitch (G__19447) {\ncase 0:\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.range.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$3((0),Number.MAX_VALUE,(1));\n}));\n\n(cljs.core.range.cljs$core$IFn$_invoke$arity$1 \x3d (function (end){\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$3((0),end,(1));\n}));\n\n(cljs.core.range.cljs$core$IFn$_invoke$arity$2 \x3d (function (start,end){\nreturn cljs.core.range.cljs$core$IFn$_invoke$arity$3(start,end,(1));\n}));\n\n(cljs.core.range.cljs$core$IFn$_invoke$arity$3 \x3d (function (start,end,step){\nif((step \x3e (0))){\nif((end \x3c\x3d start)){\nreturn cljs.core.List.EMPTY;\n} else {\nif(((cljs.core.integer_QMARK_(start)) \x26\x26 (((cljs.core.integer_QMARK_(end)) \x26\x26 (cljs.core.integer_QMARK_(step)))))){\nreturn (new cljs.core.IntegerRange(null,start,end,step,cljs.core.range_count(start,end,step),null));\n} else {\nreturn (new cljs.core.Range(null,start,end,step,null,null,null));\n}\n}\n} else {\nif((step \x3c (0))){\nif((end \x3e\x3d start)){\nreturn cljs.core.List.EMPTY;\n} else {\nif(((cljs.core.integer_QMARK_(start)) \x26\x26 (((cljs.core.integer_QMARK_(end)) \x26\x26 (cljs.core.integer_QMARK_(step)))))){\nreturn (new cljs.core.IntegerRange(null,start,end,step,cljs.core.range_count(start,end,step),null));\n} else {\nreturn (new cljs.core.Range(null,start,end,step,null,null,null));\n}\n}\n} else {\nif((end \x3d\x3d\x3d start)){\nreturn cljs.core.List.EMPTY;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(start);\n}\n\n}\n}\n}));\n\n(cljs.core.range.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns a lazy seq of every nth item in coll. Returns a stateful\n * transducer when no collection is provided.\n */\ncljs.core.take_nth \x3d (function cljs$core$take_nth(var_args){\nvar G__19449 \x3d arguments.length;\nswitch (G__19449) {\ncase 1:\nreturn cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nif(typeof n \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? n)\x22));\n}\n\nreturn (function (rf){\nvar ia \x3d cljs.core.volatile_BANG_((-1));\nreturn (function() {\nvar G__25234 \x3d null;\nvar G__25234__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25234__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__25234__2 \x3d (function (result,input){\nvar i \x3d ia.cljs$core$IVolatile$_vreset_BANG_$arity$2(null, (ia.cljs$core$IDeref$_deref$arity$1(null, ) + (1)));\nif((cljs.core.rem(i,n) \x3d\x3d\x3d (0))){\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n} else {\nreturn result;\n}\n});\nG__25234 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25234__0.call(this);\ncase 1:\nreturn G__25234__1.call(this,result);\ncase 2:\nreturn G__25234__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25234.cljs$core$IFn$_invoke$arity$0 \x3d G__25234__0;\nG__25234.cljs$core$IFn$_invoke$arity$1 \x3d G__25234__1;\nG__25234.cljs$core$IFn$_invoke$arity$2 \x3d G__25234__2;\nreturn G__25234;\n})()\n});\n}));\n\n(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nif(typeof n \x3d\x3d\x3d \x27number\x27){\n} else {\nthrow (new Error(\x22Assert failed: (number? n)\x22));\n}\n\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nreturn cljs.core.cons(cljs.core.first(s),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(n,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(n,s)));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.take_nth.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a vector of [(take-while pred coll) (drop-while pred coll)]\n */\ncljs.core.split_with \x3d (function cljs$core$split_with(pred,coll){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(pred,coll),cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(pred,coll)], null);\n});\n/**\n * Applies f to each value in coll, splitting it each time f returns a\n * new value. Returns a lazy seq of partitions. Returns a stateful\n * transducer when no collection is provided.\n */\ncljs.core.partition_by \x3d (function cljs$core$partition_by(var_args){\nvar G__19452 \x3d arguments.length;\nswitch (G__19452) {\ncase 1:\nreturn cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (function (rf){\nvar a \x3d cljs.core.array_list();\nvar pa \x3d cljs.core.volatile_BANG_(new cljs.core.Keyword(\x22cljs.core\x22,\x22none\x22,\x22cljs.core/none\x22,926646439));\nreturn (function() {\nvar G__25241 \x3d null;\nvar G__25241__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25241__1 \x3d (function (result){\nvar result__$1 \x3d (cljs.core.truth_(a.isEmpty())?result:(function (){var v \x3d cljs.core.vec(a.toArray());\na.clear();\n\nreturn cljs.core.unreduced((rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,v) : rf.call(null, result,v)));\n})());\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result__$1) : rf.call(null, result__$1));\n});\nvar G__25241__2 \x3d (function (result,input){\nvar pval \x3d cljs.core.deref(pa);\nvar val \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(input) : f.call(null, input));\ncljs.core.vreset_BANG_(pa,val);\n\nif(((cljs.core.keyword_identical_QMARK_(pval,new cljs.core.Keyword(\x22cljs.core\x22,\x22none\x22,\x22cljs.core/none\x22,926646439))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(val,pval)))){\na.add(input);\n\nreturn result;\n} else {\nvar v \x3d cljs.core.vec(a.toArray());\na.clear();\n\nvar ret \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,v) : rf.call(null, result,v));\nif(cljs.core.reduced_QMARK_(ret)){\n} else {\na.add(input);\n}\n\nreturn ret;\n}\n});\nG__25241 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25241__0.call(this);\ncase 1:\nreturn G__25241__1.call(this,result);\ncase 2:\nreturn G__25241__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25241.cljs$core$IFn$_invoke$arity$0 \x3d G__25241__0;\nG__25241.cljs$core$IFn$_invoke$arity$1 \x3d G__25241__1;\nG__25241.cljs$core$IFn$_invoke$arity$2 \x3d G__25241__2;\nreturn G__25241;\n})()\n});\n}));\n\n(cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar fst \x3d cljs.core.first(s);\nvar fv \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(fst) : f.call(null, fst));\nvar run \x3d cljs.core.cons(fst,cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((function (p1__19450_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(fv,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(p1__19450_SHARP_) : f.call(null, p1__19450_SHARP_)));\n}),cljs.core.next(s)));\nreturn cljs.core.cons(run,cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(f,(new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(run),s);\n}),null,null))));\n} else {\nreturn null;\n}\n}),null,null));\n}));\n\n(cljs.core.partition_by.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a map from distinct items in coll to the number of times\n * they appear.\n */\ncljs.core.frequencies \x3d (function cljs$core$frequencies(coll){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (counts,x){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(counts,x,(cljs.core.get.cljs$core$IFn$_invoke$arity$3(counts,x,(0)) + (1)));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),coll));\n});\n/**\n * Returns a lazy seq of the intermediate values of the reduction (as\n * per reduce) of coll by f, starting with init.\n */\ncljs.core.reductions \x3d (function cljs$core$reductions(var_args){\nvar G__19454 \x3d arguments.length;\nswitch (G__19454) {\ncase 2:\nreturn cljs.core.reductions.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.reductions.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.reductions.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,coll){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar temp__5802__auto__ \x3d cljs.core.seq(coll);\nif(temp__5802__auto__){\nvar s \x3d temp__5802__auto__;\nreturn cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(f,cljs.core.first(s),cljs.core.rest(s));\n} else {\nreturn (new cljs.core.List(null,(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, )),null,(1),null));\n}\n}),null,null));\n}));\n\n(cljs.core.reductions.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,init,coll){\nif(cljs.core.reduced_QMARK_(init)){\nreturn (new cljs.core.List(null,cljs.core.deref(init),null,(1),null));\n} else {\nreturn cljs.core.cons(init,(new cljs.core.LazySeq(null,(function (){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nreturn cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(f,(function (){var G__19455 \x3d init;\nvar G__19456 \x3d cljs.core.first(s);\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__19455,G__19456) : f.call(null, G__19455,G__19456));\n})(),cljs.core.rest(s));\n} else {\nreturn null;\n}\n}),null,null)));\n}\n}));\n\n(cljs.core.reductions.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Takes a set of functions and returns a fn that is the juxtaposition\n * of those fns. The returned fn takes a variable number of args, and\n * returns a vector containing the result of applying each fn to the\n * args (left-to-right).\n * ((juxt a b c) x) \x3d\x3e [(a x) (b x) (c x)]\n */\ncljs.core.juxt \x3d (function cljs$core$juxt(var_args){\nvar G__19472 \x3d arguments.length;\nswitch (G__19472) {\ncase 1:\nreturn cljs.core.juxt.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.juxt.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.juxt.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___25261 \x3d arguments.length;\nvar i__5727__auto___25262 \x3d (0);\nwhile(true){\nif((i__5727__auto___25262 \x3c len__5726__auto___25261)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___25262]));\n\nvar G__25263 \x3d (i__5727__auto___25262 + (1));\ni__5727__auto___25262 \x3d G__25263;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((3) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.juxt.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.juxt.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn (function() {\nvar G__25267 \x3d null;\nvar G__25267__0 \x3d (function (){\nreturn (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ))],null));\n});\nvar G__25267__1 \x3d (function (x){\nreturn (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null, x))],null));\n});\nvar G__25267__2 \x3d (function (x,y){\nreturn (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null, x,y))],null));\n});\nvar G__25267__3 \x3d (function (x,y,z){\nreturn (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(x,y,z) : f.call(null, x,y,z))],null));\n});\nvar G__25267__4 \x3d (function() { \nvar G__25272__delegate \x3d function (x,y,z,args){\nreturn (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,x,y,z,args)],null));\n};\nvar G__25272 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25274__i \x3d 0, G__25274__a \x3d new Array(arguments.length - 3);\nwhile (G__25274__i \x3c G__25274__a.length) {G__25274__a[G__25274__i] \x3d arguments[G__25274__i + 3]; ++G__25274__i;}\n args \x3d new cljs.core.IndexedSeq(G__25274__a,0,null);\n} \nreturn G__25272__delegate.call(this,x,y,z,args);};\nG__25272.cljs$lang$maxFixedArity \x3d 3;\nG__25272.cljs$lang$applyTo \x3d (function (arglist__25281){\nvar x \x3d cljs.core.first(arglist__25281);\narglist__25281 \x3d cljs.core.next(arglist__25281);\nvar y \x3d cljs.core.first(arglist__25281);\narglist__25281 \x3d cljs.core.next(arglist__25281);\nvar z \x3d cljs.core.first(arglist__25281);\nvar args \x3d cljs.core.rest(arglist__25281);\nreturn G__25272__delegate(x,y,z,args);\n});\nG__25272.cljs$core$IFn$_invoke$arity$variadic \x3d G__25272__delegate;\nreturn G__25272;\n})()\n;\nG__25267 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__25267__0.call(this);\ncase 1:\nreturn G__25267__1.call(this,x);\ncase 2:\nreturn G__25267__2.call(this,x,y);\ncase 3:\nreturn G__25267__3.call(this,x,y,z);\ndefault:\nvar G__25282 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25283__i \x3d 0, G__25283__a \x3d new Array(arguments.length - 3);\nwhile (G__25283__i \x3c G__25283__a.length) {G__25283__a[G__25283__i] \x3d arguments[G__25283__i + 3]; ++G__25283__i;}\nG__25282 \x3d new cljs.core.IndexedSeq(G__25283__a,0,null);\n}\nreturn G__25267__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__25282);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25267.cljs$lang$maxFixedArity \x3d 3;\nG__25267.cljs$lang$applyTo \x3d G__25267__4.cljs$lang$applyTo;\nG__25267.cljs$core$IFn$_invoke$arity$0 \x3d G__25267__0;\nG__25267.cljs$core$IFn$_invoke$arity$1 \x3d G__25267__1;\nG__25267.cljs$core$IFn$_invoke$arity$2 \x3d G__25267__2;\nG__25267.cljs$core$IFn$_invoke$arity$3 \x3d G__25267__3;\nG__25267.cljs$core$IFn$_invoke$arity$variadic \x3d G__25267__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__25267;\n})()\n}));\n\n(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,g){\nreturn (function() {\nvar G__25284 \x3d null;\nvar G__25284__0 \x3d (function (){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, )),(g.cljs$core$IFn$_invoke$arity$0 ? g.cljs$core$IFn$_invoke$arity$0() : g.call(null, ))],null));\n});\nvar G__25284__1 \x3d (function (x){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null, x)),(g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(x) : g.call(null, x))],null));\n});\nvar G__25284__2 \x3d (function (x,y){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null, x,y)),(g.cljs$core$IFn$_invoke$arity$2 ? g.cljs$core$IFn$_invoke$arity$2(x,y) : g.call(null, x,y))],null));\n});\nvar G__25284__3 \x3d (function (x,y,z){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(x,y,z) : f.call(null, x,y,z)),(g.cljs$core$IFn$_invoke$arity$3 ? g.cljs$core$IFn$_invoke$arity$3(x,y,z) : g.call(null, x,y,z))],null));\n});\nvar G__25284__4 \x3d (function() { \nvar G__25286__delegate \x3d function (x,y,z,args){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,x,y,z,args),cljs.core.apply.cljs$core$IFn$_invoke$arity$5(g,x,y,z,args)],null));\n};\nvar G__25286 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25287__i \x3d 0, G__25287__a \x3d new Array(arguments.length - 3);\nwhile (G__25287__i \x3c G__25287__a.length) {G__25287__a[G__25287__i] \x3d arguments[G__25287__i + 3]; ++G__25287__i;}\n args \x3d new cljs.core.IndexedSeq(G__25287__a,0,null);\n} \nreturn G__25286__delegate.call(this,x,y,z,args);};\nG__25286.cljs$lang$maxFixedArity \x3d 3;\nG__25286.cljs$lang$applyTo \x3d (function (arglist__25288){\nvar x \x3d cljs.core.first(arglist__25288);\narglist__25288 \x3d cljs.core.next(arglist__25288);\nvar y \x3d cljs.core.first(arglist__25288);\narglist__25288 \x3d cljs.core.next(arglist__25288);\nvar z \x3d cljs.core.first(arglist__25288);\nvar args \x3d cljs.core.rest(arglist__25288);\nreturn G__25286__delegate(x,y,z,args);\n});\nG__25286.cljs$core$IFn$_invoke$arity$variadic \x3d G__25286__delegate;\nreturn G__25286;\n})()\n;\nG__25284 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__25284__0.call(this);\ncase 1:\nreturn G__25284__1.call(this,x);\ncase 2:\nreturn G__25284__2.call(this,x,y);\ncase 3:\nreturn G__25284__3.call(this,x,y,z);\ndefault:\nvar G__25289 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25290__i \x3d 0, G__25290__a \x3d new Array(arguments.length - 3);\nwhile (G__25290__i \x3c G__25290__a.length) {G__25290__a[G__25290__i] \x3d arguments[G__25290__i + 3]; ++G__25290__i;}\nG__25289 \x3d new cljs.core.IndexedSeq(G__25290__a,0,null);\n}\nreturn G__25284__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__25289);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25284.cljs$lang$maxFixedArity \x3d 3;\nG__25284.cljs$lang$applyTo \x3d G__25284__4.cljs$lang$applyTo;\nG__25284.cljs$core$IFn$_invoke$arity$0 \x3d G__25284__0;\nG__25284.cljs$core$IFn$_invoke$arity$1 \x3d G__25284__1;\nG__25284.cljs$core$IFn$_invoke$arity$2 \x3d G__25284__2;\nG__25284.cljs$core$IFn$_invoke$arity$3 \x3d G__25284__3;\nG__25284.cljs$core$IFn$_invoke$arity$variadic \x3d G__25284__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__25284;\n})()\n}));\n\n(cljs.core.juxt.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,g,h){\nreturn (function() {\nvar G__25291 \x3d null;\nvar G__25291__0 \x3d (function (){\nreturn (new cljs.core.PersistentVector(null,3,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, )),(g.cljs$core$IFn$_invoke$arity$0 ? g.cljs$core$IFn$_invoke$arity$0() : g.call(null, )),(h.cljs$core$IFn$_invoke$arity$0 ? h.cljs$core$IFn$_invoke$arity$0() : h.call(null, ))],null));\n});\nvar G__25291__1 \x3d (function (x){\nreturn (new cljs.core.PersistentVector(null,3,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null, x)),(g.cljs$core$IFn$_invoke$arity$1 ? g.cljs$core$IFn$_invoke$arity$1(x) : g.call(null, x)),(h.cljs$core$IFn$_invoke$arity$1 ? h.cljs$core$IFn$_invoke$arity$1(x) : h.call(null, x))],null));\n});\nvar G__25291__2 \x3d (function (x,y){\nreturn (new cljs.core.PersistentVector(null,3,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(x,y) : f.call(null, x,y)),(g.cljs$core$IFn$_invoke$arity$2 ? g.cljs$core$IFn$_invoke$arity$2(x,y) : g.call(null, x,y)),(h.cljs$core$IFn$_invoke$arity$2 ? h.cljs$core$IFn$_invoke$arity$2(x,y) : h.call(null, x,y))],null));\n});\nvar G__25291__3 \x3d (function (x,y,z){\nreturn (new cljs.core.PersistentVector(null,3,(5),cljs.core.PersistentVector.EMPTY_NODE,[(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(x,y,z) : f.call(null, x,y,z)),(g.cljs$core$IFn$_invoke$arity$3 ? g.cljs$core$IFn$_invoke$arity$3(x,y,z) : g.call(null, x,y,z)),(h.cljs$core$IFn$_invoke$arity$3 ? h.cljs$core$IFn$_invoke$arity$3(x,y,z) : h.call(null, x,y,z))],null));\n});\nvar G__25291__4 \x3d (function() { \nvar G__25294__delegate \x3d function (x,y,z,args){\nreturn (new cljs.core.PersistentVector(null,3,(5),cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,x,y,z,args),cljs.core.apply.cljs$core$IFn$_invoke$arity$5(g,x,y,z,args),cljs.core.apply.cljs$core$IFn$_invoke$arity$5(h,x,y,z,args)],null));\n};\nvar G__25294 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25298__i \x3d 0, G__25298__a \x3d new Array(arguments.length - 3);\nwhile (G__25298__i \x3c G__25298__a.length) {G__25298__a[G__25298__i] \x3d arguments[G__25298__i + 3]; ++G__25298__i;}\n args \x3d new cljs.core.IndexedSeq(G__25298__a,0,null);\n} \nreturn G__25294__delegate.call(this,x,y,z,args);};\nG__25294.cljs$lang$maxFixedArity \x3d 3;\nG__25294.cljs$lang$applyTo \x3d (function (arglist__25299){\nvar x \x3d cljs.core.first(arglist__25299);\narglist__25299 \x3d cljs.core.next(arglist__25299);\nvar y \x3d cljs.core.first(arglist__25299);\narglist__25299 \x3d cljs.core.next(arglist__25299);\nvar z \x3d cljs.core.first(arglist__25299);\nvar args \x3d cljs.core.rest(arglist__25299);\nreturn G__25294__delegate(x,y,z,args);\n});\nG__25294.cljs$core$IFn$_invoke$arity$variadic \x3d G__25294__delegate;\nreturn G__25294;\n})()\n;\nG__25291 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__25291__0.call(this);\ncase 1:\nreturn G__25291__1.call(this,x);\ncase 2:\nreturn G__25291__2.call(this,x,y);\ncase 3:\nreturn G__25291__3.call(this,x,y,z);\ndefault:\nvar G__25302 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25303__i \x3d 0, G__25303__a \x3d new Array(arguments.length - 3);\nwhile (G__25303__i \x3c G__25303__a.length) {G__25303__a[G__25303__i] \x3d arguments[G__25303__i + 3]; ++G__25303__i;}\nG__25302 \x3d new cljs.core.IndexedSeq(G__25303__a,0,null);\n}\nreturn G__25291__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__25302);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25291.cljs$lang$maxFixedArity \x3d 3;\nG__25291.cljs$lang$applyTo \x3d G__25291__4.cljs$lang$applyTo;\nG__25291.cljs$core$IFn$_invoke$arity$0 \x3d G__25291__0;\nG__25291.cljs$core$IFn$_invoke$arity$1 \x3d G__25291__1;\nG__25291.cljs$core$IFn$_invoke$arity$2 \x3d G__25291__2;\nG__25291.cljs$core$IFn$_invoke$arity$3 \x3d G__25291__3;\nG__25291.cljs$core$IFn$_invoke$arity$variadic \x3d G__25291__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__25291;\n})()\n}));\n\n(cljs.core.juxt.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,g,h,fs){\nvar fs__$1 \x3d cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(f,g,h,fs);\nreturn (function() {\nvar G__25304 \x3d null;\nvar G__25304__0 \x3d (function (){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19457_SHARP_,p2__19458_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19457_SHARP_,(p2__19458_SHARP_.cljs$core$IFn$_invoke$arity$0 ? p2__19458_SHARP_.cljs$core$IFn$_invoke$arity$0() : p2__19458_SHARP_.call(null, )));\n}),cljs.core.PersistentVector.EMPTY,fs__$1);\n});\nvar G__25304__1 \x3d (function (x){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19459_SHARP_,p2__19460_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19459_SHARP_,(p2__19460_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p2__19460_SHARP_.cljs$core$IFn$_invoke$arity$1(x) : p2__19460_SHARP_.call(null, x)));\n}),cljs.core.PersistentVector.EMPTY,fs__$1);\n});\nvar G__25304__2 \x3d (function (x,y){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19461_SHARP_,p2__19462_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19461_SHARP_,(p2__19462_SHARP_.cljs$core$IFn$_invoke$arity$2 ? p2__19462_SHARP_.cljs$core$IFn$_invoke$arity$2(x,y) : p2__19462_SHARP_.call(null, x,y)));\n}),cljs.core.PersistentVector.EMPTY,fs__$1);\n});\nvar G__25304__3 \x3d (function (x,y,z){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19463_SHARP_,p2__19464_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19463_SHARP_,(p2__19464_SHARP_.cljs$core$IFn$_invoke$arity$3 ? p2__19464_SHARP_.cljs$core$IFn$_invoke$arity$3(x,y,z) : p2__19464_SHARP_.call(null, x,y,z)));\n}),cljs.core.PersistentVector.EMPTY,fs__$1);\n});\nvar G__25304__4 \x3d (function() { \nvar G__25305__delegate \x3d function (x,y,z,args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19465_SHARP_,p2__19466_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19465_SHARP_,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(p2__19466_SHARP_,x,y,z,args));\n}),cljs.core.PersistentVector.EMPTY,fs__$1);\n};\nvar G__25305 \x3d function (x,y,z,var_args){\nvar args \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25306__i \x3d 0, G__25306__a \x3d new Array(arguments.length - 3);\nwhile (G__25306__i \x3c G__25306__a.length) {G__25306__a[G__25306__i] \x3d arguments[G__25306__i + 3]; ++G__25306__i;}\n args \x3d new cljs.core.IndexedSeq(G__25306__a,0,null);\n} \nreturn G__25305__delegate.call(this,x,y,z,args);};\nG__25305.cljs$lang$maxFixedArity \x3d 3;\nG__25305.cljs$lang$applyTo \x3d (function (arglist__25307){\nvar x \x3d cljs.core.first(arglist__25307);\narglist__25307 \x3d cljs.core.next(arglist__25307);\nvar y \x3d cljs.core.first(arglist__25307);\narglist__25307 \x3d cljs.core.next(arglist__25307);\nvar z \x3d cljs.core.first(arglist__25307);\nvar args \x3d cljs.core.rest(arglist__25307);\nreturn G__25305__delegate(x,y,z,args);\n});\nG__25305.cljs$core$IFn$_invoke$arity$variadic \x3d G__25305__delegate;\nreturn G__25305;\n})()\n;\nG__25304 \x3d function(x,y,z,var_args){\nvar args \x3d var_args;\nswitch(arguments.length){\ncase 0:\nreturn G__25304__0.call(this);\ncase 1:\nreturn G__25304__1.call(this,x);\ncase 2:\nreturn G__25304__2.call(this,x,y);\ncase 3:\nreturn G__25304__3.call(this,x,y,z);\ndefault:\nvar G__25309 \x3d null;\nif (arguments.length \x3e 3) {\nvar G__25310__i \x3d 0, G__25310__a \x3d new Array(arguments.length - 3);\nwhile (G__25310__i \x3c G__25310__a.length) {G__25310__a[G__25310__i] \x3d arguments[G__25310__i + 3]; ++G__25310__i;}\nG__25309 \x3d new cljs.core.IndexedSeq(G__25310__a,0,null);\n}\nreturn G__25304__4.cljs$core$IFn$_invoke$arity$variadic(x,y,z, G__25309);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25304.cljs$lang$maxFixedArity \x3d 3;\nG__25304.cljs$lang$applyTo \x3d G__25304__4.cljs$lang$applyTo;\nG__25304.cljs$core$IFn$_invoke$arity$0 \x3d G__25304__0;\nG__25304.cljs$core$IFn$_invoke$arity$1 \x3d G__25304__1;\nG__25304.cljs$core$IFn$_invoke$arity$2 \x3d G__25304__2;\nG__25304.cljs$core$IFn$_invoke$arity$3 \x3d G__25304__3;\nG__25304.cljs$core$IFn$_invoke$arity$variadic \x3d G__25304__4.cljs$core$IFn$_invoke$arity$variadic;\nreturn G__25304;\n})()\n}));\n\n/** @this {Function} */\n(cljs.core.juxt.cljs$lang$applyTo \x3d (function (seq19468){\nvar G__19469 \x3d cljs.core.first(seq19468);\nvar seq19468__$1 \x3d cljs.core.next(seq19468);\nvar G__19470 \x3d cljs.core.first(seq19468__$1);\nvar seq19468__$2 \x3d cljs.core.next(seq19468__$1);\nvar G__19471 \x3d cljs.core.first(seq19468__$2);\nvar seq19468__$3 \x3d cljs.core.next(seq19468__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19469,G__19470,G__19471,seq19468__$3);\n}));\n\n(cljs.core.juxt.cljs$lang$maxFixedArity \x3d (3));\n\n/**\n * When lazy sequences are produced via functions that have side\n * effects, any effects other than those needed to produce the first\n * element in the seq do not occur until the seq is consumed. dorun can\n * be used to force any effects. Walks through the successive nexts of\n * the seq, does not retain the head and returns nil.\n */\ncljs.core.dorun \x3d (function cljs$core$dorun(var_args){\nvar G__19474 \x3d arguments.length;\nswitch (G__19474) {\ncase 1:\nreturn cljs.core.dorun.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.dorun.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.dorun.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(coll);\nif(temp__5804__auto__){\nvar s \x3d temp__5804__auto__;\nvar G__25315 \x3d cljs.core.next(s);\ncoll \x3d G__25315;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(cljs.core.dorun.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\nwhile(true){\nif(((cljs.core.seq(coll)) \x26\x26 ((n \x3e (0))))){\nvar G__25316 \x3d (n - (1));\nvar G__25317 \x3d cljs.core.next(coll);\nn \x3d G__25316;\ncoll \x3d G__25317;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(cljs.core.dorun.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * When lazy sequences are produced via functions that have side\n * effects, any effects other than those needed to produce the first\n * element in the seq do not occur until the seq is consumed. doall can\n * be used to force any effects. Walks through the successive nexts of\n * the seq, retains the head and returns it, thus causing the entire\n * seq to reside in memory at one time.\n */\ncljs.core.doall \x3d (function cljs$core$doall(var_args){\nvar G__19476 \x3d arguments.length;\nswitch (G__19476) {\ncase 1:\nreturn cljs.core.doall.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.doall.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.doall.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\ncljs.core.dorun.cljs$core$IFn$_invoke$arity$1(coll);\n\nreturn coll;\n}));\n\n(cljs.core.doall.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,coll){\ncljs.core.dorun.cljs$core$IFn$_invoke$arity$2(n,coll);\n\nreturn coll;\n}));\n\n(cljs.core.doall.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns true if x is a JavaScript RegExp instance.\n */\ncljs.core.regexp_QMARK_ \x3d (function cljs$core$regexp_QMARK_(x){\nreturn (x instanceof RegExp);\n});\n/**\n * Returns the result of (re-find re s) if re fully matches s.\n */\ncljs.core.re_matches \x3d (function cljs$core$re_matches(re,s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nvar matches \x3d re.exec(s);\nif((((!((matches \x3d\x3d null)))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((matches[(0)]),s)))){\nif((((matches).length) \x3d\x3d\x3d (1))){\nreturn (matches[(0)]);\n} else {\nreturn cljs.core.vec(matches);\n}\n} else {\nreturn null;\n}\n} else {\nthrow (new TypeError(\x22re-matches must match against a string.\x22));\n}\n});\n/**\n * Returns the first regex match, if any, of s to re, using\n * re.exec(s). Returns a vector, containing first the matching\n * substring, then any capturing groups if the regular expression contains\n * capturing groups.\n */\ncljs.core.re_find \x3d (function cljs$core$re_find(re,s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nvar matches \x3d re.exec(s);\nif((matches \x3d\x3d null)){\nreturn null;\n} else {\nif((((matches).length) \x3d\x3d\x3d (1))){\nreturn (matches[(0)]);\n} else {\nreturn cljs.core.vec(matches);\n}\n}\n} else {\nthrow (new TypeError(\x22re-find must match against a string.\x22));\n}\n});\ncljs.core.re_seq_STAR_ \x3d (function cljs$core$re_seq_STAR_(re,s){\nvar temp__5808__auto__ \x3d re.exec(s);\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar matches \x3d temp__5808__auto__;\nvar match_str \x3d (matches[(0)]);\nvar match_vals \x3d (((matches.length \x3d\x3d\x3d (1)))?match_str:cljs.core.vec(matches));\nreturn cljs.core.cons(match_vals,(new cljs.core.LazySeq(null,(function (){\nvar post_idx \x3d (matches.index + (function (){var x__5087__auto__ \x3d (1);\nvar y__5088__auto__ \x3d match_str.length;\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})());\nif((post_idx \x3c\x3d s.length)){\nvar G__19477 \x3d re;\nvar G__19478 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,post_idx);\nreturn (cljs.core.re_seq_STAR_.cljs$core$IFn$_invoke$arity$2 ? cljs.core.re_seq_STAR_.cljs$core$IFn$_invoke$arity$2(G__19477,G__19478) : cljs.core.re_seq_STAR_.call(null, G__19477,G__19478));\n} else {\nreturn null;\n}\n}),null,null)));\n}\n});\n/**\n * Returns a lazy sequence of successive matches of re in s.\n */\ncljs.core.re_seq \x3d (function cljs$core$re_seq(re,s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.re_seq_STAR_(re,s);\n} else {\nthrow (new TypeError(\x22re-seq must match against a string.\x22));\n}\n});\n/**\n * Returns an instance of RegExp which has compiled the provided string.\n */\ncljs.core.re_pattern \x3d (function cljs$core$re_pattern(s){\nif((s instanceof RegExp)){\nreturn s;\n} else {\nvar vec__19479 \x3d cljs.core.re_find(/^\\(\\?([idmsux]*)\\)/,s);\nvar prefix \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19479,(0),null);\nvar flags \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19479,(1),null);\nvar pattern \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(((prefix \x3d\x3d null))?(0):((prefix).length)));\nreturn (new RegExp(pattern,(function (){var or__5002__auto__ \x3d flags;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn \x22\x22;\n}\n})()));\n}\n});\ncljs.core.pr_sequential_writer \x3d (function cljs$core$pr_sequential_writer(writer,print_one,begin,sep,end,opts,coll){\nvar _STAR_print_level_STAR__orig_val__19482 \x3d cljs.core._STAR_print_level_STAR_;\nvar _STAR_print_level_STAR__temp_val__19483 \x3d (((cljs.core._STAR_print_level_STAR_ \x3d\x3d null))?null:(cljs.core._STAR_print_level_STAR_ - (1)));\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__temp_val__19483);\n\ntry{if((((!((cljs.core._STAR_print_level_STAR_ \x3d\x3d null)))) \x26\x26 ((cljs.core._STAR_print_level_STAR_ \x3c (0))))){\nreturn cljs.core._write(writer,\x22#\x22);\n} else {\ncljs.core._write(writer,begin);\n\nif((new cljs.core.Keyword(null,\x22print-length\x22,\x22print-length\x22,1931866356).cljs$core$IFn$_invoke$arity$1(opts) \x3d\x3d\x3d (0))){\nif(cljs.core.seq(coll)){\ncljs.core._write(writer,(function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22more-marker\x22,\x22more-marker\x22,-14717935).cljs$core$IFn$_invoke$arity$1(opts);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn \x22...\x22;\n}\n})());\n} else {\n}\n} else {\nif(cljs.core.seq(coll)){\nvar G__19484_25395 \x3d cljs.core.first(coll);\nvar G__19485_25396 \x3d writer;\nvar G__19486_25397 \x3d opts;\n(print_one.cljs$core$IFn$_invoke$arity$3 ? print_one.cljs$core$IFn$_invoke$arity$3(G__19484_25395,G__19485_25396,G__19486_25397) : print_one.call(null, G__19484_25395,G__19485_25396,G__19486_25397));\n} else {\n}\n\nvar coll_25399__$1 \x3d cljs.core.next(coll);\nvar n_25400 \x3d (new cljs.core.Keyword(null,\x22print-length\x22,\x22print-length\x22,1931866356).cljs$core$IFn$_invoke$arity$1(opts) - (1));\nwhile(true){\nif(((coll_25399__$1) \x26\x26 ((((n_25400 \x3d\x3d null)) || ((!((n_25400 \x3d\x3d\x3d (0))))))))){\ncljs.core._write(writer,sep);\n\nvar G__19487_25402 \x3d cljs.core.first(coll_25399__$1);\nvar G__19488_25403 \x3d writer;\nvar G__19489_25404 \x3d opts;\n(print_one.cljs$core$IFn$_invoke$arity$3 ? print_one.cljs$core$IFn$_invoke$arity$3(G__19487_25402,G__19488_25403,G__19489_25404) : print_one.call(null, G__19487_25402,G__19488_25403,G__19489_25404));\n\nvar G__25405 \x3d cljs.core.next(coll_25399__$1);\nvar G__25406 \x3d (n_25400 - (1));\ncoll_25399__$1 \x3d G__25405;\nn_25400 \x3d G__25406;\ncontinue;\n} else {\nif(((cljs.core.seq(coll_25399__$1)) \x26\x26 ((n_25400 \x3d\x3d\x3d (0))))){\ncljs.core._write(writer,sep);\n\ncljs.core._write(writer,(function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22more-marker\x22,\x22more-marker\x22,-14717935).cljs$core$IFn$_invoke$arity$1(opts);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn \x22...\x22;\n}\n})());\n} else {\n}\n}\nbreak;\n}\n}\n\nreturn cljs.core._write(writer,end);\n}\n}finally {(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__orig_val__19482);\n}});\ncljs.core.write_all \x3d (function cljs$core$write_all(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25408 \x3d arguments.length;\nvar i__5727__auto___25410 \x3d (0);\nwhile(true){\nif((i__5727__auto___25410 \x3c len__5726__auto___25408)){\nargs__5732__auto__.push((arguments[i__5727__auto___25410]));\n\nvar G__25411 \x3d (i__5727__auto___25410 + (1));\ni__5727__auto___25410 \x3d G__25411;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic \x3d (function (writer,ss){\nvar seq__19492 \x3d cljs.core.seq(ss);\nvar chunk__19493 \x3d null;\nvar count__19494 \x3d (0);\nvar i__19495 \x3d (0);\nwhile(true){\nif((i__19495 \x3c count__19494)){\nvar s \x3d chunk__19493.cljs$core$IIndexed$_nth$arity$2(null, i__19495);\ncljs.core._write(writer,s);\n\n\nvar G__25413 \x3d seq__19492;\nvar G__25414 \x3d chunk__19493;\nvar G__25415 \x3d count__19494;\nvar G__25416 \x3d (i__19495 + (1));\nseq__19492 \x3d G__25413;\nchunk__19493 \x3d G__25414;\ncount__19494 \x3d G__25415;\ni__19495 \x3d G__25416;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19492);\nif(temp__5804__auto__){\nvar seq__19492__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19492__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19492__$1);\nvar G__25417 \x3d cljs.core.chunk_rest(seq__19492__$1);\nvar G__25418 \x3d c__5525__auto__;\nvar G__25419 \x3d cljs.core.count(c__5525__auto__);\nvar G__25420 \x3d (0);\nseq__19492 \x3d G__25417;\nchunk__19493 \x3d G__25418;\ncount__19494 \x3d G__25419;\ni__19495 \x3d G__25420;\ncontinue;\n} else {\nvar s \x3d cljs.core.first(seq__19492__$1);\ncljs.core._write(writer,s);\n\n\nvar G__25421 \x3d cljs.core.next(seq__19492__$1);\nvar G__25422 \x3d null;\nvar G__25423 \x3d (0);\nvar G__25424 \x3d (0);\nseq__19492 \x3d G__25421;\nchunk__19493 \x3d G__25422;\ncount__19494 \x3d G__25423;\ni__19495 \x3d G__25424;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.write_all.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.write_all.cljs$lang$applyTo \x3d (function (seq19490){\nvar G__19491 \x3d cljs.core.first(seq19490);\nvar seq19490__$1 \x3d cljs.core.next(seq19490);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19491,seq19490__$1);\n}));\n\ncljs.core.string_print \x3d (function cljs$core$string_print(x){\nif((cljs.core._STAR_print_fn_STAR_ \x3d\x3d null)){\nthrow (new Error(\x22No *print-fn* fn set for evaluation environment\x22));\n} else {\n}\n\ncljs.core._STAR_print_fn_STAR_.call(null, x);\n\nreturn null;\n});\ncljs.core.flush \x3d (function cljs$core$flush(){\nreturn null;\n});\ncljs.core.char_escapes \x3d (function (){var obj19497 \x3d ({\x22\\\x22\x22:\x22\\\\\\\x22\x22,\x22\\\\\x22:\x22\\\\\\\\\x22,\x22\\b\x22:\x22\\\\b\x22,\x22\\f\x22:\x22\\\\f\x22,\x22\\n\x22:\x22\\\\n\x22,\x22\\r\x22:\x22\\\\r\x22,\x22\\t\x22:\x22\\\\t\x22});\nreturn obj19497;\n})();\ncljs.core.quote_string \x3d (function cljs$core$quote_string(s){\nreturn [\x22\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s.replace(RegExp(\x22[\\\\\\\\\\\x22\\b\\f\\n\\r\\t]\x22,\x22g\x22),(function (match){\nreturn (cljs.core.char_escapes[match]);\n}))),\x22\\\x22\x22].join(\x27\x27);\n});\ncljs.core.print_meta_QMARK_ \x3d (function cljs$core$print_meta_QMARK_(opts,obj){\nvar and__5000__auto__ \x3d cljs.core.boolean$(cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22meta\x22,\x22meta\x22,1499536964)));\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d (((!((obj \x3d\x3d null))))?(((((obj.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d obj.cljs$core$IMeta$))))?true:false):false);\nif(and__5000__auto____$1){\nreturn (!((cljs.core.meta(obj) \x3d\x3d null)));\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n});\ncljs.core.pr_writer_impl \x3d (function cljs$core$pr_writer_impl(obj,writer,opts){\nif((obj \x3d\x3d null)){\nreturn cljs.core._write(writer,\x22nil\x22);\n} else {\nif(cljs.core.print_meta_QMARK_(opts,obj)){\ncljs.core._write(writer,\x22^\x22);\n\nvar G__19499_25436 \x3d cljs.core.meta(obj);\nvar G__19500_25437 \x3d writer;\nvar G__19501_25438 \x3d opts;\n(cljs.core.pr_writer.cljs$core$IFn$_invoke$arity$3 ? cljs.core.pr_writer.cljs$core$IFn$_invoke$arity$3(G__19499_25436,G__19500_25437,G__19501_25438) : cljs.core.pr_writer.call(null, G__19499_25436,G__19500_25437,G__19501_25438));\n\ncljs.core._write(writer,\x22 \x22);\n} else {\n}\n\nif(obj.cljs$lang$type){\nreturn obj.cljs$lang$ctorPrWriter(obj,writer,opts);\n} else {\nif((((!((obj \x3d\x3d null))))?(((((obj.cljs$lang$protocol_mask$partition0$ \x26 (2147483648))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d obj.cljs$core$IPrintWithWriter$))))?true:(((!obj.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IPrintWithWriter,obj):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IPrintWithWriter,obj))){\nreturn cljs.core._pr_writer(obj,writer,opts);\n} else {\nif(((obj \x3d\x3d\x3d true) || (obj \x3d\x3d\x3d false))){\nreturn cljs.core._write(writer,cljs.core.str.cljs$core$IFn$_invoke$arity$1(obj));\n} else {\nif(typeof obj \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core._write(writer,((isNaN(obj))?\x22##NaN\x22:(((obj \x3d\x3d\x3d Number.POSITIVE_INFINITY))?\x22##Inf\x22:(((obj \x3d\x3d\x3d Number.NEGATIVE_INFINITY))?\x22##-Inf\x22:cljs.core.str.cljs$core$IFn$_invoke$arity$1(obj)\n))));\n} else {\nif(cljs.core.object_QMARK_(obj)){\ncljs.core._write(writer,\x22#js \x22);\n\nvar G__19503 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (k){\nreturn (new cljs.core.MapEntry((function (){var G__19507 \x3d k;\nif((!((cljs.core.re_matches(/[A-Za-z_\\*\\+\\?!\\-\x27][\\w\\*\\+\\?!\\-\x27]*/,k) \x3d\x3d null)))){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(G__19507);\n} else {\nreturn G__19507;\n}\n})(),(obj[k]),null));\n}),cljs.core.js_keys(obj));\nvar G__19504 \x3d cljs.core.pr_writer;\nvar G__19505 \x3d writer;\nvar G__19506 \x3d opts;\nreturn (cljs.core.print_map.cljs$core$IFn$_invoke$arity$4 ? cljs.core.print_map.cljs$core$IFn$_invoke$arity$4(G__19503,G__19504,G__19505,G__19506) : cljs.core.print_map.call(null, G__19503,G__19504,G__19505,G__19506));\n} else {\nif(cljs.core.array_QMARK_(obj)){\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22#js [\x22,\x22 \x22,\x22]\x22,opts,obj);\n} else {\nif(typeof obj \x3d\x3d\x3d \x27string\x27){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760).cljs$core$IFn$_invoke$arity$1(opts))){\nreturn cljs.core._write(writer,cljs.core.quote_string(obj));\n} else {\nreturn cljs.core._write(writer,obj);\n}\n} else {\nif(typeof obj \x3d\x3d\x3d \x27function\x27){\nvar name \x3d obj.name;\nvar name__$1 \x3d (cljs.core.truth_((function (){var or__5002__auto__ \x3d (name \x3d\x3d null);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn goog.string.isEmpty(name);\n}\n})())?\x22Function\x22:name);\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#object[\x22,name__$1,(cljs.core.truth_(cljs.core._STAR_print_fn_bodies_STAR_)?[\x22 \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(obj),\x22\\\x22\x22].join(\x27\x27):\x22\x22),\x22]\x22], 0));\n} else {\nif((obj instanceof Date)){\nvar normalize \x3d (function (n,len){\nvar ns \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(n);\nwhile(true){\nif((((ns).length) \x3c len)){\nvar G__25450 \x3d [\x220\x22,ns].join(\x27\x27);\nns \x3d G__25450;\ncontinue;\n} else {\nreturn ns;\n}\nbreak;\n}\n});\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#inst \\\x22\x22,normalize(obj.getUTCFullYear(),(4)),\x22-\x22,normalize((obj.getUTCMonth() + (1)),(2)),\x22-\x22,normalize(obj.getUTCDate(),(2)),\x22T\x22,normalize(obj.getUTCHours(),(2)),\x22:\x22,normalize(obj.getUTCMinutes(),(2)),\x22:\x22,normalize(obj.getUTCSeconds(),(2)),\x22.\x22,normalize(obj.getUTCMilliseconds(),(3)),\x22-\x22,\x2200:00\\\x22\x22], 0));\n} else {\nif(cljs.core.regexp_QMARK_(obj)){\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#\\\x22\x22,obj.source,\x22\\\x22\x22], 0));\n} else {\nif(cljs.core.js_symbol_QMARK_(obj)){\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#object[\x22,obj.toString(),\x22]\x22], 0));\n} else {\nif(cljs.core.truth_((function (){var G__19508 \x3d obj;\nvar G__19508__$1 \x3d (((G__19508 \x3d\x3d null))?null:G__19508.constructor);\nif((G__19508__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn G__19508__$1.cljs$lang$ctorStr;\n}\n})())){\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#object[\x22,obj.constructor.cljs$lang$ctorStr.replace((new RegExp(\x22/\x22,\x22g\x22)),\x22.\x22),\x22]\x22], 0));\n} else {\nvar name \x3d (function (){var G__19509 \x3d obj;\nvar G__19509__$1 \x3d (((G__19509 \x3d\x3d null))?null:G__19509.constructor);\nif((G__19509__$1 \x3d\x3d null)){\nreturn null;\n} else {\nreturn G__19509__$1.name;\n}\n})();\nvar name__$1 \x3d (cljs.core.truth_((function (){var or__5002__auto__ \x3d (name \x3d\x3d null);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn goog.string.isEmpty(name);\n}\n})())?\x22Object\x22:name);\nif((obj.constructor \x3d\x3d null)){\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#object[\x22,name__$1,\x22]\x22], 0));\n} else {\nreturn cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(writer,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22#object[\x22,name__$1,\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(obj),\x22]\x22], 0));\n}\n}\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n\n}\n});\n/**\n * Prefer this to pr-seq, because it makes the printing function\n * configurable, allowing efficient implementations such as appending\n * to a StringBuffer.\n */\ncljs.core.pr_writer \x3d (function cljs$core$pr_writer(obj,writer,opts){\nvar temp__5802__auto__ \x3d new cljs.core.Keyword(null,\x22alt-impl\x22,\x22alt-impl\x22,670969595).cljs$core$IFn$_invoke$arity$1(opts);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar alt_impl \x3d temp__5802__auto__;\nvar G__19510 \x3d obj;\nvar G__19511 \x3d writer;\nvar G__19512 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22fallback-impl\x22,\x22fallback-impl\x22,-1501286995),cljs.core.pr_writer_impl);\nreturn (alt_impl.cljs$core$IFn$_invoke$arity$3 ? alt_impl.cljs$core$IFn$_invoke$arity$3(G__19510,G__19511,G__19512) : alt_impl.call(null, G__19510,G__19511,G__19512));\n} else {\nreturn cljs.core.pr_writer_impl(obj,writer,opts);\n}\n});\ncljs.core.pr_seq_writer \x3d (function cljs$core$pr_seq_writer(objs,writer,opts){\ncljs.core.pr_writer(cljs.core.first(objs),writer,opts);\n\nvar seq__19513 \x3d cljs.core.seq(cljs.core.next(objs));\nvar chunk__19514 \x3d null;\nvar count__19515 \x3d (0);\nvar i__19516 \x3d (0);\nwhile(true){\nif((i__19516 \x3c count__19515)){\nvar obj \x3d chunk__19514.cljs$core$IIndexed$_nth$arity$2(null, i__19516);\ncljs.core._write(writer,\x22 \x22);\n\ncljs.core.pr_writer(obj,writer,opts);\n\n\nvar G__25457 \x3d seq__19513;\nvar G__25458 \x3d chunk__19514;\nvar G__25459 \x3d count__19515;\nvar G__25460 \x3d (i__19516 + (1));\nseq__19513 \x3d G__25457;\nchunk__19514 \x3d G__25458;\ncount__19515 \x3d G__25459;\ni__19516 \x3d G__25460;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19513);\nif(temp__5804__auto__){\nvar seq__19513__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19513__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19513__$1);\nvar G__25466 \x3d cljs.core.chunk_rest(seq__19513__$1);\nvar G__25467 \x3d c__5525__auto__;\nvar G__25468 \x3d cljs.core.count(c__5525__auto__);\nvar G__25469 \x3d (0);\nseq__19513 \x3d G__25466;\nchunk__19514 \x3d G__25467;\ncount__19515 \x3d G__25468;\ni__19516 \x3d G__25469;\ncontinue;\n} else {\nvar obj \x3d cljs.core.first(seq__19513__$1);\ncljs.core._write(writer,\x22 \x22);\n\ncljs.core.pr_writer(obj,writer,opts);\n\n\nvar G__25470 \x3d cljs.core.next(seq__19513__$1);\nvar G__25471 \x3d null;\nvar G__25472 \x3d (0);\nvar G__25473 \x3d (0);\nseq__19513 \x3d G__25470;\nchunk__19514 \x3d G__25471;\ncount__19515 \x3d G__25472;\ni__19516 \x3d G__25473;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.core.pr_sb_with_opts \x3d (function cljs$core$pr_sb_with_opts(objs,opts){\nvar sb \x3d (new goog.string.StringBuffer());\nvar writer \x3d (new cljs.core.StringBufferWriter(sb));\ncljs.core.pr_seq_writer(objs,writer,opts);\n\nwriter.cljs$core$IWriter$_flush$arity$1(null, );\n\nreturn sb;\n});\n/**\n * Prints a sequence of objects to a string, observing all the\n * options given in opts\n */\ncljs.core.pr_str_with_opts \x3d (function cljs$core$pr_str_with_opts(objs,opts){\nif(cljs.core.empty_QMARK_(objs)){\nreturn \x22\x22;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_sb_with_opts(objs,opts));\n}\n});\n/**\n * Same as pr-str-with-opts followed by (newline)\n */\ncljs.core.prn_str_with_opts \x3d (function cljs$core$prn_str_with_opts(objs,opts){\nif(cljs.core.empty_QMARK_(objs)){\nreturn \x22\\n\x22;\n} else {\nvar sb \x3d cljs.core.pr_sb_with_opts(objs,opts);\nsb.append(\x22\\n\x22);\n\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n}\n});\n/**\n * Prints a sequence of objects using string-print, observing all\n * the options given in opts\n */\ncljs.core.pr_with_opts \x3d (function cljs$core$pr_with_opts(objs,opts){\nreturn cljs.core.string_print(cljs.core.pr_str_with_opts(objs,opts));\n});\n/**\n * Prints a newline using *print-fn*\n */\ncljs.core.newline \x3d (function cljs$core$newline(var_args){\nvar G__19518 \x3d arguments.length;\nswitch (G__19518) {\ncase 0:\nreturn cljs.core.newline.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.newline.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.newline.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.newline.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(cljs.core.newline.cljs$core$IFn$_invoke$arity$1 \x3d (function (opts){\ncljs.core.string_print(\x22\\n\x22);\n\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22flush-on-newline\x22,\x22flush-on-newline\x22,-151457939)))){\nreturn cljs.core.flush();\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.newline.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * pr to a string, returning it. Fundamental entrypoint to IPrintWithWriter.\n */\ncljs.core.pr_str \x3d (function cljs$core$pr_str(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25480 \x3d arguments.length;\nvar i__5727__auto___25481 \x3d (0);\nwhile(true){\nif((i__5727__auto___25481 \x3c len__5726__auto___25480)){\nargs__5732__auto__.push((arguments[i__5727__auto___25481]));\n\nvar G__25482 \x3d (i__5727__auto___25481 + (1));\ni__5727__auto___25481 \x3d G__25482;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\nreturn cljs.core.pr_str_with_opts(objs,cljs.core.pr_opts());\n}));\n\n(cljs.core.pr_str.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.pr_str.cljs$lang$applyTo \x3d (function (seq19519){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19519));\n}));\n\n/**\n * Same as pr-str followed by (newline)\n */\ncljs.core.prn_str \x3d (function cljs$core$prn_str(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25485 \x3d arguments.length;\nvar i__5727__auto___25486 \x3d (0);\nwhile(true){\nif((i__5727__auto___25486 \x3c len__5726__auto___25485)){\nargs__5732__auto__.push((arguments[i__5727__auto___25486]));\n\nvar G__25488 \x3d (i__5727__auto___25486 + (1));\ni__5727__auto___25486 \x3d G__25488;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\nreturn cljs.core.prn_str_with_opts(objs,cljs.core.pr_opts());\n}));\n\n(cljs.core.prn_str.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.prn_str.cljs$lang$applyTo \x3d (function (seq19520){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19520));\n}));\n\n/**\n * Prints the object(s) using string-print. Prints the\n * object(s), separated by spaces if there is more than one.\n * By default, pr and prn print in a way that objects can be\n * read by the reader\n */\ncljs.core.pr \x3d (function cljs$core$pr(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25496 \x3d arguments.length;\nvar i__5727__auto___25497 \x3d (0);\nwhile(true){\nif((i__5727__auto___25497 \x3c len__5726__auto___25496)){\nargs__5732__auto__.push((arguments[i__5727__auto___25497]));\n\nvar G__25501 \x3d (i__5727__auto___25497 + (1));\ni__5727__auto___25497 \x3d G__25501;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\nreturn cljs.core.pr_with_opts(objs,cljs.core.pr_opts());\n}));\n\n(cljs.core.pr.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.pr.cljs$lang$applyTo \x3d (function (seq19521){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19521));\n}));\n\n/**\n * Prints the object(s) using string-print.\n * print and println produce output for human consumption.\n * @param {...*} var_args\n */\ncljs.core.print \x3d (function() { \nvar cljs$core$cljs_core_print__delegate \x3d function (objs){\nreturn cljs.core.pr_with_opts(objs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760),false));\n};\nvar cljs$core$cljs_core_print \x3d function (var_args){\nvar objs \x3d null;\nif (arguments.length \x3e 0) {\nvar G__25504__i \x3d 0, G__25504__a \x3d new Array(arguments.length - 0);\nwhile (G__25504__i \x3c G__25504__a.length) {G__25504__a[G__25504__i] \x3d arguments[G__25504__i + 0]; ++G__25504__i;}\n objs \x3d new cljs.core.IndexedSeq(G__25504__a,0,null);\n} \nreturn cljs$core$cljs_core_print__delegate.call(this,objs);};\ncljs$core$cljs_core_print.cljs$lang$maxFixedArity \x3d 0;\ncljs$core$cljs_core_print.cljs$lang$applyTo \x3d (function (arglist__25505){\nvar objs \x3d cljs.core.seq(arglist__25505);\nreturn cljs$core$cljs_core_print__delegate(objs);\n});\ncljs$core$cljs_core_print.cljs$core$IFn$_invoke$arity$variadic \x3d cljs$core$cljs_core_print__delegate;\nreturn cljs$core$cljs_core_print;\n})()\n;\n/**\n * print to a string, returning it\n */\ncljs.core.print_str \x3d (function cljs$core$print_str(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25506 \x3d arguments.length;\nvar i__5727__auto___25507 \x3d (0);\nwhile(true){\nif((i__5727__auto___25507 \x3c len__5726__auto___25506)){\nargs__5732__auto__.push((arguments[i__5727__auto___25507]));\n\nvar G__25510 \x3d (i__5727__auto___25507 + (1));\ni__5727__auto___25507 \x3d G__25510;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.print_str.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.print_str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\nreturn cljs.core.pr_str_with_opts(objs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760),false));\n}));\n\n(cljs.core.print_str.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.print_str.cljs$lang$applyTo \x3d (function (seq19522){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19522));\n}));\n\n/**\n * Same as print followed by (newline)\n */\ncljs.core.println \x3d (function cljs$core$println(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25516 \x3d arguments.length;\nvar i__5727__auto___25517 \x3d (0);\nwhile(true){\nif((i__5727__auto___25517 \x3c len__5726__auto___25516)){\nargs__5732__auto__.push((arguments[i__5727__auto___25517]));\n\nvar G__25518 \x3d (i__5727__auto___25517 + (1));\ni__5727__auto___25517 \x3d G__25518;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.println.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\ncljs.core.pr_with_opts(objs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760),false));\n\nif(cljs.core.truth_(cljs.core._STAR_print_newline_STAR_)){\nreturn cljs.core.newline.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_opts());\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.println.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.println.cljs$lang$applyTo \x3d (function (seq19523){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19523));\n}));\n\n/**\n * println to a string, returning it\n */\ncljs.core.println_str \x3d (function cljs$core$println_str(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25522 \x3d arguments.length;\nvar i__5727__auto___25523 \x3d (0);\nwhile(true){\nif((i__5727__auto___25523 \x3c len__5726__auto___25522)){\nargs__5732__auto__.push((arguments[i__5727__auto___25523]));\n\nvar G__25524 \x3d (i__5727__auto___25523 + (1));\ni__5727__auto___25523 \x3d G__25524;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.println_str.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.println_str.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\nreturn cljs.core.prn_str_with_opts(objs,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760),false));\n}));\n\n(cljs.core.println_str.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.println_str.cljs$lang$applyTo \x3d (function (seq19524){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19524));\n}));\n\n/**\n * Same as pr followed by (newline).\n */\ncljs.core.prn \x3d (function cljs$core$prn(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25531 \x3d arguments.length;\nvar i__5727__auto___25532 \x3d (0);\nwhile(true){\nif((i__5727__auto___25532 \x3c len__5726__auto___25531)){\nargs__5732__auto__.push((arguments[i__5727__auto___25532]));\n\nvar G__25534 \x3d (i__5727__auto___25532 + (1));\ni__5727__auto___25532 \x3d G__25534;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.prn.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.prn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (objs){\ncljs.core.pr_with_opts(objs,cljs.core.pr_opts());\n\nif(cljs.core.truth_(cljs.core._STAR_print_newline_STAR_)){\nreturn cljs.core.newline.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_opts());\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.prn.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.prn.cljs$lang$applyTo \x3d (function (seq19525){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19525));\n}));\n\ncljs.core.strip_ns \x3d (function cljs$core$strip_ns(named){\nif((named instanceof cljs.core.Symbol)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(null,cljs.core.name(named));\n} else {\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(null,cljs.core.name(named));\n}\n});\n/**\n * Returns [lifted-ns lifted-map] or nil if m can\x27t be lifted.\n */\ncljs.core.lift_ns \x3d (function cljs$core$lift_ns(m){\nif(cljs.core.truth_(cljs.core._STAR_print_namespace_maps_STAR_)){\nvar ns \x3d null;\nvar G__19532 \x3d cljs.core.seq(m);\nvar vec__19533 \x3d G__19532;\nvar seq__19534 \x3d cljs.core.seq(vec__19533);\nvar first__19535 \x3d cljs.core.first(seq__19534);\nvar seq__19534__$1 \x3d cljs.core.next(seq__19534);\nvar vec__19536 \x3d first__19535;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19536,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19536,(1),null);\nvar entry \x3d vec__19536;\nvar entries \x3d seq__19534__$1;\nvar lm \x3d cljs.core.empty(m);\nvar ns__$1 \x3d ns;\nvar G__19532__$1 \x3d G__19532;\nvar lm__$1 \x3d lm;\nwhile(true){\nvar ns__$2 \x3d ns__$1;\nvar vec__19545 \x3d G__19532__$1;\nvar seq__19546 \x3d cljs.core.seq(vec__19545);\nvar first__19547 \x3d cljs.core.first(seq__19546);\nvar seq__19546__$1 \x3d cljs.core.next(seq__19546);\nvar vec__19548 \x3d first__19547;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19548,(0),null);\nvar v__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19548,(1),null);\nvar entry__$1 \x3d vec__19548;\nvar entries__$1 \x3d seq__19546__$1;\nvar lm__$2 \x3d lm__$1;\nif(cljs.core.truth_(entry__$1)){\nif((((k__$1 instanceof cljs.core.Keyword)) || ((k__$1 instanceof cljs.core.Symbol)))){\nif(cljs.core.truth_(ns__$2)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns__$2,cljs.core.namespace(k__$1))){\nvar G__25548 \x3d ns__$2;\nvar G__25549 \x3d entries__$1;\nvar G__25550 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lm__$2,cljs.core.strip_ns(k__$1),v__$1);\nns__$1 \x3d G__25548;\nG__19532__$1 \x3d G__25549;\nlm__$1 \x3d G__25550;\ncontinue;\n} else {\nreturn null;\n}\n} else {\nvar temp__5804__auto__ \x3d cljs.core.namespace(k__$1);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar new_ns \x3d temp__5804__auto__;\nvar G__25551 \x3d new_ns;\nvar G__25552 \x3d entries__$1;\nvar G__25553 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(lm__$2,cljs.core.strip_ns(k__$1),v__$1);\nns__$1 \x3d G__25551;\nG__19532__$1 \x3d G__25552;\nlm__$1 \x3d G__25553;\ncontinue;\n} else {\nreturn null;\n}\n}\n} else {\nreturn null;\n}\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [ns__$2,lm__$2], null);\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\ncljs.core.print_prefix_map \x3d (function cljs$core$print_prefix_map(prefix,m,print_one,writer,opts){\nreturn cljs.core.pr_sequential_writer(writer,(function (e,w,opts__$1){\nvar G__19551_25554 \x3d cljs.core.key(e);\nvar G__19552_25555 \x3d w;\nvar G__19553_25556 \x3d opts__$1;\n(print_one.cljs$core$IFn$_invoke$arity$3 ? print_one.cljs$core$IFn$_invoke$arity$3(G__19551_25554,G__19552_25555,G__19553_25556) : print_one.call(null, G__19551_25554,G__19552_25555,G__19553_25556));\n\ncljs.core._write(w,\x22 \x22);\n\nvar G__19554 \x3d cljs.core.val(e);\nvar G__19555 \x3d w;\nvar G__19556 \x3d opts__$1;\nreturn (print_one.cljs$core$IFn$_invoke$arity$3 ? print_one.cljs$core$IFn$_invoke$arity$3(G__19554,G__19555,G__19556) : print_one.call(null, G__19554,G__19555,G__19556));\n}),[cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix),\x22{\x22].join(\x27\x27),\x22, \x22,\x22}\x22,opts,cljs.core.seq(m));\n});\ncljs.core.print_map \x3d (function cljs$core$print_map(m,print_one,writer,opts){\nvar vec__19557 \x3d ((cljs.core.map_QMARK_(m))?cljs.core.lift_ns(m):null);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19557,(0),null);\nvar lift_map \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19557,(1),null);\nif(cljs.core.truth_(ns)){\nreturn cljs.core.print_prefix_map([\x22#:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns)].join(\x27\x27),lift_map,print_one,writer,opts);\n} else {\nreturn cljs.core.print_prefix_map(null,m,print_one,writer,opts);\n}\n});\n(cljs.core.Volatile.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Volatile.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (a,writer,opts){\nvar a__$1 \x3d this;\ncljs.core._write(writer,\x22#object[cljs.core.Volatile \x22);\n\ncljs.core.pr_writer(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),a__$1.state], null),writer,opts);\n\nreturn cljs.core._write(writer,\x22]\x22);\n}));\n\n(cljs.core.Var.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Var.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (a,writer,opts){\nvar a__$1 \x3d this;\ncljs.core._write(writer,\x22#\x27\x22);\n\nreturn cljs.core.pr_writer(a__$1.sym,writer,opts);\n}));\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.IndexedSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.MapEntry.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22[\x22,\x22 \x22,\x22]\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.NodeSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.NodeSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.BlackNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22[\x22,\x22 \x22,\x22]\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.ES6IteratorSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ES6IteratorSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22#{\x22,\x22 \x22,\x22}\x22,opts,coll__$1);\n}));\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ChunkedSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.ObjMap.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ObjMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.print_map(coll__$1,cljs.core.pr_writer,writer,opts);\n}));\n\n(cljs.core.Cons.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Cons.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.Iterate.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Iterate.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.RSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.RSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.IntegerRange.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.IntegerRange.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentHashMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.print_map(coll__$1,cljs.core.pr_writer,writer,opts);\n}));\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Subvec.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22[\x22,\x22 \x22,\x22]\x22,opts,coll__$1);\n}));\n\n(cljs.core.Cycle.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Cycle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.print_map(coll__$1,cljs.core.pr_writer,writer,opts);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentHashSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22#{\x22,\x22 \x22,\x22}\x22,opts,coll__$1);\n}));\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ChunkedCons.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.Atom.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Atom.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (a,writer,opts){\nvar a__$1 \x3d this;\ncljs.core._write(writer,\x22#object[cljs.core.Atom \x22);\n\ncljs.core.pr_writer(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),a__$1.state], null),writer,opts);\n\nreturn cljs.core._write(writer,\x22]\x22);\n}));\n\n(cljs.core.ValSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ValSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.RedNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22[\x22,\x22 \x22,\x22]\x22,opts,coll__$1);\n}));\n\n(cljs.core.Repeat.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Repeat.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentVector.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22[\x22,\x22 \x22,\x22]\x22,opts,coll__$1);\n}));\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentQueueSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.EmptyList.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.EmptyList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core._write(writer,\x22()\x22);\n}));\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentQueue.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22#queue [\x22,\x22 \x22,\x22]\x22,opts,cljs.core.seq(coll__$1));\n}));\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.print_map(coll__$1,cljs.core.pr_writer,writer,opts);\n}));\n\n(cljs.core.Range.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Range.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.TransformerIterator.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.TransformerIterator.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.KeySeq.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.KeySeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n\n(cljs.core.List.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.List.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$1);\n}));\n(cljs.core.Symbol.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Symbol.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif((y instanceof cljs.core.Symbol)){\nreturn cljs.core.compare_symbols(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.Keyword.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Keyword.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif((y instanceof cljs.core.Keyword)){\nreturn cljs.core.compare_keywords(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.Subvec.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Subvec.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif(cljs.core.vector_QMARK_(y)){\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.PersistentVector.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentVector.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif(cljs.core.vector_QMARK_(y)){\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.MapEntry.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.MapEntry.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif(cljs.core.vector_QMARK_(y)){\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.BlackNode.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.BlackNode.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif(cljs.core.vector_QMARK_(y)){\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.RedNode.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.RedNode.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (x,y){\nvar x__$1 \x3d this;\nif(cljs.core.vector_QMARK_(y)){\nreturn cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(x__$1,y);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27)));\n}\n}));\n/**\n * Atomically sets the metadata for a namespace/var/ref/agent/atom to be:\n * \n * (apply f its-current-meta args)\n * \n * f must be free of side-effects\n */\ncljs.core.alter_meta_BANG_ \x3d (function cljs$core$alter_meta_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25607 \x3d arguments.length;\nvar i__5727__auto___25608 \x3d (0);\nwhile(true){\nif((i__5727__auto___25608 \x3c len__5726__auto___25607)){\nargs__5732__auto__.push((arguments[i__5727__auto___25608]));\n\nvar G__25609 \x3d (i__5727__auto___25608 + (1));\ni__5727__auto___25608 \x3d G__25609;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(cljs.core.alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (iref,f,args){\nreturn (iref.meta \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,iref.meta,args));\n}));\n\n(cljs.core.alter_meta_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(cljs.core.alter_meta_BANG_.cljs$lang$applyTo \x3d (function (seq19560){\nvar G__19561 \x3d cljs.core.first(seq19560);\nvar seq19560__$1 \x3d cljs.core.next(seq19560);\nvar G__19562 \x3d cljs.core.first(seq19560__$1);\nvar seq19560__$2 \x3d cljs.core.next(seq19560__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19561,G__19562,seq19560__$2);\n}));\n\n/**\n * Atomically resets the metadata for an atom\n */\ncljs.core.reset_meta_BANG_ \x3d (function cljs$core$reset_meta_BANG_(iref,m){\nreturn (iref.meta \x3d m);\n});\n/**\n * Adds a watch function to an atom reference. The watch fn must be a\n * fn of 4 args: a key, the reference, its old-state, its\n * new-state. Whenever the reference\x27s state might have been changed,\n * any registered watches will have their functions called. The watch\n * fn will be called synchronously. Note that an atom\x27s state\n * may have changed again prior to the fn call, so use old/new-state\n * rather than derefing the reference. Keys must be unique per\n * reference, and can be used to remove the watch with remove-watch,\n * but are otherwise considered opaque by the watch mechanism. Bear in\n * mind that regardless of the result or action of the watch fns the\n * atom\x27s value will change. Example:\n * \n * (def a (atom 0))\n * (add-watch a :inc (fn [k r o n] (assert (\x3d\x3d 0 n))))\n * (swap! a inc)\n * ;; Assertion Error\n * (deref a)\n * ;\x3d\x3e 1\n */\ncljs.core.add_watch \x3d (function cljs$core$add_watch(iref,key,f){\ncljs.core._add_watch(iref,key,f);\n\nreturn iref;\n});\n/**\n * Removes a watch (set by add-watch) from a reference\n */\ncljs.core.remove_watch \x3d (function cljs$core$remove_watch(iref,key){\ncljs.core._remove_watch(iref,key);\n\nreturn iref;\n});\n/**\n * @type {*}\n */\ncljs.core.gensym_counter \x3d null;\n/**\n * Returns a new symbol with a unique name. If a prefix string is\n * supplied, the name is prefix# where # is some unique number. If\n * prefix is not supplied, the prefix is \x27G__\x27.\n */\ncljs.core.gensym \x3d (function cljs$core$gensym(var_args){\nvar G__19564 \x3d arguments.length;\nswitch (G__19564) {\ncase 0:\nreturn cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.gensym.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.gensym.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22G__\x22);\n}));\n\n(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1 \x3d (function (prefix_string){\nif((cljs.core.gensym_counter \x3d\x3d null)){\n(cljs.core.gensym_counter \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)));\n} else {\n}\n\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix_string),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.gensym_counter,cljs.core.inc))].join(\x27\x27));\n}));\n\n(cljs.core.gensym.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IPending}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IPrintWithWriter}\n*/\ncljs.core.Delay \x3d (function (f,value){\nthis.f \x3d f;\nthis.value \x3d value;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2147516416;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 1;\n});\n(cljs.core.Delay.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.f)){\n(self__.value \x3d (self__.f.cljs$core$IFn$_invoke$arity$0 ? self__.f.cljs$core$IFn$_invoke$arity$0() : self__.f.call(null, )));\n\n(self__.f \x3d null);\n} else {\n}\n\nreturn self__.value;\n}));\n\n(cljs.core.Delay.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 \x3d (function (x){\nvar self__ \x3d this;\nvar x__$1 \x3d this;\nreturn cljs.core.not(self__.f);\n}));\n\n(cljs.core.Delay.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (x,writer,opts){\nvar self__ \x3d this;\nvar x__$1 \x3d this;\ncljs.core._write(writer,\x22#object[cljs.core.Delay \x22);\n\ncljs.core.pr_writer(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22status\x22,\x22status\x22,-1997798413),(((self__.f \x3d\x3d null))?new cljs.core.Keyword(null,\x22ready\x22,\x22ready\x22,1086465795):new cljs.core.Keyword(null,\x22pending\x22,\x22pending\x22,-220036727)),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),self__.value], null),writer,opts);\n\nreturn cljs.core._write(writer,\x22]\x22);\n}));\n\n(cljs.core.Delay.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22value\x22,\x22value\x22,1946509744,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.Delay.cljs$lang$type \x3d true);\n\n(cljs.core.Delay.cljs$lang$ctorStr \x3d \x22cljs.core/Delay\x22);\n\n(cljs.core.Delay.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Delay\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Delay.\n */\ncljs.core.__GT_Delay \x3d (function cljs$core$__GT_Delay(f,value){\nreturn (new cljs.core.Delay(f,value));\n});\n\n/**\n * returns true if x is a Delay created with delay\n */\ncljs.core.delay_QMARK_ \x3d (function cljs$core$delay_QMARK_(x){\nreturn (x instanceof cljs.core.Delay);\n});\n/**\n * If x is a Delay, returns the (possibly cached) value of its expression, else returns x\n */\ncljs.core.force \x3d (function cljs$core$force(x){\nif(cljs.core.delay_QMARK_(x)){\nreturn cljs.core.deref(x);\n} else {\nreturn x;\n}\n});\n/**\n * Returns true if a value has been produced for a delay or lazy sequence.\n */\ncljs.core.realized_QMARK_ \x3d (function cljs$core$realized_QMARK_(x){\nreturn cljs.core._realized_QMARK_(x);\n});\ncljs.core.preserving_reduced \x3d (function cljs$core$preserving_reduced(rf){\nreturn (function (p1__19565_SHARP_,p2__19566_SHARP_){\nvar ret \x3d (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(p1__19565_SHARP_,p2__19566_SHARP_) : rf.call(null, p1__19565_SHARP_,p2__19566_SHARP_));\nif(cljs.core.reduced_QMARK_(ret)){\nreturn cljs.core.reduced(ret);\n} else {\nreturn ret;\n}\n});\n});\n/**\n * A transducer which concatenates the contents of each input, which must be a\n * collection, into the reduction.\n */\ncljs.core.cat \x3d (function cljs$core$cat(rf){\nvar rf1 \x3d cljs.core.preserving_reduced(rf);\nreturn (function() {\nvar G__25675 \x3d null;\nvar G__25675__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25675__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__25675__2 \x3d (function (result,input){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(rf1,result,input);\n});\nG__25675 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25675__0.call(this);\ncase 1:\nreturn G__25675__1.call(this,result);\ncase 2:\nreturn G__25675__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25675.cljs$core$IFn$_invoke$arity$0 \x3d G__25675__0;\nG__25675.cljs$core$IFn$_invoke$arity$1 \x3d G__25675__1;\nG__25675.cljs$core$IFn$_invoke$arity$2 \x3d G__25675__2;\nreturn G__25675;\n})()\n});\n/**\n * Returns a transducer that ends transduction when pred returns true\n * for an input. When retf is supplied it must be a fn of 2 arguments -\n * it will be passed the (completed) result so far and the input that\n * triggered the predicate, and its return value (if it does not throw\n * an exception) will be the return value of the transducer. If retf\n * is not supplied, the input that triggered the predicate will be\n * returned. If the predicate never returns true the transduction is\n * unaffected.\n */\ncljs.core.halt_when \x3d (function cljs$core$halt_when(var_args){\nvar G__19568 \x3d arguments.length;\nswitch (G__19568) {\ncase 1:\nreturn cljs.core.halt_when.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.halt_when.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.halt_when.cljs$core$IFn$_invoke$arity$1 \x3d (function (pred){\nreturn cljs.core.halt_when.cljs$core$IFn$_invoke$arity$2(pred,null);\n}));\n\n(cljs.core.halt_when.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,retf){\nreturn (function (rf){\nreturn (function() {\nvar G__25685 \x3d null;\nvar G__25685__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25685__1 \x3d (function (result){\nif(((cljs.core.map_QMARK_(result)) \x26\x26 (cljs.core.contains_QMARK_(result,new cljs.core.Keyword(\x22cljs.core\x22,\x22halt\x22,\x22cljs.core/halt\x22,-1049036715))))){\nreturn new cljs.core.Keyword(\x22cljs.core\x22,\x22halt\x22,\x22cljs.core/halt\x22,-1049036715).cljs$core$IFn$_invoke$arity$1(result);\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n}\n});\nvar G__25685__2 \x3d (function (result,input){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(input) : pred.call(null, input)))){\nreturn cljs.core.reduced(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.core\x22,\x22halt\x22,\x22cljs.core/halt\x22,-1049036715),(cljs.core.truth_(retf)?(function (){var G__19569 \x3d (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\nvar G__19570 \x3d input;\nreturn (retf.cljs$core$IFn$_invoke$arity$2 ? retf.cljs$core$IFn$_invoke$arity$2(G__19569,G__19570) : retf.call(null, G__19569,G__19570));\n})():input)], null));\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n}\n});\nG__25685 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25685__0.call(this);\ncase 1:\nreturn G__25685__1.call(this,result);\ncase 2:\nreturn G__25685__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25685.cljs$core$IFn$_invoke$arity$0 \x3d G__25685__0;\nG__25685.cljs$core$IFn$_invoke$arity$1 \x3d G__25685__1;\nG__25685.cljs$core$IFn$_invoke$arity$2 \x3d G__25685__2;\nreturn G__25685;\n})()\n});\n}));\n\n(cljs.core.halt_when.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a lazy sequence removing consecutive duplicates in coll.\n * Returns a transducer when no collection is provided.\n */\ncljs.core.dedupe \x3d (function cljs$core$dedupe(var_args){\nvar G__19572 \x3d arguments.length;\nswitch (G__19572) {\ncase 0:\nreturn cljs.core.dedupe.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.dedupe.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.dedupe.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn (function (rf){\nvar pa \x3d cljs.core.volatile_BANG_(new cljs.core.Keyword(\x22cljs.core\x22,\x22none\x22,\x22cljs.core/none\x22,926646439));\nreturn (function() {\nvar G__25707 \x3d null;\nvar G__25707__0 \x3d (function (){\nreturn (rf.cljs$core$IFn$_invoke$arity$0 ? rf.cljs$core$IFn$_invoke$arity$0() : rf.call(null, ));\n});\nvar G__25707__1 \x3d (function (result){\nreturn (rf.cljs$core$IFn$_invoke$arity$1 ? rf.cljs$core$IFn$_invoke$arity$1(result) : rf.call(null, result));\n});\nvar G__25707__2 \x3d (function (result,input){\nvar prior \x3d cljs.core.deref(pa);\ncljs.core.vreset_BANG_(pa,input);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(prior,input)){\nreturn result;\n} else {\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(result,input) : rf.call(null, result,input));\n}\n});\nG__25707 \x3d function(result,input){\nswitch(arguments.length){\ncase 0:\nreturn G__25707__0.call(this);\ncase 1:\nreturn G__25707__1.call(this,result);\ncase 2:\nreturn G__25707__2.call(this,result,input);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25707.cljs$core$IFn$_invoke$arity$0 \x3d G__25707__0;\nG__25707.cljs$core$IFn$_invoke$arity$1 \x3d G__25707__1;\nG__25707.cljs$core$IFn$_invoke$arity$2 \x3d G__25707__2;\nreturn G__25707;\n})()\n});\n}));\n\n(cljs.core.dedupe.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(cljs.core.dedupe.cljs$core$IFn$_invoke$arity$0(),coll);\n}));\n\n(cljs.core.dedupe.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns items from coll with random probability of prob (0.0 -\n * 1.0). Returns a transducer when no collection is provided.\n */\ncljs.core.random_sample \x3d (function cljs$core$random_sample(var_args){\nvar G__19574 \x3d arguments.length;\nswitch (G__19574) {\ncase 1:\nreturn cljs.core.random_sample.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.random_sample.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.random_sample.cljs$core$IFn$_invoke$arity$1 \x3d (function (prob){\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (_){\nreturn ((cljs.core.rand.cljs$core$IFn$_invoke$arity$0 ? cljs.core.rand.cljs$core$IFn$_invoke$arity$0() : cljs.core.rand.call(null, )) \x3c prob);\n}));\n}));\n\n(cljs.core.random_sample.cljs$core$IFn$_invoke$arity$2 \x3d (function (prob,coll){\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (_){\nreturn ((cljs.core.rand.cljs$core$IFn$_invoke$arity$0 ? cljs.core.rand.cljs$core$IFn$_invoke$arity$0() : cljs.core.rand.call(null, )) \x3c prob);\n}),coll);\n}));\n\n(cljs.core.random_sample.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.ISequential}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.Eduction \x3d (function (xform,coll){\nthis.xform \x3d xform;\nthis.coll \x3d coll;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2173173760;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 131072;\n});\n(cljs.core.Eduction.prototype.indexOf \x3d (function() {\nvar G__25711 \x3d null;\nvar G__25711__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll__$1,x,(0));\n});\nvar G__25711__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(coll__$1,x,start);\n});\nG__25711 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__25711__1.call(this,x);\ncase 2:\nreturn G__25711__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25711.cljs$core$IFn$_invoke$arity$1 \x3d G__25711__1;\nG__25711.cljs$core$IFn$_invoke$arity$2 \x3d G__25711__2;\nreturn G__25711;\n})()\n);\n\n(cljs.core.Eduction.prototype.lastIndexOf \x3d (function() {\nvar G__25714 \x3d null;\nvar G__25714__1 \x3d (function (x){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll__$1,x,cljs.core.count(coll__$1));\n});\nvar G__25714__2 \x3d (function (x,start){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(coll__$1,x,start);\n});\nG__25714 \x3d function(x,start){\nswitch(arguments.length){\ncase 1:\nreturn G__25714__1.call(this,x);\ncase 2:\nreturn G__25714__2.call(this,x,start);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__25714.cljs$core$IFn$_invoke$arity$1 \x3d G__25714__1;\nG__25714.cljs$core$IFn$_invoke$arity$2 \x3d G__25714__2;\nreturn G__25714;\n})()\n);\n\n(cljs.core.Eduction.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.TransformerIterator.create(self__.xform,cljs.core.iter(self__.coll));\n}));\n\n(cljs.core.Eduction.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.seq(cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(self__.xform,self__.coll));\n}));\n\n(cljs.core.Eduction.prototype.cljs$core$IReduce$_reduce$arity$2 \x3d (function (_,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$3(self__.xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(f),self__.coll);\n}));\n\n(cljs.core.Eduction.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (_,f,init){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(self__.xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(f),init,self__.coll);\n}));\n\n(cljs.core.Eduction.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll__$1,writer,opts){\nvar self__ \x3d this;\nvar coll__$2 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22(\x22,\x22 \x22,\x22)\x22,opts,coll__$2);\n}));\n\n(cljs.core.Eduction.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22xform\x22,\x22xform\x22,-85179481,null),new cljs.core.Symbol(null,\x22coll\x22,\x22coll\x22,-1006698606,null)], null);\n}));\n\n(cljs.core.Eduction.cljs$lang$type \x3d true);\n\n(cljs.core.Eduction.cljs$lang$ctorStr \x3d \x22cljs.core/Eduction\x22);\n\n(cljs.core.Eduction.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Eduction\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Eduction.\n */\ncljs.core.__GT_Eduction \x3d (function cljs$core$__GT_Eduction(xform,coll){\nreturn (new cljs.core.Eduction(xform,coll));\n});\n\n(cljs.core.Eduction.prototype[cljs.core.ITER_SYMBOL] \x3d (function (){\nvar this__5655__auto__ \x3d this;\nreturn cljs.core.es6_iterator(this__5655__auto__);\n}));\n/**\n * Returns a reducible/iterable application of the transducers\n * to the items in coll. Transducers are applied in order as if\n * combined with comp. Note that these applications will be\n * performed every time reduce/iterator is called.\n */\ncljs.core.eduction \x3d (function cljs$core$eduction(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25722 \x3d arguments.length;\nvar i__5727__auto___25724 \x3d (0);\nwhile(true){\nif((i__5727__auto___25724 \x3c len__5726__auto___25722)){\nargs__5732__auto__.push((arguments[i__5727__auto___25724]));\n\nvar G__25725 \x3d (i__5727__auto___25724 + (1));\ni__5727__auto___25724 \x3d G__25725;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.core.eduction.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.core.eduction.cljs$core$IFn$_invoke$arity$variadic \x3d (function (xforms){\nreturn (new cljs.core.Eduction(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.comp,cljs.core.butlast(xforms)),cljs.core.last(xforms)));\n}));\n\n(cljs.core.eduction.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.core.eduction.cljs$lang$applyTo \x3d (function (seq19575){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq19575));\n}));\n\n/**\n * Runs the supplied procedure (via reduce), for purposes of side\n * effects, on successive items in the collection. Returns nil\n */\ncljs.core.run_BANG_ \x3d (function cljs$core$run_BANG_(proc,coll){\ncljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19577_SHARP_,p2__19576_SHARP_){\nreturn (proc.cljs$core$IFn$_invoke$arity$1 ? proc.cljs$core$IFn$_invoke$arity$1(p2__19576_SHARP_) : proc.call(null, p2__19576_SHARP_));\n}),null,coll);\n\nreturn null;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IReduce}\n*/\ncljs.core.t_cljs$core19582 \x3d (function (step,p__19580,map__19581,somef,vf,kf,initk,meta19583){\nthis.step \x3d step;\nthis.p__19580 \x3d p__19580;\nthis.map__19581 \x3d map__19581;\nthis.somef \x3d somef;\nthis.vf \x3d vf;\nthis.kf \x3d kf;\nthis.initk \x3d initk;\nthis.meta19583 \x3d meta19583;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 9306112;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.t_cljs$core19582.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_19584,meta19583__$1){\nvar self__ \x3d this;\nvar _19584__$1 \x3d this;\nreturn (new cljs.core.t_cljs$core19582(self__.step,self__.p__19580,self__.map__19581,self__.somef,self__.vf,self__.kf,self__.initk,meta19583__$1));\n}));\n\n(cljs.core.t_cljs$core19582.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_19584){\nvar self__ \x3d this;\nvar _19584__$1 \x3d this;\nreturn self__.meta19583;\n}));\n\n(cljs.core.t_cljs$core19582.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (function cljs$core$next(ret){\nif(cljs.core.truth_((self__.somef.cljs$core$IFn$_invoke$arity$1 ? self__.somef.cljs$core$IFn$_invoke$arity$1(ret) : self__.somef.call(null, ret)))){\nreturn cljs.core.cons((self__.vf.cljs$core$IFn$_invoke$arity$1 ? self__.vf.cljs$core$IFn$_invoke$arity$1(ret) : self__.vf.call(null, ret)),(function (){var temp__5808__auto__ \x3d (self__.kf.cljs$core$IFn$_invoke$arity$1 ? self__.kf.cljs$core$IFn$_invoke$arity$1(ret) : self__.kf.call(null, ret));\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar k \x3d temp__5808__auto__;\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs$core$next((self__.step.cljs$core$IFn$_invoke$arity$1 ? self__.step.cljs$core$IFn$_invoke$arity$1(k) : self__.step.call(null, k)));\n}),null,null));\n}\n})());\n} else {\nreturn null;\n}\n})((self__.step.cljs$core$IFn$_invoke$arity$1 ? self__.step.cljs$core$IFn$_invoke$arity$1(self__.initk) : self__.step.call(null, self__.initk)));\n}));\n\n(cljs.core.t_cljs$core19582.prototype.cljs$core$IReduce$_reduce$arity$3 \x3d (function (_,rf,init){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar acc \x3d init;\nvar ret \x3d (self__.step.cljs$core$IFn$_invoke$arity$1 ? self__.step.cljs$core$IFn$_invoke$arity$1(self__.initk) : self__.step.call(null, self__.initk));\nwhile(true){\nif(cljs.core.truth_((self__.somef.cljs$core$IFn$_invoke$arity$1 ? self__.somef.cljs$core$IFn$_invoke$arity$1(ret) : self__.somef.call(null, ret)))){\nvar acc__$1 \x3d (function (){var G__19585 \x3d acc;\nvar G__19586 \x3d (self__.vf.cljs$core$IFn$_invoke$arity$1 ? self__.vf.cljs$core$IFn$_invoke$arity$1(ret) : self__.vf.call(null, ret));\nreturn (rf.cljs$core$IFn$_invoke$arity$2 ? rf.cljs$core$IFn$_invoke$arity$2(G__19585,G__19586) : rf.call(null, G__19585,G__19586));\n})();\nif(cljs.core.reduced_QMARK_(acc__$1)){\nreturn cljs.core.deref(acc__$1);\n} else {\nvar temp__5806__auto__ \x3d (self__.kf.cljs$core$IFn$_invoke$arity$1 ? self__.kf.cljs$core$IFn$_invoke$arity$1(ret) : self__.kf.call(null, ret));\nif((temp__5806__auto__ \x3d\x3d null)){\nreturn acc__$1;\n} else {\nvar k \x3d temp__5806__auto__;\nvar G__25739 \x3d acc__$1;\nvar G__25740 \x3d (self__.step.cljs$core$IFn$_invoke$arity$1 ? self__.step.cljs$core$IFn$_invoke$arity$1(k) : self__.step.call(null, k));\nacc \x3d G__25739;\nret \x3d G__25740;\ncontinue;\n}\n}\n} else {\nreturn acc;\n}\nbreak;\n}\n}));\n\n(cljs.core.t_cljs$core19582.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22step\x22,\x22step\x22,-1365547645,null),new cljs.core.Symbol(null,\x22p__19580\x22,\x22p__19580\x22,1603498542,null),new cljs.core.Symbol(null,\x22map__19581\x22,\x22map__19581\x22,-773708124,null),new cljs.core.Symbol(null,\x22somef\x22,\x22somef\x22,1017941162,null),new cljs.core.Symbol(null,\x22vf\x22,\x22vf\x22,1319108258,null),new cljs.core.Symbol(null,\x22kf\x22,\x22kf\x22,-1046348180,null),new cljs.core.Symbol(null,\x22initk\x22,\x22initk\x22,-52811460,null),new cljs.core.Symbol(null,\x22meta19583\x22,\x22meta19583\x22,1264670984,null)], null);\n}));\n\n(cljs.core.t_cljs$core19582.cljs$lang$type \x3d true);\n\n(cljs.core.t_cljs$core19582.cljs$lang$ctorStr \x3d \x22cljs.core/t_cljs$core19582\x22);\n\n(cljs.core.t_cljs$core19582.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/t_cljs$core19582\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/t_cljs$core19582.\n */\ncljs.core.__GT_t_cljs$core19582 \x3d (function cljs$core$__GT_t_cljs$core19582(step,p__19580,map__19581,somef,vf,kf,initk,meta19583){\nreturn (new cljs.core.t_cljs$core19582(step,p__19580,map__19581,somef,vf,kf,initk,meta19583));\n});\n\n\n/**\n * Creates a seqable/reducible via repeated calls to step,\n * a function of some (continuation token) \x27k\x27. The first call to step\n * will be passed initk, returning \x27ret\x27. Iff (somef ret) is true,\n * (vf ret) will be included in the iteration, else iteration will\n * terminate and vf/kf will not be called. If (kf ret) is non-nil it\n * will be passed to the next step call, else iteration will terminate.\n * This can be used e.g. to consume APIs that return paginated or batched data.\n * step - (possibly impure) fn of \x27k\x27 -\x3e \x27ret\x27\n * :somef - fn of \x27ret\x27 -\x3e logical true/false, default \x27some?\x27\n * :vf - fn of \x27ret\x27 -\x3e \x27v\x27, a value produced by the iteration, default \x27identity\x27\n * :kf - fn of \x27ret\x27 -\x3e \x27next-k\x27 or nil (signaling \x27do not continue\x27), default \x27identity\x27\n * :initk - the first value passed to step, default \x27nil\x27\n * It is presumed that step with non-initk is unreproducible/non-idempotent.\n * If step with initk is unreproducible it is on the consumer to not consume twice.\n */\ncljs.core.iteration \x3d (function cljs$core$iteration(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25744 \x3d arguments.length;\nvar i__5727__auto___25745 \x3d (0);\nwhile(true){\nif((i__5727__auto___25745 \x3c len__5726__auto___25744)){\nargs__5732__auto__.push((arguments[i__5727__auto___25745]));\n\nvar G__25746 \x3d (i__5727__auto___25745 + (1));\ni__5727__auto___25745 \x3d G__25746;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.iteration.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.iteration.cljs$core$IFn$_invoke$arity$variadic \x3d (function (step,p__19580){\nvar map__19581 \x3d p__19580;\nvar map__19581__$1 \x3d cljs.core.__destructure_map(map__19581);\nvar somef \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__19581__$1,new cljs.core.Keyword(null,\x22somef\x22,\x22somef\x22,-622590365),cljs.core.some_QMARK_);\nvar vf \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__19581__$1,new cljs.core.Keyword(null,\x22vf\x22,\x22vf\x22,-321423269),cljs.core.identity);\nvar kf \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__19581__$1,new cljs.core.Keyword(null,\x22kf\x22,\x22kf\x22,1608087589),cljs.core.identity);\nvar initk \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__19581__$1,new cljs.core.Keyword(null,\x22initk\x22,\x22initk\x22,-1693342987),null);\nreturn (new cljs.core.t_cljs$core19582(step,p__19580,map__19581__$1,somef,vf,kf,initk,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cljs.core.iteration.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.iteration.cljs$lang$applyTo \x3d (function (seq19578){\nvar G__19579 \x3d cljs.core.first(seq19578);\nvar seq19578__$1 \x3d cljs.core.next(seq19578);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19579,seq19578__$1);\n}));\n\n\n/**\n * @interface\n */\ncljs.core.IEncodeJS \x3d function(){};\n\nvar cljs$core$IEncodeJS$_clj__GT_js$dyn_25749 \x3d (function (x){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._clj__GT_js[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._clj__GT_js[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));\n} else {\nthrow cljs.core.missing_protocol(\x22IEncodeJS.-clj-\x3ejs\x22,x);\n}\n}\n});\n/**\n * Recursively transforms clj values to JavaScript\n */\ncljs.core._clj__GT_js \x3d (function cljs$core$_clj__GT_js(x){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$IEncodeJS$_clj__GT_js$arity$1 \x3d\x3d null)))))){\nreturn x.cljs$core$IEncodeJS$_clj__GT_js$arity$1(x);\n} else {\nreturn cljs$core$IEncodeJS$_clj__GT_js$dyn_25749(x);\n}\n});\n\nvar cljs$core$IEncodeJS$_key__GT_js$dyn_25751 \x3d (function (x){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._key__GT_js[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._key__GT_js[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));\n} else {\nthrow cljs.core.missing_protocol(\x22IEncodeJS.-key-\x3ejs\x22,x);\n}\n}\n});\n/**\n * Transforms map keys to valid JavaScript keys. Arbitrary keys are\n * encoded to their string representation via (pr-str x)\n */\ncljs.core._key__GT_js \x3d (function cljs$core$_key__GT_js(x){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$IEncodeJS$_key__GT_js$arity$1 \x3d\x3d null)))))){\nreturn x.cljs$core$IEncodeJS$_key__GT_js$arity$1(x);\n} else {\nreturn cljs$core$IEncodeJS$_key__GT_js$dyn_25751(x);\n}\n});\n\ncljs.core.key__GT_js \x3d (function cljs$core$key__GT_js(var_args){\nvar G__19588 \x3d arguments.length;\nswitch (G__19588) {\ncase 1:\nreturn cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$1 \x3d (function (k){\nreturn cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2(k,cljs.core.clj__GT_js);\n}));\n\n(cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2 \x3d (function (k,primitive_fn){\nif((((!((k \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d k.cljs$core$IEncodeJS$))))?true:(((!k.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,k):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,k))){\nreturn cljs.core._clj__GT_js(k);\n} else {\nif(((typeof k \x3d\x3d\x3d \x27string\x27) || (((typeof k \x3d\x3d\x3d \x27number\x27) || ((((k instanceof cljs.core.Keyword)) || ((k instanceof cljs.core.Symbol)))))))){\nreturn (primitive_fn.cljs$core$IFn$_invoke$arity$1 ? primitive_fn.cljs$core$IFn$_invoke$arity$1(k) : primitive_fn.call(null, k));\n} else {\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k], 0));\n\n}\n}\n}));\n\n(cljs.core.key__GT_js.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Recursively transforms ClojureScript values to JavaScript.\n * sets/vectors/lists become Arrays, Keywords and Symbol become Strings,\n * Maps become Objects. Arbitrary keys are encoded to by `key-\x3ejs`.\n * Options is a key-value pair, where the only valid key is\n * :keyword-fn, which should point to a single-argument function to be\n * called on keyword keys. Default to `name`.\n */\ncljs.core.clj__GT_js \x3d (function cljs$core$clj__GT_js(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25758 \x3d arguments.length;\nvar i__5727__auto___25760 \x3d (0);\nwhile(true){\nif((i__5727__auto___25760 \x3c len__5726__auto___25758)){\nargs__5732__auto__.push((arguments[i__5727__auto___25760]));\n\nvar G__25761 \x3d (i__5727__auto___25760 + (1));\ni__5727__auto___25760 \x3d G__25761;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,p__19592){\nvar map__19593 \x3d p__19592;\nvar map__19593__$1 \x3d cljs.core.__destructure_map(map__19593);\nvar options \x3d map__19593__$1;\nvar keyword_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__19593__$1,new cljs.core.Keyword(null,\x22keyword-fn\x22,\x22keyword-fn\x22,-64566675),cljs.core.name);\nvar keyfn \x3d (function cljs$core$keyfn(k){\nreturn cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2(k,thisfn);\n});\nvar thisfn \x3d (function cljs$core$thisfn(x__$1){\nif((x__$1 \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((x__$1 \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x__$1.cljs$core$IEncodeJS$))))?true:(((!x__$1.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,x__$1):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,x__$1))){\nreturn cljs.core._clj__GT_js(x__$1);\n} else {\nif((x__$1 instanceof cljs.core.Keyword)){\nreturn (keyword_fn.cljs$core$IFn$_invoke$arity$1 ? keyword_fn.cljs$core$IFn$_invoke$arity$1(x__$1) : keyword_fn.call(null, x__$1));\n} else {\nif((x__$1 instanceof cljs.core.Symbol)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(x__$1);\n} else {\nif(cljs.core.map_QMARK_(x__$1)){\nvar m \x3d ({});\nvar seq__19620_25771 \x3d cljs.core.seq(x__$1);\nvar chunk__19621_25772 \x3d null;\nvar count__19622_25773 \x3d (0);\nvar i__19623_25774 \x3d (0);\nwhile(true){\nif((i__19623_25774 \x3c count__19622_25773)){\nvar vec__19630_25775 \x3d chunk__19621_25772.cljs$core$IIndexed$_nth$arity$2(null, i__19623_25774);\nvar k_25776 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19630_25775,(0),null);\nvar v_25777 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19630_25775,(1),null);\ncljs.core.goog$module$goog$object.set(m,keyfn(k_25776),cljs$core$thisfn(v_25777));\n\n\nvar G__25778 \x3d seq__19620_25771;\nvar G__25779 \x3d chunk__19621_25772;\nvar G__25780 \x3d count__19622_25773;\nvar G__25781 \x3d (i__19623_25774 + (1));\nseq__19620_25771 \x3d G__25778;\nchunk__19621_25772 \x3d G__25779;\ncount__19622_25773 \x3d G__25780;\ni__19623_25774 \x3d G__25781;\ncontinue;\n} else {\nvar temp__5804__auto___25782 \x3d cljs.core.seq(seq__19620_25771);\nif(temp__5804__auto___25782){\nvar seq__19620_25784__$1 \x3d temp__5804__auto___25782;\nif(cljs.core.chunked_seq_QMARK_(seq__19620_25784__$1)){\nvar c__5525__auto___25785 \x3d cljs.core.chunk_first(seq__19620_25784__$1);\nvar G__25786 \x3d cljs.core.chunk_rest(seq__19620_25784__$1);\nvar G__25787 \x3d c__5525__auto___25785;\nvar G__25788 \x3d cljs.core.count(c__5525__auto___25785);\nvar G__25789 \x3d (0);\nseq__19620_25771 \x3d G__25786;\nchunk__19621_25772 \x3d G__25787;\ncount__19622_25773 \x3d G__25788;\ni__19623_25774 \x3d G__25789;\ncontinue;\n} else {\nvar vec__19633_25790 \x3d cljs.core.first(seq__19620_25784__$1);\nvar k_25791 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19633_25790,(0),null);\nvar v_25792 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19633_25790,(1),null);\ncljs.core.goog$module$goog$object.set(m,keyfn(k_25791),cljs$core$thisfn(v_25792));\n\n\nvar G__25794 \x3d cljs.core.next(seq__19620_25784__$1);\nvar G__25795 \x3d null;\nvar G__25796 \x3d (0);\nvar G__25797 \x3d (0);\nseq__19620_25771 \x3d G__25794;\nchunk__19621_25772 \x3d G__25795;\ncount__19622_25773 \x3d G__25796;\ni__19623_25774 \x3d G__25797;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn m;\n} else {\nif(cljs.core.coll_QMARK_(x__$1)){\nvar arr \x3d [];\nvar seq__19636_25798 \x3d cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$core$thisfn,x__$1));\nvar chunk__19637_25799 \x3d null;\nvar count__19638_25800 \x3d (0);\nvar i__19639_25801 \x3d (0);\nwhile(true){\nif((i__19639_25801 \x3c count__19638_25800)){\nvar x_25802__$2 \x3d chunk__19637_25799.cljs$core$IIndexed$_nth$arity$2(null, i__19639_25801);\narr.push(x_25802__$2);\n\n\nvar G__25803 \x3d seq__19636_25798;\nvar G__25804 \x3d chunk__19637_25799;\nvar G__25805 \x3d count__19638_25800;\nvar G__25806 \x3d (i__19639_25801 + (1));\nseq__19636_25798 \x3d G__25803;\nchunk__19637_25799 \x3d G__25804;\ncount__19638_25800 \x3d G__25805;\ni__19639_25801 \x3d G__25806;\ncontinue;\n} else {\nvar temp__5804__auto___25807 \x3d cljs.core.seq(seq__19636_25798);\nif(temp__5804__auto___25807){\nvar seq__19636_25808__$1 \x3d temp__5804__auto___25807;\nif(cljs.core.chunked_seq_QMARK_(seq__19636_25808__$1)){\nvar c__5525__auto___25809 \x3d cljs.core.chunk_first(seq__19636_25808__$1);\nvar G__25810 \x3d cljs.core.chunk_rest(seq__19636_25808__$1);\nvar G__25811 \x3d c__5525__auto___25809;\nvar G__25812 \x3d cljs.core.count(c__5525__auto___25809);\nvar G__25813 \x3d (0);\nseq__19636_25798 \x3d G__25810;\nchunk__19637_25799 \x3d G__25811;\ncount__19638_25800 \x3d G__25812;\ni__19639_25801 \x3d G__25813;\ncontinue;\n} else {\nvar x_25815__$2 \x3d cljs.core.first(seq__19636_25808__$1);\narr.push(x_25815__$2);\n\n\nvar G__25816 \x3d cljs.core.next(seq__19636_25808__$1);\nvar G__25817 \x3d null;\nvar G__25818 \x3d (0);\nvar G__25819 \x3d (0);\nseq__19636_25798 \x3d G__25816;\nchunk__19637_25799 \x3d G__25817;\ncount__19638_25800 \x3d G__25818;\ni__19639_25801 \x3d G__25819;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn arr;\n} else {\nreturn x__$1;\n\n}\n}\n}\n}\n}\n}\n});\nreturn thisfn(x);\n}));\n\n(cljs.core.clj__GT_js.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.clj__GT_js.cljs$lang$applyTo \x3d (function (seq19590){\nvar G__19591 \x3d cljs.core.first(seq19590);\nvar seq19590__$1 \x3d cljs.core.next(seq19590);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19591,seq19590__$1);\n}));\n\n\n/**\n * @interface\n */\ncljs.core.IEncodeClojure \x3d function(){};\n\nvar cljs$core$IEncodeClojure$_js__GT_clj$dyn_25821 \x3d (function (x,options){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (cljs.core._js__GT_clj[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(x,options) : m__5351__auto__.call(null, x,options));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._js__GT_clj[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(x,options) : m__5349__auto__.call(null, x,options));\n} else {\nthrow cljs.core.missing_protocol(\x22IEncodeClojure.-js-\x3eclj\x22,x);\n}\n}\n});\n/**\n * Transforms JavaScript values to Clojure\n */\ncljs.core._js__GT_clj \x3d (function cljs$core$_js__GT_clj(x,options){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.cljs$core$IEncodeClojure$_js__GT_clj$arity$2 \x3d\x3d null)))))){\nreturn x.cljs$core$IEncodeClojure$_js__GT_clj$arity$2(x,options);\n} else {\nreturn cljs$core$IEncodeClojure$_js__GT_clj$dyn_25821(x,options);\n}\n});\n\n/**\n * Recursively transforms JavaScript arrays into ClojureScript\n * vectors, and JavaScript objects into ClojureScript maps. With\n * option \x27:keywordize-keys true\x27 will convert object fields from\n * strings to keywords.\n */\ncljs.core.js__GT_clj \x3d (function cljs$core$js__GT_clj(var_args){\nvar G__19645 \x3d arguments.length;\nswitch (G__19645) {\ncase 1:\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___25837 \x3d arguments.length;\nvar i__5727__auto___25838 \x3d (0);\nwhile(true){\nif((i__5727__auto___25838 \x3c len__5726__auto___25837)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___25838]));\n\nvar G__25840 \x3d (i__5727__auto___25838 + (1));\ni__5727__auto___25838 \x3d G__25840;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((1) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(x,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22keywordize-keys\x22,\x22keywordize-keys\x22,1310784252),false], 0));\n}));\n\n(cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic \x3d (function (x,opts){\nvar map__19646 \x3d opts;\nvar map__19646__$1 \x3d cljs.core.__destructure_map(map__19646);\nvar keywordize_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19646__$1,new cljs.core.Keyword(null,\x22keywordize-keys\x22,\x22keywordize-keys\x22,1310784252));\nvar keyfn \x3d (cljs.core.truth_(keywordize_keys)?cljs.core.keyword:cljs.core.str);\nvar f \x3d (function cljs$core$thisfn(x__$1){\nif((((!((x__$1 \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x__$1.cljs$core$IEncodeClojure$))))?true:(((!x__$1.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeClojure,x__$1):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeClojure,x__$1))){\nreturn cljs.core._js__GT_clj(x__$1,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.array_map,opts));\n} else {\nif(cljs.core.seq_QMARK_(x__$1)){\nreturn cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$core$thisfn,x__$1));\n} else {\nif(cljs.core.map_entry_QMARK_(x__$1)){\nreturn (new cljs.core.MapEntry(cljs$core$thisfn(cljs.core.key(x__$1)),cljs$core$thisfn(cljs.core.val(x__$1)),null));\n} else {\nif(cljs.core.coll_QMARK_(x__$1)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.empty(x__$1),cljs.core.map.cljs$core$IFn$_invoke$arity$1(cljs$core$thisfn),x__$1);\n} else {\nif(cljs.core.array_QMARK_(x__$1)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19640_SHARP_,p2__19641_SHARP_){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(p1__19640_SHARP_,cljs$core$thisfn(p2__19641_SHARP_));\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),x__$1));\n} else {\nif((cljs.core.type(x__$1) \x3d\x3d\x3d Object)){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,k){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(r,(keyfn.cljs$core$IFn$_invoke$arity$1 ? keyfn.cljs$core$IFn$_invoke$arity$1(k) : keyfn.call(null, k)),cljs$core$thisfn(cljs.core.goog$module$goog$object.get(x__$1,k)));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),cljs.core.js_keys(x__$1)));\n} else {\nreturn x__$1;\n\n}\n}\n}\n}\n}\n}\n});\nreturn f(x);\n}));\n\n/** @this {Function} */\n(cljs.core.js__GT_clj.cljs$lang$applyTo \x3d (function (seq19643){\nvar G__19644 \x3d cljs.core.first(seq19643);\nvar seq19643__$1 \x3d cljs.core.next(seq19643);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19644,seq19643__$1);\n}));\n\n(cljs.core.js__GT_clj.cljs$lang$maxFixedArity \x3d (1));\n\n/**\n * Returns a memoized version of a referentially transparent function. The\n * memoized version of the function keeps a cache of the mapping from arguments\n * to results and, when calls with the same arguments are repeated often, has\n * higher performance at the expense of higher memory use.\n */\ncljs.core.memoize \x3d (function cljs$core$memoize(f){\nvar mem \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nreturn (function() { \nvar G__25845__delegate \x3d function (args){\nvar v \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(mem),args,cljs.core.lookup_sentinel);\nif((v \x3d\x3d\x3d cljs.core.lookup_sentinel)){\nvar ret \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(mem,cljs.core.assoc,args,ret);\n\nreturn ret;\n} else {\nreturn v;\n}\n};\nvar G__25845 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__25847__i \x3d 0, G__25847__a \x3d new Array(arguments.length - 0);\nwhile (G__25847__i \x3c G__25847__a.length) {G__25847__a[G__25847__i] \x3d arguments[G__25847__i + 0]; ++G__25847__i;}\n args \x3d new cljs.core.IndexedSeq(G__25847__a,0,null);\n} \nreturn G__25845__delegate.call(this,args);};\nG__25845.cljs$lang$maxFixedArity \x3d 0;\nG__25845.cljs$lang$applyTo \x3d (function (arglist__25848){\nvar args \x3d cljs.core.seq(arglist__25848);\nreturn G__25845__delegate(args);\n});\nG__25845.cljs$core$IFn$_invoke$arity$variadic \x3d G__25845__delegate;\nreturn G__25845;\n})()\n;\n});\n/**\n * trampoline can be used to convert algorithms requiring mutual\n * recursion without stack consumption. Calls f with supplied args, if\n * any. If f returns a fn, calls that fn with no arguments, and\n * continues to repeat, until the return value is not a fn, then\n * returns that non-fn value. Note that if you want to return a fn as a\n * final value, you must wrap it in some data structure and unpack it\n * after trampoline returns.\n */\ncljs.core.trampoline \x3d (function cljs$core$trampoline(var_args){\nvar G__19651 \x3d arguments.length;\nswitch (G__19651) {\ncase 1:\nreturn cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___25851 \x3d arguments.length;\nvar i__5727__auto___25852 \x3d (0);\nwhile(true){\nif((i__5727__auto___25852 \x3c len__5726__auto___25851)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___25852]));\n\nvar G__25853 \x3d (i__5727__auto___25852 + (1));\ni__5727__auto___25852 \x3d G__25853;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((1) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.trampoline.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);\n\n}\n});\n\n(cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nwhile(true){\nvar ret \x3d (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\nif(cljs.core.fn_QMARK_(ret)){\nvar G__25854 \x3d ret;\nf \x3d G__25854;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n}));\n\n(cljs.core.trampoline.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,args){\nreturn cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\n}));\n}));\n\n/** @this {Function} */\n(cljs.core.trampoline.cljs$lang$applyTo \x3d (function (seq19649){\nvar G__19650 \x3d cljs.core.first(seq19649);\nvar seq19649__$1 \x3d cljs.core.next(seq19649);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19650,seq19649__$1);\n}));\n\n(cljs.core.trampoline.cljs$lang$maxFixedArity \x3d (1));\n\n/**\n * Returns a random floating point number between 0 (inclusive) and\n * n (default 1) (exclusive).\n */\ncljs.core.rand \x3d (function cljs$core$rand(var_args){\nvar G__19653 \x3d arguments.length;\nswitch (G__19653) {\ncase 0:\nreturn cljs.core.rand.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.rand.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.rand.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.rand.cljs$core$IFn$_invoke$arity$1((1));\n}));\n\n(cljs.core.rand.cljs$core$IFn$_invoke$arity$1 \x3d (function (n){\nreturn (Math.random() * n);\n}));\n\n(cljs.core.rand.cljs$lang$maxFixedArity \x3d 1);\n\n/**\n * Returns a random integer between 0 (inclusive) and n (exclusive).\n */\ncljs.core.rand_int \x3d (function cljs$core$rand_int(n){\nreturn Math.floor((Math.random() * n));\n});\n/**\n * Return a random element of the (sequential) collection. Will have\n * the same performance characteristics as nth for the given\n * collection.\n */\ncljs.core.rand_nth \x3d (function cljs$core$rand_nth(coll){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(coll,cljs.core.rand_int(cljs.core.count(coll)));\n});\n/**\n * Returns a map of the elements of coll keyed by the result of\n * f on each element. The value at each key will be a vector of the\n * corresponding elements, in the order they appeared in coll.\n */\ncljs.core.group_by \x3d (function cljs$core$group_by(f,coll){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){\nvar k \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(x) : f.call(null, x));\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(ret,k,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(ret,k,cljs.core.PersistentVector.EMPTY),x));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),coll));\n});\n/**\n * Creates a hierarchy object for use with derive, isa? etc.\n */\ncljs.core.make_hierarchy \x3d (function cljs$core$make_hierarchy(){\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22parents\x22,\x22parents\x22,-2027538891),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22descendants\x22,\x22descendants\x22,1824886031),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22ancestors\x22,\x22ancestors\x22,-776045424),cljs.core.PersistentArrayMap.EMPTY], null);\n});\n/**\n * @type {*}\n */\ncljs.core._global_hierarchy \x3d null;\ncljs.core.get_global_hierarchy \x3d (function cljs$core$get_global_hierarchy(){\nif((cljs.core._global_hierarchy \x3d\x3d null)){\n(cljs.core._global_hierarchy \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.make_hierarchy()));\n} else {\n}\n\nreturn cljs.core._global_hierarchy;\n});\ncljs.core.swap_global_hierarchy_BANG_ \x3d (function cljs$core$swap_global_hierarchy_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___25860 \x3d arguments.length;\nvar i__5727__auto___25861 \x3d (0);\nwhile(true){\nif((i__5727__auto___25861 \x3c len__5726__auto___25860)){\nargs__5732__auto__.push((arguments[i__5727__auto___25861]));\n\nvar G__25862 \x3d (i__5727__auto___25861 + (1));\ni__5727__auto___25861 \x3d G__25862;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (f,args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.swap_BANG_,cljs.core.get_global_hierarchy(),f,args);\n}));\n\n(cljs.core.swap_global_hierarchy_BANG_.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.swap_global_hierarchy_BANG_.cljs$lang$applyTo \x3d (function (seq19654){\nvar G__19655 \x3d cljs.core.first(seq19654);\nvar seq19654__$1 \x3d cljs.core.next(seq19654);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19655,seq19654__$1);\n}));\n\n/**\n * Returns true if (\x3d child parent), or child is directly or indirectly derived from\n * parent, either via a JavaScript type inheritance relationship or a\n * relationship established via derive. h must be a hierarchy obtained\n * from make-hierarchy, if not supplied defaults to the global\n * hierarchy\n */\ncljs.core.isa_QMARK_ \x3d (function cljs$core$isa_QMARK_(var_args){\nvar G__19657 \x3d arguments.length;\nswitch (G__19657) {\ncase 2:\nreturn cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (child,parent){\nreturn cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.core.get_global_hierarchy()),child,parent);\n}));\n\n(cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (h,child,parent){\nvar or__5002__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(child,parent);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.core.contains_QMARK_((function (){var fexpr__19658 \x3d new cljs.core.Keyword(null,\x22ancestors\x22,\x22ancestors\x22,-776045424).cljs$core$IFn$_invoke$arity$1(h);\nreturn (fexpr__19658.cljs$core$IFn$_invoke$arity$1 ? fexpr__19658.cljs$core$IFn$_invoke$arity$1(child) : fexpr__19658.call(null, child));\n})(),parent);\nif(or__5002__auto____$1){\nreturn or__5002__auto____$1;\n} else {\nvar and__5000__auto__ \x3d cljs.core.vector_QMARK_(parent);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d cljs.core.vector_QMARK_(child);\nif(and__5000__auto____$1){\nvar and__5000__auto____$2 \x3d (cljs.core.count(parent) \x3d\x3d\x3d cljs.core.count(child));\nif(and__5000__auto____$2){\nvar ret \x3d true;\nvar i \x3d (0);\nwhile(true){\nif((((!(ret))) || ((i \x3d\x3d\x3d cljs.core.count(parent))))){\nreturn ret;\n} else {\nvar G__25877 \x3d cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(h,(child.cljs$core$IFn$_invoke$arity$1 ? child.cljs$core$IFn$_invoke$arity$1(i) : child.call(null, i)),(parent.cljs$core$IFn$_invoke$arity$1 ? parent.cljs$core$IFn$_invoke$arity$1(i) : parent.call(null, i)));\nvar G__25878 \x3d (i + (1));\nret \x3d G__25877;\ni \x3d G__25878;\ncontinue;\n}\nbreak;\n}\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n}\n}\n}));\n\n(cljs.core.isa_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns the immediate parents of tag, either via a JavaScript type\n * inheritance relationship or a relationship established via derive. h\n * must be a hierarchy obtained from make-hierarchy, if not supplied\n * defaults to the global hierarchy\n */\ncljs.core.parents \x3d (function cljs$core$parents(var_args){\nvar G__19660 \x3d arguments.length;\nswitch (G__19660) {\ncase 1:\nreturn cljs.core.parents.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.parents.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.parents.cljs$core$IFn$_invoke$arity$1 \x3d (function (tag){\nreturn cljs.core.parents.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.get_global_hierarchy()),tag);\n}));\n\n(cljs.core.parents.cljs$core$IFn$_invoke$arity$2 \x3d (function (h,tag){\nreturn cljs.core.not_empty(cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22parents\x22,\x22parents\x22,-2027538891).cljs$core$IFn$_invoke$arity$1(h),tag));\n}));\n\n(cljs.core.parents.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the immediate and indirect parents of tag, either via a JavaScript type\n * inheritance relationship or a relationship established via derive. h\n * must be a hierarchy obtained from make-hierarchy, if not supplied\n * defaults to the global hierarchy\n */\ncljs.core.ancestors \x3d (function cljs$core$ancestors(var_args){\nvar G__19662 \x3d arguments.length;\nswitch (G__19662) {\ncase 1:\nreturn cljs.core.ancestors.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.ancestors.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.ancestors.cljs$core$IFn$_invoke$arity$1 \x3d (function (tag){\nreturn cljs.core.ancestors.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.get_global_hierarchy()),tag);\n}));\n\n(cljs.core.ancestors.cljs$core$IFn$_invoke$arity$2 \x3d (function (h,tag){\nreturn cljs.core.not_empty(cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ancestors\x22,\x22ancestors\x22,-776045424).cljs$core$IFn$_invoke$arity$1(h),tag));\n}));\n\n(cljs.core.ancestors.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the immediate and indirect children of tag, through a\n * relationship established via derive. h must be a hierarchy obtained\n * from make-hierarchy, if not supplied defaults to the global\n * hierarchy. Note: does not work on JavaScript type inheritance\n * relationships.\n */\ncljs.core.descendants \x3d (function cljs$core$descendants(var_args){\nvar G__19664 \x3d arguments.length;\nswitch (G__19664) {\ncase 1:\nreturn cljs.core.descendants.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.descendants.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.descendants.cljs$core$IFn$_invoke$arity$1 \x3d (function (tag){\nreturn cljs.core.descendants.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.get_global_hierarchy()),tag);\n}));\n\n(cljs.core.descendants.cljs$core$IFn$_invoke$arity$2 \x3d (function (h,tag){\nreturn cljs.core.not_empty(cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22descendants\x22,\x22descendants\x22,1824886031).cljs$core$IFn$_invoke$arity$1(h),tag));\n}));\n\n(cljs.core.descendants.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Establishes a parent/child relationship between parent and\n * tag. Parent must be a namespace-qualified symbol or keyword and\n * child can be either a namespace-qualified symbol or keyword or a\n * class. h must be a hierarchy obtained from make-hierarchy, if not\n * supplied defaults to, and modifies, the global hierarchy.\n */\ncljs.core.derive \x3d (function cljs$core$derive(var_args){\nvar G__19666 \x3d arguments.length;\nswitch (G__19666) {\ncase 2:\nreturn cljs.core.derive.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.derive.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.derive.cljs$core$IFn$_invoke$arity$2 \x3d (function (tag,parent){\nif(cljs.core.truth_(cljs.core.namespace(parent))){\n} else {\nthrow (new Error(\x22Assert failed: (namespace parent)\x22));\n}\n\ncljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.derive,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag,parent], 0));\n\nreturn null;\n}));\n\n(cljs.core.derive.cljs$core$IFn$_invoke$arity$3 \x3d (function (h,tag,parent){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(tag,parent)){\n} else {\nthrow (new Error(\x22Assert failed: (not\x3d tag parent)\x22));\n}\n\nvar tp \x3d new cljs.core.Keyword(null,\x22parents\x22,\x22parents\x22,-2027538891).cljs$core$IFn$_invoke$arity$1(h);\nvar td \x3d new cljs.core.Keyword(null,\x22descendants\x22,\x22descendants\x22,1824886031).cljs$core$IFn$_invoke$arity$1(h);\nvar ta \x3d new cljs.core.Keyword(null,\x22ancestors\x22,\x22ancestors\x22,-776045424).cljs$core$IFn$_invoke$arity$1(h);\nvar tf \x3d (function (m,source,sources,target,targets){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,k){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,k,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.get.cljs$core$IFn$_invoke$arity$3(targets,k,cljs.core.PersistentHashSet.EMPTY),cljs.core.cons(target,(targets.cljs$core$IFn$_invoke$arity$1 ? targets.cljs$core$IFn$_invoke$arity$1(target) : targets.call(null, target)))));\n}),m,cljs.core.cons(source,(sources.cljs$core$IFn$_invoke$arity$1 ? sources.cljs$core$IFn$_invoke$arity$1(source) : sources.call(null, source))));\n});\nvar or__5002__auto__ \x3d ((cljs.core.contains_QMARK_((tp.cljs$core$IFn$_invoke$arity$1 ? tp.cljs$core$IFn$_invoke$arity$1(tag) : tp.call(null, tag)),parent))?null:(function (){\nif(cljs.core.contains_QMARK_((ta.cljs$core$IFn$_invoke$arity$1 ? ta.cljs$core$IFn$_invoke$arity$1(tag) : ta.call(null, tag)),parent)){\nthrow (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22already has\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(parent),\x22as ancestor\x22].join(\x27\x27)));\n} else {\n}\n\nif(cljs.core.contains_QMARK_((ta.cljs$core$IFn$_invoke$arity$1 ? ta.cljs$core$IFn$_invoke$arity$1(parent) : ta.call(null, parent)),tag)){\nthrow (new Error([\x22Cyclic derivation:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(parent),\x22has\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(tag),\x22as ancestor\x22].join(\x27\x27)));\n} else {\n}\n\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22parents\x22,\x22parents\x22,-2027538891),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,\x22parents\x22,\x22parents\x22,-2027538891).cljs$core$IFn$_invoke$arity$1(h),tag,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(tp,tag,cljs.core.PersistentHashSet.EMPTY),parent)),new cljs.core.Keyword(null,\x22ancestors\x22,\x22ancestors\x22,-776045424),tf(new cljs.core.Keyword(null,\x22ancestors\x22,\x22ancestors\x22,-776045424).cljs$core$IFn$_invoke$arity$1(h),tag,td,parent,ta),new cljs.core.Keyword(null,\x22descendants\x22,\x22descendants\x22,1824886031),tf(new cljs.core.Keyword(null,\x22descendants\x22,\x22descendants\x22,1824886031).cljs$core$IFn$_invoke$arity$1(h),parent,ta,tag,td)], null);\n})()\n);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn h;\n}\n}));\n\n(cljs.core.derive.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Removes a parent/child relationship between parent and\n * tag. h must be a hierarchy obtained from make-hierarchy, if not\n * supplied defaults to, and modifies, the global hierarchy.\n */\ncljs.core.underive \x3d (function cljs$core$underive(var_args){\nvar G__19671 \x3d arguments.length;\nswitch (G__19671) {\ncase 2:\nreturn cljs.core.underive.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.underive.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.underive.cljs$core$IFn$_invoke$arity$2 \x3d (function (tag,parent){\ncljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.underive,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tag,parent], 0));\n\nreturn null;\n}));\n\n(cljs.core.underive.cljs$core$IFn$_invoke$arity$3 \x3d (function (h,tag,parent){\nvar parentMap \x3d new cljs.core.Keyword(null,\x22parents\x22,\x22parents\x22,-2027538891).cljs$core$IFn$_invoke$arity$1(h);\nvar childsParents \x3d (cljs.core.truth_((parentMap.cljs$core$IFn$_invoke$arity$1 ? parentMap.cljs$core$IFn$_invoke$arity$1(tag) : parentMap.call(null, tag)))?cljs.core.disj.cljs$core$IFn$_invoke$arity$2((parentMap.cljs$core$IFn$_invoke$arity$1 ? parentMap.cljs$core$IFn$_invoke$arity$1(tag) : parentMap.call(null, tag)),parent):cljs.core.PersistentHashSet.EMPTY);\nvar newParents \x3d (cljs.core.truth_(cljs.core.not_empty(childsParents))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(parentMap,tag,childsParents):cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(parentMap,tag));\nvar deriv_seq \x3d cljs.core.flatten(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__19667_SHARP_){\nreturn cljs.core.cons(cljs.core.first(p1__19667_SHARP_),cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(cljs.core.first(p1__19667_SHARP_),cljs.core.second(p1__19667_SHARP_)));\n}),cljs.core.seq(newParents)));\nif(cljs.core.contains_QMARK_((parentMap.cljs$core$IFn$_invoke$arity$1 ? parentMap.cljs$core$IFn$_invoke$arity$1(tag) : parentMap.call(null, tag)),parent)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19668_SHARP_,p2__19669_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.derive,p1__19668_SHARP_,p2__19669_SHARP_);\n}),cljs.core.make_hierarchy(),cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),deriv_seq));\n} else {\nreturn h;\n}\n}));\n\n(cljs.core.underive.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.reset_cache \x3d (function cljs$core$reset_cache(method_cache,method_table,cached_hierarchy,hierarchy){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(method_cache,(function (_){\nreturn cljs.core.deref(method_table);\n}));\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cached_hierarchy,(function (_){\nreturn cljs.core.deref(hierarchy);\n}));\n});\ncljs.core.prefers_STAR_ \x3d (function cljs$core$prefers_STAR_(x,y,prefer_table){\nvar xprefs \x3d (function (){var fexpr__19672 \x3d cljs.core.deref(prefer_table);\nreturn (fexpr__19672.cljs$core$IFn$_invoke$arity$1 ? fexpr__19672.cljs$core$IFn$_invoke$arity$1(x) : fexpr__19672.call(null, x));\n})();\nvar or__5002__auto__ \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d xprefs;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (xprefs.cljs$core$IFn$_invoke$arity$1 ? xprefs.cljs$core$IFn$_invoke$arity$1(y) : xprefs.call(null, y));\n} else {\nreturn and__5000__auto__;\n}\n})())?true:null);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (function (){var ps \x3d cljs.core.parents.cljs$core$IFn$_invoke$arity$1(y);\nwhile(true){\nif((cljs.core.count(ps) \x3e (0))){\nif(cljs.core.truth_((function (){var G__19673 \x3d x;\nvar G__19674 \x3d cljs.core.first(ps);\nvar G__19675 \x3d prefer_table;\nreturn (cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3 ? cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3(G__19673,G__19674,G__19675) : cljs.core.prefers_STAR_.call(null, G__19673,G__19674,G__19675));\n})())){\n} else {\n}\n\nvar G__25936 \x3d cljs.core.rest(ps);\nps \x3d G__25936;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n})();\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d (function (){var ps \x3d cljs.core.parents.cljs$core$IFn$_invoke$arity$1(x);\nwhile(true){\nif((cljs.core.count(ps) \x3e (0))){\nif(cljs.core.truth_((function (){var G__19676 \x3d cljs.core.first(ps);\nvar G__19677 \x3d y;\nvar G__19678 \x3d prefer_table;\nreturn (cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3 ? cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3(G__19676,G__19677,G__19678) : cljs.core.prefers_STAR_.call(null, G__19676,G__19677,G__19678));\n})())){\n} else {\n}\n\nvar G__25937 \x3d cljs.core.rest(ps);\nps \x3d G__25937;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n})();\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nreturn false;\n}\n}\n}\n});\ncljs.core.dominates \x3d (function cljs$core$dominates(x,y,prefer_table,hierarchy){\nvar or__5002__auto__ \x3d cljs.core.prefers_STAR_(x,y,prefer_table);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(hierarchy,x,y);\n}\n});\ncljs.core.find_and_cache_best_method \x3d (function cljs$core$find_and_cache_best_method(name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy,default_dispatch_val){\nvar best_entry \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (be,p__19679){\nvar vec__19680 \x3d p__19679;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19680,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19680,(1),null);\nvar e \x3d vec__19680;\nif(cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(hierarchy),dispatch_val,k)){\nvar be2 \x3d (((((be \x3d\x3d null)) || (cljs.core.dominates(k,cljs.core.first(be),prefer_table,cljs.core.deref(hierarchy)))))?e:be);\nif(cljs.core.dominates(cljs.core.first(be2),k,prefer_table,cljs.core.deref(hierarchy))){\n} else {\nthrow (new Error([\x22Multiple methods in multimethod \x27\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22\x27 match dispatch value: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(dispatch_val),\x22 -\x3e \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k),\x22 and \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(be2)),\x22, and neither is preferred\x22].join(\x27\x27)));\n}\n\nreturn be2;\n} else {\nreturn be;\n}\n}),null,cljs.core.deref(method_table));\nvar best_entry__$1 \x3d (function (){var temp__5802__auto__ \x3d (function (){var and__5000__auto__ \x3d (best_entry \x3d\x3d null);\nif(and__5000__auto__){\nvar fexpr__19683 \x3d cljs.core.deref(method_table);\nreturn (fexpr__19683.cljs$core$IFn$_invoke$arity$1 ? fexpr__19683.cljs$core$IFn$_invoke$arity$1(default_dispatch_val) : fexpr__19683.call(null, default_dispatch_val));\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5802__auto__)){\nvar entry \x3d temp__5802__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [default_dispatch_val,entry], null);\n} else {\nreturn best_entry;\n}\n})();\nif(cljs.core.truth_(best_entry__$1)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cached_hierarchy),cljs.core.deref(hierarchy))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(method_cache,cljs.core.assoc,dispatch_val,cljs.core.second(best_entry__$1));\n\nreturn cljs.core.second(best_entry__$1);\n} else {\ncljs.core.reset_cache(method_cache,method_table,cached_hierarchy,hierarchy);\n\nreturn (cljs.core.find_and_cache_best_method.cljs$core$IFn$_invoke$arity$8 ? cljs.core.find_and_cache_best_method.cljs$core$IFn$_invoke$arity$8(name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy,default_dispatch_val) : cljs.core.find_and_cache_best_method.call(null, name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy,default_dispatch_val));\n}\n} else {\nreturn null;\n}\n});\n\n/**\n * @interface\n */\ncljs.core.IMultiFn \x3d function(){};\n\nvar cljs$core$IMultiFn$_reset$dyn_25943 \x3d (function (mf){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._reset[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5351__auto__.call(null, mf));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._reset[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5349__auto__.call(null, mf));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-reset\x22,mf);\n}\n}\n});\ncljs.core._reset \x3d (function cljs$core$_reset(mf){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_reset$arity$1 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_reset$arity$1(mf);\n} else {\nreturn cljs$core$IMultiFn$_reset$dyn_25943(mf);\n}\n});\n\nvar cljs$core$IMultiFn$_add_method$dyn_25947 \x3d (function (mf,dispatch_val,method){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._add_method[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(mf,dispatch_val,method) : m__5351__auto__.call(null, mf,dispatch_val,method));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._add_method[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(mf,dispatch_val,method) : m__5349__auto__.call(null, mf,dispatch_val,method));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-add-method\x22,mf);\n}\n}\n});\ncljs.core._add_method \x3d (function cljs$core$_add_method(mf,dispatch_val,method){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_add_method$arity$3 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_add_method$arity$3(mf,dispatch_val,method);\n} else {\nreturn cljs$core$IMultiFn$_add_method$dyn_25947(mf,dispatch_val,method);\n}\n});\n\nvar cljs$core$IMultiFn$_remove_method$dyn_25949 \x3d (function (mf,dispatch_val){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._remove_method[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(mf,dispatch_val) : m__5351__auto__.call(null, mf,dispatch_val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._remove_method[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(mf,dispatch_val) : m__5349__auto__.call(null, mf,dispatch_val));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-remove-method\x22,mf);\n}\n}\n});\ncljs.core._remove_method \x3d (function cljs$core$_remove_method(mf,dispatch_val){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_remove_method$arity$2 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_remove_method$arity$2(mf,dispatch_val);\n} else {\nreturn cljs$core$IMultiFn$_remove_method$dyn_25949(mf,dispatch_val);\n}\n});\n\nvar cljs$core$IMultiFn$_prefer_method$dyn_25951 \x3d (function (mf,dispatch_val,dispatch_val_y){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._prefer_method[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(mf,dispatch_val,dispatch_val_y) : m__5351__auto__.call(null, mf,dispatch_val,dispatch_val_y));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._prefer_method[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(mf,dispatch_val,dispatch_val_y) : m__5349__auto__.call(null, mf,dispatch_val,dispatch_val_y));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-prefer-method\x22,mf);\n}\n}\n});\ncljs.core._prefer_method \x3d (function cljs$core$_prefer_method(mf,dispatch_val,dispatch_val_y){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_prefer_method$arity$3 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_prefer_method$arity$3(mf,dispatch_val,dispatch_val_y);\n} else {\nreturn cljs$core$IMultiFn$_prefer_method$dyn_25951(mf,dispatch_val,dispatch_val_y);\n}\n});\n\nvar cljs$core$IMultiFn$_get_method$dyn_25957 \x3d (function (mf,dispatch_val){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._get_method[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(mf,dispatch_val) : m__5351__auto__.call(null, mf,dispatch_val));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._get_method[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(mf,dispatch_val) : m__5349__auto__.call(null, mf,dispatch_val));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-get-method\x22,mf);\n}\n}\n});\ncljs.core._get_method \x3d (function cljs$core$_get_method(mf,dispatch_val){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_get_method$arity$2 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_get_method$arity$2(mf,dispatch_val);\n} else {\nreturn cljs$core$IMultiFn$_get_method$dyn_25957(mf,dispatch_val);\n}\n});\n\nvar cljs$core$IMultiFn$_methods$dyn_25967 \x3d (function (mf){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._methods[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5351__auto__.call(null, mf));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._methods[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5349__auto__.call(null, mf));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-methods\x22,mf);\n}\n}\n});\ncljs.core._methods \x3d (function cljs$core$_methods(mf){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_methods$arity$1 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_methods$arity$1(mf);\n} else {\nreturn cljs$core$IMultiFn$_methods$dyn_25967(mf);\n}\n});\n\nvar cljs$core$IMultiFn$_prefers$dyn_25972 \x3d (function (mf){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._prefers[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5351__auto__.call(null, mf));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._prefers[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5349__auto__.call(null, mf));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-prefers\x22,mf);\n}\n}\n});\ncljs.core._prefers \x3d (function cljs$core$_prefers(mf){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_prefers$arity$1 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_prefers$arity$1(mf);\n} else {\nreturn cljs$core$IMultiFn$_prefers$dyn_25972(mf);\n}\n});\n\nvar cljs$core$IMultiFn$_default_dispatch_val$dyn_25976 \x3d (function (mf){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._default_dispatch_val[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5351__auto__.call(null, mf));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._default_dispatch_val[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5349__auto__.call(null, mf));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-default-dispatch-val\x22,mf);\n}\n}\n});\ncljs.core._default_dispatch_val \x3d (function cljs$core$_default_dispatch_val(mf){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_default_dispatch_val$arity$1 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_default_dispatch_val$arity$1(mf);\n} else {\nreturn cljs$core$IMultiFn$_default_dispatch_val$dyn_25976(mf);\n}\n});\n\nvar cljs$core$IMultiFn$_dispatch_fn$dyn_25982 \x3d (function (mf){\nvar x__5350__auto__ \x3d (((mf \x3d\x3d null))?null:mf);\nvar m__5351__auto__ \x3d (cljs.core._dispatch_fn[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5351__auto__.call(null, mf));\n} else {\nvar m__5349__auto__ \x3d (cljs.core._dispatch_fn[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(mf) : m__5349__auto__.call(null, mf));\n} else {\nthrow cljs.core.missing_protocol(\x22IMultiFn.-dispatch-fn\x22,mf);\n}\n}\n});\ncljs.core._dispatch_fn \x3d (function cljs$core$_dispatch_fn(mf){\nif((((!((mf \x3d\x3d null)))) \x26\x26 ((!((mf.cljs$core$IMultiFn$_dispatch_fn$arity$1 \x3d\x3d null)))))){\nreturn mf.cljs$core$IMultiFn$_dispatch_fn$arity$1(mf);\n} else {\nreturn cljs$core$IMultiFn$_dispatch_fn$dyn_25982(mf);\n}\n});\n\ncljs.core.throw_no_method_error \x3d (function cljs$core$throw_no_method_error(name,dispatch_val){\nthrow (new Error([\x22No method in multimethod \x27\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(name),\x22\x27 for dispatch value: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(dispatch_val)].join(\x27\x27)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IFn}\n * @implements {cljs.core.IMultiFn}\n * @implements {cljs.core.INamed}\n*/\ncljs.core.MultiFn \x3d (function (name,dispatch_fn,default_dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy){\nthis.name \x3d name;\nthis.dispatch_fn \x3d dispatch_fn;\nthis.default_dispatch_val \x3d default_dispatch_val;\nthis.hierarchy \x3d hierarchy;\nthis.method_table \x3d method_table;\nthis.prefer_table \x3d prefer_table;\nthis.method_cache \x3d method_cache;\nthis.cached_hierarchy \x3d cached_hierarchy;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 4194305;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 4352;\n});\n(cljs.core.MultiFn.prototype.call \x3d (function (unused__10318__auto__){\nvar self__ \x3d this;\nvar self__ \x3d this;\nvar G__19685 \x3d (arguments.length - (1));\nswitch (G__19685) {\ncase (0):\nreturn self__.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase (1):\nreturn self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));\n\nbreak;\ncase (2):\nreturn self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase (3):\nreturn self__.cljs$core$IFn$_invoke$arity$3((arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase (4):\nreturn self__.cljs$core$IFn$_invoke$arity$4((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase (5):\nreturn self__.cljs$core$IFn$_invoke$arity$5((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase (6):\nreturn self__.cljs$core$IFn$_invoke$arity$6((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase (7):\nreturn self__.cljs$core$IFn$_invoke$arity$7((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]));\n\nbreak;\ncase (8):\nreturn self__.cljs$core$IFn$_invoke$arity$8((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ncase (9):\nreturn self__.cljs$core$IFn$_invoke$arity$9((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ncase (10):\nreturn self__.cljs$core$IFn$_invoke$arity$10((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]));\n\nbreak;\ncase (11):\nreturn self__.cljs$core$IFn$_invoke$arity$11((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]));\n\nbreak;\ncase (12):\nreturn self__.cljs$core$IFn$_invoke$arity$12((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]));\n\nbreak;\ncase (13):\nreturn self__.cljs$core$IFn$_invoke$arity$13((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]));\n\nbreak;\ncase (14):\nreturn self__.cljs$core$IFn$_invoke$arity$14((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]));\n\nbreak;\ncase (15):\nreturn self__.cljs$core$IFn$_invoke$arity$15((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]));\n\nbreak;\ncase (16):\nreturn self__.cljs$core$IFn$_invoke$arity$16((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]));\n\nbreak;\ncase (17):\nreturn self__.cljs$core$IFn$_invoke$arity$17((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]));\n\nbreak;\ncase (18):\nreturn self__.cljs$core$IFn$_invoke$arity$18((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]));\n\nbreak;\ncase (19):\nreturn self__.cljs$core$IFn$_invoke$arity$19((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]));\n\nbreak;\ncase (20):\nreturn self__.cljs$core$IFn$_invoke$arity$20((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]));\n\nbreak;\ncase (21):\nreturn self__.cljs$core$IFn$_invoke$arity$21((arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]),(arguments[(21)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(\x27\x27)));\n\n}\n}));\n\n(cljs.core.MultiFn.prototype.apply \x3d (function (self__,args19684){\nvar self__ \x3d this;\nvar self____$1 \x3d this;\nreturn self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args19684)));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$0 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$0() : self__.dispatch_fn.call(null, ));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$0 ? target_fn.cljs$core$IFn$_invoke$arity$0() : target_fn.call(null, ));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$1 \x3d (function (a){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$1 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$1(a) : self__.dispatch_fn.call(null, a));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$1 ? target_fn.cljs$core$IFn$_invoke$arity$1(a) : target_fn.call(null, a));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,b){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$2 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$2(a,b) : self__.dispatch_fn.call(null, a,b));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$2 ? target_fn.cljs$core$IFn$_invoke$arity$2(a,b) : target_fn.call(null, a,b));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,b,c){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$3 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$3(a,b,c) : self__.dispatch_fn.call(null, a,b,c));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$3 ? target_fn.cljs$core$IFn$_invoke$arity$3(a,b,c) : target_fn.call(null, a,b,c));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$4 \x3d (function (a,b,c,d){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$4 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$4(a,b,c,d) : self__.dispatch_fn.call(null, a,b,c,d));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$4 ? target_fn.cljs$core$IFn$_invoke$arity$4(a,b,c,d) : target_fn.call(null, a,b,c,d));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$5 \x3d (function (a,b,c,d,e){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$5 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e) : self__.dispatch_fn.call(null, a,b,c,d,e));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$5 ? target_fn.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e) : target_fn.call(null, a,b,c,d,e));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$6 \x3d (function (a,b,c,d,e,f){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$6 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f) : self__.dispatch_fn.call(null, a,b,c,d,e,f));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$6 ? target_fn.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f) : target_fn.call(null, a,b,c,d,e,f));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$7 \x3d (function (a,b,c,d,e,f,g){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$7 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$7 ? target_fn.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g) : target_fn.call(null, a,b,c,d,e,f,g));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$8 \x3d (function (a,b,c,d,e,f,g,h){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$8 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$8 ? target_fn.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h) : target_fn.call(null, a,b,c,d,e,f,g,h));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$9 \x3d (function (a,b,c,d,e,f,g,h,i){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$9 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,i) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$9 ? target_fn.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,i) : target_fn.call(null, a,b,c,d,e,f,g,h,i));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$10 \x3d (function (a,b,c,d,e,f,g,h,i,j){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$10 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,i,j) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$10 ? target_fn.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,i,j) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$11 \x3d (function (a,b,c,d,e,f,g,h,i,j,k){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$11 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,i,j,k) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$11 ? target_fn.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,i,j,k) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$12 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$12 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,i,j,k,l) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$12 ? target_fn.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,i,j,k,l) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$13 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$13 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,i,j,k,l,m) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$13 ? target_fn.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,i,j,k,l,m) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$14 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$14 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$14 ? target_fn.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$15 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$15 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$15 ? target_fn.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$16 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$16 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$16 ? target_fn.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$17 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$17 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$17 ? target_fn.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$18 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$18 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$18 ? target_fn.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$19 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$19 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$19 ? target_fn.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$20 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d (self__.dispatch_fn.cljs$core$IFn$_invoke$arity$20 ? self__.dispatch_fn.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) : self__.dispatch_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn (target_fn.cljs$core$IFn$_invoke$arity$20 ? target_fn.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) : target_fn.call(null, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$21 \x3d (function (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest){\nvar self__ \x3d this;\nvar mf \x3d this;\nvar dispatch_val \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(self__.dispatch_fn,a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest], 0));\nvar target_fn \x3d mf.cljs$core$IMultiFn$_get_method$arity$2(null, dispatch_val);\nif(cljs.core.truth_(target_fn)){\n} else {\ncljs.core.throw_no_method_error(self__.name,dispatch_val);\n}\n\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(target_fn,a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,rest], 0));\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method$arity$3 \x3d (function (mf,dispatch_val_x,dispatch_val_y){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\nif(cljs.core.truth_(cljs.core.prefers_STAR_(dispatch_val_y,dispatch_val_x,self__.prefer_table))){\nthrow (new Error([\x22Preference conflict in multimethod \x27\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.name),\x22\x27: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(dispatch_val_y),\x22 is already preferred to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(dispatch_val_x)].join(\x27\x27)));\n} else {\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.prefer_table,(function (old){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(old,dispatch_val_x,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(old,dispatch_val_x,cljs.core.PersistentHashSet.EMPTY),dispatch_val_y));\n}));\n\nreturn cljs.core.reset_cache(self__.method_cache,self__.method_table,self__.cached_hierarchy,self__.hierarchy);\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_default_dispatch_val$arity$1 \x3d (function (mf){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\nreturn self__.default_dispatch_val;\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method$arity$2 \x3d (function (mf,dispatch_val){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.method_table,cljs.core.dissoc,dispatch_val);\n\ncljs.core.reset_cache(self__.method_cache,self__.method_table,self__.cached_hierarchy,self__.hierarchy);\n\nreturn mf__$1;\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods$arity$1 \x3d (function (mf){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\nreturn cljs.core.deref(self__.method_table);\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers$arity$1 \x3d (function (mf){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\nreturn cljs.core.deref(self__.prefer_table);\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_dispatch_fn$arity$1 \x3d (function (mf){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\nreturn self__.dispatch_fn;\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_add_method$arity$3 \x3d (function (mf,dispatch_val,method){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.method_table,cljs.core.assoc,dispatch_val,method);\n\ncljs.core.reset_cache(self__.method_cache,self__.method_table,self__.cached_hierarchy,self__.hierarchy);\n\nreturn mf__$1;\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset$arity$1 \x3d (function (mf){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.method_table,(function (mf__$2){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.method_cache,(function (mf__$2){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.prefer_table,(function (mf__$2){\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(self__.cached_hierarchy,(function (mf__$2){\nreturn null;\n}));\n\nreturn mf__$1;\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method$arity$2 \x3d (function (mf,dispatch_val){\nvar self__ \x3d this;\nvar mf__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.cached_hierarchy),cljs.core.deref(self__.hierarchy))){\n} else {\ncljs.core.reset_cache(self__.method_cache,self__.method_table,self__.cached_hierarchy,self__.hierarchy);\n}\n\nvar temp__5802__auto__ \x3d (function (){var fexpr__19686 \x3d cljs.core.deref(self__.method_cache);\nreturn (fexpr__19686.cljs$core$IFn$_invoke$arity$1 ? fexpr__19686.cljs$core$IFn$_invoke$arity$1(dispatch_val) : fexpr__19686.call(null, dispatch_val));\n})();\nif(cljs.core.truth_(temp__5802__auto__)){\nvar target_fn \x3d temp__5802__auto__;\nreturn target_fn;\n} else {\nreturn cljs.core.find_and_cache_best_method(self__.name,dispatch_val,self__.hierarchy,self__.method_table,self__.prefer_table,self__.method_cache,self__.cached_hierarchy,self__.default_dispatch_val);\n}\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$INamed$_name$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core._name(self__.name);\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$INamed$_namespace$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core._namespace(self__.name);\n}));\n\n(cljs.core.MultiFn.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn goog.getUid(this$__$1);\n}));\n\n(cljs.core.MultiFn.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22name\x22,\x22name\x22,-810760592,null),new cljs.core.Symbol(null,\x22dispatch-fn\x22,\x22dispatch-fn\x22,-1401088155,null),new cljs.core.Symbol(null,\x22default-dispatch-val\x22,\x22default-dispatch-val\x22,-1231201266,null),new cljs.core.Symbol(null,\x22hierarchy\x22,\x22hierarchy\x22,587061186,null),new cljs.core.Symbol(null,\x22method-table\x22,\x22method-table\x22,-1878263165,null),new cljs.core.Symbol(null,\x22prefer-table\x22,\x22prefer-table\x22,462168584,null),new cljs.core.Symbol(null,\x22method-cache\x22,\x22method-cache\x22,1230193905,null),new cljs.core.Symbol(null,\x22cached-hierarchy\x22,\x22cached-hierarchy\x22,-1085460203,null)], null);\n}));\n\n(cljs.core.MultiFn.cljs$lang$type \x3d true);\n\n(cljs.core.MultiFn.cljs$lang$ctorStr \x3d \x22cljs.core/MultiFn\x22);\n\n(cljs.core.MultiFn.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/MultiFn\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/MultiFn.\n */\ncljs.core.__GT_MultiFn \x3d (function cljs$core$__GT_MultiFn(name,dispatch_fn,default_dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy){\nreturn (new cljs.core.MultiFn(name,dispatch_fn,default_dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy));\n});\n\n/**\n * Removes all of the methods of multimethod.\n */\ncljs.core.remove_all_methods \x3d (function cljs$core$remove_all_methods(multifn){\nreturn cljs.core._reset(multifn);\n});\n/**\n * Removes the method of multimethod associated with dispatch-value.\n */\ncljs.core.remove_method \x3d (function cljs$core$remove_method(multifn,dispatch_val){\nreturn cljs.core._remove_method(multifn,dispatch_val);\n});\n/**\n * Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y\n * when there is a conflict\n */\ncljs.core.prefer_method \x3d (function cljs$core$prefer_method(multifn,dispatch_val_x,dispatch_val_y){\nreturn cljs.core._prefer_method(multifn,dispatch_val_x,dispatch_val_y);\n});\n/**\n * Given a multimethod, returns a map of dispatch values -\x3e dispatch fns\n */\ncljs.core.methods$ \x3d (function cljs$core$methods(multifn){\nreturn cljs.core._methods(multifn);\n});\n/**\n * Given a multimethod and a dispatch value, returns the dispatch fn\n * that would apply to that value, or nil if none apply and no default\n */\ncljs.core.get_method \x3d (function cljs$core$get_method(multifn,dispatch_val){\nreturn cljs.core._get_method(multifn,dispatch_val);\n});\n/**\n * Given a multimethod, returns a map of preferred value -\x3e set of other values\n */\ncljs.core.prefers \x3d (function cljs$core$prefers(multifn){\nreturn cljs.core._prefers(multifn);\n});\n/**\n * Given a multimethod, return its default-dispatch-val.\n */\ncljs.core.default_dispatch_val \x3d (function cljs$core$default_dispatch_val(multifn){\nreturn cljs.core._default_dispatch_val(multifn);\n});\n/**\n * Given a multimethod, return its dispatch-fn.\n */\ncljs.core.dispatch_fn \x3d (function cljs$core$dispatch_fn(multifn){\nreturn cljs.core._dispatch_fn(multifn);\n});\n\n/**\n * A marker protocol for UUIDs\n * @interface\n */\ncljs.core.IUUID \x3d function(){};\n\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IComparable}\n * @implements {cljs.core.IUUID}\n*/\ncljs.core.UUID \x3d (function (uuid,__hash){\nthis.uuid \x3d uuid;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2153775104;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 2048;\n});\n(cljs.core.UUID.prototype.cljs$core$IUUID$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.UUID.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.uuid;\n}));\n\n(cljs.core.UUID.prototype.equiv \x3d (function (other){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.cljs$core$IEquiv$_equiv$arity$2(null, other);\n}));\n\n(cljs.core.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (_,other){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar and__5000__auto__ \x3d (((!((other \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d other.cljs$core$IUUID$))))?true:false):false);\nif(and__5000__auto__){\nreturn (self__.uuid \x3d\x3d\x3d other.uuid);\n} else {\nreturn and__5000__auto__;\n}\n}));\n\n(cljs.core.UUID.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (_,writer,___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn cljs.core._write(writer,[\x22#uuid \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.uuid),\x22\\\x22\x22].join(\x27\x27));\n}));\n\n(cljs.core.UUID.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((self__.__hash \x3d\x3d null)){\n(self__.__hash \x3d cljs.core.hash(self__.uuid));\n} else {\n}\n\nreturn self__.__hash;\n}));\n\n(cljs.core.UUID.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (this$,other){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((other instanceof cljs.core.UUID)){\nreturn cljs.core.goog$module$goog$array.defaultCompare(self__.uuid,other.uuid);\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(this$__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(other)].join(\x27\x27)));\n}\n}));\n\n(cljs.core.UUID.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22uuid\x22,\x22uuid\x22,-504564192,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22__hash\x22,\x22__hash\x22,-1328796629,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.UUID.cljs$lang$type \x3d true);\n\n(cljs.core.UUID.cljs$lang$ctorStr \x3d \x22cljs.core/UUID\x22);\n\n(cljs.core.UUID.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/UUID\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/UUID.\n */\ncljs.core.__GT_UUID \x3d (function cljs$core$__GT_UUID(uuid,__hash){\nreturn (new cljs.core.UUID(uuid,__hash));\n});\n\n/**\n * Returns a UUID consistent with the string s.\n */\ncljs.core.uuid \x3d (function cljs$core$uuid(s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow (new Error(\x22Assert failed: (string? s)\x22));\n}\n\nreturn (new cljs.core.UUID(s.toLowerCase(),null));\n});\n/**\n * Returns a pseudo-randomly generated UUID instance (i.e. type 4).\n */\ncljs.core.random_uuid \x3d (function cljs$core$random_uuid(){\nvar quad_hex \x3d (function cljs$core$random_uuid_$_quad_hex(){\nvar unpadded_hex \x3d cljs.core.rand_int((65536)).toString((16));\nvar G__19689 \x3d ((unpadded_hex).length);\nswitch (G__19689) {\ncase (1):\nreturn [\x22000\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ncase (2):\nreturn [\x2200\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ncase (3):\nreturn [\x220\x22,unpadded_hex].join(\x27\x27);\n\nbreak;\ndefault:\nreturn unpadded_hex;\n\n}\n});\nvar ver_tripple_hex \x3d ((16384) | ((4095) \x26 cljs.core.rand_int((65536)))).toString((16));\nvar res_tripple_hex \x3d ((32768) | ((16383) \x26 cljs.core.rand_int((65536)))).toString((16));\nreturn cljs.core.uuid([quad_hex(),quad_hex(),\x22-\x22,quad_hex(),\x22-\x22,ver_tripple_hex,\x22-\x22,res_tripple_hex,\x22-\x22,quad_hex(),quad_hex(),quad_hex()].join(\x27\x27));\n});\n/**\n * Return true if x is a UUID.\n */\ncljs.core.uuid_QMARK_ \x3d (function cljs$core$uuid_QMARK_(x){\nif((!((x \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IUUID$)))){\nreturn true;\n} else {\nreturn false;\n}\n} else {\nreturn false;\n}\n});\ncljs.core.pr_writer_ex_info \x3d (function cljs$core$pr_writer_ex_info(obj,writer,opts){\ncljs.core._write(writer,\x22#error {:message \x22);\n\ncljs.core.pr_writer(obj.message,writer,opts);\n\nif(cljs.core.truth_(obj.data)){\ncljs.core._write(writer,\x22, :data \x22);\n\ncljs.core.pr_writer(obj.data,writer,opts);\n} else {\n}\n\nif(cljs.core.truth_(obj.cause)){\ncljs.core._write(writer,\x22, :cause \x22);\n\ncljs.core.pr_writer(obj.cause,writer,opts);\n} else {\n}\n\nreturn cljs.core._write(writer,\x22}\x22);\n});\n/**\n * @constructor\n */\ncljs.core.ExceptionInfo \x3d (function cljs$core$ExceptionInfo(message,data,cause){\nvar e \x3d (new Error(message));\nvar this$ \x3d this;\n(this$.message \x3d message);\n\n(this$.data \x3d data);\n\n(this$.cause \x3d cause);\n\n(this$.name \x3d e.name);\n\n(this$.description \x3d e.description);\n\n(this$.number \x3d e.number);\n\n(this$.fileName \x3d e.fileName);\n\n(this$.lineNumber \x3d e.lineNumber);\n\n(this$.columnNumber \x3d e.columnNumber);\n\n(this$.stack \x3d e.stack);\n\nreturn this$;\n});\n(cljs.core.ExceptionInfo.prototype.__proto__ \x3d Error.prototype);\n(cljs.core.ExceptionInfo.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ExceptionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (obj,writer,opts){\nvar obj__$1 \x3d this;\nreturn cljs.core.pr_writer_ex_info(obj__$1,writer,opts);\n}));\n(cljs.core.ExceptionInfo.prototype.toString \x3d (function (){\nvar this$ \x3d this;\nreturn cljs.core.pr_str_STAR_(this$);\n}));\n/**\n * Create an instance of ExceptionInfo, an Error type that carries a\n * map of additional data.\n */\ncljs.core.ex_info \x3d (function cljs$core$ex_info(var_args){\nvar G__19692 \x3d arguments.length;\nswitch (G__19692) {\ncase 2:\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2 \x3d (function (msg,data){\nreturn cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(msg,data,null);\n}));\n\n(cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3 \x3d (function (msg,data,cause){\nreturn (new cljs.core.ExceptionInfo(msg,data,cause));\n}));\n\n(cljs.core.ex_info.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Returns exception data (a map) if ex is an ExceptionInfo.\n * Otherwise returns nil.\n */\ncljs.core.ex_data \x3d (function cljs$core$ex_data(ex){\nif((ex instanceof cljs.core.ExceptionInfo)){\nreturn ex.data;\n} else {\nreturn null;\n}\n});\n/**\n * Returns the message attached to the given Error / ExceptionInfo object.\n * For non-Errors returns nil.\n */\ncljs.core.ex_message \x3d (function cljs$core$ex_message(ex){\nif((ex instanceof Error)){\nreturn ex.message;\n} else {\nreturn null;\n}\n});\n/**\n * Returns exception cause (an Error / ExceptionInfo) if ex is an\n * ExceptionInfo.\n * Otherwise returns nil.\n */\ncljs.core.ex_cause \x3d (function cljs$core$ex_cause(ex){\nif((ex instanceof cljs.core.ExceptionInfo)){\nreturn ex.cause;\n} else {\nreturn null;\n}\n});\n/**\n * Constructs a data representation for an Error with keys:\n * :cause - root cause message\n * :phase - error phase\n * :via - cause chain, with cause keys:\n * :type - exception class symbol\n * :message - exception message\n * :data - ex-data\n * :at - top stack element\n * :trace - root cause stack elements\n */\ncljs.core.Throwable__GT_map \x3d (function cljs$core$Throwable__GT_map(o){\nvar base \x3d (function (t){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),(((t instanceof cljs.core.ExceptionInfo))?new cljs.core.Symbol(\x22cljs.core\x22,\x22ExceptionInfo\x22,\x22cljs.core/ExceptionInfo\x22,701839050,null):(((t instanceof Error))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22js\x22,t.name):null\n))], null),(function (){var temp__5804__auto__ \x3d cljs.core.ex_message(t);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar msg \x3d temp__5804__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),msg], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5804__auto__ \x3d cljs.core.ex_data(t);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar ed \x3d temp__5804__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),ed], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\nvar via \x3d (function (){var via \x3d cljs.core.PersistentVector.EMPTY;\nvar t \x3d o;\nwhile(true){\nif(cljs.core.truth_(t)){\nvar G__26133 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(via,t);\nvar G__26134 \x3d cljs.core.ex_cause(t);\nvia \x3d G__26133;\nt \x3d G__26134;\ncontinue;\n} else {\nreturn via;\n}\nbreak;\n}\n})();\nvar root \x3d cljs.core.peek(via);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(base,via)),new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415),null], null),(function (){var temp__5804__auto__ \x3d cljs.core.ex_message(root);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar root_msg \x3d temp__5804__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),root_msg], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5804__auto__ \x3d cljs.core.ex_data(root);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar data \x3d temp__5804__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data], null);\n} else {\nreturn null;\n}\n})(),(function (){var temp__5804__auto__ \x3d new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(o));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar phase \x3d temp__5804__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22phase\x22,\x22phase\x22,575722892),phase], null);\n} else {\nreturn null;\n}\n})()], 0));\n});\n/**\n * Returns an JavaScript compatible comparator based upon pred.\n */\ncljs.core.comparator \x3d (function cljs$core$comparator(pred){\nreturn (function (x,y){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(x,y) : pred.call(null, x,y)))){\nreturn (-1);\n} else {\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(y,x) : pred.call(null, y,x)))){\nreturn (1);\n} else {\nreturn (0);\n\n}\n}\n});\n});\n/**\n * Returns true if x names a special form\n */\ncljs.core.special_symbol_QMARK_ \x3d (function cljs$core$special_symbol_QMARK_(x){\nreturn cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 24, [new cljs.core.Symbol(null,\x22\x26\x22,\x22\x26\x22,-2144855648,null),\x22null\x22,new cljs.core.Symbol(null,\x22case*\x22,\x22case*\x22,-1938255072,null),\x22null\x22,new cljs.core.Symbol(null,\x22defrecord*\x22,\x22defrecord*\x22,-1936366207,null),\x22null\x22,new cljs.core.Symbol(null,\x22try\x22,\x22try\x22,-1273693247,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns*\x22,\x22ns*\x22,1840949383,null),\x22null\x22,new cljs.core.Symbol(null,\x22finally\x22,\x22finally\x22,-1065347064,null),\x22null\x22,new cljs.core.Symbol(null,\x22loop*\x22,\x22loop*\x22,615029416,null),\x22null\x22,new cljs.core.Symbol(null,\x22do\x22,\x22do\x22,1686842252,null),\x22null\x22,new cljs.core.Symbol(null,\x22letfn*\x22,\x22letfn*\x22,-110097810,null),\x22null\x22,new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),\x22null\x22,new cljs.core.Symbol(null,\x22new\x22,\x22new\x22,-444906321,null),\x22null\x22,new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),\x22null\x22,new cljs.core.Symbol(null,\x22deftype*\x22,\x22deftype*\x22,962659890,null),\x22null\x22,new cljs.core.Symbol(null,\x22let*\x22,\x22let*\x22,1920721458,null),\x22null\x22,new cljs.core.Symbol(null,\x22js*\x22,\x22js*\x22,-1134233646,null),\x22null\x22,new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),\x22null\x22,new cljs.core.Symbol(null,\x22recur\x22,\x22recur\x22,1202958259,null),\x22null\x22,new cljs.core.Symbol(null,\x22set!\x22,\x22set!\x22,250714521,null),\x22null\x22,new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),\x22null\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22null\x22,new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22null\x22,new cljs.core.Symbol(null,\x22catch\x22,\x22catch\x22,-1616370245,null),\x22null\x22,new cljs.core.Symbol(null,\x22throw\x22,\x22throw\x22,595905694,null),\x22null\x22,new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),\x22null\x22], null), null),x);\n});\n/**\n * test [v] finds fn at key :test in var metadata and calls it,\n * presuming failure will throw exception\n */\ncljs.core.test \x3d (function cljs$core$test(v){\nvar f \x3d v.cljs$lang$test;\nif(cljs.core.truth_(f)){\n(f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null, ));\n\nreturn new cljs.core.Keyword(null,\x22ok\x22,\x22ok\x22,967785236);\n} else {\nreturn new cljs.core.Keyword(null,\x22no-test\x22,\x22no-test\x22,-1679482642);\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.ILookup}\n*/\ncljs.core.TaggedLiteral \x3d (function (tag,form){\nthis.tag \x3d tag;\nthis.form \x3d form;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2153775360;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.TaggedLiteral.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar coll \x3d this;\nreturn cljs.core.pr_str_STAR_(coll);\n}));\n\n(cljs.core.TaggedLiteral.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (((other instanceof cljs.core.TaggedLiteral)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.tag,other.tag)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.form,other.form)))));\n}));\n\n(cljs.core.TaggedLiteral.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (((31) * cljs.core.hash(self__.tag)) + cljs.core.hash(self__.form));\n}));\n\n(cljs.core.TaggedLiteral.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this$,v){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn this$__$1.cljs$core$ILookup$_lookup$arity$3(null, v,null);\n}));\n\n(cljs.core.TaggedLiteral.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this$,v,not_found){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar G__19693 \x3d v;\nvar G__19693__$1 \x3d (((G__19693 instanceof cljs.core.Keyword))?G__19693.fqn:null);\nswitch (G__19693__$1) {\ncase \x22tag\x22:\nreturn self__.tag;\n\nbreak;\ncase \x22form\x22:\nreturn self__.form;\n\nbreak;\ndefault:\nreturn not_found;\n\n}\n}));\n\n(cljs.core.TaggedLiteral.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (o,writer,opts){\nvar self__ \x3d this;\nvar o__$1 \x3d this;\ncljs.core._write(writer,[\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.tag),\x22 \x22].join(\x27\x27));\n\nreturn cljs.core.pr_writer(self__.form,writer,opts);\n}));\n\n(cljs.core.TaggedLiteral.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22tag\x22,\x22tag\x22,350170304,null),new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null)], null);\n}));\n\n(cljs.core.TaggedLiteral.cljs$lang$type \x3d true);\n\n(cljs.core.TaggedLiteral.cljs$lang$ctorStr \x3d \x22cljs.core/TaggedLiteral\x22);\n\n(cljs.core.TaggedLiteral.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/TaggedLiteral\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/TaggedLiteral.\n */\ncljs.core.__GT_TaggedLiteral \x3d (function cljs$core$__GT_TaggedLiteral(tag,form){\nreturn (new cljs.core.TaggedLiteral(tag,form));\n});\n\n/**\n * Return true if the value is the data representation of a tagged literal\n */\ncljs.core.tagged_literal_QMARK_ \x3d (function cljs$core$tagged_literal_QMARK_(value){\nreturn (value instanceof cljs.core.TaggedLiteral);\n});\n/**\n * Construct a data representation of a tagged literal from a\n * tag symbol and a form.\n */\ncljs.core.tagged_literal \x3d (function cljs$core$tagged_literal(tag,form){\nif((tag instanceof cljs.core.Symbol)){\n} else {\nthrow (new Error(\x22Assert failed: (symbol? tag)\x22));\n}\n\nreturn (new cljs.core.TaggedLiteral(tag,form));\n});\n/**\n * @type {*}\n */\ncljs.core.js_reserved_arr \x3d [\x22arguments\x22,\x22abstract\x22,\x22await\x22,\x22boolean\x22,\x22break\x22,\x22byte\x22,\x22case\x22,\x22catch\x22,\x22char\x22,\x22class\x22,\x22const\x22,\x22continue\x22,\x22debugger\x22,\x22default\x22,\x22delete\x22,\x22do\x22,\x22double\x22,\x22else\x22,\x22enum\x22,\x22export\x22,\x22extends\x22,\x22final\x22,\x22finally\x22,\x22float\x22,\x22for\x22,\x22function\x22,\x22goto\x22,\x22if\x22,\x22implements\x22,\x22import\x22,\x22in\x22,\x22instanceof\x22,\x22int\x22,\x22interface\x22,\x22let\x22,\x22long\x22,\x22native\x22,\x22new\x22,\x22package\x22,\x22private\x22,\x22protected\x22,\x22public\x22,\x22return\x22,\x22short\x22,\x22static\x22,\x22super\x22,\x22switch\x22,\x22synchronized\x22,\x22this\x22,\x22throw\x22,\x22throws\x22,\x22transient\x22,\x22try\x22,\x22typeof\x22,\x22var\x22,\x22void\x22,\x22volatile\x22,\x22while\x22,\x22with\x22,\x22yield\x22,\x22methods\x22,\x22null\x22,\x22constructor\x22];\n/**\n * @type {null|Object}\n */\ncljs.core.js_reserved \x3d null;\ncljs.core.js_reserved_QMARK_ \x3d (function cljs$core$js_reserved_QMARK_(x){\nif((cljs.core.js_reserved \x3d\x3d null)){\n(cljs.core.js_reserved \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19694_SHARP_,p2__19695_SHARP_){\ncljs.core.goog$module$goog$object.set(p1__19694_SHARP_,p2__19695_SHARP_,true);\n\nreturn p1__19694_SHARP_;\n}),({}),cljs.core.js_reserved_arr));\n} else {\n}\n\nreturn cljs.core.js_reserved.hasOwnProperty(x);\n});\ncljs.core.demunge_pattern \x3d (function cljs$core$demunge_pattern(){\nif(cljs.core.truth_(cljs.core.DEMUNGE_PATTERN)){\n} else {\n(cljs.core.DEMUNGE_PATTERN \x3d (function (){var ks \x3d cljs.core.sort.cljs$core$IFn$_invoke$arity$2((function (a,b){\nreturn (b.length - a.length);\n}),cljs.core.js_keys(cljs.core.DEMUNGE_MAP));\nvar ks__$1 \x3d ks;\nvar ret \x3d \x22\x22;\nwhile(true){\nif(cljs.core.seq(ks__$1)){\nvar G__26162 \x3d cljs.core.next(ks__$1);\nvar G__26163 \x3d [(function (){var G__19699 \x3d ret;\nif((!((ret \x3d\x3d\x3d \x22\x22)))){\nreturn [G__19699,\x22|\x22].join(\x27\x27);\n} else {\nreturn G__19699;\n}\n})(),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(ks__$1))].join(\x27\x27);\nks__$1 \x3d G__26162;\nret \x3d G__26163;\ncontinue;\n} else {\nreturn [ret,\x22|\\\\$\x22].join(\x27\x27);\n}\nbreak;\n}\n})());\n}\n\nreturn cljs.core.DEMUNGE_PATTERN;\n});\ncljs.core.munge_str \x3d (function cljs$core$munge_str(name){\nvar sb \x3d (new goog.string.StringBuffer());\nvar i_26170 \x3d (0);\nwhile(true){\nif((i_26170 \x3c name.length)){\nvar c_26172 \x3d name.charAt(i_26170);\nvar sub_26173 \x3d cljs.core.goog$module$goog$object.get(cljs.core.CHAR_MAP,c_26172);\nif((!((sub_26173 \x3d\x3d null)))){\nsb.append(sub_26173);\n} else {\nsb.append(c_26172);\n}\n\nvar G__26175 \x3d (i_26170 + (1));\ni_26170 \x3d G__26175;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn sb.toString();\n});\ncljs.core.munge \x3d (function cljs$core$munge(name){\nvar name_SINGLEQUOTE_ \x3d cljs.core.munge_str(cljs.core.str.cljs$core$IFn$_invoke$arity$1(name));\nvar name_SINGLEQUOTE___$1 \x3d (((name_SINGLEQUOTE_ \x3d\x3d\x3d \x22..\x22))?\x22_DOT__DOT_\x22:(cljs.core.truth_(cljs.core.js_reserved_QMARK_(name_SINGLEQUOTE_))?[name_SINGLEQUOTE_,\x22$\x22].join(\x27\x27):name_SINGLEQUOTE_\n));\nif((name instanceof cljs.core.Symbol)){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(name_SINGLEQUOTE___$1);\n} else {\nreturn name_SINGLEQUOTE___$1;\n}\n});\ncljs.core.demunge_str \x3d (function cljs$core$demunge_str(munged_name){\nvar r \x3d (new RegExp(cljs.core.demunge_pattern(),\x22g\x22));\nvar munged_name__$1 \x3d (cljs.core.truth_(goog.string.endsWith(munged_name,\x22$\x22))?munged_name.substring((0),(munged_name.length - (1))):munged_name);\nvar ret \x3d \x22\x22;\nvar last_match_end \x3d (0);\nwhile(true){\nvar temp__5802__auto__ \x3d r.exec(munged_name__$1);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar match \x3d temp__5802__auto__;\nvar vec__19703 \x3d match;\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19703,(0),null);\nvar G__26177 \x3d [ret,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged_name__$1.substring(last_match_end,(r.lastIndex - x.length))),cljs.core.str.cljs$core$IFn$_invoke$arity$1((((x \x3d\x3d\x3d \x22$\x22))?\x22/\x22:cljs.core.goog$module$goog$object.get(cljs.core.DEMUNGE_MAP,x)))].join(\x27\x27);\nvar G__26178 \x3d r.lastIndex;\nret \x3d G__26177;\nlast_match_end \x3d G__26178;\ncontinue;\n} else {\nreturn [ret,cljs.core.str.cljs$core$IFn$_invoke$arity$1(munged_name__$1.substring(last_match_end,munged_name__$1.length))].join(\x27\x27);\n}\nbreak;\n}\n});\ncljs.core.demunge \x3d (function cljs$core$demunge(name){\nvar G__19707 \x3d (function (){var name_SINGLEQUOTE_ \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(name);\nif((name_SINGLEQUOTE_ \x3d\x3d\x3d \x22_DOT__DOT_\x22)){\nreturn \x22..\x22;\n} else {\nreturn cljs.core.demunge_str(name_SINGLEQUOTE_);\n}\n})();\nvar fexpr__19706 \x3d (((name instanceof cljs.core.Symbol))?cljs.core.symbol:cljs.core.str);\nreturn (fexpr__19706.cljs$core$IFn$_invoke$arity$1 ? fexpr__19706.cljs$core$IFn$_invoke$arity$1(G__19707) : fexpr__19706.call(null, G__19707));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.tapset !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * @type {*}\n */\ncljs.core.tapset \x3d null;\n}\ncljs.core.maybe_init_tapset \x3d (function cljs$core$maybe_init_tapset(){\nif((cljs.core.tapset \x3d\x3d null)){\nreturn (cljs.core.tapset \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashSet.EMPTY));\n} else {\nreturn null;\n}\n});\n/**\n * Adds f, a fn of one argument, to the tap set. This function will be called with\n * anything sent via tap\x3e. Remember f in order to remove-tap\n */\ncljs.core.add_tap \x3d (function cljs$core$add_tap(f){\ncljs.core.maybe_init_tapset();\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.tapset,cljs.core.conj,f);\n\nreturn null;\n});\n/**\n * Remove f from the tap set.\n */\ncljs.core.remove_tap \x3d (function cljs$core$remove_tap(f){\ncljs.core.maybe_init_tapset();\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.tapset,cljs.core.disj,f);\n\nreturn null;\n});\n/**\n * Sends x to any taps. Returns the result of *exec-tap-fn*, a Boolean value.\n */\ncljs.core.tap_GT_ \x3d (function cljs$core$tap_GT_(x){\ncljs.core.maybe_init_tapset();\n\nreturn cljs.core._STAR_exec_tap_fn_STAR_.call(null, (function (){\nvar seq__19708 \x3d cljs.core.seq(cljs.core.deref(cljs.core.tapset));\nvar chunk__19709 \x3d null;\nvar count__19710 \x3d (0);\nvar i__19711 \x3d (0);\nwhile(true){\nif((i__19711 \x3c count__19710)){\nvar tap \x3d chunk__19709.cljs$core$IIndexed$_nth$arity$2(null, i__19711);\ntry{(tap.cljs$core$IFn$_invoke$arity$1 ? tap.cljs$core$IFn$_invoke$arity$1(x) : tap.call(null, x));\n}catch (e19714){if((e19714 instanceof Error)){\nvar ex_26180 \x3d e19714;\n} else {\nthrow e19714;\n\n}\n}\n\nvar G__26181 \x3d seq__19708;\nvar G__26182 \x3d chunk__19709;\nvar G__26183 \x3d count__19710;\nvar G__26184 \x3d (i__19711 + (1));\nseq__19708 \x3d G__26181;\nchunk__19709 \x3d G__26182;\ncount__19710 \x3d G__26183;\ni__19711 \x3d G__26184;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19708);\nif(temp__5804__auto__){\nvar seq__19708__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19708__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19708__$1);\nvar G__26190 \x3d cljs.core.chunk_rest(seq__19708__$1);\nvar G__26191 \x3d c__5525__auto__;\nvar G__26192 \x3d cljs.core.count(c__5525__auto__);\nvar G__26193 \x3d (0);\nseq__19708 \x3d G__26190;\nchunk__19709 \x3d G__26191;\ncount__19710 \x3d G__26192;\ni__19711 \x3d G__26193;\ncontinue;\n} else {\nvar tap \x3d cljs.core.first(seq__19708__$1);\ntry{(tap.cljs$core$IFn$_invoke$arity$1 ? tap.cljs$core$IFn$_invoke$arity$1(x) : tap.call(null, x));\n}catch (e19715){if((e19715 instanceof Error)){\nvar ex_26199 \x3d e19715;\n} else {\nthrow e19715;\n\n}\n}\n\nvar G__26200 \x3d cljs.core.next(seq__19708__$1);\nvar G__26201 \x3d null;\nvar G__26202 \x3d (0);\nvar G__26203 \x3d (0);\nseq__19708 \x3d G__26200;\nchunk__19709 \x3d G__26201;\ncount__19710 \x3d G__26202;\ni__19711 \x3d G__26203;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n});\n/**\n * m f \x3d\x3e {k (f v) ...}\n * Given a map m and a function f of 1-argument, returns a new map where the keys of m\n * are mapped to result of applying f to the corresponding values of m.\n */\ncljs.core.update_vals \x3d (function cljs$core$update_vals(m,f){\nreturn cljs.core.with_meta(cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,k,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(v) : f.call(null, v)));\n}),(((((!((m \x3d\x3d null))))?(((((m.cljs$lang$protocol_mask$partition1$ \x26 (4))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d m.cljs$core$IEditableCollection$))))?true:false):false))?cljs.core.transient$(m):cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY)),m)),cljs.core.meta(m));\n});\n/**\n * m f \x3d\x3e {(f k) v ...}\n * Given a map m and a function f of 1-argument, returns a new map whose\n * keys are the result of applying f to the keys of m, mapped to the\n * corresponding values of m.\n * f must return a unique key for each key of m, else the behavior is undefined.\n */\ncljs.core.update_keys \x3d (function cljs$core$update_keys(m,f){\nvar ret \x3d cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (acc,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(acc,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(k) : f.call(null, k)),v);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\nreturn cljs.core.with_meta(ret,cljs.core.meta(m));\n});\n/**\n * Bootstrap only.\n */\ncljs.core.ns_lookup \x3d (function cljs$core$ns_lookup(ns_obj,k){\nreturn (function (){\nreturn cljs.core.goog$module$goog$object.get(ns_obj,k);\n});\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n*/\ncljs.core.Namespace \x3d (function (obj,name){\nthis.obj \x3d obj;\nthis.name \x3d name;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 6291456;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.Namespace.prototype.findInternedVar \x3d (function (sym){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar k \x3d cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym));\nif(cljs.core.goog$module$goog$object.containsKey(self__.obj,k)){\nvar var_sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.name),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym));\nvar var_meta \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),this$], null);\nreturn (new cljs.core.Var(cljs.core.ns_lookup(self__.obj,k),var_sym,var_meta));\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.Namespace.prototype.getName \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn self__.name;\n}));\n\n(cljs.core.Namespace.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.name);\n}));\n\n(cljs.core.Namespace.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (_,other){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((other instanceof cljs.core.Namespace)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.name,other.name);\n} else {\nreturn false;\n}\n}));\n\n(cljs.core.Namespace.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.hash(self__.name);\n}));\n\n(cljs.core.Namespace.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22obj\x22,\x22obj\x22,-1672671807,null),new cljs.core.Symbol(null,\x22name\x22,\x22name\x22,-810760592,null)], null);\n}));\n\n(cljs.core.Namespace.cljs$lang$type \x3d true);\n\n(cljs.core.Namespace.cljs$lang$ctorStr \x3d \x22cljs.core/Namespace\x22);\n\n(cljs.core.Namespace.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core/Namespace\x22);\n}));\n\n/**\n * Positional factory function for cljs.core/Namespace.\n */\ncljs.core.__GT_Namespace \x3d (function cljs$core$__GT_Namespace(obj,name){\nreturn (new cljs.core.Namespace(obj,name));\n});\n\n/**\n * Bootstrap only.\n * @type {*}\n */\ncljs.core.NS_CACHE \x3d null;\n/**\n * Bootstrap only.\n */\ncljs.core.find_ns_obj_STAR_ \x3d (function cljs$core$find_ns_obj_STAR_(ctxt,xs){\nwhile(true){\nif((ctxt \x3d\x3d null)){\nreturn null;\n} else {\nif((xs \x3d\x3d null)){\nreturn ctxt;\n} else {\nvar G__26213 \x3d cljs.core.goog$module$goog$object.get(ctxt,cljs.core.first(xs));\nvar G__26214 \x3d cljs.core.next(xs);\nctxt \x3d G__26213;\nxs \x3d G__26214;\ncontinue;\n\n}\n}\nbreak;\n}\n});\n/**\n * Bootstrap only.\n */\ncljs.core.find_ns_obj \x3d (function cljs$core$find_ns_obj(ns){\nvar munged_ns \x3d cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns));\nvar segs \x3d munged_ns.split(\x22.\x22);\nvar G__19717 \x3d cljs.core._STAR_target_STAR_;\nswitch (G__19717) {\ncase \x22nodejs\x22:\nif(COMPILED){\nreturn cljs.core.find_ns_obj_STAR_((function (){try{var ctxt \x3d eval(cljs.core.first(segs));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d ctxt;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.object_QMARK_(ctxt);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn ctxt;\n} else {\nreturn null;\n}\n}catch (e19718){if((e19718 instanceof ReferenceError)){\nvar e \x3d e19718;\nreturn null;\n} else {\nthrow e19718;\n\n}\n}})(),cljs.core.next(segs));\n} else {\nreturn cljs.core.find_ns_obj_STAR_(goog.global,segs);\n}\n\nbreak;\ncase \x22default\x22:\ncase \x22webworker\x22:\nreturn cljs.core.find_ns_obj_STAR_(goog.global,segs);\n\nbreak;\ndefault:\nthrow (new Error([\x22find-ns-obj not supported for target \x22,cljs.core._STAR_target_STAR_].join(\x27\x27)));\n\n}\n});\n/**\n * Returns a map of the intern mappings for the namespace.\n * Bootstrap only.\n */\ncljs.core.ns_interns_STAR_ \x3d (function cljs$core$ns_interns_STAR_(sym){\nvar ns_obj \x3d cljs.core.find_ns_obj(sym);\nvar ns \x3d (new cljs.core.Namespace(ns_obj,sym));\nvar step \x3d (function cljs$core$ns_interns_STAR__$_step(ret,k){\nvar var_sym \x3d cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.demunge(k));\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,var_sym,(new cljs.core.Var((function (){\nreturn cljs.core.goog$module$goog$object.get(ns_obj,k);\n}),cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym),cljs.core.str.cljs$core$IFn$_invoke$arity$1(var_sym)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns], null))));\n});\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(step,cljs.core.PersistentArrayMap.EMPTY,cljs.core.js_keys(ns_obj));\n});\n/**\n * Create a new namespace named by the symbol. Bootstrap only.\n */\ncljs.core.create_ns \x3d (function cljs$core$create_ns(var_args){\nvar G__19720 \x3d arguments.length;\nswitch (G__19720) {\ncase 1:\nreturn cljs.core.create_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.create_ns.cljs$core$IFn$_invoke$arity$1 \x3d (function (sym){\nreturn cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(sym,cljs.core.find_ns_obj(sym));\n}));\n\n(cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2 \x3d (function (sym,ns_obj){\nreturn (new cljs.core.Namespace(ns_obj,sym));\n}));\n\n(cljs.core.create_ns.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns the namespace named by the symbol or nil if it doesn\x27t exist.\n * Bootstrap only.\n */\ncljs.core.find_ns \x3d (function cljs$core$find_ns(ns){\nif((cljs.core.NS_CACHE \x3d\x3d null)){\n(cljs.core.NS_CACHE \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n} else {\n}\n\nvar the_ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.NS_CACHE),ns);\nif((!((the_ns \x3d\x3d null)))){\nreturn the_ns;\n} else {\nvar ns_obj \x3d cljs.core.find_ns_obj(ns);\nif((ns_obj \x3d\x3d null)){\nreturn null;\n} else {\nvar new_ns \x3d cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(ns,ns_obj);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.NS_CACHE,cljs.core.assoc,ns,new_ns);\n\nreturn new_ns;\n}\n}\n});\n/**\n * Returns the macros namespace named by the symbol or nil if it doesn\x27t exist.\n * Bootstrap only.\n */\ncljs.core.find_macros_ns \x3d (function cljs$core$find_macros_ns(ns){\nif((cljs.core.NS_CACHE \x3d\x3d null)){\n(cljs.core.NS_CACHE \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));\n} else {\n}\n\nvar ns_str \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns);\nvar ns__$1 \x3d (((!(goog.string.contains(ns_str,\x22$macros\x22))))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([ns_str,\x22$macros\x22].join(\x27\x27)):ns);\nvar the_ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.NS_CACHE),ns__$1);\nif((!((the_ns \x3d\x3d null)))){\nreturn the_ns;\n} else {\nvar ns_obj \x3d cljs.core.find_ns_obj(ns__$1);\nif((ns_obj \x3d\x3d null)){\nreturn null;\n} else {\nvar new_ns \x3d cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(ns__$1,ns_obj);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.NS_CACHE,cljs.core.assoc,ns__$1,new_ns);\n\nreturn new_ns;\n}\n}\n});\n/**\n * Returns the name of the namespace, a Namespace object.\n * Bootstrap only.\n */\ncljs.core.ns_name \x3d (function cljs$core$ns_name(ns_obj){\nreturn ns_obj.name;\n});\n/**\n * Returns true x is a goog.Uri instance.\n */\ncljs.core.uri_QMARK_ \x3d (function cljs$core$uri_QMARK_(x){\nreturn (x instanceof goog.Uri);\n});\n/**\n * Returns true if num is NaN, else false\n */\ncljs.core.NaN_QMARK_ \x3d (function cljs$core$NaN_QMARK_(val){\nreturn isNaN(val);\n});\n/**\n * Construct message for parsing for non-string parsing error\n */\ncljs.core.parsing_err \x3d (function cljs$core$parsing_err(val){\nreturn [\x22Expected string, got: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((val \x3d\x3d null))?\x22nil\x22:goog.typeOf(val)))].join(\x27\x27);\n});\n/**\n * Parse string of decimal digits with optional leading -/+ and return an\n * integer value, or nil if parse fails\n */\ncljs.core.parse_long \x3d (function cljs$core$parse_long(s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nvar and__5000__auto__ \x3d cljs.core.re_matches(/[+-]?\\d+/,s);\nif(cljs.core.truth_(and__5000__auto__)){\nvar i \x3d parseInt(s);\nif((((i \x3c\x3d Number.MAX_SAFE_INTEGER)) \x26\x26 ((i \x3e\x3d Number.MIN_SAFE_INTEGER)))){\nreturn i;\n} else {\nreturn null;\n}\n} else {\nreturn and__5000__auto__;\n}\n} else {\nthrow (new Error(cljs.core.parsing_err(s)));\n}\n});\n/**\n * Parse string with floating point components and return a floating point value,\n * or nil if parse fails.\n * Grammar: https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#valueOf-java.lang.String-\n */\ncljs.core.parse_double \x3d (function cljs$core$parse_double(s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nif(cljs.core.re_matches(/[\\x00-\\x20]*[+-]?NaN[\\x00-\\x20]*/,s)){\nreturn NaN;\n} else {\nif(cljs.core.re_matches(/[\\x00-\\x20]*[+-]?(Infinity|((\\d+\\.?\\d*|\\.\\d+)([eE][+-]?\\d+)?)[dDfF]?)[\\x00-\\x20]*/,s)){\nreturn parseFloat(s);\n} else {\nreturn null;\n\n}\n}\n} else {\nthrow (new Error(cljs.core.parsing_err(s)));\n}\n});\ncljs.core.uuid_regex \x3d /^[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]$/;\n/**\n * Parse a string representing a UUID and return a UUID instance,\n * or nil if parse fails.\n * Grammar: https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html#toString--\n */\ncljs.core.parse_uuid \x3d (function cljs$core$parse_uuid(s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nif(cljs.core.re_matches(cljs.core.uuid_regex,s)){\nreturn cljs.core.uuid(s);\n} else {\nreturn null;\n}\n} else {\nthrow (new Error(cljs.core.parsing_err(s)));\n}\n});\n/**\n * Parse strings \x22true\x22 or \x22false\x22 and return a boolean, or nil if invalid. Note that this explicitly\n * excludes strings with different cases, or space characters.\n */\ncljs.core.parse_boolean \x3d (function cljs$core$parse_boolean(s){\nif(typeof s \x3d\x3d\x3d \x27string\x27){\nvar G__19721 \x3d s;\nswitch (G__19721) {\ncase \x22true\x22:\nreturn true;\n\nbreak;\ncase \x22false\x22:\nreturn false;\n\nbreak;\ndefault:\nreturn null;\n\n}\n} else {\nthrow (new Error(cljs.core.parsing_err(s)));\n}\n});\ncljs.core.maybe_enable_print_BANG_ \x3d (function cljs$core$maybe_enable_print_BANG_(){\nif((typeof console !\x3d\x3d \x27undefined\x27)){\nreturn cljs.core.enable_console_print_BANG_();\n} else {\nif((((cljs.core._STAR_target_STAR_ \x3d\x3d\x3d \x22nashorn\x22)) || ((cljs.core._STAR_target_STAR_ \x3d\x3d\x3d \x22graaljs\x22)))){\nvar system \x3d Java.type(\x22java.lang.System\x22);\n(cljs.core._STAR_print_newline_STAR_ \x3d false);\n\ncljs.core.set_print_fn_BANG_((function (){\nvar xs \x3d arguments;\nvar s \x3d cljs.core.goog$module$goog$array.clone(xs).join(\x22\x22);\nreturn system.out.println(s);\n}));\n\nreturn cljs.core.set_print_err_fn_BANG_((function (){\nvar xs \x3d arguments;\nvar s \x3d cljs.core.goog$module$goog$array.clone(xs).join(\x22\x22);\nreturn system.error.println(s);\n}));\n} else {\nreturn null;\n}\n}\n});\ncljs.core.maybe_enable_print_BANG_();\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core._STAR_eval_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * Runtime environments may provide a way to evaluate ClojureScript\n * forms. Whatever function *eval* is bound to will be passed any forms which\n * should be evaluated.\n */\ncljs.core._STAR_eval_STAR_ \x3d (function cljs$core$_STAR_eval_STAR_(_){\nthrow (new Error(\x22cljs.core/*eval* not bound\x22));\n});\n}\n/**\n * Evaluates the form data structure (not text!) and returns the result.\n * Delegates to cljs.core/*eval*. Intended for use in self-hosted ClojureScript,\n * which sets up an implementation of cljs.core/*eval* for that environment.\n */\ncljs.core.eval \x3d (function cljs$core$eval(form){\nreturn cljs.core._STAR_eval_STAR_.call(null, form);\n});\nif(COMPILED){\nif((\x22nodejs\x22 \x3d\x3d\x3d cljs.core._STAR_target_STAR_)){\n(goog.global \x3d global);\n} else {\n}\n\nif((\x22window\x22 \x3d\x3d\x3d cljs.core._STAR_global_STAR_)){\n(goog.global \x3d window);\n} else {\nif((\x22self\x22 \x3d\x3d\x3d cljs.core._STAR_global_STAR_)){\n(goog.global \x3d self);\n} else {\nif((\x22global\x22 \x3d\x3d\x3d cljs.core._STAR_global_STAR_)){\n(goog.global \x3d global);\n} else {\n}\n}\n}\n} else {\n}\n\ncljs.core.enable_console_print_BANG_();\n");
SHADOW_ENV.evalLoad("clojure.string.js", true, "goog.provide(\x27clojure.string\x27);\nclojure.string.seq_reverse \x3d (function clojure$string$seq_reverse(coll){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.List.EMPTY,coll);\n});\nclojure.string.re_surrogate_pair \x3d (new RegExp(\x22([\\\\uD800-\\\\uDBFF])([\\\\uDC00-\\\\uDFFF])\x22,\x22g\x22));\n/**\n * Returns s with its characters reversed.\n */\nclojure.string.reverse \x3d (function clojure$string$reverse(s){\nreturn s.replace(clojure.string.re_surrogate_pair,\x22$2$1\x22).split(\x22\x22).reverse().join(\x22\x22);\n});\nclojure.string.replace_all \x3d (function clojure$string$replace_all(s,re,replacement){\nvar r \x3d (new RegExp(re.source,(function (){var G__19729 \x3d \x22g\x22;\nvar G__19729__$1 \x3d (cljs.core.truth_(re.ignoreCase)?[G__19729,\x22i\x22].join(\x27\x27):G__19729);\nvar G__19729__$2 \x3d (cljs.core.truth_(re.multiline)?[G__19729__$1,\x22m\x22].join(\x27\x27):G__19729__$1);\nif(cljs.core.truth_(re.unicode)){\nreturn [G__19729__$2,\x22u\x22].join(\x27\x27);\n} else {\nreturn G__19729__$2;\n}\n})()));\nreturn s.replace(r,replacement);\n});\nclojure.string.replace_with \x3d (function clojure$string$replace_with(f){\nreturn (function() { \nvar G__19885__delegate \x3d function (args){\nvar matches \x3d cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2((2),args);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(matches),(1))){\nvar G__19741 \x3d cljs.core.first(matches);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__19741) : f.call(null, G__19741));\n} else {\nvar G__19743 \x3d cljs.core.vec(matches);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__19743) : f.call(null, G__19743));\n}\n};\nvar G__19885 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__19887__i \x3d 0, G__19887__a \x3d new Array(arguments.length - 0);\nwhile (G__19887__i \x3c G__19887__a.length) {G__19887__a[G__19887__i] \x3d arguments[G__19887__i + 0]; ++G__19887__i;}\n args \x3d new cljs.core.IndexedSeq(G__19887__a,0,null);\n} \nreturn G__19885__delegate.call(this,args);};\nG__19885.cljs$lang$maxFixedArity \x3d 0;\nG__19885.cljs$lang$applyTo \x3d (function (arglist__19888){\nvar args \x3d cljs.core.seq(arglist__19888);\nreturn G__19885__delegate(args);\n});\nG__19885.cljs$core$IFn$_invoke$arity$variadic \x3d G__19885__delegate;\nreturn G__19885;\n})()\n;\n});\n/**\n * Replaces all instance of match with replacement in s.\n * \n * match/replacement can be:\n * \n * string / string\n * pattern / (string or function of match).\n * \n * See also replace-first.\n * \n * The replacement is literal (i.e. none of its characters are treated\n * specially) for all cases above except pattern / string.\n * \n * For pattern / string, $1, $2, etc. in the replacement string are\n * substituted with the string that matched the corresponding\n * parenthesized group in the pattern.\n * \n * Example:\n * (clojure.string/replace \x22Almost Pig Latin\x22 #\x22\\b(\\w)(\\w+)\\b\x22 \x22$2$1ay\x22)\n * -\x3e \x22lmostAay igPay atinLay\x22\n */\nclojure.string.replace \x3d (function clojure$string$replace(s,match,replacement){\nif(typeof match \x3d\x3d\x3d \x27string\x27){\nreturn s.replace((new RegExp(goog.string.regExpEscape(match),\x22g\x22)),replacement);\n} else {\nif((match instanceof RegExp)){\nif(typeof replacement \x3d\x3d\x3d \x27string\x27){\nreturn clojure.string.replace_all(s,match,replacement);\n} else {\nreturn clojure.string.replace_all(s,match,clojure.string.replace_with(replacement));\n}\n} else {\nthrow [\x22Invalid match arg: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(match)].join(\x27\x27);\n\n}\n}\n});\n/**\n * Replaces the first instance of match with replacement in s.\n * \n * match/replacement can be:\n * \n * string / string\n * pattern / (string or function of match).\n * \n * See also replace.\n * \n * The replacement is literal (i.e. none of its characters are treated\n * specially) for all cases above except pattern / string.\n * \n * For pattern / string, $1, $2, etc. in the replacement string are\n * substituted with the string that matched the corresponding\n * parenthesized group in the pattern.\n * \n * Example:\n * (clojure.string/replace-first \x22swap first two words\x22\n * #\x22(\\w+)(\\s+)(\\w+)\x22 \x22$3$2$1\x22)\n * -\x3e \x22first swap two words\x22\n */\nclojure.string.replace_first \x3d (function clojure$string$replace_first(s,match,replacement){\nreturn s.replace(match,replacement);\n});\n/**\n * Returns a string of all elements in coll, as returned by (seq coll),\n * separated by an optional separator.\n */\nclojure.string.join \x3d (function clojure$string$join(var_args){\nvar G__19765 \x3d arguments.length;\nswitch (G__19765) {\ncase 1:\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.string.join.cljs$core$IFn$_invoke$arity$1 \x3d (function (coll){\nvar sb \x3d (new goog.string.StringBuffer());\nvar coll__$1 \x3d cljs.core.seq(coll);\nwhile(true){\nif((!((coll__$1 \x3d\x3d null)))){\nvar G__19898 \x3d sb.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(coll__$1)));\nvar G__19899 \x3d cljs.core.next(coll__$1);\nsb \x3d G__19898;\ncoll__$1 \x3d G__19899;\ncontinue;\n} else {\nreturn sb.toString();\n}\nbreak;\n}\n}));\n\n(clojure.string.join.cljs$core$IFn$_invoke$arity$2 \x3d (function (separator,coll){\nvar sb \x3d (new goog.string.StringBuffer());\nvar coll__$1 \x3d cljs.core.seq(coll);\nwhile(true){\nif((!((coll__$1 \x3d\x3d null)))){\nsb.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(coll__$1)));\n\nvar coll__$2 \x3d cljs.core.next(coll__$1);\nif((coll__$2 \x3d\x3d null)){\n} else {\nsb.append(separator);\n}\n\nvar G__19906 \x3d sb;\nvar G__19907 \x3d coll__$2;\nsb \x3d G__19906;\ncoll__$1 \x3d G__19907;\ncontinue;\n} else {\nreturn sb.toString();\n}\nbreak;\n}\n}));\n\n(clojure.string.join.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Converts string to all upper-case.\n */\nclojure.string.upper_case \x3d (function clojure$string$upper_case(s){\nreturn s.toUpperCase();\n});\n/**\n * Converts string to all lower-case.\n */\nclojure.string.lower_case \x3d (function clojure$string$lower_case(s){\nreturn s.toLowerCase();\n});\n/**\n * Converts first character of the string to upper-case, all other\n * characters to lower-case.\n */\nclojure.string.capitalize \x3d (function clojure$string$capitalize(s){\nreturn goog.string.capitalize(s);\n});\nclojure.string.pop_last_while_empty \x3d (function clojure$string$pop_last_while_empty(v){\nvar v__$1 \x3d v;\nwhile(true){\nif((\x22\x22 \x3d\x3d\x3d cljs.core.peek(v__$1))){\nvar G__19910 \x3d cljs.core.pop(v__$1);\nv__$1 \x3d G__19910;\ncontinue;\n} else {\nreturn v__$1;\n}\nbreak;\n}\n});\nclojure.string.discard_trailing_if_needed \x3d (function clojure$string$discard_trailing_if_needed(limit,v){\nif(((((0) \x3d\x3d\x3d limit)) \x26\x26 (((1) \x3c cljs.core.count(v))))){\nreturn clojure.string.pop_last_while_empty(v);\n} else {\nreturn v;\n}\n});\nclojure.string.split_with_empty_regex \x3d (function clojure$string$split_with_empty_regex(s,limit){\nif((((limit \x3c\x3d (0))) || ((limit \x3e\x3d ((2) + cljs.core.count(s)))))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.cons(\x22\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.seq(s)))),\x22\x22);\n} else {\nvar pred__19806 \x3d cljs.core._EQ__EQ_;\nvar expr__19807 \x3d limit;\nif(cljs.core.truth_((pred__19806.cljs$core$IFn$_invoke$arity$2 ? pred__19806.cljs$core$IFn$_invoke$arity$2((1),expr__19807) : pred__19806.call(null, (1),expr__19807)))){\nreturn (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[s],null));\n} else {\nif(cljs.core.truth_((pred__19806.cljs$core$IFn$_invoke$arity$2 ? pred__19806.cljs$core$IFn$_invoke$arity$2((2),expr__19807) : pred__19806.call(null, (2),expr__19807)))){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[\x22\x22,s],null));\n} else {\nvar c \x3d (limit - (2));\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.cons(\x22\x22,cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.seq(s))),(0),c))),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,c));\n}\n}\n}\n});\n/**\n * Splits string on a regular expression. Optional argument limit is\n * the maximum number of parts. Not lazy. Returns vector of the parts.\n * Trailing empty strings are not returned - pass limit of -1 to return all.\n */\nclojure.string.split \x3d (function clojure$string$split(var_args){\nvar G__19812 \x3d arguments.length;\nswitch (G__19812) {\ncase 2:\nreturn clojure.string.split.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.string.split.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.string.split.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,re){\nreturn clojure.string.split.cljs$core$IFn$_invoke$arity$3(s,re,(0));\n}));\n\n(clojure.string.split.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,re,limit){\nreturn clojure.string.discard_trailing_if_needed(limit,(((\x22/(?:)/\x22 \x3d\x3d\x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(re)))?clojure.string.split_with_empty_regex(s,limit):(((limit \x3c (1)))?cljs.core.vec(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s).split(re)):(function (){var s__$1 \x3d s;\nvar limit__$1 \x3d limit;\nvar parts \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nif(((1) \x3d\x3d\x3d limit__$1)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(parts,s__$1);\n} else {\nvar m \x3d cljs.core.re_find(re,s__$1);\nif((!((m \x3d\x3d null)))){\nvar index \x3d s__$1.indexOf(m);\nvar G__19933 \x3d s__$1.substring((index + cljs.core.count(m)));\nvar G__19934 \x3d (limit__$1 - (1));\nvar G__19935 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(parts,s__$1.substring((0),index));\ns__$1 \x3d G__19933;\nlimit__$1 \x3d G__19934;\nparts \x3d G__19935;\ncontinue;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(parts,s__$1);\n}\n}\nbreak;\n}\n})())));\n}));\n\n(clojure.string.split.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Splits s on \\n or \\r\\n. Trailing empty lines are not returned.\n */\nclojure.string.split_lines \x3d (function clojure$string$split_lines(s){\nreturn clojure.string.split.cljs$core$IFn$_invoke$arity$2(s,/\\n|\\r\\n/);\n});\n/**\n * Removes whitespace from both ends of string.\n */\nclojure.string.trim \x3d (function clojure$string$trim(s){\nreturn goog.string.trim(s);\n});\n/**\n * Removes whitespace from the left side of string.\n */\nclojure.string.triml \x3d (function clojure$string$triml(s){\nreturn goog.string.trimLeft(s);\n});\n/**\n * Removes whitespace from the right side of string.\n */\nclojure.string.trimr \x3d (function clojure$string$trimr(s){\nreturn goog.string.trimRight(s);\n});\n/**\n * Removes all trailing newline \\n or return \\r characters from\n * string. Similar to Perl\x27s chomp.\n */\nclojure.string.trim_newline \x3d (function clojure$string$trim_newline(s){\nvar index \x3d s.length;\nwhile(true){\nif((index \x3d\x3d\x3d (0))){\nreturn \x22\x22;\n} else {\nvar ch \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(s,(index - (1)));\nif((((\x22\\n\x22 \x3d\x3d\x3d ch)) || ((\x22\\r\x22 \x3d\x3d\x3d ch)))){\nvar G__19946 \x3d (index - (1));\nindex \x3d G__19946;\ncontinue;\n} else {\nreturn s.substring((0),index);\n}\n}\nbreak;\n}\n});\n/**\n * True if s is nil, empty, or contains only whitespace.\n */\nclojure.string.blank_QMARK_ \x3d (function clojure$string$blank_QMARK_(s){\nreturn goog.string.isEmptyOrWhitespace(goog.string.makeSafe(s));\n});\n/**\n * Return a new string, using cmap to escape each character ch\n * from s as follows:\n * \n * If (cmap ch) is nil, append ch to the new string.\n * If (cmap ch) is non-nil, append (str (cmap ch)) instead.\n */\nclojure.string.escape \x3d (function clojure$string$escape(s,cmap){\nvar buffer \x3d (new goog.string.StringBuffer());\nvar length \x3d s.length;\nvar index \x3d (0);\nwhile(true){\nif((length \x3d\x3d\x3d index)){\nreturn buffer.toString();\n} else {\nvar ch \x3d s.charAt(index);\nvar replacement \x3d (cmap.cljs$core$IFn$_invoke$arity$1 ? cmap.cljs$core$IFn$_invoke$arity$1(ch) : cmap.call(null, ch));\nif((!((replacement \x3d\x3d null)))){\nbuffer.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(replacement));\n} else {\nbuffer.append(ch);\n}\n\nvar G__19955 \x3d (index + (1));\nindex \x3d G__19955;\ncontinue;\n}\nbreak;\n}\n});\n/**\n * Return index of value (string or char) in s, optionally searching\n * forward from from-index or nil if not found.\n */\nclojure.string.index_of \x3d (function clojure$string$index_of(var_args){\nvar G__19845 \x3d arguments.length;\nswitch (G__19845) {\ncase 2:\nreturn clojure.string.index_of.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.string.index_of.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.string.index_of.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,value){\nvar result \x3d s.indexOf(value);\nif((result \x3c (0))){\nreturn null;\n} else {\nreturn result;\n}\n}));\n\n(clojure.string.index_of.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,value,from_index){\nvar result \x3d s.indexOf(value,from_index);\nif((result \x3c (0))){\nreturn null;\n} else {\nreturn result;\n}\n}));\n\n(clojure.string.index_of.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Return last index of value (string or char) in s, optionally\n * searching backward from from-index or nil if not found.\n */\nclojure.string.last_index_of \x3d (function clojure$string$last_index_of(var_args){\nvar G__19853 \x3d arguments.length;\nswitch (G__19853) {\ncase 2:\nreturn clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,value){\nvar result \x3d s.lastIndexOf(value);\nif((result \x3c (0))){\nreturn null;\n} else {\nreturn result;\n}\n}));\n\n(clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3 \x3d (function (s,value,from_index){\nvar result \x3d s.lastIndexOf(value,from_index);\nif((result \x3c (0))){\nreturn null;\n} else {\nreturn result;\n}\n}));\n\n(clojure.string.last_index_of.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * True if s starts with substr.\n */\nclojure.string.starts_with_QMARK_ \x3d (function clojure$string$starts_with_QMARK_(s,substr){\nreturn goog.string.startsWith(s,substr);\n});\n/**\n * True if s ends with substr.\n */\nclojure.string.ends_with_QMARK_ \x3d (function clojure$string$ends_with_QMARK_(s,substr){\nreturn goog.string.endsWith(s,substr);\n});\n/**\n * True if s includes substr.\n */\nclojure.string.includes_QMARK_ \x3d (function clojure$string$includes_QMARK_(s,substr){\nreturn goog.string.contains(s,substr);\n});\n");
SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.console.js", true, "goog.provide(\x27shadow.cljs.devtools.client.console\x27);\nshadow.cljs.devtools.client.console.push_all \x3d (function shadow$cljs$devtools$client$console$push_all(arr,item){\nif(cljs.core.vector_QMARK_(item)){\nvar seq__20022 \x3d cljs.core.seq(item);\nvar chunk__20023 \x3d null;\nvar count__20024 \x3d (0);\nvar i__20025 \x3d (0);\nwhile(true){\nif((i__20025 \x3c count__20024)){\nvar it \x3d chunk__20023.cljs$core$IIndexed$_nth$arity$2(null, i__20025);\narr.push(it);\n\n\nvar G__20287 \x3d seq__20022;\nvar G__20288 \x3d chunk__20023;\nvar G__20289 \x3d count__20024;\nvar G__20290 \x3d (i__20025 + (1));\nseq__20022 \x3d G__20287;\nchunk__20023 \x3d G__20288;\ncount__20024 \x3d G__20289;\ni__20025 \x3d G__20290;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__20022);\nif(temp__5804__auto__){\nvar seq__20022__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__20022__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__20022__$1);\nvar G__20291 \x3d cljs.core.chunk_rest(seq__20022__$1);\nvar G__20292 \x3d c__5525__auto__;\nvar G__20293 \x3d cljs.core.count(c__5525__auto__);\nvar G__20294 \x3d (0);\nseq__20022 \x3d G__20291;\nchunk__20023 \x3d G__20292;\ncount__20024 \x3d G__20293;\ni__20025 \x3d G__20294;\ncontinue;\n} else {\nvar it \x3d cljs.core.first(seq__20022__$1);\narr.push(it);\n\n\nvar G__20295 \x3d cljs.core.next(seq__20022__$1);\nvar G__20296 \x3d null;\nvar G__20297 \x3d (0);\nvar G__20298 \x3d (0);\nseq__20022 \x3d G__20295;\nchunk__20023 \x3d G__20296;\ncount__20024 \x3d G__20297;\ni__20025 \x3d G__20298;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn arr.push(item);\n}\n});\nshadow.cljs.devtools.client.console.object_ref \x3d (function shadow$cljs$devtools$client$console$object_ref(obj){\nif((obj \x3d\x3d null)){\nreturn null;\n} else {\nreturn [\x22object\x22,({\x22object\x22: obj})];\n}\n});\nshadow.cljs.devtools.client.console.map__GT_style \x3d (function shadow$cljs$devtools$client$console$map__GT_style(m){\nreturn ({\x22style\x22: clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__20050){\nvar vec__20051 \x3d p__20050;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20051,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20051,(1),null);\nreturn [cljs.core.name(k),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(v),\x22;\x22].join(\x27\x27);\n}),m))});\n});\nshadow.cljs.devtools.client.console.clj__GT_jsonml \x3d (function shadow$cljs$devtools$client$console$clj__GT_jsonml(struct){\nif((struct \x3d\x3d null)){\nreturn null;\n} else {\nif(cljs.core.array_QMARK_(struct)){\nreturn struct;\n} else {\nif(cljs.core.vector_QMARK_(struct)){\nvar vec__20062 \x3d struct;\nvar seq__20063 \x3d cljs.core.seq(vec__20062);\nvar first__20064 \x3d cljs.core.first(seq__20063);\nvar seq__20063__$1 \x3d cljs.core.next(seq__20063);\nvar tag \x3d first__20064;\nvar first__20064__$1 \x3d cljs.core.first(seq__20063__$1);\nvar seq__20063__$2 \x3d cljs.core.next(seq__20063__$1);\nvar attrs \x3d first__20064__$1;\nvar children \x3d seq__20063__$2;\nvar js \x3d [cljs.core.name(tag),shadow.cljs.devtools.client.console.map__GT_style(attrs)];\nvar seq__20066_20313 \x3d cljs.core.seq(children);\nvar chunk__20069_20314 \x3d null;\nvar count__20070_20315 \x3d (0);\nvar i__20071_20316 \x3d (0);\nwhile(true){\nif((i__20071_20316 \x3c count__20070_20315)){\nvar child_20324 \x3d chunk__20069_20314.cljs$core$IIndexed$_nth$arity$2(null, i__20071_20316);\nshadow.cljs.devtools.client.console.push_all(js,(shadow.cljs.devtools.client.console.clj__GT_jsonml.cljs$core$IFn$_invoke$arity$1 ? shadow.cljs.devtools.client.console.clj__GT_jsonml.cljs$core$IFn$_invoke$arity$1(child_20324) : shadow.cljs.devtools.client.console.clj__GT_jsonml.call(null, child_20324)));\n\n\nvar G__20325 \x3d seq__20066_20313;\nvar G__20326 \x3d chunk__20069_20314;\nvar G__20327 \x3d count__20070_20315;\nvar G__20328 \x3d (i__20071_20316 + (1));\nseq__20066_20313 \x3d G__20325;\nchunk__20069_20314 \x3d G__20326;\ncount__20070_20315 \x3d G__20327;\ni__20071_20316 \x3d G__20328;\ncontinue;\n} else {\nvar temp__5804__auto___20329 \x3d cljs.core.seq(seq__20066_20313);\nif(temp__5804__auto___20329){\nvar seq__20066_20330__$1 \x3d temp__5804__auto___20329;\nif(cljs.core.chunked_seq_QMARK_(seq__20066_20330__$1)){\nvar c__5525__auto___20331 \x3d cljs.core.chunk_first(seq__20066_20330__$1);\nvar G__20332 \x3d cljs.core.chunk_rest(seq__20066_20330__$1);\nvar G__20333 \x3d c__5525__auto___20331;\nvar G__20334 \x3d cljs.core.count(c__5525__auto___20331);\nvar G__20335 \x3d (0);\nseq__20066_20313 \x3d G__20332;\nchunk__20069_20314 \x3d G__20333;\ncount__20070_20315 \x3d G__20334;\ni__20071_20316 \x3d G__20335;\ncontinue;\n} else {\nvar child_20336 \x3d cljs.core.first(seq__20066_20330__$1);\nshadow.cljs.devtools.client.console.push_all(js,(shadow.cljs.devtools.client.console.clj__GT_jsonml.cljs$core$IFn$_invoke$arity$1 ? shadow.cljs.devtools.client.console.clj__GT_jsonml.cljs$core$IFn$_invoke$arity$1(child_20336) : shadow.cljs.devtools.client.console.clj__GT_jsonml.call(null, child_20336)));\n\n\nvar G__20337 \x3d cljs.core.next(seq__20066_20330__$1);\nvar G__20338 \x3d null;\nvar G__20339 \x3d (0);\nvar G__20340 \x3d (0);\nseq__20066_20313 \x3d G__20337;\nchunk__20069_20314 \x3d G__20338;\ncount__20070_20315 \x3d G__20339;\ni__20071_20316 \x3d G__20340;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn js;\n} else {\nif(typeof struct \x3d\x3d\x3d \x27string\x27){\nreturn struct;\n} else {\nif(typeof struct \x3d\x3d\x3d \x27number\x27){\nreturn struct;\n} else {\nif(cljs.core.seq_QMARK_(struct)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.console.clj__GT_jsonml),struct);\n} else {\nreturn shadow.cljs.devtools.client.console.object_ref(struct);\n\n}\n}\n}\n}\n}\n}\n});\n\n/**\n* @constructor\n*/\nshadow.cljs.devtools.client.console.SeqFormatter \x3d (function (){\n});\n(shadow.cljs.devtools.client.console.SeqFormatter.prototype.shadow$formatter \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(shadow.cljs.devtools.client.console.SeqFormatter.prototype.header \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif(((cljs.core.sequential_QMARK_(obj)) || (cljs.core.set_QMARK_(obj)))){\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),cljs.core.PersistentArrayMap.EMPTY,[cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(obj)], 0)),\x22 [count: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(obj)),\x22]\x22].join(\x27\x27)], null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.console.SeqFormatter.prototype.hasBody \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn cljs.core.boolean$(cljs.core.seq(obj));\n}));\n\n(shadow.cljs.devtools.client.console.SeqFormatter.prototype.body \x3d (function (s){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ol\x22,\x22ol\x22,932524051),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22margin\x22,\x22margin\x22,-995903681),(0)], null),(function (){var iter__5480__auto__ \x3d (function shadow$cljs$devtools$client$console$iter__20115(s__20116){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__20116__$1 \x3d s__20116;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__20116__$1);\nif(temp__5804__auto__){\nvar s__20116__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__20116__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__20116__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__20118 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__20117 \x3d (0);\nwhile(true){\nif((i__20117 \x3c size__5479__auto__)){\nvar value \x3d cljs.core._nth(c__5478__auto__,i__20117);\ncljs.core.chunk_append(b__20118,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22li\x22,\x22li\x22,723558921),cljs.core.PersistentArrayMap.EMPTY,shadow.cljs.devtools.client.console.object_ref(value)], null));\n\nvar G__20355 \x3d (i__20117 + (1));\ni__20117 \x3d G__20355;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__20118),shadow$cljs$devtools$client$console$iter__20115(cljs.core.chunk_rest(s__20116__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__20118),null);\n}\n} else {\nvar value \x3d cljs.core.first(s__20116__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22li\x22,\x22li\x22,723558921),cljs.core.PersistentArrayMap.EMPTY,shadow.cljs.devtools.client.console.object_ref(value)], null),shadow$cljs$devtools$client$console$iter__20115(cljs.core.rest(s__20116__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(s);\n})()], null));\n}));\n\n(shadow.cljs.devtools.client.console.SeqFormatter.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(shadow.cljs.devtools.client.console.SeqFormatter.cljs$lang$type \x3d true);\n\n(shadow.cljs.devtools.client.console.SeqFormatter.cljs$lang$ctorStr \x3d \x22shadow.cljs.devtools.client.console/SeqFormatter\x22);\n\n(shadow.cljs.devtools.client.console.SeqFormatter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.cljs.devtools.client.console/SeqFormatter\x22);\n}));\n\n/**\n * Positional factory function for shadow.cljs.devtools.client.console/SeqFormatter.\n */\nshadow.cljs.devtools.client.console.__GT_SeqFormatter \x3d (function shadow$cljs$devtools$client$console$__GT_SeqFormatter(){\nreturn (new shadow.cljs.devtools.client.console.SeqFormatter());\n});\n\n\n/**\n* @constructor\n*/\nshadow.cljs.devtools.client.console.MapFormatter \x3d (function (){\n});\n(shadow.cljs.devtools.client.console.MapFormatter.prototype.shadow$formatter \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(shadow.cljs.devtools.client.console.MapFormatter.prototype.header \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((((obj instanceof cljs.core.PersistentHashMap)) || ((((obj instanceof cljs.core.PersistentArrayMap)) || (cljs.core.record_QMARK_(obj)))))){\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),cljs.core.PersistentArrayMap.EMPTY,[cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(obj)], 0)),\x22 [count: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(obj)),\x22]\x22].join(\x27\x27)], null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.console.MapFormatter.prototype.hasBody \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn cljs.core.boolean$(cljs.core.seq(obj));\n}));\n\n(shadow.cljs.devtools.client.console.MapFormatter.prototype.body \x3d (function (m){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22table\x22,\x22table\x22,-564943036),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22width\x22,\x22width\x22,-384071477),\x22100%\x22,new cljs.core.Keyword(null,\x22margin-left\x22,\x22margin-left\x22,2015598377),\x2214px\x22], null),(function (){var iter__5480__auto__ \x3d (function shadow$cljs$devtools$client$console$iter__20150(s__20151){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__20151__$1 \x3d s__20151;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__20151__$1);\nif(temp__5804__auto__){\nvar s__20151__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__20151__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__20151__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__20153 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__20152 \x3d (0);\nwhile(true){\nif((i__20152 \x3c size__5479__auto__)){\nvar key \x3d cljs.core._nth(c__5478__auto__,i__20152);\nvar value \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,key);\ncljs.core.chunk_append(b__20153,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22vertical-align\x22,\x22vertical-align\x22,651007333),\x22top\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.PersistentArrayMap.EMPTY,shadow.cljs.devtools.client.console.object_ref(key)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.PersistentArrayMap.EMPTY,shadow.cljs.devtools.client.console.object_ref(value)], null)], null));\n\nvar G__20379 \x3d (i__20152 + (1));\ni__20152 \x3d G__20379;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__20153),shadow$cljs$devtools$client$console$iter__20150(cljs.core.chunk_rest(s__20151__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__20153),null);\n}\n} else {\nvar key \x3d cljs.core.first(s__20151__$2);\nvar value \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,key);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22tr\x22,\x22tr\x22,-1424774646),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22vertical-align\x22,\x22vertical-align\x22,651007333),\x22top\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.PersistentArrayMap.EMPTY,shadow.cljs.devtools.client.console.object_ref(key)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22td\x22,\x22td\x22,1479933353),cljs.core.PersistentArrayMap.EMPTY,shadow.cljs.devtools.client.console.object_ref(value)], null)], null),shadow$cljs$devtools$client$console$iter__20150(cljs.core.rest(s__20151__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__((function (){var k \x3d cljs.core.keys(m);\ntry{return cljs.core.sort.cljs$core$IFn$_invoke$arity$1(k);\n}catch (e20168){var e \x3d e20168;\nreturn k;\n}})());\n})()], null));\n}));\n\n(shadow.cljs.devtools.client.console.MapFormatter.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(shadow.cljs.devtools.client.console.MapFormatter.cljs$lang$type \x3d true);\n\n(shadow.cljs.devtools.client.console.MapFormatter.cljs$lang$ctorStr \x3d \x22shadow.cljs.devtools.client.console/MapFormatter\x22);\n\n(shadow.cljs.devtools.client.console.MapFormatter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.cljs.devtools.client.console/MapFormatter\x22);\n}));\n\n/**\n * Positional factory function for shadow.cljs.devtools.client.console/MapFormatter.\n */\nshadow.cljs.devtools.client.console.__GT_MapFormatter \x3d (function shadow$cljs$devtools$client$console$__GT_MapFormatter(){\nreturn (new shadow.cljs.devtools.client.console.MapFormatter());\n});\n\nshadow.cljs.devtools.client.console.keyword_style \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),\x22var(--sys-color-token-keyword, var(--theme-highlight-pink, rgb(136, 19, 145)))\x22], null);\n\n/**\n* @constructor\n*/\nshadow.cljs.devtools.client.console.KeywordFormatter \x3d (function (){\n});\n(shadow.cljs.devtools.client.console.KeywordFormatter.prototype.shadow$formatter \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.prototype.header \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((obj instanceof cljs.core.Keyword)){\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),shadow.cljs.devtools.client.console.keyword_style,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj], 0))], null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.prototype.hasBody \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn false;\n}));\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.prototype.body \x3d (function (m){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn null;\n}));\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.cljs$lang$type \x3d true);\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.cljs$lang$ctorStr \x3d \x22shadow.cljs.devtools.client.console/KeywordFormatter\x22);\n\n(shadow.cljs.devtools.client.console.KeywordFormatter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.cljs.devtools.client.console/KeywordFormatter\x22);\n}));\n\n/**\n * Positional factory function for shadow.cljs.devtools.client.console/KeywordFormatter.\n */\nshadow.cljs.devtools.client.console.__GT_KeywordFormatter \x3d (function shadow$cljs$devtools$client$console$__GT_KeywordFormatter(){\nreturn (new shadow.cljs.devtools.client.console.KeywordFormatter());\n});\n\n\n/**\n* @constructor\n*/\nshadow.cljs.devtools.client.console.SymbolFormatter \x3d (function (){\n});\n(shadow.cljs.devtools.client.console.SymbolFormatter.prototype.shadow$formatter \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.prototype.header \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((obj instanceof cljs.core.Symbol)){\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),shadow.cljs.devtools.client.console.keyword_style,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj], 0))], null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.prototype.hasBody \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn false;\n}));\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.prototype.body \x3d (function (m){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn null;\n}));\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.cljs$lang$type \x3d true);\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.cljs$lang$ctorStr \x3d \x22shadow.cljs.devtools.client.console/SymbolFormatter\x22);\n\n(shadow.cljs.devtools.client.console.SymbolFormatter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.cljs.devtools.client.console/SymbolFormatter\x22);\n}));\n\n/**\n * Positional factory function for shadow.cljs.devtools.client.console/SymbolFormatter.\n */\nshadow.cljs.devtools.client.console.__GT_SymbolFormatter \x3d (function shadow$cljs$devtools$client$console$__GT_SymbolFormatter(){\nreturn (new shadow.cljs.devtools.client.console.SymbolFormatter());\n});\n\n\n/**\n* @constructor\n*/\nshadow.cljs.devtools.client.console.DerefFormatter \x3d (function (){\n});\n(shadow.cljs.devtools.client.console.DerefFormatter.prototype.shadow$formatter \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(shadow.cljs.devtools.client.console.DerefFormatter.prototype.header \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif((((obj instanceof cljs.core.Atom)) || ((obj instanceof cljs.core.Volatile)))){\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),shadow.cljs.devtools.client.console.keyword_style,[\x22@DEREF \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(obj)], 0))].join(\x27\x27)], null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.console.DerefFormatter.prototype.hasBody \x3d (function (obj){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn true;\n}));\n\n(shadow.cljs.devtools.client.console.DerefFormatter.prototype.body \x3d (function (v){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn shadow.cljs.devtools.client.console.clj__GT_jsonml(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22margin-left\x22,\x22margin-left\x22,2015598377),\x2214px\x22], null),shadow.cljs.devtools.client.console.object_ref(cljs.core.deref(v))], null));\n}));\n\n(shadow.cljs.devtools.client.console.DerefFormatter.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(shadow.cljs.devtools.client.console.DerefFormatter.cljs$lang$type \x3d true);\n\n(shadow.cljs.devtools.client.console.DerefFormatter.cljs$lang$ctorStr \x3d \x22shadow.cljs.devtools.client.console/DerefFormatter\x22);\n\n(shadow.cljs.devtools.client.console.DerefFormatter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.cljs.devtools.client.console/DerefFormatter\x22);\n}));\n\n/**\n * Positional factory function for shadow.cljs.devtools.client.console/DerefFormatter.\n */\nshadow.cljs.devtools.client.console.__GT_DerefFormatter \x3d (function shadow$cljs$devtools$client$console$__GT_DerefFormatter(){\nreturn (new shadow.cljs.devtools.client.console.DerefFormatter());\n});\n\nshadow.cljs.devtools.client.console.install_all_BANG_ \x3d (function shadow$cljs$devtools$client$console$install_all_BANG_(){\nvar temp__5804__auto__ \x3d goog.global.devtoolsFormatters;\nif(cljs.core.truth_(temp__5804__auto__)){\nvar f \x3d temp__5804__auto__;\nvar G__20251 \x3d f;\nG__20251.push((new shadow.cljs.devtools.client.console.KeywordFormatter()));\n\nG__20251.push((new shadow.cljs.devtools.client.console.MapFormatter()));\n\nG__20251.push((new shadow.cljs.devtools.client.console.SeqFormatter()));\n\nG__20251.push((new shadow.cljs.devtools.client.console.SymbolFormatter()));\n\nG__20251.push((new shadow.cljs.devtools.client.console.DerefFormatter()));\n\nreturn G__20251;\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.console.remove_all_BANG_ \x3d (function shadow$cljs$devtools$client$console$remove_all_BANG_(){\nvar all \x3d cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__20263_SHARP_){\nreturn goog.object.get(p1__20263_SHARP_,\x22shadow$formatter\x22);\n}),cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1((function (){var or__5002__auto__ \x3d goog.global.devtoolsFormatters;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn [];\n}\n})())));\nreturn goog.object.set(goog.global,\x22devtoolsFormatters\x22,all);\n});\nshadow.cljs.devtools.client.console.remove_all_BANG_();\nshadow.cljs.devtools.client.console.install_all_BANG_();\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.engine.js", true, "goog.loadModule(function(exports) {\n function isPresto() {\n return util.matchUserAgent(\x22Presto\x22);\n }\n function isTrident() {\n return util.matchUserAgent(\x22Trident\x22) || util.matchUserAgent(\x22MSIE\x22);\n }\n function isEdge() {\n return util.matchUserAgent(\x22Edge\x22);\n }\n function isWebKit() {\n return util.matchUserAgentIgnoreCase(\x22WebKit\x22) \x26\x26 !isEdge();\n }\n function isGecko() {\n return util.matchUserAgent(\x22Gecko\x22) \x26\x26 !isWebKit() \x26\x26 !isTrident() \x26\x26 !isEdge();\n }\n function getVersion() {\n const userAgentString \x3d util.getUserAgent();\n if (userAgentString) {\n const tuples \x3d util.extractVersionTuples(userAgentString);\n const engineTuple \x3d getEngineTuple(tuples);\n if (engineTuple) {\n if (engineTuple[0] \x3d\x3d \x22Gecko\x22) {\n return getVersionForKey(tuples, \x22Firefox\x22);\n }\n return engineTuple[1];\n }\n const browserTuple \x3d tuples[0];\n let info;\n if (browserTuple \x26\x26 (info \x3d browserTuple[2])) {\n const match \x3d /Trident\\/([^\\s;]+)/.exec(info);\n if (match) {\n return match[1];\n }\n }\n }\n return \x22\x22;\n }\n function getEngineTuple(tuples) {\n if (!isEdge()) {\n return tuples[1];\n }\n for (let i \x3d 0; i \x3c tuples.length; i++) {\n const tuple \x3d tuples[i];\n if (tuple[0] \x3d\x3d \x22Edge\x22) {\n return tuple;\n }\n }\n }\n function isVersionOrHigher(version) {\n return googString.compareVersions(getVersion(), version) \x3e\x3d 0;\n }\n function getVersionForKey(tuples, key) {\n const pair \x3d googArray.find(tuples, function(pair) {\n return key \x3d\x3d pair[0];\n });\n return pair \x26\x26 pair[1] || \x22\x22;\n }\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent.engine\x22);\n goog.module.declareLegacyNamespace();\n const googArray \x3d goog.require(\x22goog.array\x22);\n const googString \x3d goog.require(\x22goog.string.internal\x22);\n const util \x3d goog.require(\x22goog.labs.userAgent.util\x22);\n exports \x3d {getVersion, isEdge, isGecko, isPresto, isTrident, isVersionOrHigher, isWebKit};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.labs.useragent.platform.js", true, "goog.loadModule(function(exports) {\n function useUserAgentDataPlatform(ignoreClientHintsFlag \x3d false) {\n if (util.ASSUME_CLIENT_HINTS_SUPPORT) {\n return true;\n }\n if (!ignoreClientHintsFlag \x26\x26 !useClientHints()) {\n return false;\n }\n const userAgentData \x3d util.getUserAgentData();\n return !!userAgentData \x26\x26 !!userAgentData.platform;\n }\n function isAndroid() {\n if (useUserAgentDataPlatform()) {\n return util.getUserAgentData().platform \x3d\x3d\x3d \x22Android\x22;\n }\n return util.matchUserAgent(\x22Android\x22);\n }\n function isIpod() {\n return util.matchUserAgent(\x22iPod\x22);\n }\n function isIphone() {\n return util.matchUserAgent(\x22iPhone\x22) \x26\x26 !util.matchUserAgent(\x22iPod\x22) \x26\x26 !util.matchUserAgent(\x22iPad\x22);\n }\n function isIpad() {\n return util.matchUserAgent(\x22iPad\x22);\n }\n function isIos() {\n return isIphone() || isIpad() || isIpod();\n }\n function isMacintosh() {\n if (useUserAgentDataPlatform()) {\n return util.getUserAgentData().platform \x3d\x3d\x3d \x22macOS\x22;\n }\n return util.matchUserAgent(\x22Macintosh\x22);\n }\n function isLinux() {\n if (useUserAgentDataPlatform()) {\n return util.getUserAgentData().platform \x3d\x3d\x3d \x22Linux\x22;\n }\n return util.matchUserAgent(\x22Linux\x22);\n }\n function isWindows() {\n if (useUserAgentDataPlatform()) {\n return util.getUserAgentData().platform \x3d\x3d\x3d \x22Windows\x22;\n }\n return util.matchUserAgent(\x22Windows\x22);\n }\n function isChromeOS() {\n if (useUserAgentDataPlatform()) {\n return util.getUserAgentData().platform \x3d\x3d\x3d \x22Chrome OS\x22;\n }\n return util.matchUserAgent(\x22CrOS\x22);\n }\n function isChromecast() {\n return util.matchUserAgent(\x22CrKey\x22);\n }\n function isKaiOS() {\n return util.matchUserAgentIgnoreCase(\x22KaiOS\x22);\n }\n function getVersion() {\n const userAgentString \x3d util.getUserAgent();\n let version \x3d \x22\x22;\n let re;\n if (isWindows()) {\n re \x3d /Windows (?:NT|Phone) ([0-9.]+)/;\n const match \x3d re.exec(userAgentString);\n if (match) {\n version \x3d match[1];\n } else {\n version \x3d \x220.0\x22;\n }\n } else if (isIos()) {\n re \x3d /(?:iPhone|iPod|iPad|CPU)\\s+OS\\s+(\\S+)/;\n const match \x3d re.exec(userAgentString);\n version \x3d match \x26\x26 match[1].replace(/_/g, \x22.\x22);\n } else if (isMacintosh()) {\n re \x3d /Mac OS X ([0-9_.]+)/;\n const match \x3d re.exec(userAgentString);\n version \x3d match ? match[1].replace(/_/g, \x22.\x22) : \x2210\x22;\n } else if (isKaiOS()) {\n re \x3d /(?:KaiOS)\\/(\\S+)/i;\n const match \x3d re.exec(userAgentString);\n version \x3d match \x26\x26 match[1];\n } else if (isAndroid()) {\n re \x3d /Android\\s+([^\\);]+)(\\)|;)/;\n const match \x3d re.exec(userAgentString);\n version \x3d match \x26\x26 match[1];\n } else if (isChromeOS()) {\n re \x3d /(?:CrOS\\s+(?:i686|x86_64)\\s+([0-9.]+))/;\n const match \x3d re.exec(userAgentString);\n version \x3d match \x26\x26 match[1];\n }\n return version || \x22\x22;\n }\n function isVersionOrHigher(version) {\n return googString.compareVersions(getVersion(), version) \x3e\x3d 0;\n }\n \x22use strict\x22;\n goog.module(\x22goog.labs.userAgent.platform\x22);\n goog.module.declareLegacyNamespace();\n const googString \x3d goog.require(\x22goog.string.internal\x22);\n const util \x3d goog.require(\x22goog.labs.userAgent.util\x22);\n const {AsyncValue, Version} \x3d goog.require(\x22goog.labs.userAgent.highEntropy.highEntropyValue\x22);\n const {platformVersion} \x3d goog.require(\x22goog.labs.userAgent.highEntropy.highEntropyData\x22);\n const {useClientHints} \x3d goog.require(\x22goog.labs.userAgent\x22);\n class PlatformVersion {\n constructor() {\n this.preUachHasLoaded_ \x3d false;\n }\n getIfLoaded() {\n if (useUserAgentDataPlatform(true)) {\n const loadedPlatformVersion \x3d platformVersion.getIfLoaded();\n if (loadedPlatformVersion \x3d\x3d\x3d undefined) {\n return undefined;\n }\n return new Version(loadedPlatformVersion);\n } else if (!this.preUachHasLoaded_) {\n return undefined;\n } else {\n return new Version(getVersion());\n }\n }\n async load() {\n if (useUserAgentDataPlatform(true)) {\n return new Version(await platformVersion.load());\n } else {\n this.preUachHasLoaded_ \x3d true;\n return new Version(getVersion());\n }\n }\n resetForTesting() {\n platformVersion.resetForTesting();\n this.preUachHasLoaded_ \x3d false;\n }\n }\n const version \x3d new PlatformVersion();\n exports \x3d {getVersion, isAndroid, isChromeOS, isChromecast, isIos, isIpad, isIphone, isIpod, isKaiOS, isLinux, isMacintosh, isVersionOrHigher, isWindows, version};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.useragent.useragent.js", true, "goog.provide(\x22goog.userAgent\x22);\ngoog.require(\x22goog.labs.userAgent.browser\x22);\ngoog.require(\x22goog.labs.userAgent.engine\x22);\ngoog.require(\x22goog.labs.userAgent.platform\x22);\ngoog.require(\x22goog.labs.userAgent.util\x22);\ngoog.require(\x22goog.reflect\x22);\ngoog.require(\x22goog.string.internal\x22);\ngoog.userAgent.ASSUME_IE \x3d goog.define(\x22goog.userAgent.ASSUME_IE\x22, false);\ngoog.userAgent.ASSUME_EDGE \x3d goog.define(\x22goog.userAgent.ASSUME_EDGE\x22, false);\ngoog.userAgent.ASSUME_GECKO \x3d goog.define(\x22goog.userAgent.ASSUME_GECKO\x22, false);\ngoog.userAgent.ASSUME_WEBKIT \x3d goog.define(\x22goog.userAgent.ASSUME_WEBKIT\x22, false);\ngoog.userAgent.ASSUME_MOBILE_WEBKIT \x3d goog.define(\x22goog.userAgent.ASSUME_MOBILE_WEBKIT\x22, false);\ngoog.userAgent.ASSUME_OPERA \x3d goog.define(\x22goog.userAgent.ASSUME_OPERA\x22, false);\ngoog.userAgent.ASSUME_ANY_VERSION \x3d goog.define(\x22goog.userAgent.ASSUME_ANY_VERSION\x22, false);\ngoog.userAgent.BROWSER_KNOWN_ \x3d goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;\ngoog.userAgent.getUserAgentString \x3d function() {\n return goog.labs.userAgent.util.getUserAgent();\n};\ngoog.userAgent.getNavigatorTyped \x3d function() {\n return goog.global[\x22navigator\x22] || null;\n};\ngoog.userAgent.getNavigator \x3d function() {\n return goog.userAgent.getNavigatorTyped();\n};\ngoog.userAgent.OPERA \x3d goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera();\ngoog.userAgent.IE \x3d goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE();\ngoog.userAgent.EDGE \x3d goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge();\ngoog.userAgent.EDGE_OR_IE \x3d goog.userAgent.EDGE || goog.userAgent.IE;\ngoog.userAgent.GECKO \x3d goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko();\ngoog.userAgent.WEBKIT \x3d goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit();\ngoog.userAgent.isMobile_ \x3d function() {\n return goog.userAgent.WEBKIT \x26\x26 goog.labs.userAgent.util.matchUserAgent(\x22Mobile\x22);\n};\ngoog.userAgent.MOBILE \x3d goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_();\ngoog.userAgent.SAFARI \x3d goog.userAgent.WEBKIT;\ngoog.userAgent.determinePlatform_ \x3d function() {\n var navigator \x3d goog.userAgent.getNavigatorTyped();\n return navigator \x26\x26 navigator.platform || \x22\x22;\n};\ngoog.userAgent.PLATFORM \x3d goog.userAgent.determinePlatform_();\ngoog.userAgent.ASSUME_MAC \x3d goog.define(\x22goog.userAgent.ASSUME_MAC\x22, false);\ngoog.userAgent.ASSUME_WINDOWS \x3d goog.define(\x22goog.userAgent.ASSUME_WINDOWS\x22, false);\ngoog.userAgent.ASSUME_LINUX \x3d goog.define(\x22goog.userAgent.ASSUME_LINUX\x22, false);\ngoog.userAgent.ASSUME_X11 \x3d goog.define(\x22goog.userAgent.ASSUME_X11\x22, false);\ngoog.userAgent.ASSUME_ANDROID \x3d goog.define(\x22goog.userAgent.ASSUME_ANDROID\x22, false);\ngoog.userAgent.ASSUME_IPHONE \x3d goog.define(\x22goog.userAgent.ASSUME_IPHONE\x22, false);\ngoog.userAgent.ASSUME_IPAD \x3d goog.define(\x22goog.userAgent.ASSUME_IPAD\x22, false);\ngoog.userAgent.ASSUME_IPOD \x3d goog.define(\x22goog.userAgent.ASSUME_IPOD\x22, false);\ngoog.userAgent.ASSUME_KAIOS \x3d goog.define(\x22goog.userAgent.ASSUME_KAIOS\x22, false);\ngoog.userAgent.PLATFORM_KNOWN_ \x3d goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD;\ngoog.userAgent.MAC \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh();\ngoog.userAgent.WINDOWS \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows();\ngoog.userAgent.isLegacyLinux_ \x3d function() {\n return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS();\n};\ngoog.userAgent.LINUX \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_();\ngoog.userAgent.isX11_ \x3d function() {\n var navigator \x3d goog.userAgent.getNavigatorTyped();\n return !!navigator \x26\x26 goog.string.internal.contains(navigator[\x22appVersion\x22] || \x22\x22, \x22X11\x22);\n};\ngoog.userAgent.X11 \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_();\ngoog.userAgent.ANDROID \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid();\ngoog.userAgent.IPHONE \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone();\ngoog.userAgent.IPAD \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();\ngoog.userAgent.IPOD \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod();\ngoog.userAgent.IOS \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos();\ngoog.userAgent.KAIOS \x3d goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS();\ngoog.userAgent.determineVersion_ \x3d function() {\n var version \x3d \x22\x22;\n var arr \x3d goog.userAgent.getVersionRegexResult_();\n if (arr) {\n version \x3d arr ? arr[1] : \x22\x22;\n }\n if (goog.userAgent.IE) {\n var docMode \x3d goog.userAgent.getDocumentMode_();\n if (docMode !\x3d null \x26\x26 docMode \x3e parseFloat(version)) {\n return String(docMode);\n }\n }\n return version;\n};\ngoog.userAgent.getVersionRegexResult_ \x3d function() {\n var userAgent \x3d goog.userAgent.getUserAgentString();\n if (goog.userAgent.GECKO) {\n return /rv:([^\\);]+)(\\)|;)/.exec(userAgent);\n }\n if (goog.userAgent.EDGE) {\n return /Edge\\/([\\d\\.]+)/.exec(userAgent);\n }\n if (goog.userAgent.IE) {\n return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(userAgent);\n }\n if (goog.userAgent.WEBKIT) {\n return /WebKit\\/(\\S+)/.exec(userAgent);\n }\n if (goog.userAgent.OPERA) {\n return /(?:Version)[ \\/]?(\\S+)/.exec(userAgent);\n }\n return undefined;\n};\ngoog.userAgent.getDocumentMode_ \x3d function() {\n var doc \x3d goog.global[\x22document\x22];\n return doc ? doc[\x22documentMode\x22] : undefined;\n};\ngoog.userAgent.VERSION \x3d goog.userAgent.determineVersion_();\ngoog.userAgent.compare \x3d function(v1, v2) {\n return goog.string.internal.compareVersions(v1, v2);\n};\ngoog.userAgent.isVersionOrHigherCache_ \x3d {};\ngoog.userAgent.isVersionOrHigher \x3d function(version) {\n return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, version, function() {\n return goog.string.internal.compareVersions(goog.userAgent.VERSION, version) \x3e\x3d 0;\n });\n};\ngoog.userAgent.isDocumentModeOrHigher \x3d function(documentMode) {\n return Number(goog.userAgent.DOCUMENT_MODE) \x3e\x3d documentMode;\n};\ngoog.userAgent.isDocumentMode \x3d goog.userAgent.isDocumentModeOrHigher;\ngoog.userAgent.DOCUMENT_MODE \x3d function() {\n var doc \x3d goog.global[\x22document\x22];\n if (!doc || !goog.userAgent.IE) {\n return undefined;\n }\n var documentMode \x3d goog.userAgent.getDocumentMode_();\n if (documentMode) {\n return documentMode;\n }\n var ieVersion \x3d parseInt(goog.userAgent.VERSION, 10);\n return ieVersion || undefined;\n}();\n");
SHADOW_ENV.evalLoad("goog.dom.browserfeature.js", true, "goog.provide(\x22goog.dom.BrowserFeature\x22);\ngoog.require(\x22goog.userAgent\x22);\ngoog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS \x3d goog.define(\x22goog.dom.ASSUME_NO_OFFSCREEN_CANVAS\x22, false);\ngoog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS \x3d goog.define(\x22goog.dom.ASSUME_OFFSCREEN_CANVAS\x22, false);\ngoog.dom.BrowserFeature.detectOffscreenCanvas_ \x3d function(contextName) {\n try {\n return Boolean((new self.OffscreenCanvas(0, 0)).getContext(contextName));\n } catch (ex) {\n }\n return false;\n};\ngoog.dom.BrowserFeature.OFFSCREEN_CANVAS_2D \x3d !goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS \x26\x26 (goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS || goog.dom.BrowserFeature.detectOffscreenCanvas_(\x222d\x22));\ngoog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES \x3d true;\ngoog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE \x3d true;\ngoog.dom.BrowserFeature.CAN_USE_INNER_TEXT \x3d false;\ngoog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY \x3d goog.userAgent.IE || goog.userAgent.WEBKIT;\ngoog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT \x3d goog.userAgent.IE;\n");
SHADOW_ENV.evalLoad("goog.math.math.js", true, "goog.provide(\x22goog.math\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.math.randomInt \x3d function(a) {\n return Math.floor(Math.random() * a);\n};\ngoog.math.uniformRandom \x3d function(a, b) {\n return a + Math.random() * (b - a);\n};\ngoog.math.clamp \x3d function(value, min, max) {\n return Math.min(Math.max(value, min), max);\n};\ngoog.math.modulo \x3d function(a, b) {\n var r \x3d a % b;\n return r * b \x3c 0 ? r + b : r;\n};\ngoog.math.lerp \x3d function(a, b, x) {\n return a + x * (b - a);\n};\ngoog.math.nearlyEquals \x3d function(a, b, opt_tolerance) {\n return Math.abs(a - b) \x3c\x3d (opt_tolerance || 0.000001);\n};\ngoog.math.standardAngle \x3d function(angle) {\n return goog.math.modulo(angle, 360);\n};\ngoog.math.standardAngleInRadians \x3d function(angle) {\n return goog.math.modulo(angle, 2 * Math.PI);\n};\ngoog.math.toRadians \x3d function(angleDegrees) {\n return angleDegrees * Math.PI / 180;\n};\ngoog.math.toDegrees \x3d function(angleRadians) {\n return angleRadians * 180 / Math.PI;\n};\ngoog.math.angleDx \x3d function(degrees, radius) {\n return radius * Math.cos(goog.math.toRadians(degrees));\n};\ngoog.math.angleDy \x3d function(degrees, radius) {\n return radius * Math.sin(goog.math.toRadians(degrees));\n};\ngoog.math.angle \x3d function(x1, y1, x2, y2) {\n return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(y2 - y1, x2 - x1)));\n};\ngoog.math.angleDifference \x3d function(startAngle, endAngle) {\n var d \x3d goog.math.standardAngle(endAngle) - goog.math.standardAngle(startAngle);\n if (d \x3e 180) {\n d \x3d d - 360;\n } else if (d \x3c\x3d -180) {\n d \x3d 360 + d;\n }\n return d;\n};\ngoog.math.sign \x3d function(x) {\n if (x \x3e 0) {\n return 1;\n }\n if (x \x3c 0) {\n return -1;\n }\n return x;\n};\ngoog.math.longestCommonSubsequence \x3d function(array1, array2, opt_compareFn, opt_collectorFn) {\n var compare \x3d opt_compareFn || function(a, b) {\n return a \x3d\x3d b;\n };\n var collect \x3d opt_collectorFn || function(i1, i2) {\n return array1[i1];\n };\n var length1 \x3d array1.length;\n var length2 \x3d array2.length;\n var arr \x3d [];\n var i \x3d 0;\n for (; i \x3c length1 + 1; i++) {\n arr[i] \x3d [];\n arr[i][0] \x3d 0;\n }\n var j \x3d 0;\n for (; j \x3c length2 + 1; j++) {\n arr[0][j] \x3d 0;\n }\n i \x3d 1;\n for (; i \x3c\x3d length1; i++) {\n j \x3d 1;\n for (; j \x3c\x3d length2; j++) {\n if (compare(array1[i - 1], array2[j - 1])) {\n arr[i][j] \x3d arr[i - 1][j - 1] + 1;\n } else {\n arr[i][j] \x3d Math.max(arr[i - 1][j], arr[i][j - 1]);\n }\n }\n }\n var result \x3d [];\n i \x3d length1;\n j \x3d length2;\n for (; i \x3e 0 \x26\x26 j \x3e 0;) {\n if (compare(array1[i - 1], array2[j - 1])) {\n result.unshift(collect(i - 1, j - 1));\n i--;\n j--;\n } else {\n if (arr[i - 1][j] \x3e arr[i][j - 1]) {\n i--;\n } else {\n j--;\n }\n }\n }\n return result;\n};\ngoog.math.sum \x3d function(var_args) {\n return Array.prototype.reduce.call(arguments, function(sum, value) {\n return sum + value;\n }, 0);\n};\ngoog.math.average \x3d function(var_args) {\n return goog.math.sum.apply(null, arguments) / arguments.length;\n};\ngoog.math.sampleVariance \x3d function(var_args) {\n var sampleSize \x3d arguments.length;\n if (sampleSize \x3c 2) {\n return 0;\n }\n var mean \x3d goog.math.average.apply(null, arguments);\n var variance \x3d goog.math.sum.apply(null, Array.prototype.map.call(arguments, function(val) {\n return Math.pow(val - mean, 2);\n })) / (sampleSize - 1);\n return variance;\n};\ngoog.math.standardDeviation \x3d function(var_args) {\n return Math.sqrt(goog.math.sampleVariance.apply(null, arguments));\n};\ngoog.math.isInt \x3d function(num) {\n return isFinite(num) \x26\x26 num % 1 \x3d\x3d 0;\n};\ngoog.math.isFiniteNumber \x3d function(num) {\n return isFinite(num);\n};\ngoog.math.isNegativeZero \x3d function(num) {\n return num \x3d\x3d 0 \x26\x26 1 / num \x3c 0;\n};\ngoog.math.log10Floor \x3d function(num) {\n if (num \x3e 0) {\n var x \x3d Math.round(Math.log(num) * Math.LOG10E);\n return x - (parseFloat(\x221e\x22 + x) \x3e num ? 1 : 0);\n }\n return num \x3d\x3d 0 ? -Infinity : NaN;\n};\ngoog.math.safeFloor \x3d function(num, opt_epsilon) {\n goog.asserts.assert(opt_epsilon \x3d\x3d\x3d undefined || opt_epsilon \x3e 0);\n return Math.floor(num + (opt_epsilon || 2e-15));\n};\ngoog.math.safeCeil \x3d function(num, opt_epsilon) {\n goog.asserts.assert(opt_epsilon \x3d\x3d\x3d undefined || opt_epsilon \x3e 0);\n return Math.ceil(num - (opt_epsilon || 2e-15));\n};\n");
SHADOW_ENV.evalLoad("goog.math.coordinate.js", true, "goog.provide(\x22goog.math.Coordinate\x22);\ngoog.require(\x22goog.math\x22);\ngoog.math.Coordinate \x3d function(opt_x, opt_y) {\n this.x \x3d opt_x !\x3d\x3d undefined ? opt_x : 0;\n this.y \x3d opt_y !\x3d\x3d undefined ? opt_y : 0;\n};\ngoog.math.Coordinate.prototype.clone \x3d function() {\n return new goog.math.Coordinate(this.x, this.y);\n};\nif (goog.DEBUG) {\n goog.math.Coordinate.prototype.toString \x3d function() {\n return \x22(\x22 + this.x + \x22, \x22 + this.y + \x22)\x22;\n };\n}\ngoog.math.Coordinate.prototype.equals \x3d function(other) {\n return other instanceof goog.math.Coordinate \x26\x26 goog.math.Coordinate.equals(this, other);\n};\ngoog.math.Coordinate.equals \x3d function(a, b) {\n if (a \x3d\x3d b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.x \x3d\x3d b.x \x26\x26 a.y \x3d\x3d b.y;\n};\ngoog.math.Coordinate.distance \x3d function(a, b) {\n var dx \x3d a.x - b.x;\n var dy \x3d a.y - b.y;\n return Math.sqrt(dx * dx + dy * dy);\n};\ngoog.math.Coordinate.magnitude \x3d function(a) {\n return Math.sqrt(a.x * a.x + a.y * a.y);\n};\ngoog.math.Coordinate.azimuth \x3d function(a) {\n return goog.math.angle(0, 0, a.x, a.y);\n};\ngoog.math.Coordinate.squaredDistance \x3d function(a, b) {\n var dx \x3d a.x - b.x;\n var dy \x3d a.y - b.y;\n return dx * dx + dy * dy;\n};\ngoog.math.Coordinate.difference \x3d function(a, b) {\n return new goog.math.Coordinate(a.x - b.x, a.y - b.y);\n};\ngoog.math.Coordinate.sum \x3d function(a, b) {\n return new goog.math.Coordinate(a.x + b.x, a.y + b.y);\n};\ngoog.math.Coordinate.prototype.ceil \x3d function() {\n this.x \x3d Math.ceil(this.x);\n this.y \x3d Math.ceil(this.y);\n return this;\n};\ngoog.math.Coordinate.prototype.floor \x3d function() {\n this.x \x3d Math.floor(this.x);\n this.y \x3d Math.floor(this.y);\n return this;\n};\ngoog.math.Coordinate.prototype.round \x3d function() {\n this.x \x3d Math.round(this.x);\n this.y \x3d Math.round(this.y);\n return this;\n};\ngoog.math.Coordinate.prototype.translate \x3d function(tx, opt_ty) {\n if (tx instanceof goog.math.Coordinate) {\n this.x +\x3d tx.x;\n this.y +\x3d tx.y;\n } else {\n this.x +\x3d Number(tx);\n if (typeof opt_ty \x3d\x3d\x3d \x22number\x22) {\n this.y +\x3d opt_ty;\n }\n }\n return this;\n};\ngoog.math.Coordinate.prototype.scale \x3d function(sx, opt_sy) {\n var sy \x3d typeof opt_sy \x3d\x3d\x3d \x22number\x22 ? opt_sy : sx;\n this.x *\x3d sx;\n this.y *\x3d sy;\n return this;\n};\ngoog.math.Coordinate.prototype.rotateRadians \x3d function(radians, opt_center) {\n var center \x3d opt_center || new goog.math.Coordinate(0, 0);\n var x \x3d this.x;\n var y \x3d this.y;\n var cos \x3d Math.cos(radians);\n var sin \x3d Math.sin(radians);\n this.x \x3d (x - center.x) * cos - (y - center.y) * sin + center.x;\n this.y \x3d (x - center.x) * sin + (y - center.y) * cos + center.y;\n};\ngoog.math.Coordinate.prototype.rotateDegrees \x3d function(degrees, opt_center) {\n this.rotateRadians(goog.math.toRadians(degrees), opt_center);\n};\n");
SHADOW_ENV.evalLoad("goog.math.size.js", true, "goog.provide(\x22goog.math.Size\x22);\ngoog.math.Size \x3d function(width, height) {\n this.width \x3d width;\n this.height \x3d height;\n};\ngoog.math.Size.equals \x3d function(a, b) {\n if (a \x3d\x3d b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.width \x3d\x3d b.width \x26\x26 a.height \x3d\x3d b.height;\n};\ngoog.math.Size.prototype.clone \x3d function() {\n return new goog.math.Size(this.width, this.height);\n};\nif (goog.DEBUG) {\n goog.math.Size.prototype.toString \x3d function() {\n return \x22(\x22 + this.width + \x22 x \x22 + this.height + \x22)\x22;\n };\n}\ngoog.math.Size.prototype.getLongest \x3d function() {\n return Math.max(this.width, this.height);\n};\ngoog.math.Size.prototype.getShortest \x3d function() {\n return Math.min(this.width, this.height);\n};\ngoog.math.Size.prototype.area \x3d function() {\n return this.width * this.height;\n};\ngoog.math.Size.prototype.perimeter \x3d function() {\n return (this.width + this.height) * 2;\n};\ngoog.math.Size.prototype.aspectRatio \x3d function() {\n return this.width / this.height;\n};\ngoog.math.Size.prototype.isEmpty \x3d function() {\n return !this.area();\n};\ngoog.math.Size.prototype.ceil \x3d function() {\n this.width \x3d Math.ceil(this.width);\n this.height \x3d Math.ceil(this.height);\n return this;\n};\ngoog.math.Size.prototype.fitsInside \x3d function(target) {\n return this.width \x3c\x3d target.width \x26\x26 this.height \x3c\x3d target.height;\n};\ngoog.math.Size.prototype.floor \x3d function() {\n this.width \x3d Math.floor(this.width);\n this.height \x3d Math.floor(this.height);\n return this;\n};\ngoog.math.Size.prototype.round \x3d function() {\n this.width \x3d Math.round(this.width);\n this.height \x3d Math.round(this.height);\n return this;\n};\ngoog.math.Size.prototype.scale \x3d function(sx, opt_sy) {\n const sy \x3d typeof opt_sy \x3d\x3d\x3d \x22number\x22 ? opt_sy : sx;\n this.width *\x3d sx;\n this.height *\x3d sy;\n return this;\n};\ngoog.math.Size.prototype.scaleToCover \x3d function(target) {\n const s \x3d this.aspectRatio() \x3c\x3d target.aspectRatio() ? target.width / this.width : target.height / this.height;\n return this.scale(s);\n};\ngoog.math.Size.prototype.scaleToFit \x3d function(target) {\n const s \x3d this.aspectRatio() \x3e target.aspectRatio() ? target.width / this.width : target.height / this.height;\n return this.scale(s);\n};\n");
SHADOW_ENV.evalLoad("goog.dom.dom.js", true, "goog.provide(\x22goog.dom\x22);\ngoog.provide(\x22goog.dom.Appendable\x22);\ngoog.provide(\x22goog.dom.DomHelper\x22);\ngoog.require(\x22goog.array\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.asserts.dom\x22);\ngoog.require(\x22goog.dom.BrowserFeature\x22);\ngoog.require(\x22goog.dom.NodeType\x22);\ngoog.require(\x22goog.dom.TagName\x22);\ngoog.require(\x22goog.dom.safe\x22);\ngoog.require(\x22goog.html.SafeHtml\x22);\ngoog.require(\x22goog.html.uncheckedconversions\x22);\ngoog.require(\x22goog.math.Coordinate\x22);\ngoog.require(\x22goog.math.Size\x22);\ngoog.require(\x22goog.object\x22);\ngoog.require(\x22goog.string\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.string.Unicode\x22);\ngoog.require(\x22goog.userAgent\x22);\ngoog.dom.ASSUME_QUIRKS_MODE \x3d goog.define(\x22goog.dom.ASSUME_QUIRKS_MODE\x22, false);\ngoog.dom.ASSUME_STANDARDS_MODE \x3d goog.define(\x22goog.dom.ASSUME_STANDARDS_MODE\x22, false);\ngoog.dom.COMPAT_MODE_KNOWN_ \x3d goog.dom.ASSUME_QUIRKS_MODE || goog.dom.ASSUME_STANDARDS_MODE;\ngoog.dom.getDomHelper \x3d function(opt_element) {\n return opt_element ? new goog.dom.DomHelper(goog.dom.getOwnerDocument(opt_element)) : goog.dom.defaultDomHelper_ || (goog.dom.defaultDomHelper_ \x3d new goog.dom.DomHelper());\n};\ngoog.dom.defaultDomHelper_;\ngoog.dom.getDocument \x3d function() {\n return document;\n};\ngoog.dom.getElement \x3d function(element) {\n return goog.dom.getElementHelper_(document, element);\n};\ngoog.dom.getHTMLElement \x3d function(id) {\n const element \x3d goog.dom.getElement(id);\n if (!element) {\n return null;\n }\n return goog.asserts.dom.assertIsHtmlElement(element);\n};\ngoog.dom.getElementHelper_ \x3d function(doc, element) {\n return typeof element \x3d\x3d\x3d \x22string\x22 ? doc.getElementById(element) : element;\n};\ngoog.dom.getRequiredElement \x3d function(id) {\n return goog.dom.getRequiredElementHelper_(document, id);\n};\ngoog.dom.getRequiredHTMLElement \x3d function(id) {\n return goog.asserts.dom.assertIsHtmlElement(goog.dom.getRequiredElementHelper_(document, id));\n};\ngoog.dom.getRequiredElementHelper_ \x3d function(doc, id) {\n goog.asserts.assertString(id);\n var element \x3d goog.dom.getElementHelper_(doc, id);\n return goog.asserts.assert(element, \x22No element found with id: \x22 + id);\n};\ngoog.dom.$ \x3d goog.dom.getElement;\ngoog.dom.getElementsByTagName \x3d function(tagName, opt_parent) {\n var parent \x3d opt_parent || document;\n return parent.getElementsByTagName(String(tagName));\n};\ngoog.dom.getElementsByTagNameAndClass \x3d function(opt_tag, opt_class, opt_el) {\n return goog.dom.getElementsByTagNameAndClass_(document, opt_tag, opt_class, opt_el);\n};\ngoog.dom.getElementByTagNameAndClass \x3d function(opt_tag, opt_class, opt_el) {\n return goog.dom.getElementByTagNameAndClass_(document, opt_tag, opt_class, opt_el);\n};\ngoog.dom.getElementsByClass \x3d function(className, opt_el) {\n var parent \x3d opt_el || document;\n if (goog.dom.canUseQuerySelector_(parent)) {\n return parent.querySelectorAll(\x22.\x22 + className);\n }\n return goog.dom.getElementsByTagNameAndClass_(document, \x22*\x22, className, opt_el);\n};\ngoog.dom.getElementByClass \x3d function(className, opt_el) {\n var parent \x3d opt_el || document;\n var retVal \x3d null;\n if (parent.getElementsByClassName) {\n retVal \x3d parent.getElementsByClassName(className)[0];\n } else {\n retVal \x3d goog.dom.getElementByTagNameAndClass_(document, \x22*\x22, className, opt_el);\n }\n return retVal || null;\n};\ngoog.dom.getHTMLElementByClass \x3d function(className, opt_parent) {\n const element \x3d goog.dom.getElementByClass(className, opt_parent);\n if (!element) {\n return null;\n }\n return goog.asserts.dom.assertIsHtmlElement(element);\n};\ngoog.dom.getRequiredElementByClass \x3d function(className, opt_root) {\n var retValue \x3d goog.dom.getElementByClass(className, opt_root);\n return goog.asserts.assert(retValue, \x22No element found with className: \x22 + className);\n};\ngoog.dom.getRequiredHTMLElementByClass \x3d function(className, opt_parent) {\n const retValue \x3d goog.dom.getElementByClass(className, opt_parent);\n goog.asserts.assert(retValue, \x22No HTMLElement found with className: \x22 + className);\n return goog.asserts.dom.assertIsHtmlElement(retValue);\n};\ngoog.dom.canUseQuerySelector_ \x3d function(parent) {\n return !!(parent.querySelectorAll \x26\x26 parent.querySelector);\n};\ngoog.dom.getElementsByTagNameAndClass_ \x3d function(doc, opt_tag, opt_class, opt_el) {\n var parent \x3d opt_el || doc;\n var tagName \x3d opt_tag \x26\x26 opt_tag !\x3d \x22*\x22 ? String(opt_tag).toUpperCase() : \x22\x22;\n if (goog.dom.canUseQuerySelector_(parent) \x26\x26 (tagName || opt_class)) {\n var query \x3d tagName + (opt_class ? \x22.\x22 + opt_class : \x22\x22);\n return parent.querySelectorAll(query);\n }\n if (opt_class \x26\x26 parent.getElementsByClassName) {\n var els \x3d parent.getElementsByClassName(opt_class);\n if (tagName) {\n var arrayLike \x3d {};\n var len \x3d 0;\n var i \x3d 0;\n var el;\n for (; el \x3d els[i]; i++) {\n if (tagName \x3d\x3d el.nodeName) {\n arrayLike[len++] \x3d el;\n }\n }\n arrayLike.length \x3d len;\n return arrayLike;\n } else {\n return els;\n }\n }\n els \x3d parent.getElementsByTagName(tagName || \x22*\x22);\n if (opt_class) {\n arrayLike \x3d {};\n len \x3d 0;\n i \x3d 0;\n for (; el \x3d els[i]; i++) {\n var className \x3d el.className;\n if (typeof className.split \x3d\x3d \x22function\x22 \x26\x26 goog.array.contains(className.split(/\\s+/), opt_class)) {\n arrayLike[len++] \x3d el;\n }\n }\n arrayLike.length \x3d len;\n return arrayLike;\n } else {\n return els;\n }\n};\ngoog.dom.getElementByTagNameAndClass_ \x3d function(doc, opt_tag, opt_class, opt_el) {\n var parent \x3d opt_el || doc;\n var tag \x3d opt_tag \x26\x26 opt_tag !\x3d \x22*\x22 ? String(opt_tag).toUpperCase() : \x22\x22;\n if (goog.dom.canUseQuerySelector_(parent) \x26\x26 (tag || opt_class)) {\n return parent.querySelector(tag + (opt_class ? \x22.\x22 + opt_class : \x22\x22));\n }\n var elements \x3d goog.dom.getElementsByTagNameAndClass_(doc, opt_tag, opt_class, opt_el);\n return elements[0] || null;\n};\ngoog.dom.$$ \x3d goog.dom.getElementsByTagNameAndClass;\ngoog.dom.setProperties \x3d function(element, properties) {\n goog.object.forEach(properties, function(val, key) {\n if (val \x26\x26 typeof val \x3d\x3d \x22object\x22 \x26\x26 val.implementsGoogStringTypedString) {\n val \x3d val.getTypedStringValue();\n }\n if (key \x3d\x3d \x22style\x22) {\n element.style.cssText \x3d val;\n } else if (key \x3d\x3d \x22class\x22) {\n element.className \x3d val;\n } else if (key \x3d\x3d \x22for\x22) {\n element.htmlFor \x3d val;\n } else if (goog.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(key)) {\n element.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[key], val);\n } else if (goog.string.startsWith(key, \x22aria-\x22) || goog.string.startsWith(key, \x22data-\x22)) {\n element.setAttribute(key, val);\n } else {\n element[key] \x3d val;\n }\n });\n};\ngoog.dom.DIRECT_ATTRIBUTE_MAP_ \x3d {\x22cellpadding\x22:\x22cellPadding\x22, \x22cellspacing\x22:\x22cellSpacing\x22, \x22colspan\x22:\x22colSpan\x22, \x22frameborder\x22:\x22frameBorder\x22, \x22height\x22:\x22height\x22, \x22maxlength\x22:\x22maxLength\x22, \x22nonce\x22:\x22nonce\x22, \x22role\x22:\x22role\x22, \x22rowspan\x22:\x22rowSpan\x22, \x22type\x22:\x22type\x22, \x22usemap\x22:\x22useMap\x22, \x22valign\x22:\x22vAlign\x22, \x22width\x22:\x22width\x22};\ngoog.dom.getViewportSize \x3d function(opt_window) {\n return goog.dom.getViewportSize_(opt_window || window);\n};\ngoog.dom.getViewportSize_ \x3d function(win) {\n var doc \x3d win.document;\n var el \x3d goog.dom.isCss1CompatMode_(doc) ? doc.documentElement : doc.body;\n return new goog.math.Size(el.clientWidth, el.clientHeight);\n};\ngoog.dom.getDocumentHeight \x3d function() {\n return goog.dom.getDocumentHeight_(window);\n};\ngoog.dom.getDocumentHeightForWindow \x3d function(win) {\n return goog.dom.getDocumentHeight_(win);\n};\ngoog.dom.getDocumentHeight_ \x3d function(win) {\n var doc \x3d win.document;\n var height \x3d 0;\n if (doc) {\n var body \x3d doc.body;\n var docEl \x3d doc.documentElement;\n if (!(docEl \x26\x26 body)) {\n return 0;\n }\n var vh \x3d goog.dom.getViewportSize_(win).height;\n if (goog.dom.isCss1CompatMode_(doc) \x26\x26 docEl.scrollHeight) {\n height \x3d docEl.scrollHeight !\x3d vh ? docEl.scrollHeight : docEl.offsetHeight;\n } else {\n var sh \x3d docEl.scrollHeight;\n var oh \x3d docEl.offsetHeight;\n if (docEl.clientHeight !\x3d oh) {\n sh \x3d body.scrollHeight;\n oh \x3d body.offsetHeight;\n }\n if (sh \x3e vh) {\n height \x3d sh \x3e oh ? sh : oh;\n } else {\n height \x3d sh \x3c oh ? sh : oh;\n }\n }\n }\n return height;\n};\ngoog.dom.getPageScroll \x3d function(opt_window) {\n var win \x3d opt_window || goog.global || window;\n return goog.dom.getDomHelper(win.document).getDocumentScroll();\n};\ngoog.dom.getDocumentScroll \x3d function() {\n return goog.dom.getDocumentScroll_(document);\n};\ngoog.dom.getDocumentScroll_ \x3d function(doc) {\n var el \x3d goog.dom.getDocumentScrollElement_(doc);\n var win \x3d goog.dom.getWindow_(doc);\n if (goog.userAgent.IE \x26\x26 win.pageYOffset !\x3d el.scrollTop) {\n return new goog.math.Coordinate(el.scrollLeft, el.scrollTop);\n }\n return new goog.math.Coordinate(win.pageXOffset || el.scrollLeft, win.pageYOffset || el.scrollTop);\n};\ngoog.dom.getDocumentScrollElement \x3d function() {\n return goog.dom.getDocumentScrollElement_(document);\n};\ngoog.dom.getDocumentScrollElement_ \x3d function(doc) {\n if (doc.scrollingElement) {\n return doc.scrollingElement;\n }\n if (!goog.userAgent.WEBKIT \x26\x26 goog.dom.isCss1CompatMode_(doc)) {\n return doc.documentElement;\n }\n return doc.body || doc.documentElement;\n};\ngoog.dom.getWindow \x3d function(opt_doc) {\n return opt_doc ? goog.dom.getWindow_(opt_doc) : window;\n};\ngoog.dom.getWindow_ \x3d function(doc) {\n return doc.parentWindow || doc.defaultView;\n};\ngoog.dom.createDom \x3d function(tagName, opt_attributes, var_args) {\n return goog.dom.createDom_(document, arguments);\n};\ngoog.dom.createDom_ \x3d function(doc, args) {\n var tagName \x3d String(args[0]);\n var attributes \x3d args[1];\n var element \x3d goog.dom.createElement_(doc, tagName);\n if (attributes) {\n if (typeof attributes \x3d\x3d\x3d \x22string\x22) {\n element.className \x3d attributes;\n } else if (Array.isArray(attributes)) {\n element.className \x3d attributes.join(\x22 \x22);\n } else {\n goog.dom.setProperties(element, attributes);\n }\n }\n if (args.length \x3e 2) {\n goog.dom.append_(doc, element, args, 2);\n }\n return element;\n};\ngoog.dom.append_ \x3d function(doc, parent, args, startIndex) {\n function childHandler(child) {\n if (child) {\n parent.appendChild(typeof child \x3d\x3d\x3d \x22string\x22 ? doc.createTextNode(child) : child);\n }\n }\n var i \x3d startIndex;\n for (; i \x3c args.length; i++) {\n var arg \x3d args[i];\n if (goog.isArrayLike(arg) \x26\x26 !goog.dom.isNodeLike(arg)) {\n goog.array.forEach(goog.dom.isNodeList(arg) ? goog.array.toArray(arg) : arg, childHandler);\n } else {\n childHandler(arg);\n }\n }\n};\ngoog.dom.$dom \x3d goog.dom.createDom;\ngoog.dom.createElement \x3d function(name) {\n return goog.dom.createElement_(document, name);\n};\ngoog.dom.createElement_ \x3d function(doc, name) {\n name \x3d String(name);\n if (doc.contentType \x3d\x3d\x3d \x22application/xhtml+xml\x22) {\n name \x3d name.toLowerCase();\n }\n return doc.createElement(name);\n};\ngoog.dom.createTextNode \x3d function(content) {\n return document.createTextNode(String(content));\n};\ngoog.dom.createTable \x3d function(rows, columns, opt_fillWithNbsp) {\n return goog.dom.createTable_(document, rows, columns, !!opt_fillWithNbsp);\n};\ngoog.dom.createTable_ \x3d function(doc, rows, columns, fillWithNbsp) {\n var table \x3d goog.dom.createElement_(doc, goog.dom.TagName.TABLE);\n var tbody \x3d table.appendChild(goog.dom.createElement_(doc, goog.dom.TagName.TBODY));\n var i \x3d 0;\n for (; i \x3c rows; i++) {\n var tr \x3d goog.dom.createElement_(doc, goog.dom.TagName.TR);\n var j \x3d 0;\n for (; j \x3c columns; j++) {\n var td \x3d goog.dom.createElement_(doc, goog.dom.TagName.TD);\n if (fillWithNbsp) {\n goog.dom.setTextContent(td, goog.string.Unicode.NBSP);\n }\n tr.appendChild(td);\n }\n tbody.appendChild(tr);\n }\n return table;\n};\ngoog.dom.constHtmlToNode \x3d function(var_args) {\n var stringArray \x3d Array.prototype.map.call(arguments, goog.string.Const.unwrap);\n var safeHtml \x3d goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\x22Constant HTML string, that gets turned into a \x22 + \x22Node later, so it will be automatically balanced.\x22), stringArray.join(\x22\x22));\n return goog.dom.safeHtmlToNode(safeHtml);\n};\ngoog.dom.safeHtmlToNode \x3d function(html) {\n return goog.dom.safeHtmlToNode_(document, html);\n};\ngoog.dom.safeHtmlToNode_ \x3d function(doc, html) {\n var tempDiv \x3d goog.dom.createElement_(doc, goog.dom.TagName.DIV);\n if (goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT) {\n goog.dom.safe.setInnerHtml(tempDiv, goog.html.SafeHtml.concat(goog.html.SafeHtml.BR, html));\n tempDiv.removeChild(goog.asserts.assert(tempDiv.firstChild));\n } else {\n goog.dom.safe.setInnerHtml(tempDiv, html);\n }\n return goog.dom.childrenToNode_(doc, tempDiv);\n};\ngoog.dom.childrenToNode_ \x3d function(doc, tempDiv) {\n if (tempDiv.childNodes.length \x3d\x3d 1) {\n return tempDiv.removeChild(goog.asserts.assert(tempDiv.firstChild));\n } else {\n var fragment \x3d doc.createDocumentFragment();\n for (; tempDiv.firstChild;) {\n fragment.appendChild(tempDiv.firstChild);\n }\n return fragment;\n }\n};\ngoog.dom.isCss1CompatMode \x3d function() {\n return goog.dom.isCss1CompatMode_(document);\n};\ngoog.dom.isCss1CompatMode_ \x3d function(doc) {\n if (goog.dom.COMPAT_MODE_KNOWN_) {\n return goog.dom.ASSUME_STANDARDS_MODE;\n }\n return doc.compatMode \x3d\x3d \x22CSS1Compat\x22;\n};\ngoog.dom.canHaveChildren \x3d function(node) {\n if (node.nodeType !\x3d goog.dom.NodeType.ELEMENT) {\n return false;\n }\n switch(node.tagName) {\n case String(goog.dom.TagName.APPLET):\n case String(goog.dom.TagName.AREA):\n case String(goog.dom.TagName.BASE):\n case String(goog.dom.TagName.BR):\n case String(goog.dom.TagName.COL):\n case String(goog.dom.TagName.COMMAND):\n case String(goog.dom.TagName.EMBED):\n case String(goog.dom.TagName.FRAME):\n case String(goog.dom.TagName.HR):\n case String(goog.dom.TagName.IMG):\n case String(goog.dom.TagName.INPUT):\n case String(goog.dom.TagName.IFRAME):\n case String(goog.dom.TagName.ISINDEX):\n case String(goog.dom.TagName.KEYGEN):\n case String(goog.dom.TagName.LINK):\n case String(goog.dom.TagName.NOFRAMES):\n case String(goog.dom.TagName.NOSCRIPT):\n case String(goog.dom.TagName.META):\n case String(goog.dom.TagName.OBJECT):\n case String(goog.dom.TagName.PARAM):\n case String(goog.dom.TagName.SCRIPT):\n case String(goog.dom.TagName.SOURCE):\n case String(goog.dom.TagName.STYLE):\n case String(goog.dom.TagName.TRACK):\n case String(goog.dom.TagName.WBR):\n return false;\n }\n return true;\n};\ngoog.dom.appendChild \x3d function(parent, child) {\n goog.asserts.assert(parent !\x3d null \x26\x26 child !\x3d null, \x22goog.dom.appendChild expects non-null arguments\x22);\n parent.appendChild(child);\n};\ngoog.dom.append \x3d function(parent, var_args) {\n goog.dom.append_(goog.dom.getOwnerDocument(parent), parent, arguments, 1);\n};\ngoog.dom.removeChildren \x3d function(node) {\n var child;\n for (; child \x3d node.firstChild;) {\n node.removeChild(child);\n }\n};\ngoog.dom.insertSiblingBefore \x3d function(newNode, refNode) {\n goog.asserts.assert(newNode !\x3d null \x26\x26 refNode !\x3d null, \x22goog.dom.insertSiblingBefore expects non-null arguments\x22);\n if (refNode.parentNode) {\n refNode.parentNode.insertBefore(newNode, refNode);\n }\n};\ngoog.dom.insertSiblingAfter \x3d function(newNode, refNode) {\n goog.asserts.assert(newNode !\x3d null \x26\x26 refNode !\x3d null, \x22goog.dom.insertSiblingAfter expects non-null arguments\x22);\n if (refNode.parentNode) {\n refNode.parentNode.insertBefore(newNode, refNode.nextSibling);\n }\n};\ngoog.dom.insertChildAt \x3d function(parent, child, index) {\n goog.asserts.assert(parent !\x3d null, \x22goog.dom.insertChildAt expects a non-null parent\x22);\n parent.insertBefore(child, parent.childNodes[index] || null);\n};\ngoog.dom.removeNode \x3d function(node) {\n return node \x26\x26 node.parentNode ? node.parentNode.removeChild(node) : null;\n};\ngoog.dom.replaceNode \x3d function(newNode, oldNode) {\n goog.asserts.assert(newNode !\x3d null \x26\x26 oldNode !\x3d null, \x22goog.dom.replaceNode expects non-null arguments\x22);\n var parent \x3d oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n};\ngoog.dom.copyContents \x3d function(target, source) {\n goog.asserts.assert(target !\x3d null \x26\x26 source !\x3d null, \x22goog.dom.copyContents expects non-null arguments\x22);\n var childNodes \x3d source.cloneNode(true).childNodes;\n goog.dom.removeChildren(target);\n for (; childNodes.length;) {\n target.appendChild(childNodes[0]);\n }\n};\ngoog.dom.flattenElement \x3d function(element) {\n var child;\n var parent \x3d element.parentNode;\n if (parent \x26\x26 parent.nodeType !\x3d goog.dom.NodeType.DOCUMENT_FRAGMENT) {\n if (element.removeNode) {\n return element.removeNode(false);\n } else {\n for (; child \x3d element.firstChild;) {\n parent.insertBefore(child, element);\n }\n return goog.dom.removeNode(element);\n }\n }\n};\ngoog.dom.getChildren \x3d function(element) {\n if (element.children !\x3d undefined) {\n return element.children;\n }\n return Array.prototype.filter.call(element.childNodes, function(node) {\n return node.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT;\n });\n};\ngoog.dom.getFirstElementChild \x3d function(node) {\n if (node.firstElementChild !\x3d\x3d undefined) {\n return node.firstElementChild;\n }\n return goog.dom.getNextElementNode_(node.firstChild, true);\n};\ngoog.dom.getLastElementChild \x3d function(node) {\n if (node.lastElementChild !\x3d\x3d undefined) {\n return node.lastElementChild;\n }\n return goog.dom.getNextElementNode_(node.lastChild, false);\n};\ngoog.dom.getNextElementSibling \x3d function(node) {\n if (node.nextElementSibling !\x3d\x3d undefined) {\n return node.nextElementSibling;\n }\n return goog.dom.getNextElementNode_(node.nextSibling, true);\n};\ngoog.dom.getPreviousElementSibling \x3d function(node) {\n if (node.previousElementSibling !\x3d\x3d undefined) {\n return node.previousElementSibling;\n }\n return goog.dom.getNextElementNode_(node.previousSibling, false);\n};\ngoog.dom.getNextElementNode_ \x3d function(node, forward) {\n for (; node \x26\x26 node.nodeType !\x3d goog.dom.NodeType.ELEMENT;) {\n node \x3d forward ? node.nextSibling : node.previousSibling;\n }\n return node;\n};\ngoog.dom.getNextNode \x3d function(node) {\n if (!node) {\n return null;\n }\n if (node.firstChild) {\n return node.firstChild;\n }\n for (; node \x26\x26 !node.nextSibling;) {\n node \x3d node.parentNode;\n }\n return node ? node.nextSibling : null;\n};\ngoog.dom.getPreviousNode \x3d function(node) {\n if (!node) {\n return null;\n }\n if (!node.previousSibling) {\n return node.parentNode;\n }\n node \x3d node.previousSibling;\n for (; node \x26\x26 node.lastChild;) {\n node \x3d node.lastChild;\n }\n return node;\n};\ngoog.dom.isNodeLike \x3d function(obj) {\n return goog.isObject(obj) \x26\x26 obj.nodeType \x3e 0;\n};\ngoog.dom.isElement \x3d function(obj) {\n return goog.isObject(obj) \x26\x26 obj.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT;\n};\ngoog.dom.isWindow \x3d function(obj) {\n return goog.isObject(obj) \x26\x26 obj[\x22window\x22] \x3d\x3d obj;\n};\ngoog.dom.getParentElement \x3d function(element) {\n var parent;\n if (goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY) {\n parent \x3d element.parentElement;\n if (parent) {\n return parent;\n }\n }\n parent \x3d element.parentNode;\n return goog.dom.isElement(parent) ? parent : null;\n};\ngoog.dom.contains \x3d function(parent, descendant) {\n if (!parent || !descendant) {\n return false;\n }\n if (parent.contains \x26\x26 descendant.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT) {\n return parent \x3d\x3d descendant || parent.contains(descendant);\n }\n if (typeof parent.compareDocumentPosition !\x3d \x22undefined\x22) {\n return parent \x3d\x3d descendant || Boolean(parent.compareDocumentPosition(descendant) \x26 16);\n }\n for (; descendant \x26\x26 parent !\x3d descendant;) {\n descendant \x3d descendant.parentNode;\n }\n return descendant \x3d\x3d parent;\n};\ngoog.dom.compareNodeOrder \x3d function(node1, node2) {\n if (node1 \x3d\x3d node2) {\n return 0;\n }\n if (node1.compareDocumentPosition) {\n return node1.compareDocumentPosition(node2) \x26 2 ? 1 : -1;\n }\n if (goog.userAgent.IE \x26\x26 !goog.userAgent.isDocumentModeOrHigher(9)) {\n if (node1.nodeType \x3d\x3d goog.dom.NodeType.DOCUMENT) {\n return -1;\n }\n if (node2.nodeType \x3d\x3d goog.dom.NodeType.DOCUMENT) {\n return 1;\n }\n }\n if (\x22sourceIndex\x22 in node1 || node1.parentNode \x26\x26 \x22sourceIndex\x22 in node1.parentNode) {\n var isElement1 \x3d node1.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT;\n var isElement2 \x3d node2.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT;\n if (isElement1 \x26\x26 isElement2) {\n return node1.sourceIndex - node2.sourceIndex;\n } else {\n var parent1 \x3d node1.parentNode;\n var parent2 \x3d node2.parentNode;\n if (parent1 \x3d\x3d parent2) {\n return goog.dom.compareSiblingOrder_(node1, node2);\n }\n if (!isElement1 \x26\x26 goog.dom.contains(parent1, node2)) {\n return -1 * goog.dom.compareParentsDescendantNodeIe_(node1, node2);\n }\n if (!isElement2 \x26\x26 goog.dom.contains(parent2, node1)) {\n return goog.dom.compareParentsDescendantNodeIe_(node2, node1);\n }\n return (isElement1 ? node1.sourceIndex : parent1.sourceIndex) - (isElement2 ? node2.sourceIndex : parent2.sourceIndex);\n }\n }\n var doc \x3d goog.dom.getOwnerDocument(node1);\n var range1;\n var range2;\n range1 \x3d doc.createRange();\n range1.selectNode(node1);\n range1.collapse(true);\n range2 \x3d doc.createRange();\n range2.selectNode(node2);\n range2.collapse(true);\n return range1.compareBoundaryPoints(goog.global[\x22Range\x22].START_TO_END, range2);\n};\ngoog.dom.compareParentsDescendantNodeIe_ \x3d function(textNode, node) {\n var parent \x3d textNode.parentNode;\n if (parent \x3d\x3d node) {\n return -1;\n }\n var sibling \x3d node;\n for (; sibling.parentNode !\x3d parent;) {\n sibling \x3d sibling.parentNode;\n }\n return goog.dom.compareSiblingOrder_(sibling, textNode);\n};\ngoog.dom.compareSiblingOrder_ \x3d function(node1, node2) {\n var s \x3d node2;\n for (; s \x3d s.previousSibling;) {\n if (s \x3d\x3d node1) {\n return -1;\n }\n }\n return 1;\n};\ngoog.dom.findCommonAncestor \x3d function(var_args) {\n var i;\n var count \x3d arguments.length;\n if (!count) {\n return null;\n } else if (count \x3d\x3d 1) {\n return arguments[0];\n }\n var paths \x3d [];\n var minLength \x3d Infinity;\n i \x3d 0;\n for (; i \x3c count; i++) {\n var ancestors \x3d [];\n var node \x3d arguments[i];\n for (; node;) {\n ancestors.unshift(node);\n node \x3d node.parentNode;\n }\n paths.push(ancestors);\n minLength \x3d Math.min(minLength, ancestors.length);\n }\n var output \x3d null;\n i \x3d 0;\n for (; i \x3c minLength; i++) {\n var first \x3d paths[0][i];\n var j \x3d 1;\n for (; j \x3c count; j++) {\n if (first !\x3d paths[j][i]) {\n return output;\n }\n }\n output \x3d first;\n }\n return output;\n};\ngoog.dom.isInDocument \x3d function(node) {\n return (node.ownerDocument.compareDocumentPosition(node) \x26 16) \x3d\x3d 16;\n};\ngoog.dom.getOwnerDocument \x3d function(node) {\n goog.asserts.assert(node, \x22Node cannot be null or undefined.\x22);\n return node.nodeType \x3d\x3d goog.dom.NodeType.DOCUMENT ? node : node.ownerDocument || node.document;\n};\ngoog.dom.getFrameContentDocument \x3d function(frame) {\n return frame.contentDocument || frame.contentWindow.document;\n};\ngoog.dom.getFrameContentWindow \x3d function(frame) {\n try {\n return frame.contentWindow || (frame.contentDocument ? goog.dom.getWindow(frame.contentDocument) : null);\n } catch (e) {\n }\n return null;\n};\ngoog.dom.setTextContent \x3d function(node, text) {\n goog.asserts.assert(node !\x3d null, \x22goog.dom.setTextContent expects a non-null value for node\x22);\n if (\x22textContent\x22 in node) {\n node.textContent \x3d text;\n } else if (node.nodeType \x3d\x3d goog.dom.NodeType.TEXT) {\n node.data \x3d String(text);\n } else if (node.firstChild \x26\x26 node.firstChild.nodeType \x3d\x3d goog.dom.NodeType.TEXT) {\n for (; node.lastChild !\x3d node.firstChild;) {\n node.removeChild(goog.asserts.assert(node.lastChild));\n }\n node.firstChild.data \x3d String(text);\n } else {\n goog.dom.removeChildren(node);\n var doc \x3d goog.dom.getOwnerDocument(node);\n node.appendChild(doc.createTextNode(String(text)));\n }\n};\ngoog.dom.getOuterHtml \x3d function(element) {\n goog.asserts.assert(element !\x3d\x3d null, \x22goog.dom.getOuterHtml expects a non-null value for element\x22);\n if (\x22outerHTML\x22 in element) {\n return element.outerHTML;\n } else {\n var doc \x3d goog.dom.getOwnerDocument(element);\n var div \x3d goog.dom.createElement_(doc, goog.dom.TagName.DIV);\n div.appendChild(element.cloneNode(true));\n return div.innerHTML;\n }\n};\ngoog.dom.findNode \x3d function(root, p) {\n var rv \x3d [];\n var found \x3d goog.dom.findNodes_(root, p, rv, true);\n return found ? rv[0] : undefined;\n};\ngoog.dom.findNodes \x3d function(root, p) {\n var rv \x3d [];\n goog.dom.findNodes_(root, p, rv, false);\n return rv;\n};\ngoog.dom.findNodes_ \x3d function(root, p, rv, findOne) {\n if (root !\x3d null) {\n var child \x3d root.firstChild;\n for (; child;) {\n if (p(child)) {\n rv.push(child);\n if (findOne) {\n return true;\n }\n }\n if (goog.dom.findNodes_(child, p, rv, findOne)) {\n return true;\n }\n child \x3d child.nextSibling;\n }\n }\n return false;\n};\ngoog.dom.findElement \x3d function(root, pred) {\n var stack \x3d goog.dom.getChildrenReverse_(root);\n for (; stack.length \x3e 0;) {\n var next \x3d stack.pop();\n if (pred(next)) {\n return next;\n }\n var c \x3d next.lastElementChild;\n for (; c; c \x3d c.previousElementSibling) {\n stack.push(c);\n }\n }\n return null;\n};\ngoog.dom.findElements \x3d function(root, pred) {\n var result \x3d [];\n var stack \x3d goog.dom.getChildrenReverse_(root);\n for (; stack.length \x3e 0;) {\n var next \x3d stack.pop();\n if (pred(next)) {\n result.push(next);\n }\n var c \x3d next.lastElementChild;\n for (; c; c \x3d c.previousElementSibling) {\n stack.push(c);\n }\n }\n return result;\n};\ngoog.dom.getChildrenReverse_ \x3d function(node) {\n if (node.nodeType \x3d\x3d goog.dom.NodeType.DOCUMENT) {\n return [node.documentElement];\n } else {\n var children \x3d [];\n var c \x3d node.lastElementChild;\n for (; c; c \x3d c.previousElementSibling) {\n children.push(c);\n }\n return children;\n }\n};\ngoog.dom.TAGS_TO_IGNORE_ \x3d {\x22SCRIPT\x22:1, \x22STYLE\x22:1, \x22HEAD\x22:1, \x22IFRAME\x22:1, \x22OBJECT\x22:1};\ngoog.dom.PREDEFINED_TAG_VALUES_ \x3d {\x22IMG\x22:\x22 \x22, \x22BR\x22:\x22\\n\x22};\ngoog.dom.isFocusableTabIndex \x3d function(element) {\n return goog.dom.hasSpecifiedTabIndex_(element) \x26\x26 goog.dom.isTabIndexFocusable_(element);\n};\ngoog.dom.setFocusableTabIndex \x3d function(element, enable) {\n if (enable) {\n element.tabIndex \x3d 0;\n } else {\n element.tabIndex \x3d -1;\n element.removeAttribute(\x22tabIndex\x22);\n }\n};\ngoog.dom.isFocusable \x3d function(element) {\n var focusable;\n if (goog.dom.nativelySupportsFocus_(element)) {\n focusable \x3d !element.disabled \x26\x26 (!goog.dom.hasSpecifiedTabIndex_(element) || goog.dom.isTabIndexFocusable_(element));\n } else {\n focusable \x3d goog.dom.isFocusableTabIndex(element);\n }\n return focusable \x26\x26 goog.userAgent.IE ? goog.dom.hasNonZeroBoundingRect_(element) : focusable;\n};\ngoog.dom.hasSpecifiedTabIndex_ \x3d function(element) {\n return element.hasAttribute(\x22tabindex\x22);\n};\ngoog.dom.isTabIndexFocusable_ \x3d function(element) {\n var index \x3d element.tabIndex;\n return typeof index \x3d\x3d\x3d \x22number\x22 \x26\x26 index \x3e\x3d 0 \x26\x26 index \x3c 32768;\n};\ngoog.dom.nativelySupportsFocus_ \x3d function(element) {\n return element.tagName \x3d\x3d goog.dom.TagName.A \x26\x26 element.hasAttribute(\x22href\x22) || element.tagName \x3d\x3d goog.dom.TagName.INPUT || element.tagName \x3d\x3d goog.dom.TagName.TEXTAREA || element.tagName \x3d\x3d goog.dom.TagName.SELECT || element.tagName \x3d\x3d goog.dom.TagName.BUTTON;\n};\ngoog.dom.hasNonZeroBoundingRect_ \x3d function(element) {\n var rect;\n if (typeof element[\x22getBoundingClientRect\x22] !\x3d\x3d \x22function\x22 || goog.userAgent.IE \x26\x26 element.parentElement \x3d\x3d null) {\n rect \x3d {\x22height\x22:element.offsetHeight, \x22width\x22:element.offsetWidth};\n } else {\n rect \x3d element.getBoundingClientRect();\n }\n return rect !\x3d null \x26\x26 rect.height \x3e 0 \x26\x26 rect.width \x3e 0;\n};\ngoog.dom.getTextContent \x3d function(node) {\n var textContent;\n var buf \x3d [];\n goog.dom.getTextContent_(node, buf, true);\n textContent \x3d buf.join(\x22\x22);\n textContent \x3d textContent.replace(/ \\xAD /g, \x22 \x22).replace(/\\xAD/g, \x22\x22);\n textContent \x3d textContent.replace(/\\u200B/g, \x22\x22);\n textContent \x3d textContent.replace(/ +/g, \x22 \x22);\n if (textContent !\x3d \x22 \x22) {\n textContent \x3d textContent.replace(/^\\s*/, \x22\x22);\n }\n return textContent;\n};\ngoog.dom.getRawTextContent \x3d function(node) {\n var buf \x3d [];\n goog.dom.getTextContent_(node, buf, false);\n return buf.join(\x22\x22);\n};\ngoog.dom.getTextContent_ \x3d function(node, buf, normalizeWhitespace) {\n if (node.nodeName in goog.dom.TAGS_TO_IGNORE_) {\n } else if (node.nodeType \x3d\x3d goog.dom.NodeType.TEXT) {\n if (normalizeWhitespace) {\n buf.push(String(node.nodeValue).replace(/(\\r\\n|\\r|\\n)/g, \x22\x22));\n } else {\n buf.push(node.nodeValue);\n }\n } else if (node.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) {\n buf.push(goog.dom.PREDEFINED_TAG_VALUES_[node.nodeName]);\n } else {\n var child \x3d node.firstChild;\n for (; child;) {\n goog.dom.getTextContent_(child, buf, normalizeWhitespace);\n child \x3d child.nextSibling;\n }\n }\n};\ngoog.dom.getNodeTextLength \x3d function(node) {\n return goog.dom.getTextContent(node).length;\n};\ngoog.dom.getNodeTextOffset \x3d function(node, opt_offsetParent) {\n var root \x3d opt_offsetParent || goog.dom.getOwnerDocument(node).body;\n var buf \x3d [];\n for (; node \x26\x26 node !\x3d root;) {\n var cur \x3d node;\n for (; cur \x3d cur.previousSibling;) {\n buf.unshift(goog.dom.getTextContent(cur));\n }\n node \x3d node.parentNode;\n }\n return goog.string.trimLeft(buf.join(\x22\x22)).replace(/ +/g, \x22 \x22).length;\n};\ngoog.dom.getNodeAtOffset \x3d function(parent, offset, opt_result) {\n var stack \x3d [parent];\n var pos \x3d 0;\n var cur \x3d null;\n for (; stack.length \x3e 0 \x26\x26 pos \x3c offset;) {\n cur \x3d stack.pop();\n if (cur.nodeName in goog.dom.TAGS_TO_IGNORE_) {\n } else if (cur.nodeType \x3d\x3d goog.dom.NodeType.TEXT) {\n var text \x3d cur.nodeValue.replace(/(\\r\\n|\\r|\\n)/g, \x22\x22).replace(/ +/g, \x22 \x22);\n pos \x3d pos + text.length;\n } else if (cur.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) {\n pos \x3d pos + goog.dom.PREDEFINED_TAG_VALUES_[cur.nodeName].length;\n } else {\n var i \x3d cur.childNodes.length - 1;\n for (; i \x3e\x3d 0; i--) {\n stack.push(cur.childNodes[i]);\n }\n }\n }\n if (goog.isObject(opt_result)) {\n opt_result.remainder \x3d cur ? cur.nodeValue.length + offset - pos - 1 : 0;\n opt_result.node \x3d cur;\n }\n return cur;\n};\ngoog.dom.isNodeList \x3d function(val) {\n if (val \x26\x26 typeof val.length \x3d\x3d \x22number\x22) {\n if (goog.isObject(val)) {\n return typeof val.item \x3d\x3d \x22function\x22 || typeof val.item \x3d\x3d \x22string\x22;\n } else if (typeof val \x3d\x3d\x3d \x22function\x22) {\n return typeof val.item \x3d\x3d \x22function\x22;\n }\n }\n return false;\n};\ngoog.dom.getAncestorByTagNameAndClass \x3d function(element, opt_tag, opt_class, opt_maxSearchSteps) {\n if (!opt_tag \x26\x26 !opt_class) {\n return null;\n }\n var tagName \x3d opt_tag ? String(opt_tag).toUpperCase() : null;\n return goog.dom.getAncestor(element, function(node) {\n return (!tagName || node.nodeName \x3d\x3d tagName) \x26\x26 (!opt_class || typeof node.className \x3d\x3d\x3d \x22string\x22 \x26\x26 goog.array.contains(node.className.split(/\\s+/), opt_class));\n }, true, opt_maxSearchSteps);\n};\ngoog.dom.getAncestorByClass \x3d function(element, className, opt_maxSearchSteps) {\n return goog.dom.getAncestorByTagNameAndClass(element, null, className, opt_maxSearchSteps);\n};\ngoog.dom.getAncestor \x3d function(element, matcher, opt_includeNode, opt_maxSearchSteps) {\n if (element \x26\x26 !opt_includeNode) {\n element \x3d element.parentNode;\n }\n var steps \x3d 0;\n for (; element \x26\x26 (opt_maxSearchSteps \x3d\x3d null || steps \x3c\x3d opt_maxSearchSteps);) {\n goog.asserts.assert(element.name !\x3d \x22parentNode\x22);\n if (matcher(element)) {\n return element;\n }\n element \x3d element.parentNode;\n steps++;\n }\n return null;\n};\ngoog.dom.getActiveElement \x3d function(doc) {\n try {\n var activeElement \x3d doc \x26\x26 doc.activeElement;\n return activeElement \x26\x26 activeElement.nodeName ? activeElement : null;\n } catch (e) {\n return null;\n }\n};\ngoog.dom.getPixelRatio \x3d function() {\n var win \x3d goog.dom.getWindow();\n if (win.devicePixelRatio !\x3d\x3d undefined) {\n return win.devicePixelRatio;\n } else if (win.matchMedia) {\n return goog.dom.matchesPixelRatio_(3) || goog.dom.matchesPixelRatio_(2) || goog.dom.matchesPixelRatio_(1.5) || goog.dom.matchesPixelRatio_(1) || .75;\n }\n return 1;\n};\ngoog.dom.matchesPixelRatio_ \x3d function(pixelRatio) {\n var win \x3d goog.dom.getWindow();\n var dpiPerDppx \x3d 96;\n var query \x3d \x22(min-resolution: \x22 + pixelRatio + \x22dppx),\x22 + \x22(min--moz-device-pixel-ratio: \x22 + pixelRatio + \x22),\x22 + \x22(min-resolution: \x22 + pixelRatio * dpiPerDppx + \x22dpi)\x22;\n return win.matchMedia(query).matches ? pixelRatio : 0;\n};\ngoog.dom.getCanvasContext2D \x3d function(canvas) {\n return canvas.getContext(\x222d\x22);\n};\ngoog.dom.DomHelper \x3d function(opt_document) {\n this.document_ \x3d opt_document || goog.global.document || document;\n};\ngoog.dom.DomHelper.prototype.getDomHelper \x3d goog.dom.getDomHelper;\ngoog.dom.DomHelper.prototype.setDocument \x3d function(document) {\n this.document_ \x3d document;\n};\ngoog.dom.DomHelper.prototype.getDocument \x3d function() {\n return this.document_;\n};\ngoog.dom.DomHelper.prototype.getElement \x3d function(element) {\n return goog.dom.getElementHelper_(this.document_, element);\n};\ngoog.dom.DomHelper.prototype.getRequiredElement \x3d function(id) {\n return goog.dom.getRequiredElementHelper_(this.document_, id);\n};\ngoog.dom.DomHelper.prototype.$ \x3d goog.dom.DomHelper.prototype.getElement;\ngoog.dom.DomHelper.prototype.getElementsByTagName \x3d function(tagName, opt_parent) {\n var parent \x3d opt_parent || this.document_;\n return parent.getElementsByTagName(String(tagName));\n};\ngoog.dom.DomHelper.prototype.getElementsByTagNameAndClass \x3d function(opt_tag, opt_class, opt_el) {\n return goog.dom.getElementsByTagNameAndClass_(this.document_, opt_tag, opt_class, opt_el);\n};\ngoog.dom.DomHelper.prototype.getElementByTagNameAndClass \x3d function(opt_tag, opt_class, opt_el) {\n return goog.dom.getElementByTagNameAndClass_(this.document_, opt_tag, opt_class, opt_el);\n};\ngoog.dom.DomHelper.prototype.getElementsByClass \x3d function(className, opt_el) {\n var doc \x3d opt_el || this.document_;\n return goog.dom.getElementsByClass(className, doc);\n};\ngoog.dom.DomHelper.prototype.getElementByClass \x3d function(className, opt_el) {\n var doc \x3d opt_el || this.document_;\n return goog.dom.getElementByClass(className, doc);\n};\ngoog.dom.DomHelper.prototype.getRequiredElementByClass \x3d function(className, opt_root) {\n var root \x3d opt_root || this.document_;\n return goog.dom.getRequiredElementByClass(className, root);\n};\ngoog.dom.DomHelper.prototype.$$ \x3d goog.dom.DomHelper.prototype.getElementsByTagNameAndClass;\ngoog.dom.DomHelper.prototype.setProperties \x3d goog.dom.setProperties;\ngoog.dom.DomHelper.prototype.getViewportSize \x3d function(opt_window) {\n return goog.dom.getViewportSize(opt_window || this.getWindow());\n};\ngoog.dom.DomHelper.prototype.getDocumentHeight \x3d function() {\n return goog.dom.getDocumentHeight_(this.getWindow());\n};\ngoog.dom.Appendable;\ngoog.dom.DomHelper.prototype.createDom \x3d function(tagName, opt_attributes, var_args) {\n return goog.dom.createDom_(this.document_, arguments);\n};\ngoog.dom.DomHelper.prototype.$dom \x3d goog.dom.DomHelper.prototype.createDom;\ngoog.dom.DomHelper.prototype.createElement \x3d function(name) {\n return goog.dom.createElement_(this.document_, name);\n};\ngoog.dom.DomHelper.prototype.createTextNode \x3d function(content) {\n return this.document_.createTextNode(String(content));\n};\ngoog.dom.DomHelper.prototype.createTable \x3d function(rows, columns, opt_fillWithNbsp) {\n return goog.dom.createTable_(this.document_, rows, columns, !!opt_fillWithNbsp);\n};\ngoog.dom.DomHelper.prototype.safeHtmlToNode \x3d function(html) {\n return goog.dom.safeHtmlToNode_(this.document_, html);\n};\ngoog.dom.DomHelper.prototype.isCss1CompatMode \x3d function() {\n return goog.dom.isCss1CompatMode_(this.document_);\n};\ngoog.dom.DomHelper.prototype.getWindow \x3d function() {\n return goog.dom.getWindow_(this.document_);\n};\ngoog.dom.DomHelper.prototype.getDocumentScrollElement \x3d function() {\n return goog.dom.getDocumentScrollElement_(this.document_);\n};\ngoog.dom.DomHelper.prototype.getDocumentScroll \x3d function() {\n return goog.dom.getDocumentScroll_(this.document_);\n};\ngoog.dom.DomHelper.prototype.getActiveElement \x3d function(opt_doc) {\n return goog.dom.getActiveElement(opt_doc || this.document_);\n};\ngoog.dom.DomHelper.prototype.appendChild \x3d goog.dom.appendChild;\ngoog.dom.DomHelper.prototype.append \x3d goog.dom.append;\ngoog.dom.DomHelper.prototype.canHaveChildren \x3d goog.dom.canHaveChildren;\ngoog.dom.DomHelper.prototype.removeChildren \x3d goog.dom.removeChildren;\ngoog.dom.DomHelper.prototype.insertSiblingBefore \x3d goog.dom.insertSiblingBefore;\ngoog.dom.DomHelper.prototype.insertSiblingAfter \x3d goog.dom.insertSiblingAfter;\ngoog.dom.DomHelper.prototype.insertChildAt \x3d goog.dom.insertChildAt;\ngoog.dom.DomHelper.prototype.removeNode \x3d goog.dom.removeNode;\ngoog.dom.DomHelper.prototype.replaceNode \x3d goog.dom.replaceNode;\ngoog.dom.DomHelper.prototype.copyContents \x3d goog.dom.copyContents;\ngoog.dom.DomHelper.prototype.flattenElement \x3d goog.dom.flattenElement;\ngoog.dom.DomHelper.prototype.getChildren \x3d goog.dom.getChildren;\ngoog.dom.DomHelper.prototype.getFirstElementChild \x3d goog.dom.getFirstElementChild;\ngoog.dom.DomHelper.prototype.getLastElementChild \x3d goog.dom.getLastElementChild;\ngoog.dom.DomHelper.prototype.getNextElementSibling \x3d goog.dom.getNextElementSibling;\ngoog.dom.DomHelper.prototype.getPreviousElementSibling \x3d goog.dom.getPreviousElementSibling;\ngoog.dom.DomHelper.prototype.getNextNode \x3d goog.dom.getNextNode;\ngoog.dom.DomHelper.prototype.getPreviousNode \x3d goog.dom.getPreviousNode;\ngoog.dom.DomHelper.prototype.isNodeLike \x3d goog.dom.isNodeLike;\ngoog.dom.DomHelper.prototype.isElement \x3d goog.dom.isElement;\ngoog.dom.DomHelper.prototype.isWindow \x3d goog.dom.isWindow;\ngoog.dom.DomHelper.prototype.getParentElement \x3d goog.dom.getParentElement;\ngoog.dom.DomHelper.prototype.contains \x3d goog.dom.contains;\ngoog.dom.DomHelper.prototype.compareNodeOrder \x3d goog.dom.compareNodeOrder;\ngoog.dom.DomHelper.prototype.findCommonAncestor \x3d goog.dom.findCommonAncestor;\ngoog.dom.DomHelper.prototype.getOwnerDocument \x3d goog.dom.getOwnerDocument;\ngoog.dom.DomHelper.prototype.getFrameContentDocument \x3d goog.dom.getFrameContentDocument;\ngoog.dom.DomHelper.prototype.getFrameContentWindow \x3d goog.dom.getFrameContentWindow;\ngoog.dom.DomHelper.prototype.setTextContent \x3d goog.dom.setTextContent;\ngoog.dom.DomHelper.prototype.getOuterHtml \x3d goog.dom.getOuterHtml;\ngoog.dom.DomHelper.prototype.findNode \x3d goog.dom.findNode;\ngoog.dom.DomHelper.prototype.findNodes \x3d goog.dom.findNodes;\ngoog.dom.DomHelper.prototype.isFocusableTabIndex \x3d goog.dom.isFocusableTabIndex;\ngoog.dom.DomHelper.prototype.setFocusableTabIndex \x3d goog.dom.setFocusableTabIndex;\ngoog.dom.DomHelper.prototype.isFocusable \x3d goog.dom.isFocusable;\ngoog.dom.DomHelper.prototype.getTextContent \x3d goog.dom.getTextContent;\ngoog.dom.DomHelper.prototype.getNodeTextLength \x3d goog.dom.getNodeTextLength;\ngoog.dom.DomHelper.prototype.getNodeTextOffset \x3d goog.dom.getNodeTextOffset;\ngoog.dom.DomHelper.prototype.getNodeAtOffset \x3d goog.dom.getNodeAtOffset;\ngoog.dom.DomHelper.prototype.isNodeList \x3d goog.dom.isNodeList;\ngoog.dom.DomHelper.prototype.getAncestorByTagNameAndClass \x3d goog.dom.getAncestorByTagNameAndClass;\ngoog.dom.DomHelper.prototype.getAncestorByClass \x3d goog.dom.getAncestorByClass;\ngoog.dom.DomHelper.prototype.getAncestor \x3d goog.dom.getAncestor;\ngoog.dom.DomHelper.prototype.getCanvasContext2D \x3d goog.dom.getCanvasContext2D;\n");
SHADOW_ENV.evalLoad("goog.useragent.product.js", true, "goog.provide(\x22goog.userAgent.product\x22);\ngoog.require(\x22goog.labs.userAgent.browser\x22);\ngoog.require(\x22goog.labs.userAgent.platform\x22);\ngoog.require(\x22goog.userAgent\x22);\ngoog.userAgent.product.ASSUME_FIREFOX \x3d goog.define(\x22goog.userAgent.product.ASSUME_FIREFOX\x22, false);\ngoog.userAgent.product.ASSUME_IPHONE \x3d goog.define(\x22goog.userAgent.product.ASSUME_IPHONE\x22, false);\ngoog.userAgent.product.ASSUME_IPAD \x3d goog.define(\x22goog.userAgent.product.ASSUME_IPAD\x22, false);\ngoog.userAgent.product.ASSUME_ANDROID \x3d goog.define(\x22goog.userAgent.product.ASSUME_ANDROID\x22, false);\ngoog.userAgent.product.ASSUME_CHROME \x3d goog.define(\x22goog.userAgent.product.ASSUME_CHROME\x22, false);\ngoog.userAgent.product.ASSUME_SAFARI \x3d goog.define(\x22goog.userAgent.product.ASSUME_SAFARI\x22, false);\ngoog.userAgent.product.PRODUCT_KNOWN_ \x3d goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_OPERA || goog.userAgent.product.ASSUME_FIREFOX || goog.userAgent.product.ASSUME_IPHONE || goog.userAgent.product.ASSUME_IPAD || goog.userAgent.product.ASSUME_ANDROID || goog.userAgent.product.ASSUME_CHROME || goog.userAgent.product.ASSUME_SAFARI;\ngoog.userAgent.product.OPERA \x3d goog.userAgent.OPERA;\ngoog.userAgent.product.IE \x3d goog.userAgent.IE;\ngoog.userAgent.product.EDGE \x3d goog.userAgent.EDGE;\ngoog.userAgent.product.FIREFOX \x3d goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_FIREFOX : goog.labs.userAgent.browser.isFirefox();\ngoog.userAgent.product.isIphoneOrIpod_ \x3d function() {\n return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpod();\n};\ngoog.userAgent.product.IPHONE \x3d goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPHONE : goog.userAgent.product.isIphoneOrIpod_();\ngoog.userAgent.product.IPAD \x3d goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();\ngoog.userAgent.product.ANDROID \x3d goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_ANDROID : goog.labs.userAgent.browser.isAndroidBrowser();\ngoog.userAgent.product.CHROME \x3d goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_CHROME : goog.labs.userAgent.browser.isChrome();\ngoog.userAgent.product.isSafariDesktop_ \x3d function() {\n return goog.labs.userAgent.browser.isSafari() \x26\x26 !goog.labs.userAgent.platform.isIos();\n};\ngoog.userAgent.product.SAFARI \x3d goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_SAFARI : goog.userAgent.product.isSafariDesktop_();\n");
SHADOW_ENV.evalLoad("shadow.json.js", true, "goog.provide(\x27shadow.json\x27);\ngoog.scope(function(){\n shadow.json.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\n/**\n * simplified js-\x3eclj for JSON data, :key-fn default to keyword\n */\nshadow.json.to_clj \x3d (function shadow$json$to_clj(var_args){\nvar G__19778 \x3d arguments.length;\nswitch (G__19778) {\ncase 1:\nreturn shadow.json.to_clj.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.json.to_clj.cljs$core$IFn$_invoke$arity$1 \x3d (function (x){\nreturn shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2(x,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2 \x3d (function (x,opts){\nif((x \x3d\x3d null)){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27number\x27){\nreturn x;\n} else {\nif(typeof x \x3d\x3d\x3d \x27string\x27){\nreturn x;\n} else {\nif(cljs.core.boolean_QMARK_(x)){\nreturn x;\n} else {\nif(cljs.core.array_QMARK_(x)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__19776_SHARP_){\nreturn shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2(p1__19776_SHARP_,opts);\n})),cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(x));\n} else {\nvar key_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,\x22key-fn\x22,\x22key-fn\x22,-636154479),cljs.core.keyword);\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,key){\nvar value \x3d shadow.json.goog$module$goog$object.get(x,key);\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(result,((typeof key \x3d\x3d\x3d \x27string\x27)?(key_fn.cljs$core$IFn$_invoke$arity$1 ? key_fn.cljs$core$IFn$_invoke$arity$1(key) : key_fn.call(null, key)):shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2(key,opts)),shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2(value,opts));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),shadow.json.goog$module$goog$object.getKeys(x)));\n\n}\n}\n}\n}\n}\n}));\n\n(shadow.json.to_clj.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.json.read_str \x3d (function shadow$json$read_str(str,opts){\nreturn shadow.json.to_clj.cljs$core$IFn$_invoke$arity$2(JSON.parse(str),opts);\n});\nshadow.json.write_str \x3d (function shadow$json$write_str(obj){\nreturn JSON.stringify(cljs.core.clj__GT_js(obj));\n});\n");
SHADOW_ENV.evalLoad("clojure.set.js", true, "goog.provide(\x27clojure.set\x27);\nclojure.set.bubble_max_key \x3d (function clojure$set$bubble_max_key(k,coll){\n\nvar max \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max_key,k,coll);\nreturn cljs.core.cons(max,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__19775_SHARP_){\nreturn (max \x3d\x3d\x3d p1__19775_SHARP_);\n}),coll));\n});\n/**\n * Return a set that is the union of the input sets\n */\nclojure.set.union \x3d (function clojure$set$union(var_args){\nvar G__19784 \x3d arguments.length;\nswitch (G__19784) {\ncase 0:\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19904 \x3d arguments.length;\nvar i__5727__auto___19905 \x3d (0);\nwhile(true){\nif((i__5727__auto___19905 \x3c len__5726__auto___19904)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19905]));\n\nvar G__19908 \x3d (i__5727__auto___19905 + (1));\ni__5727__auto___19905 \x3d G__19908;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.PersistentHashSet.EMPTY;\n}));\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$1 \x3d (function (s1){\nreturn s1;\n}));\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$2 \x3d (function (s1,s2){\nif((cljs.core.count(s1) \x3c cljs.core.count(s2))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,s2,s1);\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,s1,s2);\n}\n}));\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s1,s2,sets){\nvar bubbled_sets \x3d clojure.set.bubble_max_key(cljs.core.count,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(sets,s2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s1], 0)));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.into,cljs.core.first(bubbled_sets),cljs.core.rest(bubbled_sets));\n}));\n\n/** @this {Function} */\n(clojure.set.union.cljs$lang$applyTo \x3d (function (seq19781){\nvar G__19782 \x3d cljs.core.first(seq19781);\nvar seq19781__$1 \x3d cljs.core.next(seq19781);\nvar G__19783 \x3d cljs.core.first(seq19781__$1);\nvar seq19781__$2 \x3d cljs.core.next(seq19781__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19782,G__19783,seq19781__$2);\n}));\n\n(clojure.set.union.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Return a set that is the intersection of the input sets\n */\nclojure.set.intersection \x3d (function clojure$set$intersection(var_args){\nvar G__19805 \x3d arguments.length;\nswitch (G__19805) {\ncase 1:\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19920 \x3d arguments.length;\nvar i__5727__auto___19921 \x3d (0);\nwhile(true){\nif((i__5727__auto___19921 \x3c len__5726__auto___19920)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19921]));\n\nvar G__19922 \x3d (i__5727__auto___19921 + (1));\ni__5727__auto___19921 \x3d G__19922;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(clojure.set.intersection.cljs$core$IFn$_invoke$arity$1 \x3d (function (s1){\nreturn s1;\n}));\n\n(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2 \x3d (function (s1,s2){\nwhile(true){\nif((cljs.core.count(s2) \x3c cljs.core.count(s1))){\nvar G__19930 \x3d s2;\nvar G__19931 \x3d s1;\ns1 \x3d G__19930;\ns2 \x3d G__19931;\ncontinue;\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (s1,s2){\nreturn (function (result,item){\nif(cljs.core.contains_QMARK_(s2,item)){\nreturn result;\n} else {\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(result,item);\n}\n});})(s1,s2))\n,s1,s1);\n}\nbreak;\n}\n}));\n\n(clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s1,s2,sets){\nvar bubbled_sets \x3d clojure.set.bubble_max_key((function (p1__19799_SHARP_){\nreturn (- cljs.core.count(p1__19799_SHARP_));\n}),cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(sets,s2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s1], 0)));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.intersection,cljs.core.first(bubbled_sets),cljs.core.rest(bubbled_sets));\n}));\n\n/** @this {Function} */\n(clojure.set.intersection.cljs$lang$applyTo \x3d (function (seq19802){\nvar G__19803 \x3d cljs.core.first(seq19802);\nvar seq19802__$1 \x3d cljs.core.next(seq19802);\nvar G__19804 \x3d cljs.core.first(seq19802__$1);\nvar seq19802__$2 \x3d cljs.core.next(seq19802__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19803,G__19804,seq19802__$2);\n}));\n\n(clojure.set.intersection.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Return a set that is the first set without elements of the remaining sets\n */\nclojure.set.difference \x3d (function clojure$set$difference(var_args){\nvar G__19818 \x3d arguments.length;\nswitch (G__19818) {\ncase 1:\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19940 \x3d arguments.length;\nvar i__5727__auto___19941 \x3d (0);\nwhile(true){\nif((i__5727__auto___19941 \x3c len__5726__auto___19940)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19941]));\n\nvar G__19942 \x3d (i__5727__auto___19941 + (1));\ni__5727__auto___19941 \x3d G__19942;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((2) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);\n\n}\n});\n\n(clojure.set.difference.cljs$core$IFn$_invoke$arity$1 \x3d (function (s1){\nreturn s1;\n}));\n\n(clojure.set.difference.cljs$core$IFn$_invoke$arity$2 \x3d (function (s1,s2){\nif((cljs.core.count(s1) \x3c cljs.core.count(s2))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,item){\nif(cljs.core.contains_QMARK_(s2,item)){\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(result,item);\n} else {\nreturn result;\n}\n}),s1,s1);\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.disj,s1,s2);\n}\n}));\n\n(clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic \x3d (function (s1,s2,sets){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.difference,s1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(sets,s2));\n}));\n\n/** @this {Function} */\n(clojure.set.difference.cljs$lang$applyTo \x3d (function (seq19815){\nvar G__19816 \x3d cljs.core.first(seq19815);\nvar seq19815__$1 \x3d cljs.core.next(seq19815);\nvar G__19817 \x3d cljs.core.first(seq19815__$1);\nvar seq19815__$2 \x3d cljs.core.next(seq19815__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19816,G__19817,seq19815__$2);\n}));\n\n(clojure.set.difference.cljs$lang$maxFixedArity \x3d (2));\n\n/**\n * Returns a set of the elements for which pred is true\n */\nclojure.set.select \x3d (function clojure$set$select(pred,xset){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,k){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(k) : pred.call(null, k)))){\nreturn s;\n} else {\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(s,k);\n}\n}),xset,xset);\n});\n/**\n * Returns a rel of the elements of xrel with only the keys in ks\n */\nclojure.set.project \x3d (function clojure$set$project(xrel,ks){\nreturn cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__19828_SHARP_){\nreturn cljs.core.select_keys(p1__19828_SHARP_,ks);\n}),xrel));\n});\n/**\n * Returns the map with the keys in kmap renamed to the vals in kmap\n */\nclojure.set.rename_keys \x3d (function clojure$set$rename_keys(map,kmap){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__19835){\nvar vec__19836 \x3d p__19835;\nvar old \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19836,(0),null);\nvar new$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19836,(1),null);\nif(cljs.core.contains_QMARK_(map,old)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,new$,cljs.core.get.cljs$core$IFn$_invoke$arity$2(map,old));\n} else {\nreturn m;\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,map,cljs.core.keys(kmap)),kmap);\n});\n/**\n * Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap\n */\nclojure.set.rename \x3d (function clojure$set$rename(xrel,kmap){\nreturn cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__19846_SHARP_){\nreturn clojure.set.rename_keys(p1__19846_SHARP_,kmap);\n}),xrel));\n});\n/**\n * Returns a map of the distinct values of ks in the xrel mapped to a\n * set of the maps in xrel with the corresponding values of ks.\n */\nclojure.set.index \x3d (function clojure$set$index(xrel,ks){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,x){\nvar ik \x3d cljs.core.select_keys(x,ks);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,ik,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,ik,cljs.core.PersistentHashSet.EMPTY),x));\n}),cljs.core.PersistentArrayMap.EMPTY,xrel);\n});\n/**\n * Returns the map with the vals mapped to the keys.\n */\nclojure.set.map_invert \x3d (function clojure$set$map_invert(m){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));\n});\n/**\n * When passed 2 rels, returns the rel corresponding to the natural\n * join. When passed an additional keymap, joins on the corresponding\n * keys.\n */\nclojure.set.join \x3d (function clojure$set$join(var_args){\nvar G__19864 \x3d arguments.length;\nswitch (G__19864) {\ncase 2:\nreturn clojure.set.join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.set.join.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.set.join.cljs$core$IFn$_invoke$arity$2 \x3d (function (xrel,yrel){\nif(((cljs.core.seq(xrel)) \x26\x26 (cljs.core.seq(yrel)))){\nvar ks \x3d clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(cljs.core.first(xrel))),cljs.core.set(cljs.core.keys(cljs.core.first(yrel))));\nvar vec__19870 \x3d (((cljs.core.count(xrel) \x3c\x3d cljs.core.count(yrel)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [xrel,yrel], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [yrel,xrel], null));\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19870,(0),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19870,(1),null);\nvar idx \x3d clojure.set.index(r,ks);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){\nvar found \x3d (function (){var G__19879 \x3d cljs.core.select_keys(x,ks);\nreturn (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__19879) : idx.call(null, G__19879));\n})();\nif(cljs.core.truth_(found)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19856_SHARP_,p2__19857_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19856_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__19857_SHARP_,x], 0)));\n}),ret,found);\n} else {\nreturn ret;\n}\n}),cljs.core.PersistentHashSet.EMPTY,s);\n} else {\nreturn cljs.core.PersistentHashSet.EMPTY;\n}\n}));\n\n(clojure.set.join.cljs$core$IFn$_invoke$arity$3 \x3d (function (xrel,yrel,km){\nvar vec__19880 \x3d (((cljs.core.count(xrel) \x3c\x3d cljs.core.count(yrel)))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [xrel,yrel,clojure.set.map_invert(km)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [yrel,xrel,km], null));\nvar r \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19880,(0),null);\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19880,(1),null);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19880,(2),null);\nvar idx \x3d clojure.set.index(r,cljs.core.vals(k));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){\nvar found \x3d (function (){var G__19884 \x3d clojure.set.rename_keys(cljs.core.select_keys(x,cljs.core.keys(k)),k);\nreturn (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__19884) : idx.call(null, G__19884));\n})();\nif(cljs.core.truth_(found)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19858_SHARP_,p2__19860_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19858_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__19860_SHARP_,x], 0)));\n}),ret,found);\n} else {\nreturn ret;\n}\n}),cljs.core.PersistentHashSet.EMPTY,s);\n}));\n\n(clojure.set.join.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Is set1 a subset of set2?\n */\nclojure.set.subset_QMARK_ \x3d (function clojure$set$subset_QMARK_(set1,set2){\nreturn (((cljs.core.count(set1) \x3c\x3d cljs.core.count(set2))) \x26\x26 (cljs.core.every_QMARK_((function (p1__19886_SHARP_){\nreturn cljs.core.contains_QMARK_(set2,p1__19886_SHARP_);\n}),set1)));\n});\n/**\n * Is set1 a superset of set2?\n */\nclojure.set.superset_QMARK_ \x3d (function clojure$set$superset_QMARK_(set1,set2){\nreturn (((cljs.core.count(set1) \x3e\x3d cljs.core.count(set2))) \x26\x26 (cljs.core.every_QMARK_((function (p1__19890_SHARP_){\nreturn cljs.core.contains_QMARK_(set1,p1__19890_SHARP_);\n}),set2)));\n});\n");
SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.env.js", true, "goog.provide(\x27shadow.cljs.devtools.client.env\x27);\ngoog.scope(function(){\n shadow.cljs.devtools.client.env.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env.active_modules_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.env.active_modules_ref \x3d cljs.core.volatile_BANG_(cljs.core.PersistentHashSet.EMPTY);\n}\nshadow.cljs.devtools.client.env.module_loaded \x3d (function shadow$cljs$devtools$client$env$module_loaded(name){\nreturn shadow.cljs.devtools.client.env.active_modules_ref.cljs$core$IVolatile$_vreset_BANG_$arity$2(null, cljs.core.conj.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.active_modules_ref.cljs$core$IDeref$_deref$arity$1(null, ),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(name)));\n});\nshadow.cljs.devtools.client.env.module_is_active_QMARK_ \x3d (function shadow$cljs$devtools$client$env$module_is_active_QMARK_(module){\nreturn cljs.core.contains_QMARK_(cljs.core.deref(shadow.cljs.devtools.client.env.active_modules_ref),module);\n});\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env.runtime_id !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.env.runtime_id \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.enabled \x3d goog.define(\x22shadow.cljs.devtools.client.env.enabled\x22,false);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.log \x3d goog.define(\x22shadow.cljs.devtools.client.env.log\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.autoload \x3d goog.define(\x22shadow.cljs.devtools.client.env.autoload\x22,true);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.module_format \x3d goog.define(\x22shadow.cljs.devtools.client.env.module_format\x22,\x22goog\x22);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.reload_with_state \x3d goog.define(\x22shadow.cljs.devtools.client.env.reload_with_state\x22,false);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.build_id \x3d goog.define(\x22shadow.cljs.devtools.client.env.build_id\x22,\x22\x22);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.proc_id \x3d goog.define(\x22shadow.cljs.devtools.client.env.proc_id\x22,\x22\x22);\n/**\n * @define {number}\n */\nshadow.cljs.devtools.client.env.worker_client_id \x3d goog.define(\x22shadow.cljs.devtools.client.env.worker_client_id\x22,(0));\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.server_host \x3d goog.define(\x22shadow.cljs.devtools.client.env.server_host\x22,\x22\x22);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.server_hosts \x3d goog.define(\x22shadow.cljs.devtools.client.env.server_hosts\x22,\x22\x22);\n/**\n * @define {number}\n */\nshadow.cljs.devtools.client.env.connect_timeout \x3d goog.define(\x22shadow.cljs.devtools.client.env.connect_timeout\x22,(1000));\nshadow.cljs.devtools.client.env.selected_host \x3d null;\n/**\n * @define {number}\n */\nshadow.cljs.devtools.client.env.server_port \x3d goog.define(\x22shadow.cljs.devtools.client.env.server_port\x22,(8200));\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.repl_pprint \x3d goog.define(\x22shadow.cljs.devtools.client.env.repl_pprint\x22,false);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.use_document_host \x3d goog.define(\x22shadow.cljs.devtools.client.env.use_document_host\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.use_document_protocol \x3d goog.define(\x22shadow.cljs.devtools.client.env.use_document_protocol\x22,false);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.devtools_url \x3d goog.define(\x22shadow.cljs.devtools.client.env.devtools_url\x22,\x22\x22);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.reload_strategy \x3d goog.define(\x22shadow.cljs.devtools.client.env.reload_strategy\x22,\x22optimized\x22);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.server_token \x3d goog.define(\x22shadow.cljs.devtools.client.env.server_token\x22,\x22missing\x22);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.ssl \x3d goog.define(\x22shadow.cljs.devtools.client.env.ssl\x22,false);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.ignore_warnings \x3d goog.define(\x22shadow.cljs.devtools.client.env.ignore_warnings\x22,false);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.log_style \x3d goog.define(\x22shadow.cljs.devtools.client.env.log_style\x22,\x22font-weight: bold;\x22);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.custom_notify_fn \x3d goog.define(\x22shadow.cljs.devtools.client.env.custom_notify_fn\x22,\x22\x22);\nshadow.cljs.devtools.client.env.devtools_info \x3d (function shadow$cljs$devtools$client$env$devtools_info(){\nreturn ({\x22server_port\x22: shadow.cljs.devtools.client.env.server_port, \x22server_host\x22: shadow.cljs.devtools.client.env.server_host, \x22build_id\x22: shadow.cljs.devtools.client.env.build_id, \x22proc_id\x22: shadow.cljs.devtools.client.env.proc_id, \x22runtime_id\x22: shadow.cljs.devtools.client.env.runtime_id, \x22ssl\x22: shadow.cljs.devtools.client.env.ssl});\n});\nshadow.cljs.devtools.client.env.get_server_protocol \x3d (function shadow$cljs$devtools$client$env$get_server_protocol(){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d shadow.cljs.devtools.client.env.use_document_protocol;\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d goog.global.location;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn cljs.core.seq(goog.global.location.protocol);\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn clojure.string.replace(goog.global.location.protocol,\x22:\x22,\x22\x22);\n} else {\nreturn [\x22http\x22,((shadow.cljs.devtools.client.env.ssl)?\x22s\x22:null)].join(\x27\x27);\n}\n});\nshadow.cljs.devtools.client.env.get_server_host \x3d (function shadow$cljs$devtools$client$env$get_server_host(){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.selected_host)){\nreturn shadow.cljs.devtools.client.env.selected_host;\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d shadow.cljs.devtools.client.env.use_document_host;\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d goog.global.location;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn cljs.core.seq(goog.global.location.hostname);\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn goog.global.location.hostname;\n} else {\nif(cljs.core.seq(shadow.cljs.devtools.client.env.server_host)){\nreturn shadow.cljs.devtools.client.env.server_host;\n} else {\nreturn \x22localhost\x22;\n\n}\n}\n}\n});\nshadow.cljs.devtools.client.env.get_url_base \x3d (function shadow$cljs$devtools$client$env$get_url_base(){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.devtools_url)){\nreturn shadow.cljs.devtools.client.env.devtools_url;\n} else {\nreturn [shadow.cljs.devtools.client.env.get_server_protocol(),\x22://\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.env.get_server_host()),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.env.server_port)].join(\x27\x27);\n}\n});\nshadow.cljs.devtools.client.env.get_ws_url_base \x3d (function shadow$cljs$devtools$client$env$get_ws_url_base(){\nreturn clojure.string.replace(shadow.cljs.devtools.client.env.get_url_base(),/^http/,\x22ws\x22);\n});\nshadow.cljs.devtools.client.env.get_ws_relay_path \x3d (function shadow$cljs$devtools$client$env$get_ws_relay_path(){\nreturn [\x22/api/remote-relay?server-token\x3d\x22,shadow.cljs.devtools.client.env.server_token].join(\x27\x27);\n});\nshadow.cljs.devtools.client.env.get_ws_relay_url \x3d (function shadow$cljs$devtools$client$env$get_ws_relay_url(){\nreturn [shadow.cljs.devtools.client.env.get_ws_url_base(),shadow.cljs.devtools.client.env.get_ws_relay_path()].join(\x27\x27);\n});\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env.reset_print_fn_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.env.reset_print_fn_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\n}\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.env.was_print_newline !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.env.was_print_newline \x3d cljs.core._STAR_print_newline_STAR_;\n}\nshadow.cljs.devtools.client.env.set_print_fns_BANG_ \x3d (function shadow$cljs$devtools$client$env$set_print_fns_BANG_(msg_fn){\nvar original_print_fn \x3d cljs.core._STAR_print_fn_STAR_;\nvar original_print_err_fn \x3d cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_newline_STAR_ \x3d true);\n\n(cljs.core.enable_console_print_BANG_ \x3d (function (){\nreturn null;\n}));\n\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.env.reset_print_fn_ref,(function shadow$cljs$devtools$client$env$set_print_fns_BANG__$_reset_print_fns_BANG_(){\n(cljs.core._STAR_print_newline_STAR_ \x3d shadow.cljs.devtools.client.env.was_print_newline);\n\ncljs.core.set_print_fn_BANG_(original_print_fn);\n\nreturn cljs.core.set_print_err_fn_BANG_(original_print_err_fn);\n}));\n\ncljs.core.set_print_fn_BANG_((function shadow$cljs$devtools$client$env$set_print_fns_BANG__$_repl_print_fn(s){\n(msg_fn.cljs$core$IFn$_invoke$arity$2 ? msg_fn.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22stdout\x22,\x22stdout\x22,-531490018),s) : msg_fn.call(null, new cljs.core.Keyword(null,\x22stdout\x22,\x22stdout\x22,-531490018),s));\n\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d original_print_fn;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\\n\x22);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn (original_print_fn.cljs$core$IFn$_invoke$arity$1 ? original_print_fn.cljs$core$IFn$_invoke$arity$1(s) : original_print_fn.call(null, s));\n} else {\nreturn null;\n}\n}));\n\nreturn cljs.core.set_print_err_fn_BANG_((function shadow$cljs$devtools$client$env$set_print_fns_BANG__$_repl_print_err_fn(s){\n(msg_fn.cljs$core$IFn$_invoke$arity$2 ? msg_fn.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22stderr\x22,\x22stderr\x22,-1571650309),s) : msg_fn.call(null, new cljs.core.Keyword(null,\x22stderr\x22,\x22stderr\x22,-1571650309),s));\n\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d original_print_err_fn;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(s,\x22\\n\x22);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn (original_print_err_fn.cljs$core$IFn$_invoke$arity$1 ? original_print_err_fn.cljs$core$IFn$_invoke$arity$1(s) : original_print_err_fn.call(null, s));\n} else {\nreturn null;\n}\n}));\n});\nshadow.cljs.devtools.client.env.reset_print_fns_BANG_ \x3d (function shadow$cljs$devtools$client$env$reset_print_fns_BANG_(){\nvar temp__5804__auto__ \x3d cljs.core.deref(shadow.cljs.devtools.client.env.reset_print_fn_ref);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar x \x3d temp__5804__auto__;\n(x.cljs$core$IFn$_invoke$arity$0 ? x.cljs$core$IFn$_invoke$arity$0() : x.call(null, ));\n\nreturn cljs.core.reset_BANG_(shadow.cljs.devtools.client.env.reset_print_fn_ref,null);\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.patch_goog_BANG_ \x3d (function shadow$cljs$devtools$client$env$patch_goog_BANG_(){\n(goog.provide \x3d goog.constructNamespace_);\n\nreturn (goog.require \x3d goog.module.get);\n});\nshadow.cljs.devtools.client.env.add_warnings_to_info \x3d (function shadow$cljs$devtools$client$env$add_warnings_to_info(p__22147){\nvar map__22148 \x3d p__22147;\nvar map__22148__$1 \x3d cljs.core.__destructure_map(map__22148);\nvar msg \x3d map__22148__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22148__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nvar warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((function (){var iter__5480__auto__ \x3d (function shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__22154(s__22155){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__22155__$1 \x3d s__22155;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__22155__$1);\nif(temp__5804__auto__){\nvar xs__6360__auto__ \x3d temp__5804__auto__;\nvar map__22167 \x3d cljs.core.first(xs__6360__auto__);\nvar map__22167__$1 \x3d cljs.core.__destructure_map(map__22167);\nvar src \x3d map__22167__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22167__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22167__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src))){\nvar iterys__5476__auto__ \x3d ((function (s__22155__$1,map__22167,map__22167__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__22148,map__22148__$1,msg,info){\nreturn (function shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__22154_$_iter__22156(s__22157){\nreturn (new cljs.core.LazySeq(null,((function (s__22155__$1,map__22167,map__22167__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__22148,map__22148__$1,msg,info){\nreturn (function (){\nvar s__22157__$1 \x3d s__22157;\nwhile(true){\nvar temp__5804__auto____$1 \x3d cljs.core.seq(s__22157__$1);\nif(temp__5804__auto____$1){\nvar s__22157__$2 \x3d temp__5804__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__22157__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__22157__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__22159 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__22158 \x3d (0);\nwhile(true){\nif((i__22158 \x3c size__5479__auto__)){\nvar warning \x3d cljs.core._nth(c__5478__auto__,i__22158);\ncljs.core.chunk_append(b__22159,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name));\n\nvar G__22556 \x3d (i__22158 + (1));\ni__22158 \x3d G__22556;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22159),shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__22154_$_iter__22156(cljs.core.chunk_rest(s__22157__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22159),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__22157__$2);\nreturn cljs.core.cons(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name),shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__22154_$_iter__22156(cljs.core.rest(s__22157__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__22155__$1,map__22167,map__22167__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__22148,map__22148__$1,msg,info))\n,null,null));\n});})(s__22155__$1,map__22167,map__22167__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__22148,map__22148__$1,msg,info))\n;\nvar fs__5477__auto__ \x3d cljs.core.seq(iterys__5476__auto__(warnings));\nif(fs__5477__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5477__auto__,shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__22154(cljs.core.rest(s__22155__$1)));\n} else {\nvar G__22566 \x3d cljs.core.rest(s__22155__$1);\ns__22155__$1 \x3d G__22566;\ncontinue;\n}\n} else {\nvar G__22567 \x3d cljs.core.rest(s__22155__$1);\ns__22155__$1 \x3d G__22567;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424).cljs$core$IFn$_invoke$arity$1(info));\n})()));\nreturn cljs.core.assoc_in(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002),new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651)], null),warnings);\n});\nshadow.cljs.devtools.client.env.custom_notify_types \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22build-complete\x22,\x22build-complete\x22,-501868472),null,new cljs.core.Keyword(null,\x22build-init\x22,\x22build-init\x22,-1115755563),null,new cljs.core.Keyword(null,\x22build-failure\x22,\x22build-failure\x22,-2107487466),null,new cljs.core.Keyword(null,\x22build-start\x22,\x22build-start\x22,-959649480),null], null), null);\nshadow.cljs.devtools.client.env.run_custom_notify_BANG_ \x3d (function shadow$cljs$devtools$client$env$run_custom_notify_BANG_(msg){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.custom_notify_fn)){\nvar fn \x3d goog.getObjectByName(shadow.cljs.devtools.client.env.custom_notify_fn,$CLJS);\nif((!(cljs.core.fn_QMARK_(fn)))){\nreturn console.warn(\x22couldn\x27t find custom :build-notify\x22,shadow.cljs.devtools.client.env.custom_notify_fn);\n} else {\ntry{return (fn.cljs$core$IFn$_invoke$arity$1 ? fn.cljs$core$IFn$_invoke$arity$1(msg) : fn.call(null, msg));\n}catch (e22208){var e \x3d e22208;\nconsole.error(\x22Failed to run custom :build-notify\x22,shadow.cljs.devtools.client.env.custom_notify_fn);\n\nreturn console.error(e);\n}}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.make_task_fn \x3d (function shadow$cljs$devtools$client$env$make_task_fn(p__22209,p__22210){\nvar map__22211 \x3d p__22209;\nvar map__22211__$1 \x3d cljs.core.__destructure_map(map__22211);\nvar log_missing_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22211__$1,new cljs.core.Keyword(null,\x22log-missing-fn\x22,\x22log-missing-fn\x22,732676765));\nvar log_call_async \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22211__$1,new cljs.core.Keyword(null,\x22log-call-async\x22,\x22log-call-async\x22,183826192));\nvar log_call \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22211__$1,new cljs.core.Keyword(null,\x22log-call\x22,\x22log-call\x22,412404391));\nvar map__22216 \x3d p__22210;\nvar map__22216__$1 \x3d cljs.core.__destructure_map(map__22216);\nvar fn_sym \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22216__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_str \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22216__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar async \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22216__$1,new cljs.core.Keyword(null,\x22async\x22,\x22async\x22,1050769601));\nreturn (function (next){\ntry{var fn_obj \x3d goog.getObjectByName(fn_str,$CLJS);\nif((fn_obj \x3d\x3d null)){\nif(cljs.core.truth_(log_missing_fn)){\n(log_missing_fn.cljs$core$IFn$_invoke$arity$1 ? log_missing_fn.cljs$core$IFn$_invoke$arity$1(fn_sym) : log_missing_fn.call(null, fn_sym));\n} else {\n}\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null, ));\n} else {\nif(cljs.core.truth_(async)){\nif(cljs.core.truth_(log_call_async)){\n(log_call_async.cljs$core$IFn$_invoke$arity$1 ? log_call_async.cljs$core$IFn$_invoke$arity$1(fn_sym) : log_call_async.call(null, fn_sym));\n} else {\n}\n\nreturn (fn_obj.cljs$core$IFn$_invoke$arity$1 ? fn_obj.cljs$core$IFn$_invoke$arity$1(next) : fn_obj.call(null, next));\n} else {\nif(cljs.core.truth_(log_call)){\n(log_call.cljs$core$IFn$_invoke$arity$1 ? log_call.cljs$core$IFn$_invoke$arity$1(fn_sym) : log_call.call(null, fn_sym));\n} else {\n}\n\n(fn_obj.cljs$core$IFn$_invoke$arity$0 ? fn_obj.cljs$core$IFn$_invoke$arity$0() : fn_obj.call(null, ));\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null, ));\n\n}\n}\n}catch (e22228){var ex \x3d e22228;\nconsole.warn(\x22error when calling lifecycle function\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym),ex);\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null, ));\n}});\n});\nshadow.cljs.devtools.client.env.do_js_reload_STAR_ \x3d (function shadow$cljs$devtools$client$env$do_js_reload_STAR_(failure_fn,p__22238){\nvar vec__22239 \x3d p__22238;\nvar seq__22240 \x3d cljs.core.seq(vec__22239);\nvar first__22241 \x3d cljs.core.first(seq__22240);\nvar seq__22240__$1 \x3d cljs.core.next(seq__22240);\nvar task \x3d first__22241;\nvar remaining_tasks \x3d seq__22240__$1;\nif(cljs.core.truth_(task)){\ntry{var G__22245 \x3d (function (){\nreturn (shadow.cljs.devtools.client.env.do_js_reload_STAR_.cljs$core$IFn$_invoke$arity$2 ? shadow.cljs.devtools.client.env.do_js_reload_STAR_.cljs$core$IFn$_invoke$arity$2(failure_fn,remaining_tasks) : shadow.cljs.devtools.client.env.do_js_reload_STAR_.call(null, failure_fn,remaining_tasks));\n});\nreturn (task.cljs$core$IFn$_invoke$arity$1 ? task.cljs$core$IFn$_invoke$arity$1(G__22245) : task.call(null, G__22245));\n}catch (e22243){var e \x3d e22243;\nreturn (failure_fn.cljs$core$IFn$_invoke$arity$3 ? failure_fn.cljs$core$IFn$_invoke$arity$3(e,task,remaining_tasks) : failure_fn.call(null, e,task,remaining_tasks));\n}} else {\nreturn null;\n}\n});\n/**\n * should pass the :build-complete message and an additional callback\n * which performs the actual loading of the code (sync)\n * will call all before/after callbacks in order\n */\nshadow.cljs.devtools.client.env.do_js_reload \x3d (function shadow$cljs$devtools$client$env$do_js_reload(var_args){\nvar G__22258 \x3d arguments.length;\nswitch (G__22258) {\ncase 2:\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$2 \x3d (function (msg,load_code_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$3(msg,load_code_fn,(function (){\nreturn null;\n}));\n}));\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$3 \x3d (function (msg,load_code_fn,complete_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4(msg,load_code_fn,complete_fn,(function (error,task,remaining){\nreturn console.warn(\x22JS reload failed\x22,error);\n}));\n}));\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4 \x3d (function (p__22265,load_code_fn,complete_fn,failure_fn){\nvar map__22266 \x3d p__22265;\nvar map__22266__$1 \x3d cljs.core.__destructure_map(map__22266);\nvar msg \x3d map__22266__$1;\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22266__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar load_tasks \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.reverse(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__22250_SHARP_){\nreturn shadow.cljs.devtools.client.env.make_task_fn(msg,p1__22250_SHARP_);\n}),new cljs.core.Keyword(null,\x22before-load\x22,\x22before-load\x22,-2060117064).cljs$core$IFn$_invoke$arity$1(reload_info)))),(function (next){\n(load_code_fn.cljs$core$IFn$_invoke$arity$0 ? load_code_fn.cljs$core$IFn$_invoke$arity$0() : load_code_fn.call(null, ));\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null, ));\n})),cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__22251_SHARP_){\nreturn shadow.cljs.devtools.client.env.make_task_fn(msg,p1__22251_SHARP_);\n})),new cljs.core.Keyword(null,\x22after-load\x22,\x22after-load\x22,-1278503285).cljs$core$IFn$_invoke$arity$1(reload_info)),(function (next){\n(complete_fn.cljs$core$IFn$_invoke$arity$0 ? complete_fn.cljs$core$IFn$_invoke$arity$0() : complete_fn.call(null, ));\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null, ));\n}));\nreturn shadow.cljs.devtools.client.env.do_js_reload_STAR_(failure_fn,load_tasks);\n}));\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$lang$maxFixedArity \x3d 4);\n\nshadow.cljs.devtools.client.env.before_load_src \x3d (function shadow$cljs$devtools$client$env$before_load_src(p__22278){\nvar map__22279 \x3d p__22278;\nvar map__22279__$1 \x3d cljs.core.__destructure_map(map__22279);\nvar src \x3d map__22279__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22279__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22279__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629),type)){\nvar seq__22290 \x3d cljs.core.seq(goog.global.SHADOW_NS_RESET);\nvar chunk__22291 \x3d null;\nvar count__22292 \x3d (0);\nvar i__22293 \x3d (0);\nwhile(true){\nif((i__22293 \x3c count__22292)){\nvar x \x3d chunk__22291.cljs$core$IIndexed$_nth$arity$2(null, i__22293);\n(x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(ns) : x.call(null, ns));\n\n\nvar G__22629 \x3d seq__22290;\nvar G__22630 \x3d chunk__22291;\nvar G__22631 \x3d count__22292;\nvar G__22632 \x3d (i__22293 + (1));\nseq__22290 \x3d G__22629;\nchunk__22291 \x3d G__22630;\ncount__22292 \x3d G__22631;\ni__22293 \x3d G__22632;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22290);\nif(temp__5804__auto__){\nvar seq__22290__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22290__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22290__$1);\nvar G__22637 \x3d cljs.core.chunk_rest(seq__22290__$1);\nvar G__22638 \x3d c__5525__auto__;\nvar G__22639 \x3d cljs.core.count(c__5525__auto__);\nvar G__22640 \x3d (0);\nseq__22290 \x3d G__22637;\nchunk__22291 \x3d G__22638;\ncount__22292 \x3d G__22639;\ni__22293 \x3d G__22640;\ncontinue;\n} else {\nvar x \x3d cljs.core.first(seq__22290__$1);\n(x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(ns) : x.call(null, ns));\n\n\nvar G__22643 \x3d cljs.core.next(seq__22290__$1);\nvar G__22644 \x3d null;\nvar G__22645 \x3d (0);\nvar G__22646 \x3d (0);\nseq__22290 \x3d G__22643;\nchunk__22291 \x3d G__22644;\ncount__22292 \x3d G__22645;\ni__22293 \x3d G__22646;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.goog_is_loaded_QMARK_ \x3d (function shadow$cljs$devtools$client$env$goog_is_loaded_QMARK_(name){\nreturn $CLJS.SHADOW_ENV.isLoaded(name);\n});\nshadow.cljs.devtools.client.env.goog_base_rc \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.build.classpath\x22,\x22resource\x22,\x22shadow.build.classpath/resource\x22,-879517823),\x22goog/base.js\x22], null);\nshadow.cljs.devtools.client.env.src_is_loaded_QMARK_ \x3d (function shadow$cljs$devtools$client$env$src_is_loaded_QMARK_(p__22329){\nvar map__22330 \x3d p__22329;\nvar map__22330__$1 \x3d cljs.core.__destructure_map(map__22330);\nvar src \x3d map__22330__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22330__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22330__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar or__5002__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.goog_base_rc,resource_id);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn shadow.cljs.devtools.client.env.goog_is_loaded_QMARK_(output_name);\n}\n});\nshadow.cljs.devtools.client.env.prefilter_sources \x3d (function shadow$cljs$devtools$client$env$prefilter_sources(reload_info,sources){\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__22341){\nvar map__22342 \x3d p__22341;\nvar map__22342__$1 \x3d cljs.core.__destructure_map(map__22342);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22342__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nreturn cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22never-load\x22,\x22never-load\x22,1300896819).cljs$core$IFn$_invoke$arity$1(reload_info),ns);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__22346){\nvar map__22349 \x3d p__22346;\nvar map__22349__$1 \x3d cljs.core.__destructure_map(map__22349);\nvar rc \x3d map__22349__$1;\nvar module__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22349__$1,new cljs.core.Keyword(null,\x22module\x22,\x22module\x22,1424618191));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22js\x22,shadow.cljs.devtools.client.env.module_format)) || (shadow.cljs.devtools.client.env.module_is_active_QMARK_(module__$1)));\n}),sources));\n});\nshadow.cljs.devtools.client.env.filter_sources_to_get_optimized \x3d (function shadow$cljs$devtools$client$env$filter_sources_to_get_optimized(p__22364,reload_info){\nvar map__22366 \x3d p__22364;\nvar map__22366__$1 \x3d cljs.core.__destructure_map(map__22366);\nvar info \x3d map__22366__$1;\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22366__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar compiled \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22366__$1,new cljs.core.Keyword(null,\x22compiled\x22,\x22compiled\x22,850043082));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__22370){\nvar map__22371 \x3d p__22370;\nvar map__22371__$1 \x3d cljs.core.__destructure_map(map__22371);\nvar src \x3d map__22371__$1;\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22371__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22371__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nreturn ((cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22always-load\x22,\x22always-load\x22,66405637).cljs$core$IFn$_invoke$arity$1(reload_info),ns)) || (((cljs.core.not(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src))) || (((cljs.core.contains_QMARK_(compiled,resource_id)) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src))))))));\n}),shadow.cljs.devtools.client.env.prefilter_sources(reload_info,sources)));\n});\nshadow.cljs.devtools.client.env.filter_sources_to_get_full \x3d (function shadow$cljs$devtools$client$env$filter_sources_to_get_full(p__22395,reload_info){\nvar map__22397 \x3d p__22395;\nvar map__22397__$1 \x3d cljs.core.__destructure_map(map__22397);\nvar info \x3d map__22397__$1;\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22397__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar compiled \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22397__$1,new cljs.core.Keyword(null,\x22compiled\x22,\x22compiled\x22,850043082));\nvar affected \x3d cljs.core.PersistentHashSet.EMPTY;\nvar sources_to_get \x3d cljs.core.PersistentVector.EMPTY;\nvar G__22405 \x3d shadow.cljs.devtools.client.env.prefilter_sources(reload_info,sources);\nvar vec__22406 \x3d G__22405;\nvar seq__22407 \x3d cljs.core.seq(vec__22406);\nvar first__22408 \x3d cljs.core.first(seq__22407);\nvar seq__22407__$1 \x3d cljs.core.next(seq__22407);\nvar src \x3d first__22408;\nvar more \x3d seq__22407__$1;\nvar affected__$1 \x3d affected;\nvar sources_to_get__$1 \x3d sources_to_get;\nvar G__22405__$1 \x3d G__22405;\nwhile(true){\nvar affected__$2 \x3d affected__$1;\nvar sources_to_get__$2 \x3d sources_to_get__$1;\nvar vec__22445 \x3d G__22405__$1;\nvar seq__22446 \x3d cljs.core.seq(vec__22445);\nvar first__22447 \x3d cljs.core.first(seq__22446);\nvar seq__22446__$1 \x3d cljs.core.next(seq__22446);\nvar src__$1 \x3d first__22447;\nvar more__$1 \x3d seq__22446__$1;\nif(cljs.core.not(src__$1)){\nreturn sources_to_get__$2;\n} else {\nvar map__22450 \x3d src__$1;\nvar map__22450__$1 \x3d cljs.core.__destructure_map(map__22450);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22450__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22450__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar deps \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22450__$1,new cljs.core.Keyword(null,\x22deps\x22,\x22deps\x22,1883360319));\nvar provides \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22450__$1,new cljs.core.Keyword(null,\x22provides\x22,\x22provides\x22,-1634397992));\nvar should_reload_QMARK_ \x3d (function (){var or__5002__auto__ \x3d cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\x22always-load\x22,\x22always-load\x22,66405637).cljs$core$IFn$_invoke$arity$1(reload_info),ns);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.core.not(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src__$1));\nif(or__5002__auto____$1){\nreturn or__5002__auto____$1;\n} else {\nvar and__5000__auto__ \x3d (function (){var or__5002__auto____$2 \x3d cljs.core.contains_QMARK_(compiled,resource_id);\nif(or__5002__auto____$2){\nreturn or__5002__auto____$2;\n} else {\nreturn cljs.core.some(affected__$2,deps);\n}\n})();\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src__$1));\n} else {\nreturn and__5000__auto__;\n}\n}\n}\n})();\nif(cljs.core.not(should_reload_QMARK_)){\nvar G__22699 \x3d affected__$2;\nvar G__22700 \x3d sources_to_get__$2;\nvar G__22701 \x3d more__$1;\naffected__$1 \x3d G__22699;\nsources_to_get__$1 \x3d G__22700;\nG__22405__$1 \x3d G__22701;\ncontinue;\n} else {\nvar G__22703 \x3d clojure.set.union.cljs$core$IFn$_invoke$arity$2(affected__$2,provides);\nvar G__22704 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(sources_to_get__$2,src__$1);\nvar G__22705 \x3d more__$1;\naffected__$1 \x3d G__22703;\nsources_to_get__$1 \x3d G__22704;\nG__22405__$1 \x3d G__22705;\ncontinue;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.env.filter_reload_sources \x3d (function shadow$cljs$devtools$client$env$filter_reload_sources(info,reload_info){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22full\x22,shadow.cljs.devtools.client.env.reload_strategy)){\nreturn shadow.cljs.devtools.client.env.filter_sources_to_get_full(info,reload_info);\n} else {\nreturn shadow.cljs.devtools.client.env.filter_sources_to_get_optimized(info,reload_info);\n}\n});\n");
SHADOW_ENV.evalLoad("goog.dom.inputtype.js", true, "goog.provide(\x22goog.dom.InputType\x22);\ngoog.dom.InputType \x3d {BUTTON:\x22button\x22, CHECKBOX:\x22checkbox\x22, COLOR:\x22color\x22, DATE:\x22date\x22, DATETIME:\x22datetime\x22, DATETIME_LOCAL:\x22datetime-local\x22, EMAIL:\x22email\x22, FILE:\x22file\x22, HIDDEN:\x22hidden\x22, IMAGE:\x22image\x22, MENU:\x22menu\x22, MONTH:\x22month\x22, NUMBER:\x22number\x22, PASSWORD:\x22password\x22, RADIO:\x22radio\x22, RANGE:\x22range\x22, RESET:\x22reset\x22, SEARCH:\x22search\x22, SELECT_MULTIPLE:\x22select-multiple\x22, SELECT_ONE:\x22select-one\x22, SUBMIT:\x22submit\x22, TEL:\x22tel\x22, TEXT:\x22text\x22, TEXTAREA:\x22textarea\x22, TIME:\x22time\x22, URL:\x22url\x22, WEEK:\x22week\x22};\n");
SHADOW_ENV.evalLoad("goog.collections.iters.js", true, "goog.loadModule(function(exports) {\n function getIterator(iterable) {\n return iterable[goog.global.Symbol.iterator]();\n }\n function forEach(iterator, f) {\n let result;\n for (; !(result \x3d iterator.next()).done;) {\n f(result.value);\n }\n }\n \x22use strict\x22;\n goog.module(\x22goog.collections.iters\x22);\n goog.module.declareLegacyNamespace();\n exports.getIterator \x3d getIterator;\n exports.forEach \x3d forEach;\n class MapIterator {\n constructor(childIter, mapFn) {\n this.childIterator_ \x3d getIterator(childIter);\n this.mapFn_ \x3d mapFn;\n }\n [Symbol.iterator]() {\n return this;\n }\n next() {\n const childResult \x3d this.childIterator_.next();\n return {value:childResult.done ? undefined : this.mapFn_.call(undefined, childResult.value), done:childResult.done};\n }\n }\n exports.map \x3d function(iterable, f) {\n return new MapIterator(iterable, f);\n };\n class FilterIterator {\n constructor(childIter, filterFn) {\n this.childIter_ \x3d getIterator(childIter);\n this.filterFn_ \x3d filterFn;\n }\n [Symbol.iterator]() {\n return this;\n }\n next() {\n for (; true;) {\n const childResult \x3d this.childIter_.next();\n if (childResult.done) {\n return {done:true, value:undefined};\n }\n const passesFilter \x3d this.filterFn_.call(undefined, childResult.value);\n if (passesFilter) {\n return childResult;\n }\n }\n }\n }\n exports.filter \x3d function(iterable, f) {\n return new FilterIterator(iterable, f);\n };\n class ConcatIterator {\n constructor(iterators) {\n this.iterators_ \x3d iterators;\n this.iterIndex_ \x3d 0;\n }\n [Symbol.iterator]() {\n return this;\n }\n next() {\n for (; this.iterIndex_ \x3c this.iterators_.length;) {\n const result \x3d this.iterators_[this.iterIndex_].next();\n if (!result.done) {\n return result;\n }\n this.iterIndex_++;\n }\n return {done:true};\n }\n }\n exports.concat \x3d function(...iterables) {\n return new ConcatIterator(iterables.map(getIterator));\n };\n exports.toArray \x3d function(iterator) {\n const arr \x3d [];\n forEach(iterator, e \x3d\x3e {\n return arr.push(e);\n });\n return arr;\n };\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.debug.errorcontext.js", true, "goog.provide(\x22goog.debug.errorcontext\x22);\ngoog.debug.errorcontext.addErrorContext \x3d function(err, contextKey, contextValue) {\n if (!err[goog.debug.errorcontext.CONTEXT_KEY_]) {\n err[goog.debug.errorcontext.CONTEXT_KEY_] \x3d {};\n }\n err[goog.debug.errorcontext.CONTEXT_KEY_][contextKey] \x3d contextValue;\n};\ngoog.debug.errorcontext.getErrorContext \x3d function(err) {\n return err[goog.debug.errorcontext.CONTEXT_KEY_] || {};\n};\ngoog.debug.errorcontext.CONTEXT_KEY_ \x3d \x22__closure__error__context__984382\x22;\n");
SHADOW_ENV.evalLoad("goog.debug.debug.js", true, "goog.provide(\x22goog.debug\x22);\ngoog.require(\x22goog.array\x22);\ngoog.require(\x22goog.debug.errorcontext\x22);\ngoog.debug.LOGGING_ENABLED \x3d goog.define(\x22goog.debug.LOGGING_ENABLED\x22, goog.DEBUG);\ngoog.debug.FORCE_SLOPPY_STACKS \x3d goog.define(\x22goog.debug.FORCE_SLOPPY_STACKS\x22, false);\ngoog.debug.CHECK_FOR_THROWN_EVENT \x3d goog.define(\x22goog.debug.CHECK_FOR_THROWN_EVENT\x22, false);\ngoog.debug.catchErrors \x3d function(logFunc, opt_cancel, opt_target) {\n var target \x3d opt_target || goog.global;\n var oldErrorHandler \x3d target.onerror;\n var retVal \x3d !!opt_cancel;\n target.onerror \x3d function(message, url, line, opt_col, opt_error) {\n if (oldErrorHandler) {\n oldErrorHandler(message, url, line, opt_col, opt_error);\n }\n logFunc({message:message, fileName:url, line:line, lineNumber:line, col:opt_col, error:opt_error});\n return retVal;\n };\n};\ngoog.debug.expose \x3d function(obj, opt_showFn) {\n if (typeof obj \x3d\x3d \x22undefined\x22) {\n return \x22undefined\x22;\n }\n if (obj \x3d\x3d null) {\n return \x22NULL\x22;\n }\n var str \x3d [];\n var x;\n for (x in obj) {\n if (!opt_showFn \x26\x26 typeof obj[x] \x3d\x3d\x3d \x22function\x22) {\n continue;\n }\n var s \x3d x + \x22 \\x3d \x22;\n try {\n s \x3d s + obj[x];\n } catch (e) {\n s \x3d s + (\x22*** \x22 + e + \x22 ***\x22);\n }\n str.push(s);\n }\n return str.join(\x22\\n\x22);\n};\ngoog.debug.deepExpose \x3d function(obj, opt_showFn) {\n var str \x3d [];\n var uidsToCleanup \x3d [];\n var ancestorUids \x3d {};\n var helper \x3d function(obj, space) {\n var nestspace \x3d space + \x22 \x22;\n var indentMultiline \x3d function(str) {\n return str.replace(/\\n/g, \x22\\n\x22 + space);\n };\n try {\n if (obj \x3d\x3d\x3d undefined) {\n str.push(\x22undefined\x22);\n } else if (obj \x3d\x3d\x3d null) {\n str.push(\x22NULL\x22);\n } else if (typeof obj \x3d\x3d\x3d \x22string\x22) {\n str.push(\x27\x22\x27 + indentMultiline(obj) + \x27\x22\x27);\n } else if (typeof obj \x3d\x3d\x3d \x22function\x22) {\n str.push(indentMultiline(String(obj)));\n } else if (goog.isObject(obj)) {\n if (!goog.hasUid(obj)) {\n uidsToCleanup.push(obj);\n }\n var uid \x3d goog.getUid(obj);\n if (ancestorUids[uid]) {\n str.push(\x22*** reference loop detected (id\\x3d\x22 + uid + \x22) ***\x22);\n } else {\n ancestorUids[uid] \x3d true;\n str.push(\x22{\x22);\n var x;\n for (x in obj) {\n if (!opt_showFn \x26\x26 typeof obj[x] \x3d\x3d\x3d \x22function\x22) {\n continue;\n }\n str.push(\x22\\n\x22);\n str.push(nestspace);\n str.push(x + \x22 \\x3d \x22);\n helper(obj[x], nestspace);\n }\n str.push(\x22\\n\x22 + space + \x22}\x22);\n delete ancestorUids[uid];\n }\n } else {\n str.push(obj);\n }\n } catch (e) {\n str.push(\x22*** \x22 + e + \x22 ***\x22);\n }\n };\n helper(obj, \x22\x22);\n var i \x3d 0;\n for (; i \x3c uidsToCleanup.length; i++) {\n goog.removeUid(uidsToCleanup[i]);\n }\n return str.join(\x22\x22);\n};\ngoog.debug.exposeArray \x3d function(arr) {\n var str \x3d [];\n var i \x3d 0;\n for (; i \x3c arr.length; i++) {\n if (Array.isArray(arr[i])) {\n str.push(goog.debug.exposeArray(arr[i]));\n } else {\n str.push(arr[i]);\n }\n }\n return \x22[ \x22 + str.join(\x22, \x22) + \x22 ]\x22;\n};\ngoog.debug.normalizeErrorObject \x3d function(err) {\n var href \x3d goog.getObjectByName(\x22window.location.href\x22);\n if (err \x3d\x3d null) {\n err \x3d \x27Unknown Error of type \x22null/undefined\x22\x27;\n }\n if (typeof err \x3d\x3d\x3d \x22string\x22) {\n return {\x22message\x22:err, \x22name\x22:\x22Unknown error\x22, \x22lineNumber\x22:\x22Not available\x22, \x22fileName\x22:href, \x22stack\x22:\x22Not available\x22};\n }\n var lineNumber;\n var fileName;\n var threwError \x3d false;\n try {\n lineNumber \x3d err.lineNumber || err.line || \x22Not available\x22;\n } catch (e) {\n lineNumber \x3d \x22Not available\x22;\n threwError \x3d true;\n }\n try {\n fileName \x3d err.fileName || err.filename || err.sourceURL || goog.global[\x22$googDebugFname\x22] || href;\n } catch (e) {\n fileName \x3d \x22Not available\x22;\n threwError \x3d true;\n }\n var stack \x3d goog.debug.serializeErrorStack_(err);\n if (threwError || !err.lineNumber || !err.fileName || !err.stack || !err.message || !err.name) {\n var message \x3d err.message;\n if (message \x3d\x3d null) {\n if (err.constructor \x26\x26 err.constructor instanceof Function) {\n var ctorName \x3d err.constructor.name ? err.constructor.name : goog.debug.getFunctionName(err.constructor);\n message \x3d \x27Unknown Error of type \x22\x27 + ctorName + \x27\x22\x27;\n if (goog.debug.CHECK_FOR_THROWN_EVENT \x26\x26 ctorName \x3d\x3d \x22Event\x22) {\n try {\n message \x3d message + \x27 with Event.type \x22\x27 + (err.type || \x22\x22) + \x27\x22\x27;\n } catch (e) {\n }\n }\n } else {\n message \x3d \x22Unknown Error of unknown type\x22;\n }\n if (typeof err.toString \x3d\x3d\x3d \x22function\x22 \x26\x26 Object.prototype.toString !\x3d\x3d err.toString) {\n message \x3d message + (\x22: \x22 + err.toString());\n }\n }\n return {\x22message\x22:message, \x22name\x22:err.name || \x22UnknownError\x22, \x22lineNumber\x22:lineNumber, \x22fileName\x22:fileName, \x22stack\x22:stack || \x22Not available\x22};\n }\n err.stack \x3d stack;\n return {\x22message\x22:err.message, \x22name\x22:err.name, \x22lineNumber\x22:err.lineNumber, \x22fileName\x22:err.fileName, \x22stack\x22:err.stack};\n};\ngoog.debug.serializeErrorStack_ \x3d function(e, seen) {\n if (!seen) {\n seen \x3d {};\n }\n seen[goog.debug.serializeErrorAsKey_(e)] \x3d true;\n var stack \x3d e[\x22stack\x22] || \x22\x22;\n var cause \x3d e.cause;\n if (cause \x26\x26 !seen[goog.debug.serializeErrorAsKey_(cause)]) {\n stack \x3d stack + \x22\\nCaused by: \x22;\n if (!cause.stack || cause.stack.indexOf(cause.toString()) !\x3d 0) {\n stack \x3d stack + (typeof cause \x3d\x3d\x3d \x22string\x22 ? cause : cause.message + \x22\\n\x22);\n }\n stack \x3d stack + goog.debug.serializeErrorStack_(cause, seen);\n }\n return stack;\n};\ngoog.debug.serializeErrorAsKey_ \x3d function(e) {\n var keyPrefix \x3d \x22\x22;\n if (typeof e.toString \x3d\x3d\x3d \x22function\x22) {\n keyPrefix \x3d \x22\x22 + e;\n }\n return keyPrefix + e[\x22stack\x22];\n};\ngoog.debug.enhanceError \x3d function(err, opt_message) {\n var error;\n if (!(err instanceof Error)) {\n error \x3d Error(err);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(error, goog.debug.enhanceError);\n }\n } else {\n error \x3d err;\n }\n if (!error.stack) {\n error.stack \x3d goog.debug.getStacktrace(goog.debug.enhanceError);\n }\n if (opt_message) {\n var x \x3d 0;\n for (; error[\x22message\x22 + x];) {\n ++x;\n }\n error[\x22message\x22 + x] \x3d String(opt_message);\n }\n return error;\n};\ngoog.debug.enhanceErrorWithContext \x3d function(err, opt_context) {\n var error \x3d goog.debug.enhanceError(err);\n if (opt_context) {\n var key;\n for (key in opt_context) {\n goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]);\n }\n }\n return error;\n};\ngoog.debug.getStacktraceSimple \x3d function(opt_depth) {\n if (!goog.debug.FORCE_SLOPPY_STACKS) {\n var stack \x3d goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple);\n if (stack) {\n return stack;\n }\n }\n var sb \x3d [];\n var fn \x3d arguments.callee.caller;\n var depth \x3d 0;\n for (; fn \x26\x26 (!opt_depth || depth \x3c opt_depth);) {\n sb.push(goog.debug.getFunctionName(fn));\n sb.push(\x22()\\n\x22);\n try {\n fn \x3d fn.caller;\n } catch (e) {\n sb.push(\x22[exception trying to get caller]\\n\x22);\n break;\n }\n depth++;\n if (depth \x3e\x3d goog.debug.MAX_STACK_DEPTH) {\n sb.push(\x22[...long stack...]\x22);\n break;\n }\n }\n if (opt_depth \x26\x26 depth \x3e\x3d opt_depth) {\n sb.push(\x22[...reached max depth limit...]\x22);\n } else {\n sb.push(\x22[end]\x22);\n }\n return sb.join(\x22\x22);\n};\ngoog.debug.MAX_STACK_DEPTH \x3d 50;\ngoog.debug.getNativeStackTrace_ \x3d function(fn) {\n var tempErr \x3d new Error();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(tempErr, fn);\n return String(tempErr.stack);\n } else {\n try {\n throw tempErr;\n } catch (e) {\n tempErr \x3d e;\n }\n var stack \x3d tempErr.stack;\n if (stack) {\n return String(stack);\n }\n }\n return null;\n};\ngoog.debug.getStacktrace \x3d function(fn) {\n var stack;\n if (!goog.debug.FORCE_SLOPPY_STACKS) {\n var contextFn \x3d fn || goog.debug.getStacktrace;\n stack \x3d goog.debug.getNativeStackTrace_(contextFn);\n }\n if (!stack) {\n stack \x3d goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, []);\n }\n return stack;\n};\ngoog.debug.getStacktraceHelper_ \x3d function(fn, visited) {\n var sb \x3d [];\n if (goog.array.contains(visited, fn)) {\n sb.push(\x22[...circular reference...]\x22);\n } else if (fn \x26\x26 visited.length \x3c goog.debug.MAX_STACK_DEPTH) {\n sb.push(goog.debug.getFunctionName(fn) + \x22(\x22);\n var args \x3d fn.arguments;\n var i \x3d 0;\n for (; args \x26\x26 i \x3c args.length; i++) {\n if (i \x3e 0) {\n sb.push(\x22, \x22);\n }\n var argDesc;\n var arg \x3d args[i];\n switch(typeof arg) {\n case \x22object\x22:\n argDesc \x3d arg ? \x22object\x22 : \x22null\x22;\n break;\n case \x22string\x22:\n argDesc \x3d arg;\n break;\n case \x22number\x22:\n argDesc \x3d String(arg);\n break;\n case \x22boolean\x22:\n argDesc \x3d arg ? \x22true\x22 : \x22false\x22;\n break;\n case \x22function\x22:\n argDesc \x3d goog.debug.getFunctionName(arg);\n argDesc \x3d argDesc ? argDesc : \x22[fn]\x22;\n break;\n case \x22undefined\x22:\n default:\n argDesc \x3d typeof arg;\n break;\n }\n if (argDesc.length \x3e 40) {\n argDesc \x3d argDesc.slice(0, 40) + \x22...\x22;\n }\n sb.push(argDesc);\n }\n visited.push(fn);\n sb.push(\x22)\\n\x22);\n try {\n sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited));\n } catch (e) {\n sb.push(\x22[exception trying to get caller]\\n\x22);\n }\n } else if (fn) {\n sb.push(\x22[...long stack...]\x22);\n } else {\n sb.push(\x22[end]\x22);\n }\n return sb.join(\x22\x22);\n};\ngoog.debug.getFunctionName \x3d function(fn) {\n if (goog.debug.fnNameCache_[fn]) {\n return goog.debug.fnNameCache_[fn];\n }\n var functionSource \x3d String(fn);\n if (!goog.debug.fnNameCache_[functionSource]) {\n var matches \x3d /function\\s+([^\\(]+)/m.exec(functionSource);\n if (matches) {\n var method \x3d matches[1];\n goog.debug.fnNameCache_[functionSource] \x3d method;\n } else {\n goog.debug.fnNameCache_[functionSource] \x3d \x22[Anonymous]\x22;\n }\n }\n return goog.debug.fnNameCache_[functionSource];\n};\ngoog.debug.makeWhitespaceVisible \x3d function(string) {\n return string.replace(/ /g, \x22[_]\x22).replace(/\\f/g, \x22[f]\x22).replace(/\\n/g, \x22[n]\\n\x22).replace(/\\r/g, \x22[r]\x22).replace(/\\t/g, \x22[t]\x22);\n};\ngoog.debug.runtimeType \x3d function(value) {\n if (value instanceof Function) {\n return value.displayName || value.name || \x22unknown type name\x22;\n } else if (value instanceof Object) {\n return value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value);\n } else {\n return value \x3d\x3d\x3d null ? \x22null\x22 : typeof value;\n }\n};\ngoog.debug.fnNameCache_ \x3d {};\ngoog.debug.freezeInternal_ \x3d goog.DEBUG \x26\x26 Object.freeze || function(arg) {\n return arg;\n};\ngoog.debug.freeze \x3d function(arg) {\n return {valueOf:function() {\n return goog.debug.freezeInternal_(arg);\n }}.valueOf();\n};\n");
SHADOW_ENV.evalLoad("goog.iter.iter.js", true, "goog.provide(\x22goog.iter\x22);\ngoog.provide(\x22goog.iter.Iterable\x22);\ngoog.provide(\x22goog.iter.Iterator\x22);\ngoog.require(\x22goog.array\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.debug\x22);\ngoog.require(\x22goog.functions\x22);\ngoog.require(\x22goog.math\x22);\ngoog.iter.Iterable;\ngoog.iter.Iterator \x3d function() {\n};\ngoog.iter.Iterator.prototype.next \x3d function() {\n return goog.iter.ES6_ITERATOR_DONE;\n};\ngoog.iter.ES6_ITERATOR_DONE \x3d goog.debug.freeze({done:true, value:undefined});\ngoog.iter.createEs6IteratorYield \x3d function(value) {\n return {value, done:false};\n};\ngoog.iter.Iterator.prototype.__iterator__ \x3d function(opt_keys) {\n return this;\n};\ngoog.iter.toIterator \x3d function(iterable) {\n if (iterable instanceof goog.iter.Iterator) {\n return iterable;\n }\n if (typeof iterable.__iterator__ \x3d\x3d \x22function\x22) {\n return iterable.__iterator__(false);\n }\n if (goog.isArrayLike(iterable)) {\n const like \x3d iterable;\n let i \x3d 0;\n const newIter \x3d new goog.iter.Iterator();\n newIter.next \x3d function() {\n for (; true;) {\n if (i \x3e\x3d like.length) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n if (!(i in like)) {\n i++;\n continue;\n }\n return goog.iter.createEs6IteratorYield(like[i++]);\n }\n };\n return newIter;\n }\n throw new Error(\x22Not implemented\x22);\n};\ngoog.iter.forEach \x3d function(iterable, f, opt_obj) {\n if (goog.isArrayLike(iterable)) {\n goog.array.forEach(iterable, f, opt_obj);\n } else {\n const iterator \x3d goog.iter.toIterator(iterable);\n for (; true;) {\n const {done, value} \x3d iterator.next();\n if (done) {\n return;\n }\n f.call(opt_obj, value, undefined, iterator);\n }\n }\n};\ngoog.iter.filter \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n const newIter \x3d new goog.iter.Iterator();\n newIter.next \x3d function() {\n for (; true;) {\n const {done, value} \x3d iterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n if (f.call(opt_obj, value, undefined, iterator)) {\n return goog.iter.createEs6IteratorYield(value);\n }\n }\n };\n return newIter;\n};\ngoog.iter.filterFalse \x3d function(iterable, f, opt_obj) {\n return goog.iter.filter(iterable, goog.functions.not(f), opt_obj);\n};\ngoog.iter.range \x3d function(startOrStop, opt_stop, opt_step) {\n let start \x3d 0;\n let stop \x3d startOrStop;\n let step \x3d opt_step || 1;\n if (arguments.length \x3e 1) {\n start \x3d startOrStop;\n stop \x3d +opt_stop;\n }\n if (step \x3d\x3d 0) {\n throw new Error(\x22Range step argument must not be zero\x22);\n }\n const newIter \x3d new goog.iter.Iterator();\n newIter.next \x3d function() {\n if (step \x3e 0 \x26\x26 start \x3e\x3d stop || step \x3c 0 \x26\x26 start \x3c\x3d stop) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const rv \x3d start;\n start \x3d start + step;\n return goog.iter.createEs6IteratorYield(rv);\n };\n return newIter;\n};\ngoog.iter.join \x3d function(iterable, deliminator) {\n return goog.iter.toArray(iterable).join(deliminator);\n};\ngoog.iter.map \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n const newIter \x3d new goog.iter.Iterator();\n newIter.next \x3d function() {\n const {done, value} \x3d iterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const mappedVal \x3d f.call(opt_obj, value, undefined, iterator);\n return goog.iter.createEs6IteratorYield(mappedVal);\n };\n return newIter;\n};\ngoog.iter.reduce \x3d function(iterable, f, val, opt_obj) {\n let rval \x3d val;\n goog.iter.forEach(iterable, function(val) {\n rval \x3d f.call(opt_obj, rval, val);\n });\n return rval;\n};\ngoog.iter.some \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n for (; true;) {\n const {done, value} \x3d iterator.next();\n if (done) {\n return false;\n }\n if (f.call(opt_obj, value, undefined, iterator)) {\n return true;\n }\n }\n};\ngoog.iter.every \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n for (; true;) {\n const {done, value} \x3d iterator.next();\n if (done) {\n return true;\n }\n if (!f.call(opt_obj, value, undefined, iterator)) {\n return false;\n }\n }\n};\ngoog.iter.chain \x3d function(var_args) {\n return goog.iter.chainFromIterable(arguments);\n};\ngoog.iter.chainFromIterable \x3d function(iterable) {\n const iteratorOfIterators \x3d goog.iter.toIterator(iterable);\n const iter \x3d new goog.iter.Iterator();\n let current \x3d null;\n iter.next \x3d function() {\n for (; true;) {\n if (current \x3d\x3d null) {\n const it \x3d iteratorOfIterators.next();\n if (it.done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const value \x3d it.value;\n current \x3d goog.iter.toIterator(value);\n }\n const it \x3d current.next();\n if (it.done) {\n current \x3d null;\n continue;\n }\n const value \x3d it.value;\n return goog.iter.createEs6IteratorYield(value);\n }\n };\n return iter;\n};\ngoog.iter.dropWhile \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n const newIter \x3d new goog.iter.Iterator();\n let dropping \x3d true;\n newIter.next \x3d function() {\n for (; true;) {\n const {done, value} \x3d iterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n if (dropping \x26\x26 f.call(opt_obj, value, undefined, iterator)) {\n continue;\n } else {\n dropping \x3d false;\n }\n return goog.iter.createEs6IteratorYield(value);\n }\n };\n return newIter;\n};\ngoog.iter.takeWhile \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n const {done, value} \x3d iterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n if (f.call(opt_obj, value, undefined, iterator)) {\n return goog.iter.createEs6IteratorYield(value);\n }\n return goog.iter.ES6_ITERATOR_DONE;\n };\n return iter;\n};\ngoog.iter.toArray \x3d function(iterable) {\n if (goog.isArrayLike(iterable)) {\n return goog.array.toArray(iterable);\n }\n iterable \x3d goog.iter.toIterator(iterable);\n const array \x3d [];\n goog.iter.forEach(iterable, function(val) {\n array.push(val);\n });\n return array;\n};\ngoog.iter.equals \x3d function(iterable1, iterable2, opt_equalsFn) {\n const fillValue \x3d {};\n const pairs \x3d goog.iter.zipLongest(fillValue, iterable1, iterable2);\n const equalsFn \x3d opt_equalsFn || goog.array.defaultCompareEquality;\n return goog.iter.every(pairs, function(pair) {\n return equalsFn(pair[0], pair[1]);\n });\n};\ngoog.iter.nextOrValue \x3d function(iterable, defaultValue) {\n const iterator \x3d goog.iter.toIterator(iterable);\n const {done, value} \x3d iterator.next();\n if (done) {\n return defaultValue;\n }\n return value;\n};\ngoog.iter.product \x3d function(var_args) {\n const someArrayEmpty \x3d Array.prototype.some.call(arguments, function(arr) {\n return !arr.length;\n });\n if (someArrayEmpty || !arguments.length) {\n return new goog.iter.Iterator();\n }\n const iter \x3d new goog.iter.Iterator();\n const arrays \x3d arguments;\n let indices \x3d goog.array.repeat(0, arrays.length);\n iter.next \x3d function() {\n if (indices) {\n const retVal \x3d goog.array.map(indices, function(valueIndex, arrayIndex) {\n return arrays[arrayIndex][valueIndex];\n });\n for (let i \x3d indices.length - 1; i \x3e\x3d 0; i--) {\n goog.asserts.assert(indices);\n if (indices[i] \x3c arrays[i].length - 1) {\n indices[i]++;\n break;\n }\n if (i \x3d\x3d 0) {\n indices \x3d null;\n break;\n }\n indices[i] \x3d 0;\n }\n return goog.iter.createEs6IteratorYield(retVal);\n }\n return goog.iter.ES6_ITERATOR_DONE;\n };\n return iter;\n};\ngoog.iter.cycle \x3d function(iterable) {\n const baseIterator \x3d goog.iter.toIterator(iterable);\n const cache \x3d [];\n let cacheIndex \x3d 0;\n const iter \x3d new goog.iter.Iterator();\n let useCache \x3d false;\n iter.next \x3d function() {\n let returnElement \x3d null;\n if (!useCache) {\n const it \x3d baseIterator.next();\n if (it.done) {\n if (goog.array.isEmpty(cache)) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n useCache \x3d true;\n } else {\n cache.push(it.value);\n return it;\n }\n }\n returnElement \x3d cache[cacheIndex];\n cacheIndex \x3d (cacheIndex + 1) % cache.length;\n return goog.iter.createEs6IteratorYield(returnElement);\n };\n return iter;\n};\ngoog.iter.count \x3d function(opt_start, opt_step) {\n let counter \x3d opt_start || 0;\n const step \x3d opt_step !\x3d\x3d undefined ? opt_step : 1;\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n const returnValue \x3d counter;\n counter \x3d counter + step;\n return goog.iter.createEs6IteratorYield(returnValue);\n };\n return iter;\n};\ngoog.iter.repeat \x3d function(value) {\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n return goog.iter.createEs6IteratorYield(value);\n };\n return iter;\n};\ngoog.iter.accumulate \x3d function(iterable) {\n const iterator \x3d goog.iter.toIterator(iterable);\n let total \x3d 0;\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n const {done, value} \x3d iterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n total \x3d total + value;\n return goog.iter.createEs6IteratorYield(total);\n };\n return iter;\n};\ngoog.iter.zip \x3d function(var_args) {\n const args \x3d arguments;\n const iter \x3d new goog.iter.Iterator();\n if (args.length \x3e 0) {\n const iterators \x3d goog.array.map(args, goog.iter.toIterator);\n let allDone \x3d false;\n iter.next \x3d function() {\n if (allDone) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const arr \x3d [];\n for (let i \x3d 0, iterator; iterator \x3d iterators[i++];) {\n const it \x3d iterator.next();\n if (it.done) {\n allDone \x3d true;\n return goog.iter.ES6_ITERATOR_DONE;\n }\n arr.push(it.value);\n }\n return goog.iter.createEs6IteratorYield(arr);\n };\n }\n return iter;\n};\ngoog.iter.zipLongest \x3d function(fillValue, var_args) {\n const args \x3d Array.prototype.slice.call(arguments, 1);\n const iter \x3d new goog.iter.Iterator();\n if (args.length \x3e 0) {\n const iterators \x3d goog.array.map(args, goog.iter.toIterator);\n let allDone \x3d false;\n iter.next \x3d function() {\n if (allDone) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n let iteratorsHaveValues \x3d false;\n const arr \x3d [];\n for (let i \x3d 0, iterator; iterator \x3d iterators[i++];) {\n const it \x3d iterator.next();\n if (it.done) {\n arr.push(fillValue);\n continue;\n }\n arr.push(it.value);\n iteratorsHaveValues \x3d true;\n }\n if (!iteratorsHaveValues) {\n allDone \x3d true;\n return goog.iter.ES6_ITERATOR_DONE;\n }\n return goog.iter.createEs6IteratorYield(arr);\n };\n }\n return iter;\n};\ngoog.iter.compress \x3d function(iterable, selectors) {\n const valueIterator \x3d goog.iter.toIterator(iterable);\n const selectorIterator \x3d goog.iter.toIterator(selectors);\n const iter \x3d new goog.iter.Iterator();\n let allDone \x3d false;\n iter.next \x3d function() {\n if (allDone) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n for (; true;) {\n const valIt \x3d valueIterator.next();\n if (valIt.done) {\n allDone \x3d true;\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const selectorIt \x3d selectorIterator.next();\n if (selectorIt.done) {\n allDone \x3d true;\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const val \x3d valIt.value;\n const selectorVal \x3d selectorIt.value;\n if (selectorVal) {\n return goog.iter.createEs6IteratorYield(val);\n }\n }\n };\n return iter;\n};\ngoog.iter.GroupByIterator_ \x3d function(iterable, opt_keyFunc) {\n this.iterator \x3d goog.iter.toIterator(iterable);\n this.keyFunc \x3d opt_keyFunc || goog.functions.identity;\n this.targetKey;\n this.currentKey;\n this.currentValue;\n};\ngoog.inherits(goog.iter.GroupByIterator_, goog.iter.Iterator);\ngoog.iter.GroupByIterator_.prototype.next \x3d function() {\n for (; this.currentKey \x3d\x3d this.targetKey;) {\n const it \x3d this.iterator.next();\n if (it.done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n this.currentValue \x3d it.value;\n this.currentKey \x3d this.keyFunc(this.currentValue);\n }\n this.targetKey \x3d this.currentKey;\n return goog.iter.createEs6IteratorYield([this.currentKey, this.groupItems_(this.targetKey)]);\n};\ngoog.iter.GroupByIterator_.prototype.groupItems_ \x3d function(targetKey) {\n const arr \x3d [];\n for (; this.currentKey \x3d\x3d targetKey;) {\n arr.push(this.currentValue);\n const it \x3d this.iterator.next();\n if (it.done) {\n break;\n }\n this.currentValue \x3d it.value;\n this.currentKey \x3d this.keyFunc(this.currentValue);\n }\n return arr;\n};\ngoog.iter.groupBy \x3d function(iterable, opt_keyFunc) {\n return new goog.iter.GroupByIterator_(iterable, opt_keyFunc);\n};\ngoog.iter.starMap \x3d function(iterable, f, opt_obj) {\n const iterator \x3d goog.iter.toIterator(iterable);\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n const it \x3d iterator.next();\n if (it.done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n const args \x3d goog.iter.toArray(it.value);\n const value \x3d f.apply(opt_obj, [].concat(args, undefined, iterator));\n return goog.iter.createEs6IteratorYield(value);\n };\n return iter;\n};\ngoog.iter.tee \x3d function(iterable, opt_num) {\n function addNextIteratorValueToBuffers() {\n const {done, value} \x3d iterator.next();\n if (done) {\n return false;\n }\n for (let i \x3d 0, buffer; buffer \x3d buffers[i++];) {\n buffer.push(value);\n }\n return true;\n }\n function createIterator(buffer) {\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n if (goog.array.isEmpty(buffer)) {\n const added \x3d addNextIteratorValueToBuffers();\n if (!added) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n }\n goog.asserts.assert(!goog.array.isEmpty(buffer));\n return goog.iter.createEs6IteratorYield(buffer.shift());\n };\n return iter;\n }\n const iterator \x3d goog.iter.toIterator(iterable);\n const num \x3d typeof opt_num \x3d\x3d\x3d \x22number\x22 ? opt_num : 2;\n const buffers \x3d goog.array.map(goog.array.range(num), function() {\n return [];\n });\n return goog.array.map(buffers, createIterator);\n};\ngoog.iter.enumerate \x3d function(iterable, opt_start) {\n return goog.iter.zip(goog.iter.count(opt_start), iterable);\n};\ngoog.iter.limit \x3d function(iterable, limitSize) {\n goog.asserts.assert(goog.math.isInt(limitSize) \x26\x26 limitSize \x3e\x3d 0);\n const iterator \x3d goog.iter.toIterator(iterable);\n const iter \x3d new goog.iter.Iterator();\n let remaining \x3d limitSize;\n iter.next \x3d function() {\n if (remaining-- \x3e 0) {\n return iterator.next();\n }\n return goog.iter.ES6_ITERATOR_DONE;\n };\n return iter;\n};\ngoog.iter.consume \x3d function(iterable, count) {\n goog.asserts.assert(goog.math.isInt(count) \x26\x26 count \x3e\x3d 0);\n const iterator \x3d goog.iter.toIterator(iterable);\n for (; count-- \x3e 0;) {\n goog.iter.nextOrValue(iterator, null);\n }\n return iterator;\n};\ngoog.iter.slice \x3d function(iterable, start, opt_end) {\n goog.asserts.assert(goog.math.isInt(start) \x26\x26 start \x3e\x3d 0);\n let iterator \x3d goog.iter.consume(iterable, start);\n if (typeof opt_end \x3d\x3d\x3d \x22number\x22) {\n goog.asserts.assert(goog.math.isInt(opt_end) \x26\x26 opt_end \x3e\x3d start);\n iterator \x3d goog.iter.limit(iterator, opt_end - start);\n }\n return iterator;\n};\ngoog.iter.hasDuplicates_ \x3d function(arr) {\n const deduped \x3d [];\n goog.array.removeDuplicates(arr, deduped);\n return arr.length !\x3d deduped.length;\n};\ngoog.iter.permutations \x3d function(iterable, opt_length) {\n const elements \x3d goog.iter.toArray(iterable);\n const length \x3d typeof opt_length \x3d\x3d\x3d \x22number\x22 ? opt_length : elements.length;\n const sets \x3d goog.array.repeat(elements, length);\n const product \x3d goog.iter.product.apply(undefined, sets);\n return goog.iter.filter(product, function(arr) {\n return !goog.iter.hasDuplicates_(arr);\n });\n};\ngoog.iter.combinations \x3d function(iterable, length) {\n function getIndexFromElements(index) {\n return elements[index];\n }\n const elements \x3d goog.iter.toArray(iterable);\n const indexes \x3d goog.iter.range(elements.length);\n const indexIterator \x3d goog.iter.permutations(indexes, length);\n const sortedIndexIterator \x3d goog.iter.filter(indexIterator, function(arr) {\n return goog.array.isSorted(arr);\n });\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n const {done, value} \x3d sortedIndexIterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n return goog.iter.createEs6IteratorYield(goog.array.map(value, getIndexFromElements));\n };\n return iter;\n};\ngoog.iter.combinationsWithReplacement \x3d function(iterable, length) {\n function getIndexFromElements(index) {\n return elements[index];\n }\n const elements \x3d goog.iter.toArray(iterable);\n const indexes \x3d goog.array.range(elements.length);\n const sets \x3d goog.array.repeat(indexes, length);\n const indexIterator \x3d goog.iter.product.apply(undefined, sets);\n const sortedIndexIterator \x3d goog.iter.filter(indexIterator, function(arr) {\n return goog.array.isSorted(arr);\n });\n const iter \x3d new goog.iter.Iterator();\n iter.next \x3d function() {\n const {done, value} \x3d sortedIndexIterator.next();\n if (done) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n return goog.iter.createEs6IteratorYield(goog.array.map(value, getIndexFromElements));\n };\n return iter;\n};\n");
SHADOW_ENV.evalLoad("goog.iter.es6.js", true, "goog.loadModule(function(exports) {\n \x22use strict\x22;\n goog.module(\x22goog.iter.es6\x22);\n goog.module.declareLegacyNamespace();\n const GoogIterable \x3d goog.require(\x22goog.iter.Iterable\x22);\n const GoogIterator \x3d goog.require(\x22goog.iter.Iterator\x22);\n class ShimIterable {\n __iterator__() {\n }\n toGoog() {\n }\n toEs6() {\n }\n static of(iter) {\n if (iter instanceof ShimIterableImpl || iter instanceof ShimGoogIterator || iter instanceof ShimEs6Iterator) {\n return iter;\n } else if (typeof iter.next \x3d\x3d \x22function\x22) {\n return new ShimIterableImpl(() \x3d\x3e {\n return iter;\n });\n } else if (typeof iter[Symbol.iterator] \x3d\x3d \x22function\x22) {\n return new ShimIterableImpl(() \x3d\x3e {\n return iter[Symbol.iterator]();\n });\n } else if (typeof iter.__iterator__ \x3d\x3d \x22function\x22) {\n return new ShimIterableImpl(() \x3d\x3e {\n return iter.__iterator__();\n });\n }\n throw new Error(\x22Not an iterator or iterable.\x22);\n }\n }\n class ShimIterableImpl {\n constructor(func) {\n this.func_ \x3d func;\n }\n __iterator__() {\n return new ShimGoogIterator(this.func_());\n }\n toGoog() {\n return new ShimGoogIterator(this.func_());\n }\n [Symbol.iterator]() {\n return new ShimEs6Iterator(this.func_());\n }\n toEs6() {\n return new ShimEs6Iterator(this.func_());\n }\n }\n class ShimGoogIterator extends GoogIterator {\n constructor(iter) {\n super();\n this.iter_ \x3d iter;\n }\n next() {\n return this.iter_.next();\n }\n toGoog() {\n return this;\n }\n [Symbol.iterator]() {\n return new ShimEs6Iterator(this.iter_);\n }\n toEs6() {\n return new ShimEs6Iterator(this.iter_);\n }\n }\n class ShimEs6Iterator extends ShimIterableImpl {\n constructor(iter) {\n super(() \x3d\x3e {\n return iter;\n });\n this.iter_ \x3d iter;\n }\n next() {\n return this.iter_.next();\n }\n }\n exports \x3d {ShimIterable, ShimEs6Iterator, ShimGoogIterator};\n return exports;\n});\n");
SHADOW_ENV.evalLoad("goog.structs.map.js", true, "goog.provide(\x22goog.structs.Map\x22);\ngoog.require(\x22goog.collections.iters\x22);\ngoog.require(\x22goog.iter\x22);\ngoog.require(\x22goog.iter.Iterator\x22);\ngoog.require(\x22goog.iter.es6\x22);\ngoog.structs.Map \x3d function(opt_map, var_args) {\n this.map_ \x3d {};\n this.keys_ \x3d [];\n this.size \x3d 0;\n this.version_ \x3d 0;\n var argLength \x3d arguments.length;\n if (argLength \x3e 1) {\n if (argLength % 2) {\n throw new Error(\x22Uneven number of arguments\x22);\n }\n var i \x3d 0;\n for (; i \x3c argLength; i \x3d i + 2) {\n this.set(arguments[i], arguments[i + 1]);\n }\n } else if (opt_map) {\n this.addAll(opt_map);\n }\n};\ngoog.structs.Map.prototype.getCount \x3d function() {\n return this.size;\n};\ngoog.structs.Map.prototype.getValues \x3d function() {\n this.cleanupKeysArray_();\n var rv \x3d [];\n var i \x3d 0;\n for (; i \x3c this.keys_.length; i++) {\n var key \x3d this.keys_[i];\n rv.push(this.map_[key]);\n }\n return rv;\n};\ngoog.structs.Map.prototype.getKeys \x3d function() {\n this.cleanupKeysArray_();\n return this.keys_.concat();\n};\ngoog.structs.Map.prototype.containsKey \x3d function(key) {\n return this.has(key);\n};\ngoog.structs.Map.prototype.has \x3d function(key) {\n return goog.structs.Map.hasKey_(this.map_, key);\n};\ngoog.structs.Map.prototype.containsValue \x3d function(val) {\n var i \x3d 0;\n for (; i \x3c this.keys_.length; i++) {\n var key \x3d this.keys_[i];\n if (goog.structs.Map.hasKey_(this.map_, key) \x26\x26 this.map_[key] \x3d\x3d val) {\n return true;\n }\n }\n return false;\n};\ngoog.structs.Map.prototype.equals \x3d function(otherMap, opt_equalityFn) {\n if (this \x3d\x3d\x3d otherMap) {\n return true;\n }\n if (this.size !\x3d otherMap.getCount()) {\n return false;\n }\n var equalityFn \x3d opt_equalityFn || goog.structs.Map.defaultEquals;\n this.cleanupKeysArray_();\n var key;\n var i \x3d 0;\n for (; key \x3d this.keys_[i]; i++) {\n if (!equalityFn(this.get(key), otherMap.get(key))) {\n return false;\n }\n }\n return true;\n};\ngoog.structs.Map.defaultEquals \x3d function(a, b) {\n return a \x3d\x3d\x3d b;\n};\ngoog.structs.Map.prototype.isEmpty \x3d function() {\n return this.size \x3d\x3d 0;\n};\ngoog.structs.Map.prototype.clear \x3d function() {\n this.map_ \x3d {};\n this.keys_.length \x3d 0;\n this.setSizeInternal_(0);\n this.version_ \x3d 0;\n};\ngoog.structs.Map.prototype.remove \x3d function(key) {\n return this.delete(key);\n};\ngoog.structs.Map.prototype.delete \x3d function(key) {\n if (goog.structs.Map.hasKey_(this.map_, key)) {\n delete this.map_[key];\n this.setSizeInternal_(this.size - 1);\n this.version_++;\n if (this.keys_.length \x3e 2 * this.size) {\n this.cleanupKeysArray_();\n }\n return true;\n }\n return false;\n};\ngoog.structs.Map.prototype.cleanupKeysArray_ \x3d function() {\n if (this.size !\x3d this.keys_.length) {\n var srcIndex \x3d 0;\n var destIndex \x3d 0;\n for (; srcIndex \x3c this.keys_.length;) {\n var key \x3d this.keys_[srcIndex];\n if (goog.structs.Map.hasKey_(this.map_, key)) {\n this.keys_[destIndex++] \x3d key;\n }\n srcIndex++;\n }\n this.keys_.length \x3d destIndex;\n }\n if (this.size !\x3d this.keys_.length) {\n var seen \x3d {};\n srcIndex \x3d 0;\n destIndex \x3d 0;\n for (; srcIndex \x3c this.keys_.length;) {\n key \x3d this.keys_[srcIndex];\n if (!goog.structs.Map.hasKey_(seen, key)) {\n this.keys_[destIndex++] \x3d key;\n seen[key] \x3d 1;\n }\n srcIndex++;\n }\n this.keys_.length \x3d destIndex;\n }\n};\ngoog.structs.Map.prototype.get \x3d function(key, opt_val) {\n if (goog.structs.Map.hasKey_(this.map_, key)) {\n return this.map_[key];\n }\n return opt_val;\n};\ngoog.structs.Map.prototype.set \x3d function(key, value) {\n if (!goog.structs.Map.hasKey_(this.map_, key)) {\n this.setSizeInternal_(this.size + 1);\n this.keys_.push(key);\n this.version_++;\n }\n this.map_[key] \x3d value;\n};\ngoog.structs.Map.prototype.addAll \x3d function(map) {\n if (map instanceof goog.structs.Map) {\n var keys \x3d map.getKeys();\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n this.set(keys[i], map.get(keys[i]));\n }\n } else {\n var key;\n for (key in map) {\n this.set(key, map[key]);\n }\n }\n};\ngoog.structs.Map.prototype.forEach \x3d function(f, opt_obj) {\n var keys \x3d this.getKeys();\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n var key \x3d keys[i];\n var value \x3d this.get(key);\n f.call(opt_obj, value, key, this);\n }\n};\ngoog.structs.Map.prototype.clone \x3d function() {\n return new goog.structs.Map(this);\n};\ngoog.structs.Map.prototype.transpose \x3d function() {\n var transposed \x3d new goog.structs.Map();\n var i \x3d 0;\n for (; i \x3c this.keys_.length; i++) {\n var key \x3d this.keys_[i];\n var value \x3d this.map_[key];\n transposed.set(value, key);\n }\n return transposed;\n};\ngoog.structs.Map.prototype.toObject \x3d function() {\n this.cleanupKeysArray_();\n var obj \x3d {};\n var i \x3d 0;\n for (; i \x3c this.keys_.length; i++) {\n var key \x3d this.keys_[i];\n obj[key] \x3d this.map_[key];\n }\n return obj;\n};\ngoog.structs.Map.prototype.getKeyIterator \x3d function() {\n return this.__iterator__(true);\n};\ngoog.structs.Map.prototype.keys \x3d function() {\n return goog.iter.es6.ShimIterable.of(this.getKeyIterator()).toEs6();\n};\ngoog.structs.Map.prototype.getValueIterator \x3d function() {\n return this.__iterator__(false);\n};\ngoog.structs.Map.prototype.values \x3d function() {\n return goog.iter.es6.ShimIterable.of(this.getValueIterator()).toEs6();\n};\ngoog.structs.Map.prototype.entries \x3d function() {\n const self \x3d this;\n return goog.collections.iters.map(this.keys(), function(key) {\n return [key, self.get(key)];\n });\n};\ngoog.structs.Map.prototype.__iterator__ \x3d function(opt_keys) {\n this.cleanupKeysArray_();\n var i \x3d 0;\n var version \x3d this.version_;\n var selfObj \x3d this;\n var newIter \x3d new goog.iter.Iterator();\n newIter.next \x3d function() {\n if (version !\x3d selfObj.version_) {\n throw new Error(\x22The map has changed since the iterator was created\x22);\n }\n if (i \x3e\x3d selfObj.keys_.length) {\n return goog.iter.ES6_ITERATOR_DONE;\n }\n var key \x3d selfObj.keys_[i++];\n return goog.iter.createEs6IteratorYield(opt_keys ? key : selfObj.map_[key]);\n };\n return newIter;\n};\ngoog.structs.Map.prototype.setSizeInternal_ \x3d function(newSize) {\n this.size \x3d newSize;\n};\ngoog.structs.Map.hasKey_ \x3d function(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n");
SHADOW_ENV.evalLoad("goog.window.window.js", true, "goog.provide(\x22goog.window\x22);\ngoog.require(\x22goog.dom\x22);\ngoog.require(\x22goog.dom.TagName\x22);\ngoog.require(\x22goog.dom.safe\x22);\ngoog.require(\x22goog.html.SafeUrl\x22);\ngoog.require(\x22goog.html.uncheckedconversions\x22);\ngoog.require(\x22goog.labs.userAgent.platform\x22);\ngoog.require(\x22goog.string\x22);\ngoog.require(\x22goog.string.Const\x22);\ngoog.require(\x22goog.userAgent\x22);\ngoog.requireType(\x22goog.string.TypedString\x22);\ngoog.window.DEFAULT_POPUP_HEIGHT \x3d 500;\ngoog.window.DEFAULT_POPUP_WIDTH \x3d 690;\ngoog.window.DEFAULT_POPUP_TARGET \x3d \x22google_popup\x22;\ngoog.window.createFakeWindow_ \x3d function() {\n return {};\n};\ngoog.window.open \x3d function(linkRef, opt_options, opt_parentWin) {\n if (!opt_options) {\n opt_options \x3d {};\n }\n var parentWin \x3d opt_parentWin || window;\n var safeLinkRef;\n if (linkRef instanceof goog.html.SafeUrl) {\n safeLinkRef \x3d linkRef;\n } else {\n var url \x3d typeof linkRef.href !\x3d \x22undefined\x22 ? linkRef.href : String(linkRef);\n safeLinkRef \x3d goog.html.SafeUrl.sanitize(url);\n }\n const browserSupportsCoop \x3d self.crossOriginIsolated !\x3d\x3d undefined;\n let referrerPolicy \x3d \x22strict-origin-when-cross-origin\x22;\n if (window.Request) {\n referrerPolicy \x3d (new Request(\x22/\x22)).referrerPolicy;\n }\n const pageSetsUnsafeReferrerPolicy \x3d referrerPolicy \x3d\x3d\x3d \x22unsafe-url\x22;\n let noReferrerOption \x3d opt_options[\x22noreferrer\x22];\n if (browserSupportsCoop \x26\x26 noReferrerOption) {\n if (pageSetsUnsafeReferrerPolicy) {\n throw new Error(\x22Cannot use the noreferrer option on a page that sets a referrer-policy of `unsafe-url` in modern browsers!\x22);\n }\n noReferrerOption \x3d false;\n }\n var target \x3d opt_options.target || linkRef.target;\n var sb \x3d [];\n var option;\n for (option in opt_options) {\n switch(option) {\n case \x22width\x22:\n case \x22height\x22:\n case \x22top\x22:\n case \x22left\x22:\n sb.push(option + \x22\\x3d\x22 + opt_options[option]);\n break;\n case \x22target\x22:\n case \x22noopener\x22:\n case \x22noreferrer\x22:\n break;\n default:\n sb.push(option + \x22\\x3d\x22 + (opt_options[option] ? 1 : 0));\n }\n }\n var optionString \x3d sb.join(\x22,\x22);\n var newWin;\n if (goog.labs.userAgent.platform.isIos() \x26\x26 parentWin.navigator \x26\x26 parentWin.navigator[\x22standalone\x22] \x26\x26 target \x26\x26 target !\x3d \x22_self\x22) {\n var a \x3d goog.dom.createElement(goog.dom.TagName.A);\n goog.dom.safe.setAnchorHref(a, safeLinkRef);\n a.target \x3d target;\n if (noReferrerOption) {\n a.rel \x3d \x22noreferrer\x22;\n }\n var click \x3d document.createEvent(\x22MouseEvent\x22);\n click.initMouseEvent(\x22click\x22, true, true, parentWin, 1);\n a.dispatchEvent(click);\n newWin \x3d goog.window.createFakeWindow_();\n } else if (noReferrerOption) {\n newWin \x3d goog.dom.safe.openInWindow(\x22\x22, parentWin, target, optionString);\n var sanitizedLinkRef \x3d goog.html.SafeUrl.unwrap(safeLinkRef);\n if (newWin) {\n if (goog.userAgent.EDGE_OR_IE) {\n if (goog.string.contains(sanitizedLinkRef, \x22;\x22)) {\n sanitizedLinkRef \x3d \x22\x27\x22 + sanitizedLinkRef.replace(/\x27/g, \x22%27\x22) + \x22\x27\x22;\n }\n }\n newWin.opener \x3d null;\n if (sanitizedLinkRef \x3d\x3d\x3d \x22\x22) {\n sanitizedLinkRef \x3d \x22javascript:\x27\x27\x22;\n }\n var safeHtml \x3d goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\x22b/12014412, meta tag with sanitized URL\x22), \x27\\x3cmeta name\\x3d\x22referrer\x22 content\\x3d\x22no-referrer\x22\\x3e\x27 + \x27\\x3cmeta http-equiv\\x3d\x22refresh\x22 content\\x3d\x220; url\\x3d\x27 + goog.string.htmlEscape(sanitizedLinkRef) + \x27\x22\\x3e\x27);\n var newDoc \x3d newWin.document;\n if (newDoc \x26\x26 newDoc.write) {\n goog.dom.safe.documentWrite(newDoc, safeHtml);\n newDoc.close();\n }\n }\n } else {\n newWin \x3d goog.dom.safe.openInWindow(safeLinkRef, parentWin, target, optionString);\n if (newWin \x26\x26 opt_options[\x22noopener\x22]) {\n newWin.opener \x3d null;\n }\n if (newWin \x26\x26 opt_options[\x22noreferrer\x22]) {\n newWin.opener \x3d null;\n }\n }\n return newWin;\n};\ngoog.window.openBlank \x3d function(opt_message, opt_options, opt_parentWin) {\n const win \x3d goog.window.open(\x22\x22, opt_options, opt_parentWin);\n if (win \x26\x26 opt_message) {\n const body \x3d win.document.body;\n if (body) {\n body.textContent \x3d opt_message;\n }\n }\n return win;\n};\ngoog.window.popup \x3d function(linkRef, opt_options) {\n if (!opt_options) {\n opt_options \x3d {};\n }\n opt_options[\x22target\x22] \x3d opt_options[\x22target\x22] || linkRef[\x22target\x22] || goog.window.DEFAULT_POPUP_TARGET;\n opt_options[\x22width\x22] \x3d opt_options[\x22width\x22] || goog.window.DEFAULT_POPUP_WIDTH;\n opt_options[\x22height\x22] \x3d opt_options[\x22height\x22] || goog.window.DEFAULT_POPUP_HEIGHT;\n var newWin \x3d goog.window.open(linkRef, opt_options);\n if (!newWin) {\n return true;\n }\n newWin.focus();\n return false;\n};\n");
SHADOW_ENV.evalLoad("goog.dom.forms.js", true, "goog.provide(\x22goog.dom.forms\x22);\ngoog.require(\x22goog.dom.InputType\x22);\ngoog.require(\x22goog.dom.TagName\x22);\ngoog.require(\x22goog.dom.safe\x22);\ngoog.require(\x22goog.structs.Map\x22);\ngoog.require(\x22goog.window\x22);\ngoog.dom.forms.submitFormInNewWindow \x3d function(form, opt_submitElement) {\n var formData \x3d goog.dom.forms.getFormDataMap(form);\n var action \x3d form.action;\n var method \x3d form.method;\n if (opt_submitElement) {\n if (goog.dom.InputType.SUBMIT !\x3d opt_submitElement.type.toLowerCase()) {\n throw new Error(\x22opt_submitElement does not have a valid type.\x22);\n }\n var submitValue \x3d goog.dom.forms.getValue(opt_submitElement);\n if (submitValue !\x3d null) {\n goog.dom.forms.addFormDataToMap_(formData, opt_submitElement.name, submitValue);\n }\n if (opt_submitElement.getAttribute(\x22formaction\x22)) {\n action \x3d opt_submitElement.getAttribute(\x22formaction\x22);\n }\n if (opt_submitElement.getAttribute(\x22formmethod\x22)) {\n method \x3d opt_submitElement.getAttribute(\x22formmethod\x22);\n }\n }\n return goog.dom.forms.submitFormDataInNewWindow(action, method, formData);\n};\ngoog.dom.forms.submitFormDataInNewWindow \x3d function(actionUri, method, formData) {\n var newWin \x3d goog.window.openBlank(\x22\x22, {noreferrer:true});\n if (!newWin) {\n return false;\n }\n var newDocument \x3d newWin.document;\n var newForm \x3d newDocument.createElement(\x22form\x22);\n newForm.method \x3d method;\n goog.dom.safe.setFormElementAction(newForm, actionUri);\n formData.forEach(function(fieldValues, fieldName) {\n var i \x3d 0;\n for (; i \x3c fieldValues.length; i++) {\n var fieldValue \x3d fieldValues[i];\n var newInput \x3d newDocument.createElement(\x22input\x22);\n newInput.name \x3d fieldName;\n newInput.value \x3d fieldValue;\n newInput.type \x3d \x22hidden\x22;\n HTMLFormElement.prototype.appendChild.call(newForm, newInput);\n }\n });\n HTMLFormElement.prototype.submit.call(newForm);\n return true;\n};\ngoog.dom.forms.getFormDataMap \x3d function(form) {\n var map \x3d new goog.structs.Map();\n goog.dom.forms.getFormDataHelper_(form, map, goog.dom.forms.addFormDataToMap_);\n return map;\n};\ngoog.dom.forms.getFormDataString \x3d function(form) {\n var sb \x3d [];\n goog.dom.forms.getFormDataHelper_(form, sb, goog.dom.forms.addFormDataToStringBuffer_);\n return sb.join(\x22\\x26\x22);\n};\ngoog.dom.forms.getFormDataHelper_ \x3d function(form, result, fnAppend) {\n var els \x3d form.elements;\n var el;\n var i \x3d 0;\n for (; el \x3d els.item(i); i++) {\n if (el.form !\x3d form || el.disabled || el.tagName \x3d\x3d goog.dom.TagName.FIELDSET) {\n continue;\n }\n var name \x3d el.name;\n switch(el.type.toLowerCase()) {\n case goog.dom.InputType.FILE:\n case goog.dom.InputType.SUBMIT:\n case goog.dom.InputType.RESET:\n case goog.dom.InputType.BUTTON:\n break;\n case goog.dom.InputType.SELECT_MULTIPLE:\n var values \x3d goog.dom.forms.getValue(el);\n if (values !\x3d null) {\n var value;\n var j \x3d 0;\n for (; value \x3d values[j]; j++) {\n fnAppend(result, name, value);\n }\n }\n break;\n default:\n value \x3d goog.dom.forms.getValue(el);\n if (value !\x3d null) {\n fnAppend(result, name, value);\n }\n }\n }\n var inputs \x3d form.getElementsByTagName(String(goog.dom.TagName.INPUT));\n var input;\n i \x3d 0;\n for (; input \x3d inputs[i]; i++) {\n if (input.form \x3d\x3d form \x26\x26 input.type.toLowerCase() \x3d\x3d goog.dom.InputType.IMAGE) {\n name \x3d input.name;\n fnAppend(result, name, input.value);\n fnAppend(result, name + \x22.x\x22, \x220\x22);\n fnAppend(result, name + \x22.y\x22, \x220\x22);\n }\n }\n};\ngoog.dom.forms.addFormDataToMap_ \x3d function(map, name, value) {\n var array \x3d map.get(name);\n if (!array) {\n array \x3d [];\n map.set(name, array);\n }\n array.push(value);\n};\ngoog.dom.forms.addFormDataToStringBuffer_ \x3d function(sb, name, value) {\n sb.push(encodeURIComponent(name) + \x22\\x3d\x22 + encodeURIComponent(value));\n};\ngoog.dom.forms.hasFileInput \x3d function(form) {\n var els \x3d form.elements;\n var el;\n var i \x3d 0;\n for (; el \x3d els[i]; i++) {\n if (!el.disabled \x26\x26 el.type \x26\x26 el.type.toLowerCase() \x3d\x3d goog.dom.InputType.FILE) {\n return true;\n }\n }\n return false;\n};\ngoog.dom.forms.setDisabled \x3d function(el, disabled) {\n if (el.tagName \x3d\x3d goog.dom.TagName.FORM) {\n var els \x3d el.elements;\n var i \x3d 0;\n for (; el \x3d els.item(i); i++) {\n goog.dom.forms.setDisabled(el, disabled);\n }\n } else {\n if (disabled \x3d\x3d true) {\n el.blur();\n }\n el.disabled \x3d disabled;\n }\n};\ngoog.dom.forms.focusAndSelect \x3d function(el) {\n el.focus();\n if (el.select) {\n el.select();\n }\n};\ngoog.dom.forms.hasValue \x3d function(el) {\n var value \x3d goog.dom.forms.getValue(el);\n return !!value;\n};\ngoog.dom.forms.hasValueByName \x3d function(form, name) {\n var value \x3d goog.dom.forms.getValueByName(form, name);\n return !!value;\n};\ngoog.dom.forms.getValue \x3d function(input) {\n var type \x3d input.type;\n if (typeof type \x3d\x3d\x3d \x22string\x22) {\n var el \x3d input;\n switch(type.toLowerCase()) {\n case goog.dom.InputType.CHECKBOX:\n case goog.dom.InputType.RADIO:\n return goog.dom.forms.getInputChecked_(el);\n case goog.dom.InputType.SELECT_ONE:\n return goog.dom.forms.getSelectSingle_(el);\n case goog.dom.InputType.SELECT_MULTIPLE:\n return goog.dom.forms.getSelectMultiple_(el);\n default:\n }\n }\n return input.value !\x3d null ? input.value : null;\n};\ngoog.dom.forms.getValueByName \x3d function(form, name) {\n var els \x3d form.elements[name];\n if (!els) {\n return null;\n } else if (els.type) {\n return goog.dom.forms.getValue(els);\n } else {\n var i \x3d 0;\n for (; i \x3c els.length; i++) {\n var val \x3d goog.dom.forms.getValue(els[i]);\n if (val) {\n return val;\n }\n }\n return null;\n }\n};\ngoog.dom.forms.getInputChecked_ \x3d function(el) {\n return el.checked ? el.value : null;\n};\ngoog.dom.forms.getSelectSingle_ \x3d function(el) {\n var selectedIndex \x3d el.selectedIndex;\n return selectedIndex \x3e\x3d 0 ? el.options[selectedIndex].value : null;\n};\ngoog.dom.forms.getSelectMultiple_ \x3d function(el) {\n var values \x3d [];\n var option;\n var i \x3d 0;\n for (; option \x3d el.options[i]; i++) {\n if (option.selected) {\n values.push(option.value);\n }\n }\n return values.length ? values : null;\n};\ngoog.dom.forms.setValue \x3d function(el, opt_value) {\n var type \x3d el.type;\n switch(typeof type \x3d\x3d\x3d \x22string\x22 \x26\x26 type.toLowerCase()) {\n case goog.dom.InputType.CHECKBOX:\n case goog.dom.InputType.RADIO:\n goog.dom.forms.setInputChecked_(el, opt_value);\n return;\n case goog.dom.InputType.SELECT_ONE:\n goog.dom.forms.setSelectSingle_(el, opt_value);\n return;\n case goog.dom.InputType.SELECT_MULTIPLE:\n goog.dom.forms.setSelectMultiple_(el, opt_value);\n return;\n default:\n el.value \x3d opt_value !\x3d null ? opt_value : \x22\x22;\n }\n};\ngoog.dom.forms.setInputChecked_ \x3d function(el, opt_value) {\n el.checked \x3d opt_value;\n};\ngoog.dom.forms.setSelectSingle_ \x3d function(el, opt_value) {\n el.selectedIndex \x3d -1;\n if (typeof opt_value \x3d\x3d\x3d \x22string\x22) {\n var option;\n var i \x3d 0;\n for (; option \x3d el.options[i]; i++) {\n if (option.value \x3d\x3d opt_value) {\n option.selected \x3d true;\n break;\n }\n }\n }\n};\ngoog.dom.forms.setSelectMultiple_ \x3d function(el, opt_value) {\n if (typeof opt_value \x3d\x3d\x3d \x22string\x22) {\n opt_value \x3d [opt_value];\n }\n var option;\n var i \x3d 0;\n for (; option \x3d el.options[i]; i++) {\n option.selected \x3d false;\n if (opt_value) {\n var value;\n var j \x3d 0;\n for (; value \x3d opt_value[j]; j++) {\n if (option.value \x3d\x3d value) {\n option.selected \x3d true;\n }\n }\n }\n }\n};\n");
SHADOW_ENV.evalLoad("goog.dom.classlist.js", true, "goog.provide(\x22goog.dom.classlist\x22);\ngoog.require(\x22goog.array\x22);\ngoog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST \x3d goog.define(\x22goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST\x22, false);\ngoog.dom.classlist.getClassName_ \x3d function(element) {\n return typeof element.className \x3d\x3d \x22string\x22 ? element.className : element.getAttribute \x26\x26 element.getAttribute(\x22class\x22) || \x22\x22;\n};\ngoog.dom.classlist.get \x3d function(element) {\n if (goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST || element.classList) {\n return element.classList;\n }\n return goog.dom.classlist.getClassName_(element).match(/\\S+/g) || [];\n};\ngoog.dom.classlist.set \x3d function(element, className) {\n if (typeof element.className \x3d\x3d \x22string\x22) {\n element.className \x3d className;\n return;\n } else if (element.setAttribute) {\n element.setAttribute(\x22class\x22, className);\n }\n};\ngoog.dom.classlist.contains \x3d function(element, className) {\n if (goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST || element.classList) {\n return element.classList.contains(className);\n }\n return goog.array.contains(goog.dom.classlist.get(element), className);\n};\ngoog.dom.classlist.add \x3d function(element, className) {\n if (goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST || element.classList) {\n element.classList.add(className);\n return;\n }\n if (!goog.dom.classlist.contains(element, className)) {\n var oldClassName \x3d goog.dom.classlist.getClassName_(element);\n goog.dom.classlist.set(element, oldClassName + (oldClassName.length \x3e 0 ? \x22 \x22 + className : className));\n }\n};\ngoog.dom.classlist.addAll \x3d function(element, classesToAdd) {\n if (goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST || element.classList) {\n Array.prototype.forEach.call(classesToAdd, function(className) {\n goog.dom.classlist.add(element, className);\n });\n return;\n }\n var classMap \x3d {};\n Array.prototype.forEach.call(goog.dom.classlist.get(element), function(className) {\n classMap[className] \x3d true;\n });\n Array.prototype.forEach.call(classesToAdd, function(className) {\n classMap[className] \x3d true;\n });\n var newClassName \x3d \x22\x22;\n var className;\n for (className in classMap) {\n newClassName \x3d newClassName + (newClassName.length \x3e 0 ? \x22 \x22 + className : className);\n }\n goog.dom.classlist.set(element, newClassName);\n};\ngoog.dom.classlist.remove \x3d function(element, className) {\n if (goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST || element.classList) {\n element.classList.remove(className);\n return;\n }\n if (goog.dom.classlist.contains(element, className)) {\n goog.dom.classlist.set(element, Array.prototype.filter.call(goog.dom.classlist.get(element), function(c) {\n return c !\x3d className;\n }).join(\x22 \x22));\n }\n};\ngoog.dom.classlist.removeAll \x3d function(element, classesToRemove) {\n if (goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST || element.classList) {\n Array.prototype.forEach.call(classesToRemove, function(className) {\n goog.dom.classlist.remove(element, className);\n });\n return;\n }\n goog.dom.classlist.set(element, Array.prototype.filter.call(goog.dom.classlist.get(element), function(className) {\n return !goog.array.contains(classesToRemove, className);\n }).join(\x22 \x22));\n};\ngoog.dom.classlist.enable \x3d function(element, className, enabled) {\n if (enabled) {\n goog.dom.classlist.add(element, className);\n } else {\n goog.dom.classlist.remove(element, className);\n }\n};\ngoog.dom.classlist.enableAll \x3d function(element, classesToEnable, enabled) {\n var f \x3d enabled ? goog.dom.classlist.addAll : goog.dom.classlist.removeAll;\n f(element, classesToEnable);\n};\ngoog.dom.classlist.swap \x3d function(element, fromClass, toClass) {\n if (goog.dom.classlist.contains(element, fromClass)) {\n goog.dom.classlist.remove(element, fromClass);\n goog.dom.classlist.add(element, toClass);\n return true;\n }\n return false;\n};\ngoog.dom.classlist.toggle \x3d function(element, className) {\n var add \x3d !goog.dom.classlist.contains(element, className);\n goog.dom.classlist.enable(element, className, add);\n return add;\n};\ngoog.dom.classlist.addRemove \x3d function(element, classToRemove, classToAdd) {\n goog.dom.classlist.remove(element, classToRemove);\n goog.dom.classlist.add(element, classToAdd);\n};\n");
SHADOW_ENV.evalLoad("goog.dom.vendor.js", true, "goog.provide(\x22goog.dom.vendor\x22);\ngoog.require(\x22goog.string\x22);\ngoog.require(\x22goog.userAgent\x22);\ngoog.dom.vendor.getVendorJsPrefix \x3d function() {\n if (goog.userAgent.WEBKIT) {\n return \x22Webkit\x22;\n } else if (goog.userAgent.GECKO) {\n return \x22Moz\x22;\n } else if (goog.userAgent.IE) {\n return \x22ms\x22;\n }\n return null;\n};\ngoog.dom.vendor.getVendorPrefix \x3d function() {\n if (goog.userAgent.WEBKIT) {\n return \x22-webkit\x22;\n } else if (goog.userAgent.GECKO) {\n return \x22-moz\x22;\n } else if (goog.userAgent.IE) {\n return \x22-ms\x22;\n }\n return null;\n};\ngoog.dom.vendor.getPrefixedPropertyName \x3d function(propertyName, opt_object) {\n if (opt_object \x26\x26 propertyName in opt_object) {\n return propertyName;\n }\n var prefix \x3d goog.dom.vendor.getVendorJsPrefix();\n if (prefix) {\n prefix \x3d prefix.toLowerCase();\n var prefixedPropertyName \x3d prefix + goog.string.toTitleCase(propertyName);\n return opt_object \x3d\x3d\x3d undefined || prefixedPropertyName in opt_object ? prefixedPropertyName : null;\n }\n return null;\n};\ngoog.dom.vendor.getPrefixedEventType \x3d function(eventType) {\n var prefix \x3d goog.dom.vendor.getVendorJsPrefix() || \x22\x22;\n return (prefix + eventType).toLowerCase();\n};\n");
SHADOW_ENV.evalLoad("goog.math.box.js", true, "goog.provide(\x22goog.math.Box\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.math.Coordinate\x22);\ngoog.math.Box \x3d function(top, right, bottom, left) {\n this.top \x3d top;\n this.right \x3d right;\n this.bottom \x3d bottom;\n this.left \x3d left;\n};\ngoog.math.Box.boundingBox \x3d function(var_args) {\n var box \x3d new goog.math.Box(arguments[0].y, arguments[0].x, arguments[0].y, arguments[0].x);\n var i \x3d 1;\n for (; i \x3c arguments.length; i++) {\n box.expandToIncludeCoordinate(arguments[i]);\n }\n return box;\n};\ngoog.math.Box.prototype.getWidth \x3d function() {\n return this.right - this.left;\n};\ngoog.math.Box.prototype.getHeight \x3d function() {\n return this.bottom - this.top;\n};\ngoog.math.Box.prototype.clone \x3d function() {\n return new goog.math.Box(this.top, this.right, this.bottom, this.left);\n};\nif (goog.DEBUG) {\n goog.math.Box.prototype.toString \x3d function() {\n return \x22(\x22 + this.top + \x22t, \x22 + this.right + \x22r, \x22 + this.bottom + \x22b, \x22 + this.left + \x22l)\x22;\n };\n}\ngoog.math.Box.prototype.contains \x3d function(other) {\n return goog.math.Box.contains(this, other);\n};\ngoog.math.Box.prototype.expand \x3d function(top, opt_right, opt_bottom, opt_left) {\n if (goog.isObject(top)) {\n this.top -\x3d top.top;\n this.right +\x3d top.right;\n this.bottom +\x3d top.bottom;\n this.left -\x3d top.left;\n } else {\n this.top -\x3d top;\n this.right +\x3d Number(opt_right);\n this.bottom +\x3d Number(opt_bottom);\n this.left -\x3d Number(opt_left);\n }\n return this;\n};\ngoog.math.Box.prototype.expandToInclude \x3d function(box) {\n this.left \x3d Math.min(this.left, box.left);\n this.top \x3d Math.min(this.top, box.top);\n this.right \x3d Math.max(this.right, box.right);\n this.bottom \x3d Math.max(this.bottom, box.bottom);\n};\ngoog.math.Box.prototype.expandToIncludeCoordinate \x3d function(coord) {\n this.top \x3d Math.min(this.top, coord.y);\n this.right \x3d Math.max(this.right, coord.x);\n this.bottom \x3d Math.max(this.bottom, coord.y);\n this.left \x3d Math.min(this.left, coord.x);\n};\ngoog.math.Box.equals \x3d function(a, b) {\n if (a \x3d\x3d b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.top \x3d\x3d b.top \x26\x26 a.right \x3d\x3d b.right \x26\x26 a.bottom \x3d\x3d b.bottom \x26\x26 a.left \x3d\x3d b.left;\n};\ngoog.math.Box.contains \x3d function(box, other) {\n if (!box || !other) {\n return false;\n }\n if (other instanceof goog.math.Box) {\n return other.left \x3e\x3d box.left \x26\x26 other.right \x3c\x3d box.right \x26\x26 other.top \x3e\x3d box.top \x26\x26 other.bottom \x3c\x3d box.bottom;\n }\n return other.x \x3e\x3d box.left \x26\x26 other.x \x3c\x3d box.right \x26\x26 other.y \x3e\x3d box.top \x26\x26 other.y \x3c\x3d box.bottom;\n};\ngoog.math.Box.relativePositionX \x3d function(box, coord) {\n if (coord.x \x3c box.left) {\n return coord.x - box.left;\n } else if (coord.x \x3e box.right) {\n return coord.x - box.right;\n }\n return 0;\n};\ngoog.math.Box.relativePositionY \x3d function(box, coord) {\n if (coord.y \x3c box.top) {\n return coord.y - box.top;\n } else if (coord.y \x3e box.bottom) {\n return coord.y - box.bottom;\n }\n return 0;\n};\ngoog.math.Box.distance \x3d function(box, coord) {\n var x \x3d goog.math.Box.relativePositionX(box, coord);\n var y \x3d goog.math.Box.relativePositionY(box, coord);\n return Math.sqrt(x * x + y * y);\n};\ngoog.math.Box.intersects \x3d function(a, b) {\n return a.left \x3c\x3d b.right \x26\x26 b.left \x3c\x3d a.right \x26\x26 a.top \x3c\x3d b.bottom \x26\x26 b.top \x3c\x3d a.bottom;\n};\ngoog.math.Box.intersectsWithPadding \x3d function(a, b, padding) {\n return a.left \x3c\x3d b.right + padding \x26\x26 b.left \x3c\x3d a.right + padding \x26\x26 a.top \x3c\x3d b.bottom + padding \x26\x26 b.top \x3c\x3d a.bottom + padding;\n};\ngoog.math.Box.prototype.ceil \x3d function() {\n this.top \x3d Math.ceil(this.top);\n this.right \x3d Math.ceil(this.right);\n this.bottom \x3d Math.ceil(this.bottom);\n this.left \x3d Math.ceil(this.left);\n return this;\n};\ngoog.math.Box.prototype.floor \x3d function() {\n this.top \x3d Math.floor(this.top);\n this.right \x3d Math.floor(this.right);\n this.bottom \x3d Math.floor(this.bottom);\n this.left \x3d Math.floor(this.left);\n return this;\n};\ngoog.math.Box.prototype.round \x3d function() {\n this.top \x3d Math.round(this.top);\n this.right \x3d Math.round(this.right);\n this.bottom \x3d Math.round(this.bottom);\n this.left \x3d Math.round(this.left);\n return this;\n};\ngoog.math.Box.prototype.translate \x3d function(tx, opt_ty) {\n if (tx instanceof goog.math.Coordinate) {\n this.left +\x3d tx.x;\n this.right +\x3d tx.x;\n this.top +\x3d tx.y;\n this.bottom +\x3d tx.y;\n } else {\n goog.asserts.assertNumber(tx);\n this.left +\x3d tx;\n this.right +\x3d tx;\n if (typeof opt_ty \x3d\x3d\x3d \x22number\x22) {\n this.top +\x3d opt_ty;\n this.bottom +\x3d opt_ty;\n }\n }\n return this;\n};\ngoog.math.Box.prototype.scale \x3d function(sx, opt_sy) {\n var sy \x3d typeof opt_sy \x3d\x3d\x3d \x22number\x22 ? opt_sy : sx;\n this.left *\x3d sx;\n this.right *\x3d sx;\n this.top *\x3d sy;\n this.bottom *\x3d sy;\n return this;\n};\n");
SHADOW_ENV.evalLoad("goog.math.irect.js", true, "goog.provide(\x22goog.math.IRect\x22);\ngoog.math.IRect \x3d function() {\n};\ngoog.math.IRect.prototype.left;\ngoog.math.IRect.prototype.top;\ngoog.math.IRect.prototype.width;\ngoog.math.IRect.prototype.height;\n");
SHADOW_ENV.evalLoad("goog.math.rect.js", true, "goog.provide(\x22goog.math.Rect\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.math.Box\x22);\ngoog.require(\x22goog.math.Coordinate\x22);\ngoog.require(\x22goog.math.IRect\x22);\ngoog.require(\x22goog.math.Size\x22);\ngoog.math.Rect \x3d function(x, y, w, h) {\n this.left \x3d x;\n this.top \x3d y;\n this.width \x3d w;\n this.height \x3d h;\n};\ngoog.math.Rect.prototype.clone \x3d function() {\n return new goog.math.Rect(this.left, this.top, this.width, this.height);\n};\ngoog.math.Rect.prototype.toBox \x3d function() {\n var right \x3d this.left + this.width;\n var bottom \x3d this.top + this.height;\n return new goog.math.Box(this.top, right, bottom, this.left);\n};\ngoog.math.Rect.createFromPositionAndSize \x3d function(position, size) {\n return new goog.math.Rect(position.x, position.y, size.width, size.height);\n};\ngoog.math.Rect.createFromBox \x3d function(box) {\n return new goog.math.Rect(box.left, box.top, box.right - box.left, box.bottom - box.top);\n};\nif (goog.DEBUG) {\n goog.math.Rect.prototype.toString \x3d function() {\n return \x22(\x22 + this.left + \x22, \x22 + this.top + \x22 - \x22 + this.width + \x22w x \x22 + this.height + \x22h)\x22;\n };\n}\ngoog.math.Rect.equals \x3d function(a, b) {\n if (a \x3d\x3d b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.left \x3d\x3d b.left \x26\x26 a.width \x3d\x3d b.width \x26\x26 a.top \x3d\x3d b.top \x26\x26 a.height \x3d\x3d b.height;\n};\ngoog.math.Rect.prototype.intersection \x3d function(rect) {\n var x0 \x3d Math.max(this.left, rect.left);\n var x1 \x3d Math.min(this.left + this.width, rect.left + rect.width);\n if (x0 \x3c\x3d x1) {\n var y0 \x3d Math.max(this.top, rect.top);\n var y1 \x3d Math.min(this.top + this.height, rect.top + rect.height);\n if (y0 \x3c\x3d y1) {\n this.left \x3d x0;\n this.top \x3d y0;\n this.width \x3d x1 - x0;\n this.height \x3d y1 - y0;\n return true;\n }\n }\n return false;\n};\ngoog.math.Rect.intersection \x3d function(a, b) {\n var x0 \x3d Math.max(a.left, b.left);\n var x1 \x3d Math.min(a.left + a.width, b.left + b.width);\n if (x0 \x3c\x3d x1) {\n var y0 \x3d Math.max(a.top, b.top);\n var y1 \x3d Math.min(a.top + a.height, b.top + b.height);\n if (y0 \x3c\x3d y1) {\n return new goog.math.Rect(x0, y0, x1 - x0, y1 - y0);\n }\n }\n return null;\n};\ngoog.math.Rect.intersects \x3d function(a, b) {\n return a.left \x3c\x3d b.left + b.width \x26\x26 b.left \x3c\x3d a.left + a.width \x26\x26 a.top \x3c\x3d b.top + b.height \x26\x26 b.top \x3c\x3d a.top + a.height;\n};\ngoog.math.Rect.prototype.intersects \x3d function(rect) {\n return goog.math.Rect.intersects(this, rect);\n};\ngoog.math.Rect.difference \x3d function(a, b) {\n var intersection \x3d goog.math.Rect.intersection(a, b);\n if (!intersection || !intersection.height || !intersection.width) {\n return [a.clone()];\n }\n var result \x3d [];\n var top \x3d a.top;\n var height \x3d a.height;\n var ar \x3d a.left + a.width;\n var ab \x3d a.top + a.height;\n var br \x3d b.left + b.width;\n var bb \x3d b.top + b.height;\n if (b.top \x3e a.top) {\n result.push(new goog.math.Rect(a.left, a.top, a.width, b.top - a.top));\n top \x3d b.top;\n height \x3d height - (b.top - a.top);\n }\n if (bb \x3c ab) {\n result.push(new goog.math.Rect(a.left, bb, a.width, ab - bb));\n height \x3d bb - top;\n }\n if (b.left \x3e a.left) {\n result.push(new goog.math.Rect(a.left, top, b.left - a.left, height));\n }\n if (br \x3c ar) {\n result.push(new goog.math.Rect(br, top, ar - br, height));\n }\n return result;\n};\ngoog.math.Rect.prototype.difference \x3d function(rect) {\n return goog.math.Rect.difference(this, rect);\n};\ngoog.math.Rect.prototype.boundingRect \x3d function(rect) {\n var right \x3d Math.max(this.left + this.width, rect.left + rect.width);\n var bottom \x3d Math.max(this.top + this.height, rect.top + rect.height);\n this.left \x3d Math.min(this.left, rect.left);\n this.top \x3d Math.min(this.top, rect.top);\n this.width \x3d right - this.left;\n this.height \x3d bottom - this.top;\n};\ngoog.math.Rect.boundingRect \x3d function(a, b) {\n if (!a || !b) {\n return null;\n }\n var newRect \x3d new goog.math.Rect(a.left, a.top, a.width, a.height);\n newRect.boundingRect(b);\n return newRect;\n};\ngoog.math.Rect.prototype.contains \x3d function(another) {\n if (another instanceof goog.math.Coordinate) {\n return another.x \x3e\x3d this.left \x26\x26 another.x \x3c\x3d this.left + this.width \x26\x26 another.y \x3e\x3d this.top \x26\x26 another.y \x3c\x3d this.top + this.height;\n } else {\n return this.left \x3c\x3d another.left \x26\x26 this.left + this.width \x3e\x3d another.left + another.width \x26\x26 this.top \x3c\x3d another.top \x26\x26 this.top + this.height \x3e\x3d another.top + another.height;\n }\n};\ngoog.math.Rect.prototype.squaredDistance \x3d function(point) {\n var dx \x3d point.x \x3c this.left ? this.left - point.x : Math.max(point.x - (this.left + this.width), 0);\n var dy \x3d point.y \x3c this.top ? this.top - point.y : Math.max(point.y - (this.top + this.height), 0);\n return dx * dx + dy * dy;\n};\ngoog.math.Rect.prototype.distance \x3d function(point) {\n return Math.sqrt(this.squaredDistance(point));\n};\ngoog.math.Rect.prototype.getSize \x3d function() {\n return new goog.math.Size(this.width, this.height);\n};\ngoog.math.Rect.prototype.getTopLeft \x3d function() {\n return new goog.math.Coordinate(this.left, this.top);\n};\ngoog.math.Rect.prototype.getCenter \x3d function() {\n return new goog.math.Coordinate(this.left + this.width / 2, this.top + this.height / 2);\n};\ngoog.math.Rect.prototype.getBottomRight \x3d function() {\n return new goog.math.Coordinate(this.left + this.width, this.top + this.height);\n};\ngoog.math.Rect.prototype.ceil \x3d function() {\n this.left \x3d Math.ceil(this.left);\n this.top \x3d Math.ceil(this.top);\n this.width \x3d Math.ceil(this.width);\n this.height \x3d Math.ceil(this.height);\n return this;\n};\ngoog.math.Rect.prototype.floor \x3d function() {\n this.left \x3d Math.floor(this.left);\n this.top \x3d Math.floor(this.top);\n this.width \x3d Math.floor(this.width);\n this.height \x3d Math.floor(this.height);\n return this;\n};\ngoog.math.Rect.prototype.round \x3d function() {\n this.left \x3d Math.round(this.left);\n this.top \x3d Math.round(this.top);\n this.width \x3d Math.round(this.width);\n this.height \x3d Math.round(this.height);\n return this;\n};\ngoog.math.Rect.prototype.translate \x3d function(tx, opt_ty) {\n if (tx instanceof goog.math.Coordinate) {\n this.left +\x3d tx.x;\n this.top +\x3d tx.y;\n } else {\n this.left +\x3d goog.asserts.assertNumber(tx);\n if (typeof opt_ty \x3d\x3d\x3d \x22number\x22) {\n this.top +\x3d opt_ty;\n }\n }\n return this;\n};\ngoog.math.Rect.prototype.scale \x3d function(sx, opt_sy) {\n var sy \x3d typeof opt_sy \x3d\x3d\x3d \x22number\x22 ? opt_sy : sx;\n this.left *\x3d sx;\n this.width *\x3d sx;\n this.top *\x3d sy;\n this.height *\x3d sy;\n return this;\n};\n");
SHADOW_ENV.evalLoad("goog.style.style.js", true, "goog.provide(\x22goog.style\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.require(\x22goog.dom\x22);\ngoog.require(\x22goog.dom.NodeType\x22);\ngoog.require(\x22goog.dom.TagName\x22);\ngoog.require(\x22goog.dom.safe\x22);\ngoog.require(\x22goog.dom.vendor\x22);\ngoog.require(\x22goog.html.SafeStyleSheet\x22);\ngoog.require(\x22goog.math.Box\x22);\ngoog.require(\x22goog.math.Coordinate\x22);\ngoog.require(\x22goog.math.Rect\x22);\ngoog.require(\x22goog.math.Size\x22);\ngoog.require(\x22goog.object\x22);\ngoog.require(\x22goog.reflect\x22);\ngoog.require(\x22goog.string\x22);\ngoog.require(\x22goog.userAgent\x22);\ngoog.requireType(\x22goog.events.Event\x22);\ngoog.style.setStyle \x3d function(element, style, opt_value) {\n if (typeof style \x3d\x3d\x3d \x22string\x22) {\n goog.style.setStyle_(element, opt_value, style);\n } else {\n var key;\n for (key in style) {\n goog.style.setStyle_(element, style[key], key);\n }\n }\n};\ngoog.style.setStyle_ \x3d function(element, value, style) {\n var propertyName \x3d goog.style.getVendorJsStyleName_(element, style);\n if (propertyName) {\n element.style[propertyName] \x3d value;\n }\n};\ngoog.style.styleNameCache_ \x3d {};\ngoog.style.getVendorJsStyleName_ \x3d function(element, style) {\n var propertyName \x3d goog.style.styleNameCache_[style];\n if (!propertyName) {\n var camelStyle \x3d goog.string.toCamelCase(style);\n propertyName \x3d camelStyle;\n if (element.style[camelStyle] \x3d\x3d\x3d undefined) {\n var prefixedStyle \x3d goog.dom.vendor.getVendorJsPrefix() + goog.string.toTitleCase(camelStyle);\n if (element.style[prefixedStyle] !\x3d\x3d undefined) {\n propertyName \x3d prefixedStyle;\n }\n }\n goog.style.styleNameCache_[style] \x3d propertyName;\n }\n return propertyName;\n};\ngoog.style.getVendorStyleName_ \x3d function(element, style) {\n var camelStyle \x3d goog.string.toCamelCase(style);\n if (element.style[camelStyle] \x3d\x3d\x3d undefined) {\n var prefixedStyle \x3d goog.dom.vendor.getVendorJsPrefix() + goog.string.toTitleCase(camelStyle);\n if (element.style[prefixedStyle] !\x3d\x3d undefined) {\n return goog.dom.vendor.getVendorPrefix() + \x22-\x22 + style;\n }\n }\n return style;\n};\ngoog.style.getStyle \x3d function(element, property) {\n var styleValue \x3d element.style[goog.string.toCamelCase(property)];\n if (typeof styleValue !\x3d\x3d \x22undefined\x22) {\n return styleValue;\n }\n return element.style[goog.style.getVendorJsStyleName_(element, property)] || \x22\x22;\n};\ngoog.style.getComputedStyle \x3d function(element, property) {\n var doc \x3d goog.dom.getOwnerDocument(element);\n if (doc.defaultView \x26\x26 doc.defaultView.getComputedStyle) {\n var styles \x3d doc.defaultView.getComputedStyle(element, null);\n if (styles) {\n return styles[property] || styles.getPropertyValue(property) || \x22\x22;\n }\n }\n return \x22\x22;\n};\ngoog.style.getCascadedStyle \x3d function(element, style) {\n return element.currentStyle ? element.currentStyle[style] : null;\n};\ngoog.style.getStyle_ \x3d function(element, style) {\n return goog.style.getComputedStyle(element, style) || goog.style.getCascadedStyle(element, style) || element.style \x26\x26 element.style[style];\n};\ngoog.style.getComputedBoxSizing \x3d function(element) {\n return goog.style.getStyle_(element, \x22boxSizing\x22) || goog.style.getStyle_(element, \x22MozBoxSizing\x22) || goog.style.getStyle_(element, \x22WebkitBoxSizing\x22) || null;\n};\ngoog.style.getComputedPosition \x3d function(element) {\n return goog.style.getStyle_(element, \x22position\x22);\n};\ngoog.style.getBackgroundColor \x3d function(element) {\n return goog.style.getStyle_(element, \x22backgroundColor\x22);\n};\ngoog.style.getComputedOverflowX \x3d function(element) {\n return goog.style.getStyle_(element, \x22overflowX\x22);\n};\ngoog.style.getComputedOverflowY \x3d function(element) {\n return goog.style.getStyle_(element, \x22overflowY\x22);\n};\ngoog.style.getComputedZIndex \x3d function(element) {\n return goog.style.getStyle_(element, \x22zIndex\x22);\n};\ngoog.style.getComputedTextAlign \x3d function(element) {\n return goog.style.getStyle_(element, \x22textAlign\x22);\n};\ngoog.style.getComputedCursor \x3d function(element) {\n return goog.style.getStyle_(element, \x22cursor\x22);\n};\ngoog.style.getComputedTransform \x3d function(element) {\n var property \x3d goog.style.getVendorStyleName_(element, \x22transform\x22);\n return goog.style.getStyle_(element, property) || goog.style.getStyle_(element, \x22transform\x22);\n};\ngoog.style.setPosition \x3d function(el, arg1, opt_arg2) {\n var x;\n var y;\n if (arg1 instanceof goog.math.Coordinate) {\n x \x3d arg1.x;\n y \x3d arg1.y;\n } else {\n x \x3d arg1;\n y \x3d opt_arg2;\n }\n el.style.left \x3d goog.style.getPixelStyleValue_(x, false);\n el.style.top \x3d goog.style.getPixelStyleValue_(y, false);\n};\ngoog.style.getPosition \x3d function(element) {\n return new goog.math.Coordinate(element.offsetLeft, element.offsetTop);\n};\ngoog.style.getClientViewportElement \x3d function(opt_node) {\n var doc;\n if (opt_node) {\n doc \x3d goog.dom.getOwnerDocument(opt_node);\n } else {\n doc \x3d goog.dom.getDocument();\n }\n if (goog.userAgent.IE \x26\x26 !goog.userAgent.isDocumentModeOrHigher(9) \x26\x26 !goog.dom.getDomHelper(doc).isCss1CompatMode()) {\n return doc.body;\n }\n return doc.documentElement;\n};\ngoog.style.getViewportPageOffset \x3d function(doc) {\n var body \x3d doc.body;\n var documentElement \x3d doc.documentElement;\n var scrollLeft \x3d body.scrollLeft || documentElement.scrollLeft;\n var scrollTop \x3d body.scrollTop || documentElement.scrollTop;\n return new goog.math.Coordinate(scrollLeft, scrollTop);\n};\ngoog.style.getBoundingClientRect_ \x3d function(el) {\n try {\n return el.getBoundingClientRect();\n } catch (e) {\n return {\x22left\x22:0, \x22top\x22:0, \x22right\x22:0, \x22bottom\x22:0};\n }\n};\ngoog.style.getOffsetParent \x3d function(element) {\n if (goog.userAgent.IE \x26\x26 !goog.userAgent.isDocumentModeOrHigher(8)) {\n goog.asserts.assert(element \x26\x26 \x22offsetParent\x22 in element);\n return element.offsetParent;\n }\n var doc \x3d goog.dom.getOwnerDocument(element);\n var positionStyle \x3d goog.style.getStyle_(element, \x22position\x22);\n var skipStatic \x3d positionStyle \x3d\x3d \x22fixed\x22 || positionStyle \x3d\x3d \x22absolute\x22;\n var parent \x3d element.parentNode;\n for (; parent \x26\x26 parent !\x3d doc; parent \x3d parent.parentNode) {\n if (parent.nodeType \x3d\x3d goog.dom.NodeType.DOCUMENT_FRAGMENT \x26\x26 parent.host) {\n parent \x3d parent.host;\n }\n positionStyle \x3d goog.style.getStyle_(parent, \x22position\x22);\n skipStatic \x3d skipStatic \x26\x26 positionStyle \x3d\x3d \x22static\x22 \x26\x26 parent !\x3d doc.documentElement \x26\x26 parent !\x3d doc.body;\n if (!skipStatic \x26\x26 (parent.scrollWidth \x3e parent.clientWidth || parent.scrollHeight \x3e parent.clientHeight || positionStyle \x3d\x3d \x22fixed\x22 || positionStyle \x3d\x3d \x22absolute\x22 || positionStyle \x3d\x3d \x22relative\x22)) {\n return parent;\n }\n }\n return null;\n};\ngoog.style.getVisibleRectForElement \x3d function(element) {\n var visibleRect \x3d new goog.math.Box(0, Infinity, Infinity, 0);\n var dom \x3d goog.dom.getDomHelper(element);\n var body \x3d dom.getDocument().body;\n var documentElement \x3d dom.getDocument().documentElement;\n var scrollEl \x3d dom.getDocumentScrollElement();\n var el \x3d element;\n for (; el \x3d goog.style.getOffsetParent(el);) {\n if ((!goog.userAgent.IE || el.clientWidth !\x3d 0) \x26\x26 (!goog.userAgent.WEBKIT || el.clientHeight !\x3d 0 || el !\x3d body) \x26\x26 (el !\x3d body \x26\x26 el !\x3d documentElement \x26\x26 goog.style.getStyle_(el, \x22overflow\x22) !\x3d \x22visible\x22)) {\n var pos \x3d goog.style.getPageOffset(el);\n var client \x3d goog.style.getClientLeftTop(el);\n pos.x +\x3d client.x;\n pos.y +\x3d client.y;\n visibleRect.top \x3d Math.max(visibleRect.top, pos.y);\n visibleRect.right \x3d Math.min(visibleRect.right, pos.x + el.clientWidth);\n visibleRect.bottom \x3d Math.min(visibleRect.bottom, pos.y + el.clientHeight);\n visibleRect.left \x3d Math.max(visibleRect.left, pos.x);\n }\n }\n var scrollX \x3d scrollEl.scrollLeft;\n var scrollY \x3d scrollEl.scrollTop;\n visibleRect.left \x3d Math.max(visibleRect.left, scrollX);\n visibleRect.top \x3d Math.max(visibleRect.top, scrollY);\n var winSize \x3d dom.getViewportSize();\n visibleRect.right \x3d Math.min(visibleRect.right, scrollX + winSize.width);\n visibleRect.bottom \x3d Math.min(visibleRect.bottom, scrollY + winSize.height);\n return visibleRect.top \x3e\x3d 0 \x26\x26 visibleRect.left \x3e\x3d 0 \x26\x26 visibleRect.bottom \x3e visibleRect.top \x26\x26 visibleRect.right \x3e visibleRect.left ? visibleRect : null;\n};\ngoog.style.getContainerOffsetToScrollInto \x3d function(element, opt_container, opt_center) {\n var container \x3d opt_container || goog.dom.getDocumentScrollElement();\n var elementPos \x3d goog.style.getPageOffset(element);\n var containerPos \x3d goog.style.getPageOffset(container);\n var containerBorder \x3d goog.style.getBorderBox(container);\n if (container \x3d\x3d goog.dom.getDocumentScrollElement()) {\n var relX \x3d elementPos.x - container.scrollLeft;\n var relY \x3d elementPos.y - container.scrollTop;\n if (goog.userAgent.IE \x26\x26 !goog.userAgent.isDocumentModeOrHigher(10)) {\n relX \x3d relX + containerBorder.left;\n relY \x3d relY + containerBorder.top;\n }\n } else {\n relX \x3d elementPos.x - containerPos.x - containerBorder.left;\n relY \x3d elementPos.y - containerPos.y - containerBorder.top;\n }\n var elementSize \x3d goog.style.getSizeWithDisplay_(element);\n var spaceX \x3d container.clientWidth - elementSize.width;\n var spaceY \x3d container.clientHeight - elementSize.height;\n var scrollLeft \x3d container.scrollLeft;\n var scrollTop \x3d container.scrollTop;\n if (opt_center) {\n scrollLeft \x3d scrollLeft + (relX - spaceX / 2);\n scrollTop \x3d scrollTop + (relY - spaceY / 2);\n } else {\n scrollLeft \x3d scrollLeft + Math.min(relX, Math.max(relX - spaceX, 0));\n scrollTop \x3d scrollTop + Math.min(relY, Math.max(relY - spaceY, 0));\n }\n return new goog.math.Coordinate(scrollLeft, scrollTop);\n};\ngoog.style.scrollIntoContainerView \x3d function(element, opt_container, opt_center) {\n var container \x3d opt_container || goog.dom.getDocumentScrollElement();\n var offset \x3d goog.style.getContainerOffsetToScrollInto(element, container, opt_center);\n container.scrollLeft \x3d offset.x;\n container.scrollTop \x3d offset.y;\n};\ngoog.style.getClientLeftTop \x3d function(el) {\n return new goog.math.Coordinate(el.clientLeft, el.clientTop);\n};\ngoog.style.getPageOffset \x3d function(el) {\n var doc \x3d goog.dom.getOwnerDocument(el);\n goog.asserts.assertObject(el, \x22Parameter is required\x22);\n var pos \x3d new goog.math.Coordinate(0, 0);\n var viewportElement \x3d goog.style.getClientViewportElement(doc);\n if (el \x3d\x3d viewportElement) {\n return pos;\n }\n var box \x3d goog.style.getBoundingClientRect_(el);\n var scrollCoord \x3d goog.dom.getDomHelper(doc).getDocumentScroll();\n pos.x \x3d box.left + scrollCoord.x;\n pos.y \x3d box.top + scrollCoord.y;\n return pos;\n};\ngoog.style.getPageOffsetLeft \x3d function(el) {\n return goog.style.getPageOffset(el).x;\n};\ngoog.style.getPageOffsetTop \x3d function(el) {\n return goog.style.getPageOffset(el).y;\n};\ngoog.style.getFramedPageOffset \x3d function(el, relativeWin) {\n var position \x3d new goog.math.Coordinate(0, 0);\n var currentWin \x3d goog.dom.getWindow(goog.dom.getOwnerDocument(el));\n if (!goog.reflect.canAccessProperty(currentWin, \x22parent\x22)) {\n return position;\n }\n var currentEl \x3d el;\n do {\n var offset \x3d currentWin \x3d\x3d relativeWin ? goog.style.getPageOffset(currentEl) : goog.style.getClientPositionForElement_(goog.asserts.assert(currentEl));\n position.x +\x3d offset.x;\n position.y +\x3d offset.y;\n } while (currentWin \x26\x26 currentWin !\x3d relativeWin \x26\x26 currentWin !\x3d currentWin.parent \x26\x26 (currentEl \x3d currentWin.frameElement) \x26\x26 (currentWin \x3d currentWin.parent));\n return position;\n};\ngoog.style.translateRectForAnotherFrame \x3d function(rect, origBase, newBase) {\n if (origBase.getDocument() !\x3d newBase.getDocument()) {\n var body \x3d origBase.getDocument().body;\n var pos \x3d goog.style.getFramedPageOffset(body, newBase.getWindow());\n pos \x3d goog.math.Coordinate.difference(pos, goog.style.getPageOffset(body));\n if (goog.userAgent.IE \x26\x26 !goog.userAgent.isDocumentModeOrHigher(9) \x26\x26 !origBase.isCss1CompatMode()) {\n pos \x3d goog.math.Coordinate.difference(pos, origBase.getDocumentScroll());\n }\n rect.left +\x3d pos.x;\n rect.top +\x3d pos.y;\n }\n};\ngoog.style.getRelativePosition \x3d function(a, b) {\n var ap \x3d goog.style.getClientPosition(a);\n var bp \x3d goog.style.getClientPosition(b);\n return new goog.math.Coordinate(ap.x - bp.x, ap.y - bp.y);\n};\ngoog.style.getClientPositionForElement_ \x3d function(el) {\n var box \x3d goog.style.getBoundingClientRect_(el);\n return new goog.math.Coordinate(box.left, box.top);\n};\ngoog.style.getClientPosition \x3d function(el) {\n goog.asserts.assert(el);\n if (el.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT) {\n return goog.style.getClientPositionForElement_(el);\n } else {\n var targetEvent \x3d el.changedTouches ? el.changedTouches[0] : el;\n return new goog.math.Coordinate(targetEvent.clientX, targetEvent.clientY);\n }\n};\ngoog.style.setPageOffset \x3d function(el, x, opt_y) {\n var cur \x3d goog.style.getPageOffset(el);\n if (x instanceof goog.math.Coordinate) {\n opt_y \x3d x.y;\n x \x3d x.x;\n }\n var dx \x3d goog.asserts.assertNumber(x) - cur.x;\n var dy \x3d Number(opt_y) - cur.y;\n goog.style.setPosition(el, el.offsetLeft + dx, el.offsetTop + dy);\n};\ngoog.style.setSize \x3d function(element, w, opt_h) {\n var h;\n if (w instanceof goog.math.Size) {\n h \x3d w.height;\n w \x3d w.width;\n } else {\n if (opt_h \x3d\x3d undefined) {\n throw new Error(\x22missing height argument\x22);\n }\n h \x3d opt_h;\n }\n goog.style.setWidth(element, w);\n goog.style.setHeight(element, h);\n};\ngoog.style.getPixelStyleValue_ \x3d function(value, round) {\n if (typeof value \x3d\x3d \x22number\x22) {\n value \x3d (round ? Math.round(value) : value) + \x22px\x22;\n }\n return value;\n};\ngoog.style.setHeight \x3d function(element, height) {\n element.style.height \x3d goog.style.getPixelStyleValue_(height, true);\n};\ngoog.style.setWidth \x3d function(element, width) {\n element.style.width \x3d goog.style.getPixelStyleValue_(width, true);\n};\ngoog.style.getSize \x3d function(element) {\n return goog.style.evaluateWithTemporaryDisplay_(goog.style.getSizeWithDisplay_, element);\n};\ngoog.style.evaluateWithTemporaryDisplay_ \x3d function(fn, element) {\n if (goog.style.getStyle_(element, \x22display\x22) !\x3d \x22none\x22) {\n return fn(element);\n }\n var style \x3d element.style;\n var originalDisplay \x3d style.display;\n var originalVisibility \x3d style.visibility;\n var originalPosition \x3d style.position;\n style.visibility \x3d \x22hidden\x22;\n style.position \x3d \x22absolute\x22;\n style.display \x3d \x22inline\x22;\n var retVal \x3d fn(element);\n style.display \x3d originalDisplay;\n style.position \x3d originalPosition;\n style.visibility \x3d originalVisibility;\n return retVal;\n};\ngoog.style.getSizeWithDisplay_ \x3d function(element) {\n var offsetWidth \x3d element.offsetWidth;\n var offsetHeight \x3d element.offsetHeight;\n var webkitOffsetsZero \x3d goog.userAgent.WEBKIT \x26\x26 !offsetWidth \x26\x26 !offsetHeight;\n if ((offsetWidth \x3d\x3d\x3d undefined || webkitOffsetsZero) \x26\x26 element.getBoundingClientRect) {\n var clientRect \x3d goog.style.getBoundingClientRect_(element);\n return new goog.math.Size(clientRect.right - clientRect.left, clientRect.bottom - clientRect.top);\n }\n return new goog.math.Size(offsetWidth, offsetHeight);\n};\ngoog.style.getTransformedSize \x3d function(element) {\n if (!element.getBoundingClientRect) {\n return null;\n }\n var clientRect \x3d goog.style.evaluateWithTemporaryDisplay_(goog.style.getBoundingClientRect_, element);\n return new goog.math.Size(clientRect.right - clientRect.left, clientRect.bottom - clientRect.top);\n};\ngoog.style.getBounds \x3d function(element) {\n var o \x3d goog.style.getPageOffset(element);\n var s \x3d goog.style.getSize(element);\n return new goog.math.Rect(o.x, o.y, s.width, s.height);\n};\ngoog.style.toCamelCase \x3d function(selector) {\n return goog.string.toCamelCase(String(selector));\n};\ngoog.style.toSelectorCase \x3d function(selector) {\n return goog.string.toSelectorCase(selector);\n};\ngoog.style.getOpacity \x3d function(el) {\n goog.asserts.assert(el);\n var style \x3d el.style;\n var result \x3d \x22\x22;\n if (\x22opacity\x22 in style) {\n result \x3d style.opacity;\n } else if (\x22MozOpacity\x22 in style) {\n result \x3d style.MozOpacity;\n } else if (\x22filter\x22 in style) {\n var match \x3d style.filter.match(/alpha\\(opacity\x3d([\\d.]+)\\)/);\n if (match) {\n result \x3d String(match[1] / 100);\n }\n }\n return result \x3d\x3d \x22\x22 ? result : Number(result);\n};\ngoog.style.setOpacity \x3d function(el, alpha) {\n goog.asserts.assert(el);\n var style \x3d el.style;\n if (\x22opacity\x22 in style) {\n style.opacity \x3d alpha;\n } else if (\x22MozOpacity\x22 in style) {\n style.MozOpacity \x3d alpha;\n } else if (\x22filter\x22 in style) {\n if (alpha \x3d\x3d\x3d \x22\x22) {\n style.filter \x3d \x22\x22;\n } else {\n style.filter \x3d \x22alpha(opacity\\x3d\x22 + Number(alpha) * 100 + \x22)\x22;\n }\n }\n};\ngoog.style.setTransparentBackgroundImage \x3d function(el, src) {\n var style \x3d el.style;\n style.backgroundImage \x3d \x22url(\x22 + src + \x22)\x22;\n style.backgroundPosition \x3d \x22top left\x22;\n style.backgroundRepeat \x3d \x22no-repeat\x22;\n};\ngoog.style.clearTransparentBackgroundImage \x3d function(el) {\n var style \x3d el.style;\n if (\x22filter\x22 in style) {\n style.filter \x3d \x22\x22;\n } else {\n style.backgroundImage \x3d \x22none\x22;\n }\n};\ngoog.style.showElement \x3d function(el, display) {\n goog.style.setElementShown(el, display);\n};\ngoog.style.setElementShown \x3d function(el, isShown) {\n el.style.display \x3d isShown ? \x22\x22 : \x22none\x22;\n};\ngoog.style.isElementShown \x3d function(el) {\n return el.style.display !\x3d \x22none\x22;\n};\ngoog.style.installSafeStyleSheet \x3d function(safeStyleSheet, opt_node) {\n var dh \x3d goog.dom.getDomHelper(opt_node);\n var doc \x3d dh.getDocument();\n if (goog.userAgent.IE \x26\x26 doc.createStyleSheet) {\n var styleSheet \x3d doc.createStyleSheet();\n goog.style.setSafeStyleSheet(styleSheet, safeStyleSheet);\n return styleSheet;\n } else {\n var head \x3d dh.getElementsByTagNameAndClass(goog.dom.TagName.HEAD)[0];\n if (!head) {\n var body \x3d dh.getElementsByTagNameAndClass(goog.dom.TagName.BODY)[0];\n head \x3d dh.createDom(goog.dom.TagName.HEAD);\n body.parentNode.insertBefore(head, body);\n }\n var el \x3d dh.createDom(goog.dom.TagName.STYLE);\n const nonce \x3d goog.dom.safe.getStyleNonce();\n if (nonce) {\n el.setAttribute(\x22nonce\x22, nonce);\n }\n goog.style.setSafeStyleSheet(el, safeStyleSheet);\n dh.appendChild(head, el);\n return el;\n }\n};\ngoog.style.uninstallStyles \x3d function(styleSheet) {\n var node \x3d styleSheet.ownerNode || styleSheet.owningElement || styleSheet;\n goog.dom.removeNode(node);\n};\ngoog.style.setSafeStyleSheet \x3d function(element, safeStyleSheet) {\n var stylesString \x3d goog.html.SafeStyleSheet.unwrap(safeStyleSheet);\n if (goog.userAgent.IE \x26\x26 element.cssText !\x3d\x3d undefined) {\n element.cssText \x3d stylesString;\n } else if (goog.global.trustedTypes) {\n goog.dom.setTextContent(element, stylesString);\n } else {\n element.innerHTML \x3d stylesString;\n }\n};\ngoog.style.setPreWrap \x3d function(el) {\n var style \x3d el.style;\n if (goog.userAgent.GECKO) {\n style.whiteSpace \x3d \x22-moz-pre-wrap\x22;\n } else {\n style.whiteSpace \x3d \x22pre-wrap\x22;\n }\n};\ngoog.style.setInlineBlock \x3d function(el) {\n var style \x3d el.style;\n style.position \x3d \x22relative\x22;\n style.display \x3d \x22inline-block\x22;\n};\ngoog.style.isRightToLeft \x3d function(el) {\n return \x22rtl\x22 \x3d\x3d goog.style.getStyle_(el, \x22direction\x22);\n};\ngoog.style.unselectableStyle_ \x3d goog.userAgent.GECKO ? \x22MozUserSelect\x22 : goog.userAgent.WEBKIT || goog.userAgent.EDGE ? \x22WebkitUserSelect\x22 : null;\ngoog.style.isUnselectable \x3d function(el) {\n if (goog.style.unselectableStyle_) {\n return el.style[goog.style.unselectableStyle_].toLowerCase() \x3d\x3d \x22none\x22;\n } else if (goog.userAgent.IE) {\n return el.getAttribute(\x22unselectable\x22) \x3d\x3d \x22on\x22;\n }\n return false;\n};\ngoog.style.setUnselectable \x3d function(el, unselectable, opt_noRecurse) {\n var descendants \x3d !opt_noRecurse ? el.getElementsByTagName(\x22*\x22) : null;\n var name \x3d goog.style.unselectableStyle_;\n if (name) {\n var value \x3d unselectable ? \x22none\x22 : \x22\x22;\n if (el.style) {\n el.style[name] \x3d value;\n }\n if (descendants) {\n var i \x3d 0;\n var descendant;\n for (; descendant \x3d descendants[i]; i++) {\n if (descendant.style) {\n descendant.style[name] \x3d value;\n }\n }\n }\n } else if (goog.userAgent.IE) {\n value \x3d unselectable ? \x22on\x22 : \x22\x22;\n el.setAttribute(\x22unselectable\x22, value);\n if (descendants) {\n i \x3d 0;\n for (; descendant \x3d descendants[i]; i++) {\n descendant.setAttribute(\x22unselectable\x22, value);\n }\n }\n }\n};\ngoog.style.getBorderBoxSize \x3d function(element) {\n return new goog.math.Size(element.offsetWidth, element.offsetHeight);\n};\ngoog.style.setBorderBoxSize \x3d function(element, size) {\n goog.style.setBoxSizingSize_(element, size, \x22border-box\x22);\n};\ngoog.style.getContentBoxSize \x3d function(element) {\n var doc \x3d goog.dom.getOwnerDocument(element);\n var ieCurrentStyle \x3d goog.userAgent.IE \x26\x26 element.currentStyle;\n if (ieCurrentStyle \x26\x26 goog.dom.getDomHelper(doc).isCss1CompatMode() \x26\x26 ieCurrentStyle.width !\x3d \x22auto\x22 \x26\x26 ieCurrentStyle.height !\x3d \x22auto\x22 \x26\x26 !ieCurrentStyle.boxSizing) {\n var width \x3d goog.style.getIePixelValue_(element, ieCurrentStyle.width, \x22width\x22, \x22pixelWidth\x22);\n var height \x3d goog.style.getIePixelValue_(element, ieCurrentStyle.height, \x22height\x22, \x22pixelHeight\x22);\n return new goog.math.Size(width, height);\n } else {\n var borderBoxSize \x3d goog.style.getBorderBoxSize(element);\n var paddingBox \x3d goog.style.getPaddingBox(element);\n var borderBox \x3d goog.style.getBorderBox(element);\n return new goog.math.Size(borderBoxSize.width - borderBox.left - paddingBox.left - paddingBox.right - borderBox.right, borderBoxSize.height - borderBox.top - paddingBox.top - paddingBox.bottom - borderBox.bottom);\n }\n};\ngoog.style.setContentBoxSize \x3d function(element, size) {\n goog.style.setBoxSizingSize_(element, size, \x22content-box\x22);\n};\ngoog.style.setBoxSizingSize_ \x3d function(element, size, boxSizing) {\n var style \x3d element.style;\n if (goog.userAgent.GECKO) {\n style.MozBoxSizing \x3d boxSizing;\n } else if (goog.userAgent.WEBKIT) {\n style.WebkitBoxSizing \x3d boxSizing;\n } else {\n style.boxSizing \x3d boxSizing;\n }\n style.width \x3d Math.max(size.width, 0) + \x22px\x22;\n style.height \x3d Math.max(size.height, 0) + \x22px\x22;\n};\ngoog.style.getIePixelValue_ \x3d function(element, value, name, pixelName) {\n if (/^\\d+px?$/.test(value)) {\n return parseInt(value, 10);\n } else {\n var oldStyleValue \x3d element.style[name];\n var oldRuntimeValue \x3d element.runtimeStyle[name];\n element.runtimeStyle[name] \x3d element.currentStyle[name];\n element.style[name] \x3d value;\n var pixelValue \x3d element.style[pixelName];\n element.style[name] \x3d oldStyleValue;\n element.runtimeStyle[name] \x3d oldRuntimeValue;\n return +pixelValue;\n }\n};\ngoog.style.getIePixelDistance_ \x3d function(element, propName) {\n var value \x3d goog.style.getCascadedStyle(element, propName);\n return value ? goog.style.getIePixelValue_(element, value, \x22left\x22, \x22pixelLeft\x22) : 0;\n};\ngoog.style.getBox_ \x3d function(element, stylePrefix) {\n if (goog.userAgent.IE) {\n var left \x3d goog.style.getIePixelDistance_(element, stylePrefix + \x22Left\x22);\n var right \x3d goog.style.getIePixelDistance_(element, stylePrefix + \x22Right\x22);\n var top \x3d goog.style.getIePixelDistance_(element, stylePrefix + \x22Top\x22);\n var bottom \x3d goog.style.getIePixelDistance_(element, stylePrefix + \x22Bottom\x22);\n return new goog.math.Box(top, right, bottom, left);\n } else {\n left \x3d goog.style.getComputedStyle(element, stylePrefix + \x22Left\x22);\n right \x3d goog.style.getComputedStyle(element, stylePrefix + \x22Right\x22);\n top \x3d goog.style.getComputedStyle(element, stylePrefix + \x22Top\x22);\n bottom \x3d goog.style.getComputedStyle(element, stylePrefix + \x22Bottom\x22);\n return new goog.math.Box(parseFloat(top), parseFloat(right), parseFloat(bottom), parseFloat(left));\n }\n};\ngoog.style.getPaddingBox \x3d function(element) {\n return goog.style.getBox_(element, \x22padding\x22);\n};\ngoog.style.getMarginBox \x3d function(element) {\n return goog.style.getBox_(element, \x22margin\x22);\n};\ngoog.style.ieBorderWidthKeywords_ \x3d {\x22thin\x22:2, \x22medium\x22:4, \x22thick\x22:6};\ngoog.style.getIePixelBorder_ \x3d function(element, prop) {\n if (goog.style.getCascadedStyle(element, prop + \x22Style\x22) \x3d\x3d \x22none\x22) {\n return 0;\n }\n var width \x3d goog.style.getCascadedStyle(element, prop + \x22Width\x22);\n if (width in goog.style.ieBorderWidthKeywords_) {\n return goog.style.ieBorderWidthKeywords_[width];\n }\n return goog.style.getIePixelValue_(element, width, \x22left\x22, \x22pixelLeft\x22);\n};\ngoog.style.getBorderBox \x3d function(element) {\n if (goog.userAgent.IE \x26\x26 !goog.userAgent.isDocumentModeOrHigher(9)) {\n var left \x3d goog.style.getIePixelBorder_(element, \x22borderLeft\x22);\n var right \x3d goog.style.getIePixelBorder_(element, \x22borderRight\x22);\n var top \x3d goog.style.getIePixelBorder_(element, \x22borderTop\x22);\n var bottom \x3d goog.style.getIePixelBorder_(element, \x22borderBottom\x22);\n return new goog.math.Box(top, right, bottom, left);\n } else {\n left \x3d goog.style.getComputedStyle(element, \x22borderLeftWidth\x22);\n right \x3d goog.style.getComputedStyle(element, \x22borderRightWidth\x22);\n top \x3d goog.style.getComputedStyle(element, \x22borderTopWidth\x22);\n bottom \x3d goog.style.getComputedStyle(element, \x22borderBottomWidth\x22);\n return new goog.math.Box(parseFloat(top), parseFloat(right), parseFloat(bottom), parseFloat(left));\n }\n};\ngoog.style.getFontFamily \x3d function(el) {\n var doc \x3d goog.dom.getOwnerDocument(el);\n var font \x3d \x22\x22;\n if (doc.body.createTextRange \x26\x26 goog.dom.contains(doc, el)) {\n var range \x3d doc.body.createTextRange();\n range.moveToElementText(el);\n try {\n font \x3d range.queryCommandValue(\x22FontName\x22);\n } catch (e) {\n font \x3d \x22\x22;\n }\n }\n if (!font) {\n font \x3d goog.style.getStyle_(el, \x22fontFamily\x22);\n }\n var fontsArray \x3d font.split(\x22,\x22);\n if (fontsArray.length \x3e 1) {\n font \x3d fontsArray[0];\n }\n return goog.string.stripQuotes(font, \x22\\\x22\x27\x22);\n};\ngoog.style.lengthUnitRegex_ \x3d /[^\\d]+$/;\ngoog.style.getLengthUnits \x3d function(value) {\n var units \x3d value.match(goog.style.lengthUnitRegex_);\n return units \x26\x26 units[0] || null;\n};\ngoog.style.ABSOLUTE_CSS_LENGTH_UNITS_ \x3d {\x22cm\x22:1, \x22in\x22:1, \x22mm\x22:1, \x22pc\x22:1, \x22pt\x22:1};\ngoog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_ \x3d {\x22em\x22:1, \x22ex\x22:1};\ngoog.style.getFontSize \x3d function(el) {\n var fontSize \x3d goog.style.getStyle_(el, \x22fontSize\x22);\n var sizeUnits \x3d goog.style.getLengthUnits(fontSize);\n if (fontSize \x26\x26 \x22px\x22 \x3d\x3d sizeUnits) {\n return parseInt(fontSize, 10);\n }\n if (goog.userAgent.IE) {\n if (String(sizeUnits) in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_) {\n return goog.style.getIePixelValue_(el, fontSize, \x22left\x22, \x22pixelLeft\x22);\n } else if (el.parentNode \x26\x26 el.parentNode.nodeType \x3d\x3d goog.dom.NodeType.ELEMENT \x26\x26 String(sizeUnits) in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_) {\n var parentElement \x3d el.parentNode;\n var parentSize \x3d goog.style.getStyle_(parentElement, \x22fontSize\x22);\n return goog.style.getIePixelValue_(parentElement, fontSize \x3d\x3d parentSize ? \x221em\x22 : fontSize, \x22left\x22, \x22pixelLeft\x22);\n }\n }\n var sizeElement \x3d goog.dom.createDom(goog.dom.TagName.SPAN, {\x22style\x22:\x22visibility:hidden;position:absolute;\x22 + \x22line-height:0;padding:0;margin:0;border:0;height:1em;\x22});\n goog.dom.appendChild(el, sizeElement);\n fontSize \x3d sizeElement.offsetHeight;\n goog.dom.removeNode(sizeElement);\n return fontSize;\n};\ngoog.style.parseStyleAttribute \x3d function(value) {\n var result \x3d {};\n value.split(/\\s*;\\s*/).forEach(function(pair) {\n var keyValue \x3d pair.match(/\\s*([\\w-]+)\\s*:(.+)/);\n if (keyValue) {\n var styleName \x3d keyValue[1];\n var styleValue \x3d goog.string.trim(keyValue[2]);\n result[goog.string.toCamelCase(styleName.toLowerCase())] \x3d styleValue;\n }\n });\n return result;\n};\ngoog.style.toStyleAttribute \x3d function(obj) {\n var buffer \x3d [];\n goog.object.forEach(obj, function(value, key) {\n buffer.push(goog.string.toSelectorCase(key), \x22:\x22, value, \x22;\x22);\n });\n return buffer.join(\x22\x22);\n};\ngoog.style.setFloat \x3d function(el, value) {\n el.style[goog.userAgent.IE ? \x22styleFloat\x22 : \x22cssFloat\x22] \x3d value;\n};\ngoog.style.getFloat \x3d function(el) {\n return el.style[goog.userAgent.IE ? \x22styleFloat\x22 : \x22cssFloat\x22] || \x22\x22;\n};\ngoog.style.getScrollbarWidth \x3d function(opt_className) {\n var outerDiv \x3d goog.dom.createElement(goog.dom.TagName.DIV);\n if (opt_className) {\n outerDiv.className \x3d opt_className;\n }\n outerDiv.style.cssText \x3d \x22overflow:auto;\x22 + \x22position:absolute;top:0;width:100px;height:100px\x22;\n var innerDiv \x3d goog.dom.createElement(goog.dom.TagName.DIV);\n goog.style.setSize(innerDiv, \x22200px\x22, \x22200px\x22);\n outerDiv.appendChild(innerDiv);\n goog.dom.appendChild(goog.dom.getDocument().body, outerDiv);\n var width \x3d outerDiv.offsetWidth - outerDiv.clientWidth;\n goog.dom.removeNode(outerDiv);\n return width;\n};\ngoog.style.MATRIX_TRANSLATION_REGEX_ \x3d new RegExp(\x22matrix\\\\([0-9\\\\.\\\\-]+, [0-9\\\\.\\\\-]+, \x22 + \x22[0-9\\\\.\\\\-]+, [0-9\\\\.\\\\-]+, \x22 + \x22([0-9\\\\.\\\\-]+)p?x?, ([0-9\\\\.\\\\-]+)p?x?\\\\)\x22);\ngoog.style.getCssTranslation \x3d function(element) {\n var transform \x3d goog.style.getComputedTransform(element);\n if (!transform) {\n return new goog.math.Coordinate(0, 0);\n }\n var matches \x3d transform.match(goog.style.MATRIX_TRANSLATION_REGEX_);\n if (!matches) {\n return new goog.math.Coordinate(0, 0);\n }\n return new goog.math.Coordinate(parseFloat(matches[1]), parseFloat(matches[2]));\n};\n");
SHADOW_ENV.evalLoad("shadow.dom.js", true, "goog.provide(\x27shadow.dom\x27);\nshadow.dom.transition_supported_QMARK_ \x3d true;\n\n/**\n * @interface\n */\nshadow.dom.IElement \x3d function(){};\n\nvar shadow$dom$IElement$_to_dom$dyn_23594 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.dom._to_dom[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.dom._to_dom[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IElement.-to-dom\x22,this$);\n}\n}\n});\nshadow.dom._to_dom \x3d (function shadow$dom$_to_dom(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$dom$IElement$_to_dom$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$dom$IElement$_to_dom$arity$1(this$);\n} else {\nreturn shadow$dom$IElement$_to_dom$dyn_23594(this$);\n}\n});\n\n\n/**\n * @interface\n */\nshadow.dom.SVGElement \x3d function(){};\n\nvar shadow$dom$SVGElement$_to_svg$dyn_23598 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.dom._to_svg[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.dom._to_svg[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22SVGElement.-to-svg\x22,this$);\n}\n}\n});\nshadow.dom._to_svg \x3d (function shadow$dom$_to_svg(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$dom$SVGElement$_to_svg$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$dom$SVGElement$_to_svg$arity$1(this$);\n} else {\nreturn shadow$dom$SVGElement$_to_svg$dyn_23598(this$);\n}\n});\n\nshadow.dom.lazy_native_coll_seq \x3d (function shadow$dom$lazy_native_coll_seq(coll,idx){\nif((idx \x3c coll.length)){\nreturn (new cljs.core.LazySeq(null,(function (){\nreturn cljs.core.cons((coll[idx]),(function (){var G__22105 \x3d coll;\nvar G__22106 \x3d (idx + (1));\nreturn (shadow.dom.lazy_native_coll_seq.cljs$core$IFn$_invoke$arity$2 ? shadow.dom.lazy_native_coll_seq.cljs$core$IFn$_invoke$arity$2(G__22105,G__22106) : shadow.dom.lazy_native_coll_seq.call(null, G__22105,G__22106));\n})());\n}),null,null));\n} else {\nreturn null;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IIndexed}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IDeref}\n * @implements {shadow.dom.IElement}\n*/\nshadow.dom.NativeColl \x3d (function (coll){\nthis.coll \x3d coll;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 8421394;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.dom.NativeColl.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.coll;\n}));\n\n(shadow.dom.NativeColl.prototype.cljs$core$IIndexed$_nth$arity$2 \x3d (function (this$,n){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.coll[n]);\n}));\n\n(shadow.dom.NativeColl.prototype.cljs$core$IIndexed$_nth$arity$3 \x3d (function (this$,n,not_found){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar or__5002__auto__ \x3d (self__.coll[n]);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn not_found;\n}\n}));\n\n(shadow.dom.NativeColl.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.coll.length;\n}));\n\n(shadow.dom.NativeColl.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn shadow.dom.lazy_native_coll_seq(self__.coll,(0));\n}));\n\n(shadow.dom.NativeColl.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.dom.NativeColl.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.coll;\n}));\n\n(shadow.dom.NativeColl.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22coll\x22,\x22coll\x22,-1006698606,null)], null);\n}));\n\n(shadow.dom.NativeColl.cljs$lang$type \x3d true);\n\n(shadow.dom.NativeColl.cljs$lang$ctorStr \x3d \x22shadow.dom/NativeColl\x22);\n\n(shadow.dom.NativeColl.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.dom/NativeColl\x22);\n}));\n\n/**\n * Positional factory function for shadow.dom/NativeColl.\n */\nshadow.dom.__GT_NativeColl \x3d (function shadow$dom$__GT_NativeColl(coll){\nreturn (new shadow.dom.NativeColl(coll));\n});\n\nshadow.dom.native_coll \x3d (function shadow$dom$native_coll(coll){\nreturn (new shadow.dom.NativeColl(coll));\n});\nshadow.dom.dom_node \x3d (function shadow$dom$dom_node(el){\nif((el \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((el \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d el.shadow$dom$IElement$))))?true:false):false)){\nreturn el.shadow$dom$IElement$_to_dom$arity$1(null, );\n} else {\nif(typeof el \x3d\x3d\x3d \x27string\x27){\nreturn document.createTextNode(el);\n} else {\nif(typeof el \x3d\x3d\x3d \x27number\x27){\nreturn document.createTextNode(cljs.core.str.cljs$core$IFn$_invoke$arity$1(el));\n} else {\nreturn el;\n\n}\n}\n}\n}\n});\nshadow.dom.query_one \x3d (function shadow$dom$query_one(var_args){\nvar G__22134 \x3d arguments.length;\nswitch (G__22134) {\ncase 1:\nreturn shadow.dom.query_one.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.query_one.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.query_one.cljs$core$IFn$_invoke$arity$1 \x3d (function (sel){\nreturn document.querySelector(sel);\n}));\n\n(shadow.dom.query_one.cljs$core$IFn$_invoke$arity$2 \x3d (function (sel,root){\nreturn shadow.dom.dom_node(root).querySelector(sel);\n}));\n\n(shadow.dom.query_one.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.query \x3d (function shadow$dom$query(var_args){\nvar G__22143 \x3d arguments.length;\nswitch (G__22143) {\ncase 1:\nreturn shadow.dom.query.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.query.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.query.cljs$core$IFn$_invoke$arity$1 \x3d (function (sel){\nreturn (new shadow.dom.NativeColl(document.querySelectorAll(sel)));\n}));\n\n(shadow.dom.query.cljs$core$IFn$_invoke$arity$2 \x3d (function (sel,root){\nreturn (new shadow.dom.NativeColl(shadow.dom.dom_node(root).querySelectorAll(sel)));\n}));\n\n(shadow.dom.query.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.by_id \x3d (function shadow$dom$by_id(var_args){\nvar G__22153 \x3d arguments.length;\nswitch (G__22153) {\ncase 2:\nreturn shadow.dom.by_id.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.by_id.cljs$core$IFn$_invoke$arity$2 \x3d (function (id,el){\nreturn shadow.dom.dom_node(el).getElementById(id);\n}));\n\n(shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1 \x3d (function (id){\nreturn document.getElementById(id);\n}));\n\n(shadow.dom.by_id.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.build \x3d shadow.dom.dom_node;\nshadow.dom.ev_stop \x3d (function shadow$dom$ev_stop(var_args){\nvar G__22169 \x3d arguments.length;\nswitch (G__22169) {\ncase 1:\nreturn shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1 \x3d (function (e){\nif(cljs.core.truth_(e.stopPropagation)){\ne.stopPropagation();\n\ne.preventDefault();\n} else {\n(e.cancelBubble \x3d true);\n\n(e.returnValue \x3d false);\n}\n\nreturn e;\n}));\n\n(shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$2 \x3d (function (e,el){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n\nreturn el;\n}));\n\n(shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$4 \x3d (function (e,el,scope,owner){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n\nreturn el;\n}));\n\n(shadow.dom.ev_stop.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * check wether a parent node (or the document) contains the child\n */\nshadow.dom.contains_QMARK_ \x3d (function shadow$dom$contains_QMARK_(var_args){\nvar G__22206 \x3d arguments.length;\nswitch (G__22206) {\ncase 1:\nreturn shadow.dom.contains_QMARK_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.contains_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.contains_QMARK_.cljs$core$IFn$_invoke$arity$1 \x3d (function (el){\nreturn goog.dom.contains(document,shadow.dom.dom_node(el));\n}));\n\n(shadow.dom.contains_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (parent,el){\nreturn goog.dom.contains(shadow.dom.dom_node(parent),shadow.dom.dom_node(el));\n}));\n\n(shadow.dom.contains_QMARK_.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.add_class \x3d (function shadow$dom$add_class(el,cls){\nreturn goog.dom.classlist.add(shadow.dom.dom_node(el),cls);\n});\nshadow.dom.remove_class \x3d (function shadow$dom$remove_class(el,cls){\nreturn goog.dom.classlist.remove(shadow.dom.dom_node(el),cls);\n});\nshadow.dom.toggle_class \x3d (function shadow$dom$toggle_class(var_args){\nvar G__22220 \x3d arguments.length;\nswitch (G__22220) {\ncase 2:\nreturn shadow.dom.toggle_class.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.dom.toggle_class.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.toggle_class.cljs$core$IFn$_invoke$arity$2 \x3d (function (el,cls){\nreturn goog.dom.classlist.toggle(shadow.dom.dom_node(el),cls);\n}));\n\n(shadow.dom.toggle_class.cljs$core$IFn$_invoke$arity$3 \x3d (function (el,cls,v){\nif(cljs.core.truth_(v)){\nreturn shadow.dom.add_class(el,cls);\n} else {\nreturn shadow.dom.remove_class(el,cls);\n}\n}));\n\n(shadow.dom.toggle_class.cljs$lang$maxFixedArity \x3d 3);\n\nshadow.dom.dom_listen \x3d (cljs.core.truth_((function (){var or__5002__auto__ \x3d (!((typeof document !\x3d\x3d \x27undefined\x27)));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn document.addEventListener;\n}\n})())?(function shadow$dom$dom_listen_good(el,ev,handler){\nreturn el.addEventListener(ev,handler,false);\n}):(function shadow$dom$dom_listen_ie(el,ev,handler){\ntry{return el.attachEvent([\x22on\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ev)].join(\x27\x27),(function (e){\nreturn (handler.cljs$core$IFn$_invoke$arity$2 ? handler.cljs$core$IFn$_invoke$arity$2(e,el) : handler.call(null, e,el));\n}));\n}catch (e22237){if((e22237 instanceof Object)){\nvar e \x3d e22237;\nreturn console.log(\x22didnt support attachEvent\x22,el,e);\n} else {\nthrow e22237;\n\n}\n}}));\nshadow.dom.dom_listen_remove \x3d (cljs.core.truth_((function (){var or__5002__auto__ \x3d (!((typeof document !\x3d\x3d \x27undefined\x27)));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn document.removeEventListener;\n}\n})())?(function shadow$dom$dom_listen_remove_good(el,ev,handler){\nreturn el.removeEventListener(ev,handler,false);\n}):(function shadow$dom$dom_listen_remove_ie(el,ev,handler){\nreturn el.detachEvent([\x22on\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ev)].join(\x27\x27),handler);\n}));\nshadow.dom.on_query \x3d (function shadow$dom$on_query(root_el,ev,selector,handler){\nvar seq__22253 \x3d cljs.core.seq(shadow.dom.query.cljs$core$IFn$_invoke$arity$2(selector,root_el));\nvar chunk__22254 \x3d null;\nvar count__22255 \x3d (0);\nvar i__22256 \x3d (0);\nwhile(true){\nif((i__22256 \x3c count__22255)){\nvar el \x3d chunk__22254.cljs$core$IIndexed$_nth$arity$2(null, i__22256);\nvar handler_23623__$1 \x3d ((function (seq__22253,chunk__22254,count__22255,i__22256,el){\nreturn (function (e){\nreturn (handler.cljs$core$IFn$_invoke$arity$2 ? handler.cljs$core$IFn$_invoke$arity$2(e,el) : handler.call(null, e,el));\n});})(seq__22253,chunk__22254,count__22255,i__22256,el))\n;\nshadow.dom.dom_listen(el,cljs.core.name(ev),handler_23623__$1);\n\n\nvar G__23624 \x3d seq__22253;\nvar G__23625 \x3d chunk__22254;\nvar G__23626 \x3d count__22255;\nvar G__23627 \x3d (i__22256 + (1));\nseq__22253 \x3d G__23624;\nchunk__22254 \x3d G__23625;\ncount__22255 \x3d G__23626;\ni__22256 \x3d G__23627;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22253);\nif(temp__5804__auto__){\nvar seq__22253__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22253__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22253__$1);\nvar G__23628 \x3d cljs.core.chunk_rest(seq__22253__$1);\nvar G__23629 \x3d c__5525__auto__;\nvar G__23630 \x3d cljs.core.count(c__5525__auto__);\nvar G__23631 \x3d (0);\nseq__22253 \x3d G__23628;\nchunk__22254 \x3d G__23629;\ncount__22255 \x3d G__23630;\ni__22256 \x3d G__23631;\ncontinue;\n} else {\nvar el \x3d cljs.core.first(seq__22253__$1);\nvar handler_23632__$1 \x3d ((function (seq__22253,chunk__22254,count__22255,i__22256,el,seq__22253__$1,temp__5804__auto__){\nreturn (function (e){\nreturn (handler.cljs$core$IFn$_invoke$arity$2 ? handler.cljs$core$IFn$_invoke$arity$2(e,el) : handler.call(null, e,el));\n});})(seq__22253,chunk__22254,count__22255,i__22256,el,seq__22253__$1,temp__5804__auto__))\n;\nshadow.dom.dom_listen(el,cljs.core.name(ev),handler_23632__$1);\n\n\nvar G__23634 \x3d cljs.core.next(seq__22253__$1);\nvar G__23635 \x3d null;\nvar G__23636 \x3d (0);\nvar G__23637 \x3d (0);\nseq__22253 \x3d G__23634;\nchunk__22254 \x3d G__23635;\ncount__22255 \x3d G__23636;\ni__22256 \x3d G__23637;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.dom.on \x3d (function shadow$dom$on(var_args){\nvar G__22268 \x3d arguments.length;\nswitch (G__22268) {\ncase 3:\nreturn shadow.dom.on.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.dom.on.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.on.cljs$core$IFn$_invoke$arity$3 \x3d (function (el,ev,handler){\nreturn shadow.dom.on.cljs$core$IFn$_invoke$arity$4(el,ev,handler,false);\n}));\n\n(shadow.dom.on.cljs$core$IFn$_invoke$arity$4 \x3d (function (el,ev,handler,capture){\nif(cljs.core.vector_QMARK_(ev)){\nreturn shadow.dom.on_query(el,cljs.core.first(ev),cljs.core.second(ev),handler);\n} else {\nvar handler__$1 \x3d (function (e){\nreturn (handler.cljs$core$IFn$_invoke$arity$2 ? handler.cljs$core$IFn$_invoke$arity$2(e,el) : handler.call(null, e,el));\n});\nreturn shadow.dom.dom_listen(shadow.dom.dom_node(el),cljs.core.name(ev),handler__$1);\n}\n}));\n\n(shadow.dom.on.cljs$lang$maxFixedArity \x3d 4);\n\nshadow.dom.remove_event_handler \x3d (function shadow$dom$remove_event_handler(el,ev,handler){\nreturn shadow.dom.dom_listen_remove(shadow.dom.dom_node(el),cljs.core.name(ev),handler);\n});\nshadow.dom.add_event_listeners \x3d (function shadow$dom$add_event_listeners(el,events){\nvar seq__22271 \x3d cljs.core.seq(events);\nvar chunk__22272 \x3d null;\nvar count__22273 \x3d (0);\nvar i__22274 \x3d (0);\nwhile(true){\nif((i__22274 \x3c count__22273)){\nvar vec__22294 \x3d chunk__22272.cljs$core$IIndexed$_nth$arity$2(null, i__22274);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22294,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22294,(1),null);\nshadow.dom.on.cljs$core$IFn$_invoke$arity$3(el,k,v);\n\n\nvar G__23644 \x3d seq__22271;\nvar G__23645 \x3d chunk__22272;\nvar G__23646 \x3d count__22273;\nvar G__23647 \x3d (i__22274 + (1));\nseq__22271 \x3d G__23644;\nchunk__22272 \x3d G__23645;\ncount__22273 \x3d G__23646;\ni__22274 \x3d G__23647;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22271);\nif(temp__5804__auto__){\nvar seq__22271__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22271__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22271__$1);\nvar G__23648 \x3d cljs.core.chunk_rest(seq__22271__$1);\nvar G__23649 \x3d c__5525__auto__;\nvar G__23650 \x3d cljs.core.count(c__5525__auto__);\nvar G__23651 \x3d (0);\nseq__22271 \x3d G__23648;\nchunk__22272 \x3d G__23649;\ncount__22273 \x3d G__23650;\ni__22274 \x3d G__23651;\ncontinue;\n} else {\nvar vec__22298 \x3d cljs.core.first(seq__22271__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22298,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22298,(1),null);\nshadow.dom.on.cljs$core$IFn$_invoke$arity$3(el,k,v);\n\n\nvar G__23652 \x3d cljs.core.next(seq__22271__$1);\nvar G__23653 \x3d null;\nvar G__23654 \x3d (0);\nvar G__23655 \x3d (0);\nseq__22271 \x3d G__23652;\nchunk__22272 \x3d G__23653;\ncount__22273 \x3d G__23654;\ni__22274 \x3d G__23655;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.dom.set_style \x3d (function shadow$dom$set_style(el,styles){\nvar dom \x3d shadow.dom.dom_node(el);\nvar seq__22302 \x3d cljs.core.seq(styles);\nvar chunk__22303 \x3d null;\nvar count__22304 \x3d (0);\nvar i__22305 \x3d (0);\nwhile(true){\nif((i__22305 \x3c count__22304)){\nvar vec__22319 \x3d chunk__22303.cljs$core$IIndexed$_nth$arity$2(null, i__22305);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22319,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22319,(1),null);\ngoog.style.setStyle(dom,cljs.core.name(k),(((v \x3d\x3d null))?\x22\x22:v));\n\n\nvar G__23656 \x3d seq__22302;\nvar G__23657 \x3d chunk__22303;\nvar G__23658 \x3d count__22304;\nvar G__23659 \x3d (i__22305 + (1));\nseq__22302 \x3d G__23656;\nchunk__22303 \x3d G__23657;\ncount__22304 \x3d G__23658;\ni__22305 \x3d G__23659;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22302);\nif(temp__5804__auto__){\nvar seq__22302__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22302__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22302__$1);\nvar G__23660 \x3d cljs.core.chunk_rest(seq__22302__$1);\nvar G__23661 \x3d c__5525__auto__;\nvar G__23662 \x3d cljs.core.count(c__5525__auto__);\nvar G__23663 \x3d (0);\nseq__22302 \x3d G__23660;\nchunk__22303 \x3d G__23661;\ncount__22304 \x3d G__23662;\ni__22305 \x3d G__23663;\ncontinue;\n} else {\nvar vec__22326 \x3d cljs.core.first(seq__22302__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22326,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22326,(1),null);\ngoog.style.setStyle(dom,cljs.core.name(k),(((v \x3d\x3d null))?\x22\x22:v));\n\n\nvar G__23664 \x3d cljs.core.next(seq__22302__$1);\nvar G__23665 \x3d null;\nvar G__23666 \x3d (0);\nvar G__23667 \x3d (0);\nseq__22302 \x3d G__23664;\nchunk__22303 \x3d G__23665;\ncount__22304 \x3d G__23666;\ni__22305 \x3d G__23667;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.dom.set_attr_STAR_ \x3d (function shadow$dom$set_attr_STAR_(el,key,value){\nvar G__22332_23668 \x3d key;\nvar G__22332_23669__$1 \x3d (((G__22332_23668 instanceof cljs.core.Keyword))?G__22332_23668.fqn:null);\nswitch (G__22332_23669__$1) {\ncase \x22id\x22:\n(el.id \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\n\nbreak;\ncase \x22class\x22:\n(el.className \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\n\nbreak;\ncase \x22for\x22:\n(el.htmlFor \x3d value);\n\nbreak;\ncase \x22cellpadding\x22:\nel.setAttribute(\x22cellPadding\x22,value);\n\nbreak;\ncase \x22cellspacing\x22:\nel.setAttribute(\x22cellSpacing\x22,value);\n\nbreak;\ncase \x22colspan\x22:\nel.setAttribute(\x22colSpan\x22,value);\n\nbreak;\ncase \x22frameborder\x22:\nel.setAttribute(\x22frameBorder\x22,value);\n\nbreak;\ncase \x22height\x22:\nel.setAttribute(\x22height\x22,value);\n\nbreak;\ncase \x22maxlength\x22:\nel.setAttribute(\x22maxLength\x22,value);\n\nbreak;\ncase \x22role\x22:\nel.setAttribute(\x22role\x22,value);\n\nbreak;\ncase \x22rowspan\x22:\nel.setAttribute(\x22rowSpan\x22,value);\n\nbreak;\ncase \x22type\x22:\nel.setAttribute(\x22type\x22,value);\n\nbreak;\ncase \x22usemap\x22:\nel.setAttribute(\x22useMap\x22,value);\n\nbreak;\ncase \x22valign\x22:\nel.setAttribute(\x22vAlign\x22,value);\n\nbreak;\ncase \x22width\x22:\nel.setAttribute(\x22width\x22,value);\n\nbreak;\ncase \x22on\x22:\nshadow.dom.add_event_listeners(el,value);\n\nbreak;\ncase \x22style\x22:\nif((value \x3d\x3d null)){\n} else {\nif(typeof value \x3d\x3d\x3d \x27string\x27){\nel.setAttribute(\x22style\x22,value);\n} else {\nif(cljs.core.map_QMARK_(value)){\nshadow.dom.set_style(el,value);\n} else {\ngoog.style.setStyle(el,value);\n\n}\n}\n}\n\nbreak;\ndefault:\nvar ks_23674 \x3d cljs.core.name(key);\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d goog.string.startsWith(ks_23674,\x22data-\x22);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn goog.string.startsWith(ks_23674,\x22aria-\x22);\n}\n})())){\nel.setAttribute(ks_23674,value);\n} else {\n(el[ks_23674] \x3d value);\n}\n\n}\n\nreturn el;\n});\nshadow.dom.set_attrs \x3d (function shadow$dom$set_attrs(el,attrs){\nreturn cljs.core.reduce_kv((function (el__$1,key,value){\nshadow.dom.set_attr_STAR_(el__$1,key,value);\n\nreturn el__$1;\n}),shadow.dom.dom_node(el),attrs);\n});\nshadow.dom.set_attr \x3d (function shadow$dom$set_attr(el,key,value){\nreturn shadow.dom.set_attr_STAR_(shadow.dom.dom_node(el),key,value);\n});\nshadow.dom.has_class_QMARK_ \x3d (function shadow$dom$has_class_QMARK_(el,cls){\nreturn goog.dom.classlist.contains(shadow.dom.dom_node(el),cls);\n});\nshadow.dom.merge_class_string \x3d (function shadow$dom$merge_class_string(current,extra_class){\nif(cljs.core.seq(current)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(current),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(extra_class)].join(\x27\x27);\n} else {\nreturn extra_class;\n}\n});\nshadow.dom.parse_tag \x3d (function shadow$dom$parse_tag(spec){\nvar spec__$1 \x3d cljs.core.name(spec);\nvar fdot \x3d spec__$1.indexOf(\x22.\x22);\nvar fhash \x3d spec__$1.indexOf(\x22#\x22);\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((-1),fdot)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((-1),fhash)))){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec__$1,null,null], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((-1),fhash)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec__$1.substring((0),fdot),null,clojure.string.replace(spec__$1.substring((fdot + (1))),/\\./,\x22 \x22)], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((-1),fdot)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec__$1.substring((0),fhash),spec__$1.substring((fhash + (1))),null], null);\n} else {\nif((fhash \x3e fdot)){\nthrow [\x22cant have id after class?\x22,spec__$1].join(\x27\x27);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [spec__$1.substring((0),fhash),spec__$1.substring((fhash + (1)),fdot),clojure.string.replace(spec__$1.substring((fdot + (1))),/\\./,\x22 \x22)], null);\n\n}\n}\n}\n}\n});\nshadow.dom.create_dom_node \x3d (function shadow$dom$create_dom_node(tag_def,p__22393){\nvar map__22396 \x3d p__22393;\nvar map__22396__$1 \x3d cljs.core.__destructure_map(map__22396);\nvar props \x3d map__22396__$1;\nvar class$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__22396__$1,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996));\nvar tag_props \x3d ({});\nvar vec__22399 \x3d shadow.dom.parse_tag(tag_def);\nvar tag_name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22399,(0),null);\nvar tag_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22399,(1),null);\nvar tag_classes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22399,(2),null);\nif(cljs.core.truth_(tag_id)){\n(tag_props[\x22id\x22] \x3d tag_id);\n} else {\n}\n\nif(cljs.core.truth_(tag_classes)){\n(tag_props[\x22class\x22] \x3d shadow.dom.merge_class_string(class$,tag_classes));\n} else {\n}\n\nvar G__22416 \x3d goog.dom.createDom(tag_name,tag_props);\nshadow.dom.set_attrs(G__22416,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(props,new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996)));\n\nreturn G__22416;\n});\nshadow.dom.append \x3d (function shadow$dom$append(var_args){\nvar G__22434 \x3d arguments.length;\nswitch (G__22434) {\ncase 1:\nreturn shadow.dom.append.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.append.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.append.cljs$core$IFn$_invoke$arity$1 \x3d (function (node){\nif(cljs.core.truth_(node)){\nvar temp__5804__auto__ \x3d shadow.dom.dom_node(node);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar n \x3d temp__5804__auto__;\ndocument.body.appendChild(n);\n\nreturn n;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.dom.append.cljs$core$IFn$_invoke$arity$2 \x3d (function (el,node){\nif(cljs.core.truth_(node)){\nvar temp__5804__auto__ \x3d shadow.dom.dom_node(node);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar n \x3d temp__5804__auto__;\nshadow.dom.dom_node(el).appendChild(n);\n\nreturn n;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.dom.append.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.destructure_node \x3d (function shadow$dom$destructure_node(create_fn,p__22453){\nvar vec__22456 \x3d p__22453;\nvar seq__22457 \x3d cljs.core.seq(vec__22456);\nvar first__22458 \x3d cljs.core.first(seq__22457);\nvar seq__22457__$1 \x3d cljs.core.next(seq__22457);\nvar nn \x3d first__22458;\nvar first__22458__$1 \x3d cljs.core.first(seq__22457__$1);\nvar seq__22457__$2 \x3d cljs.core.next(seq__22457__$1);\nvar np \x3d first__22458__$1;\nvar nc \x3d seq__22457__$2;\nvar node \x3d vec__22456;\nif((nn instanceof cljs.core.Keyword)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid dom node\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22node\x22,\x22node\x22,581201198),node], null));\n}\n\nif((((np \x3d\x3d null)) \x26\x26 ((nc \x3d\x3d null)))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var G__22461 \x3d nn;\nvar G__22462 \x3d cljs.core.PersistentArrayMap.EMPTY;\nreturn (create_fn.cljs$core$IFn$_invoke$arity$2 ? create_fn.cljs$core$IFn$_invoke$arity$2(G__22461,G__22462) : create_fn.call(null, G__22461,G__22462));\n})(),cljs.core.List.EMPTY], null);\n} else {\nif(cljs.core.map_QMARK_(np)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(create_fn.cljs$core$IFn$_invoke$arity$2 ? create_fn.cljs$core$IFn$_invoke$arity$2(nn,np) : create_fn.call(null, nn,np)),nc], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var G__22469 \x3d nn;\nvar G__22470 \x3d cljs.core.PersistentArrayMap.EMPTY;\nreturn (create_fn.cljs$core$IFn$_invoke$arity$2 ? create_fn.cljs$core$IFn$_invoke$arity$2(G__22469,G__22470) : create_fn.call(null, G__22469,G__22470));\n})(),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(nc,np)], null);\n\n}\n}\n});\nshadow.dom.make_dom_node \x3d (function shadow$dom$make_dom_node(structure){\nvar vec__22479 \x3d shadow.dom.destructure_node(shadow.dom.create_dom_node,structure);\nvar node \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22479,(0),null);\nvar node_children \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22479,(1),null);\nvar seq__22484_23685 \x3d cljs.core.seq(node_children);\nvar chunk__22485_23686 \x3d null;\nvar count__22486_23687 \x3d (0);\nvar i__22487_23688 \x3d (0);\nwhile(true){\nif((i__22487_23688 \x3c count__22486_23687)){\nvar child_struct_23689 \x3d chunk__22485_23686.cljs$core$IIndexed$_nth$arity$2(null, i__22487_23688);\nvar children_23690 \x3d shadow.dom.dom_node(child_struct_23689);\nif(cljs.core.seq_QMARK_(children_23690)){\nvar seq__22540_23691 \x3d cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(shadow.dom.dom_node,children_23690));\nvar chunk__22542_23692 \x3d null;\nvar count__22543_23693 \x3d (0);\nvar i__22544_23694 \x3d (0);\nwhile(true){\nif((i__22544_23694 \x3c count__22543_23693)){\nvar child_23696 \x3d chunk__22542_23692.cljs$core$IIndexed$_nth$arity$2(null, i__22544_23694);\nif(cljs.core.truth_(child_23696)){\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(node,child_23696);\n\n\nvar G__23697 \x3d seq__22540_23691;\nvar G__23698 \x3d chunk__22542_23692;\nvar G__23699 \x3d count__22543_23693;\nvar G__23700 \x3d (i__22544_23694 + (1));\nseq__22540_23691 \x3d G__23697;\nchunk__22542_23692 \x3d G__23698;\ncount__22543_23693 \x3d G__23699;\ni__22544_23694 \x3d G__23700;\ncontinue;\n} else {\nvar G__23702 \x3d seq__22540_23691;\nvar G__23703 \x3d chunk__22542_23692;\nvar G__23704 \x3d count__22543_23693;\nvar G__23705 \x3d (i__22544_23694 + (1));\nseq__22540_23691 \x3d G__23702;\nchunk__22542_23692 \x3d G__23703;\ncount__22543_23693 \x3d G__23704;\ni__22544_23694 \x3d G__23705;\ncontinue;\n}\n} else {\nvar temp__5804__auto___23706 \x3d cljs.core.seq(seq__22540_23691);\nif(temp__5804__auto___23706){\nvar seq__22540_23707__$1 \x3d temp__5804__auto___23706;\nif(cljs.core.chunked_seq_QMARK_(seq__22540_23707__$1)){\nvar c__5525__auto___23708 \x3d cljs.core.chunk_first(seq__22540_23707__$1);\nvar G__23709 \x3d cljs.core.chunk_rest(seq__22540_23707__$1);\nvar G__23710 \x3d c__5525__auto___23708;\nvar G__23711 \x3d cljs.core.count(c__5525__auto___23708);\nvar G__23712 \x3d (0);\nseq__22540_23691 \x3d G__23709;\nchunk__22542_23692 \x3d G__23710;\ncount__22543_23693 \x3d G__23711;\ni__22544_23694 \x3d G__23712;\ncontinue;\n} else {\nvar child_23713 \x3d cljs.core.first(seq__22540_23707__$1);\nif(cljs.core.truth_(child_23713)){\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(node,child_23713);\n\n\nvar G__23715 \x3d cljs.core.next(seq__22540_23707__$1);\nvar G__23716 \x3d null;\nvar G__23717 \x3d (0);\nvar G__23718 \x3d (0);\nseq__22540_23691 \x3d G__23715;\nchunk__22542_23692 \x3d G__23716;\ncount__22543_23693 \x3d G__23717;\ni__22544_23694 \x3d G__23718;\ncontinue;\n} else {\nvar G__23720 \x3d cljs.core.next(seq__22540_23707__$1);\nvar G__23721 \x3d null;\nvar G__23722 \x3d (0);\nvar G__23723 \x3d (0);\nseq__22540_23691 \x3d G__23720;\nchunk__22542_23692 \x3d G__23721;\ncount__22543_23693 \x3d G__23722;\ni__22544_23694 \x3d G__23723;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n} else {\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(node,children_23690);\n}\n\n\nvar G__23724 \x3d seq__22484_23685;\nvar G__23725 \x3d chunk__22485_23686;\nvar G__23726 \x3d count__22486_23687;\nvar G__23727 \x3d (i__22487_23688 + (1));\nseq__22484_23685 \x3d G__23724;\nchunk__22485_23686 \x3d G__23725;\ncount__22486_23687 \x3d G__23726;\ni__22487_23688 \x3d G__23727;\ncontinue;\n} else {\nvar temp__5804__auto___23728 \x3d cljs.core.seq(seq__22484_23685);\nif(temp__5804__auto___23728){\nvar seq__22484_23729__$1 \x3d temp__5804__auto___23728;\nif(cljs.core.chunked_seq_QMARK_(seq__22484_23729__$1)){\nvar c__5525__auto___23730 \x3d cljs.core.chunk_first(seq__22484_23729__$1);\nvar G__23731 \x3d cljs.core.chunk_rest(seq__22484_23729__$1);\nvar G__23732 \x3d c__5525__auto___23730;\nvar G__23733 \x3d cljs.core.count(c__5525__auto___23730);\nvar G__23734 \x3d (0);\nseq__22484_23685 \x3d G__23731;\nchunk__22485_23686 \x3d G__23732;\ncount__22486_23687 \x3d G__23733;\ni__22487_23688 \x3d G__23734;\ncontinue;\n} else {\nvar child_struct_23735 \x3d cljs.core.first(seq__22484_23729__$1);\nvar children_23737 \x3d shadow.dom.dom_node(child_struct_23735);\nif(cljs.core.seq_QMARK_(children_23737)){\nvar seq__22568_23739 \x3d cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(shadow.dom.dom_node,children_23737));\nvar chunk__22570_23740 \x3d null;\nvar count__22571_23741 \x3d (0);\nvar i__22572_23742 \x3d (0);\nwhile(true){\nif((i__22572_23742 \x3c count__22571_23741)){\nvar child_23745 \x3d chunk__22570_23740.cljs$core$IIndexed$_nth$arity$2(null, i__22572_23742);\nif(cljs.core.truth_(child_23745)){\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(node,child_23745);\n\n\nvar G__23747 \x3d seq__22568_23739;\nvar G__23748 \x3d chunk__22570_23740;\nvar G__23749 \x3d count__22571_23741;\nvar G__23750 \x3d (i__22572_23742 + (1));\nseq__22568_23739 \x3d G__23747;\nchunk__22570_23740 \x3d G__23748;\ncount__22571_23741 \x3d G__23749;\ni__22572_23742 \x3d G__23750;\ncontinue;\n} else {\nvar G__23751 \x3d seq__22568_23739;\nvar G__23752 \x3d chunk__22570_23740;\nvar G__23753 \x3d count__22571_23741;\nvar G__23754 \x3d (i__22572_23742 + (1));\nseq__22568_23739 \x3d G__23751;\nchunk__22570_23740 \x3d G__23752;\ncount__22571_23741 \x3d G__23753;\ni__22572_23742 \x3d G__23754;\ncontinue;\n}\n} else {\nvar temp__5804__auto___23756__$1 \x3d cljs.core.seq(seq__22568_23739);\nif(temp__5804__auto___23756__$1){\nvar seq__22568_23758__$1 \x3d temp__5804__auto___23756__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__22568_23758__$1)){\nvar c__5525__auto___23759 \x3d cljs.core.chunk_first(seq__22568_23758__$1);\nvar G__23760 \x3d cljs.core.chunk_rest(seq__22568_23758__$1);\nvar G__23761 \x3d c__5525__auto___23759;\nvar G__23762 \x3d cljs.core.count(c__5525__auto___23759);\nvar G__23763 \x3d (0);\nseq__22568_23739 \x3d G__23760;\nchunk__22570_23740 \x3d G__23761;\ncount__22571_23741 \x3d G__23762;\ni__22572_23742 \x3d G__23763;\ncontinue;\n} else {\nvar child_23764 \x3d cljs.core.first(seq__22568_23758__$1);\nif(cljs.core.truth_(child_23764)){\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(node,child_23764);\n\n\nvar G__23765 \x3d cljs.core.next(seq__22568_23758__$1);\nvar G__23766 \x3d null;\nvar G__23767 \x3d (0);\nvar G__23768 \x3d (0);\nseq__22568_23739 \x3d G__23765;\nchunk__22570_23740 \x3d G__23766;\ncount__22571_23741 \x3d G__23767;\ni__22572_23742 \x3d G__23768;\ncontinue;\n} else {\nvar G__23769 \x3d cljs.core.next(seq__22568_23758__$1);\nvar G__23770 \x3d null;\nvar G__23771 \x3d (0);\nvar G__23772 \x3d (0);\nseq__22568_23739 \x3d G__23769;\nchunk__22570_23740 \x3d G__23770;\ncount__22571_23741 \x3d G__23771;\ni__22572_23742 \x3d G__23772;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n} else {\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(node,children_23737);\n}\n\n\nvar G__23774 \x3d cljs.core.next(seq__22484_23729__$1);\nvar G__23775 \x3d null;\nvar G__23776 \x3d (0);\nvar G__23777 \x3d (0);\nseq__22484_23685 \x3d G__23774;\nchunk__22485_23686 \x3d G__23775;\ncount__22486_23687 \x3d G__23776;\ni__22487_23688 \x3d G__23777;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn node;\n});\n(cljs.core.Keyword.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Keyword.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn shadow.dom.make_dom_node(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$__$1], null));\n}));\n\n(cljs.core.PersistentVector.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentVector.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn shadow.dom.make_dom_node(this$__$1);\n}));\n\n(cljs.core.LazySeq.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.LazySeq.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(shadow.dom._to_dom,this$__$1);\n}));\nif(cljs.core.truth_(((typeof HTMLElement) !\x3d \x27undefined\x27))){\n(HTMLElement.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(HTMLElement.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn this$__$1;\n}));\n} else {\n}\nif(cljs.core.truth_(((typeof DocumentFragment) !\x3d \x27undefined\x27))){\n(DocumentFragment.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(DocumentFragment.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn this$__$1;\n}));\n} else {\n}\n/**\n * clear node children\n */\nshadow.dom.reset \x3d (function shadow$dom$reset(node){\nreturn goog.dom.removeChildren(shadow.dom.dom_node(node));\n});\nshadow.dom.remove \x3d (function shadow$dom$remove(node){\nif((((!((node \x3d\x3d null))))?(((((node.cljs$lang$protocol_mask$partition0$ \x26 (8388608))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d node.cljs$core$ISeqable$))))?true:false):false)){\nvar seq__22624 \x3d cljs.core.seq(node);\nvar chunk__22625 \x3d null;\nvar count__22626 \x3d (0);\nvar i__22627 \x3d (0);\nwhile(true){\nif((i__22627 \x3c count__22626)){\nvar n \x3d chunk__22625.cljs$core$IIndexed$_nth$arity$2(null, i__22627);\n(shadow.dom.remove.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.remove.cljs$core$IFn$_invoke$arity$1(n) : shadow.dom.remove.call(null, n));\n\n\nvar G__23778 \x3d seq__22624;\nvar G__23779 \x3d chunk__22625;\nvar G__23780 \x3d count__22626;\nvar G__23781 \x3d (i__22627 + (1));\nseq__22624 \x3d G__23778;\nchunk__22625 \x3d G__23779;\ncount__22626 \x3d G__23780;\ni__22627 \x3d G__23781;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22624);\nif(temp__5804__auto__){\nvar seq__22624__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22624__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22624__$1);\nvar G__23782 \x3d cljs.core.chunk_rest(seq__22624__$1);\nvar G__23783 \x3d c__5525__auto__;\nvar G__23784 \x3d cljs.core.count(c__5525__auto__);\nvar G__23785 \x3d (0);\nseq__22624 \x3d G__23782;\nchunk__22625 \x3d G__23783;\ncount__22626 \x3d G__23784;\ni__22627 \x3d G__23785;\ncontinue;\n} else {\nvar n \x3d cljs.core.first(seq__22624__$1);\n(shadow.dom.remove.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.remove.cljs$core$IFn$_invoke$arity$1(n) : shadow.dom.remove.call(null, n));\n\n\nvar G__23787 \x3d cljs.core.next(seq__22624__$1);\nvar G__23788 \x3d null;\nvar G__23789 \x3d (0);\nvar G__23790 \x3d (0);\nseq__22624 \x3d G__23787;\nchunk__22625 \x3d G__23788;\ncount__22626 \x3d G__23789;\ni__22627 \x3d G__23790;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn goog.dom.removeNode(node);\n}\n});\nshadow.dom.replace_node \x3d (function shadow$dom$replace_node(old,new$){\nreturn goog.dom.replaceNode(shadow.dom.dom_node(new$),shadow.dom.dom_node(old));\n});\nshadow.dom.text \x3d (function shadow$dom$text(var_args){\nvar G__22654 \x3d arguments.length;\nswitch (G__22654) {\ncase 2:\nreturn shadow.dom.text.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn shadow.dom.text.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.text.cljs$core$IFn$_invoke$arity$2 \x3d (function (el,new_text){\nreturn (shadow.dom.dom_node(el).innerText \x3d new_text);\n}));\n\n(shadow.dom.text.cljs$core$IFn$_invoke$arity$1 \x3d (function (el){\nreturn shadow.dom.dom_node(el).innerText;\n}));\n\n(shadow.dom.text.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.check \x3d (function shadow$dom$check(var_args){\nvar G__22659 \x3d arguments.length;\nswitch (G__22659) {\ncase 1:\nreturn shadow.dom.check.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.check.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.check.cljs$core$IFn$_invoke$arity$1 \x3d (function (el){\nreturn shadow.dom.check.cljs$core$IFn$_invoke$arity$2(el,true);\n}));\n\n(shadow.dom.check.cljs$core$IFn$_invoke$arity$2 \x3d (function (el,checked){\nreturn (shadow.dom.dom_node(el).checked \x3d checked);\n}));\n\n(shadow.dom.check.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.checked_QMARK_ \x3d (function shadow$dom$checked_QMARK_(el){\nreturn shadow.dom.dom_node(el).checked;\n});\nshadow.dom.form_elements \x3d (function shadow$dom$form_elements(el){\nreturn (new shadow.dom.NativeColl(shadow.dom.dom_node(el).elements));\n});\nshadow.dom.children \x3d (function shadow$dom$children(el){\nreturn (new shadow.dom.NativeColl(shadow.dom.dom_node(el).children));\n});\nshadow.dom.child_nodes \x3d (function shadow$dom$child_nodes(el){\nreturn (new shadow.dom.NativeColl(shadow.dom.dom_node(el).childNodes));\n});\nshadow.dom.attr \x3d (function shadow$dom$attr(var_args){\nvar G__22721 \x3d arguments.length;\nswitch (G__22721) {\ncase 2:\nreturn shadow.dom.attr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.dom.attr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.attr.cljs$core$IFn$_invoke$arity$2 \x3d (function (el,key){\nreturn shadow.dom.dom_node(el).getAttribute(cljs.core.name(key));\n}));\n\n(shadow.dom.attr.cljs$core$IFn$_invoke$arity$3 \x3d (function (el,key,default$){\nvar or__5002__auto__ \x3d shadow.dom.dom_node(el).getAttribute(cljs.core.name(key));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn default$;\n}\n}));\n\n(shadow.dom.attr.cljs$lang$maxFixedArity \x3d 3);\n\nshadow.dom.del_attr \x3d (function shadow$dom$del_attr(el,key){\nreturn shadow.dom.dom_node(el).removeAttribute(cljs.core.name(key));\n});\nshadow.dom.data \x3d (function shadow$dom$data(el,key){\nreturn shadow.dom.dom_node(el).getAttribute([\x22data-\x22,cljs.core.name(key)].join(\x27\x27));\n});\nshadow.dom.set_data \x3d (function shadow$dom$set_data(el,key,value){\nreturn shadow.dom.dom_node(el).setAttribute([\x22data-\x22,cljs.core.name(key)].join(\x27\x27),cljs.core.str.cljs$core$IFn$_invoke$arity$1(value));\n});\nshadow.dom.set_html \x3d (function shadow$dom$set_html(node,text){\nreturn (shadow.dom.dom_node(node).innerHTML \x3d text);\n});\nshadow.dom.get_html \x3d (function shadow$dom$get_html(node){\nreturn shadow.dom.dom_node(node).innerHTML;\n});\nshadow.dom.fragment \x3d (function shadow$dom$fragment(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23803 \x3d arguments.length;\nvar i__5727__auto___23804 \x3d (0);\nwhile(true){\nif((i__5727__auto___23804 \x3c len__5726__auto___23803)){\nargs__5732__auto__.push((arguments[i__5727__auto___23804]));\n\nvar G__23806 \x3d (i__5727__auto___23804 + (1));\ni__5727__auto___23804 \x3d G__23806;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn shadow.dom.fragment.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(shadow.dom.fragment.cljs$core$IFn$_invoke$arity$variadic \x3d (function (nodes){\nvar fragment \x3d document.createDocumentFragment();\nvar seq__22765_23809 \x3d cljs.core.seq(nodes);\nvar chunk__22766_23810 \x3d null;\nvar count__22767_23812 \x3d (0);\nvar i__22768_23813 \x3d (0);\nwhile(true){\nif((i__22768_23813 \x3c count__22767_23812)){\nvar node_23815 \x3d chunk__22766_23810.cljs$core$IIndexed$_nth$arity$2(null, i__22768_23813);\nfragment.appendChild(shadow.dom._to_dom(node_23815));\n\n\nvar G__23820 \x3d seq__22765_23809;\nvar G__23821 \x3d chunk__22766_23810;\nvar G__23822 \x3d count__22767_23812;\nvar G__23823 \x3d (i__22768_23813 + (1));\nseq__22765_23809 \x3d G__23820;\nchunk__22766_23810 \x3d G__23821;\ncount__22767_23812 \x3d G__23822;\ni__22768_23813 \x3d G__23823;\ncontinue;\n} else {\nvar temp__5804__auto___23827 \x3d cljs.core.seq(seq__22765_23809);\nif(temp__5804__auto___23827){\nvar seq__22765_23828__$1 \x3d temp__5804__auto___23827;\nif(cljs.core.chunked_seq_QMARK_(seq__22765_23828__$1)){\nvar c__5525__auto___23829 \x3d cljs.core.chunk_first(seq__22765_23828__$1);\nvar G__23830 \x3d cljs.core.chunk_rest(seq__22765_23828__$1);\nvar G__23831 \x3d c__5525__auto___23829;\nvar G__23832 \x3d cljs.core.count(c__5525__auto___23829);\nvar G__23833 \x3d (0);\nseq__22765_23809 \x3d G__23830;\nchunk__22766_23810 \x3d G__23831;\ncount__22767_23812 \x3d G__23832;\ni__22768_23813 \x3d G__23833;\ncontinue;\n} else {\nvar node_23838 \x3d cljs.core.first(seq__22765_23828__$1);\nfragment.appendChild(shadow.dom._to_dom(node_23838));\n\n\nvar G__23841 \x3d cljs.core.next(seq__22765_23828__$1);\nvar G__23842 \x3d null;\nvar G__23843 \x3d (0);\nvar G__23844 \x3d (0);\nseq__22765_23809 \x3d G__23841;\nchunk__22766_23810 \x3d G__23842;\ncount__22767_23812 \x3d G__23843;\ni__22768_23813 \x3d G__23844;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn (new shadow.dom.NativeColl(fragment));\n}));\n\n(shadow.dom.fragment.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(shadow.dom.fragment.cljs$lang$applyTo \x3d (function (seq22760){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22760));\n}));\n\n/**\n * given a html string, eval all \x3cscript\x3e tags and return the html without the scripts\n * don\x27t do this for everything, only content you trust.\n */\nshadow.dom.eval_scripts \x3d (function shadow$dom$eval_scripts(s){\nvar scripts \x3d cljs.core.re_seq(/\x3cscript[^\x3e]*?\x3e(.+?)\x3c\\/script\x3e/,s);\nvar seq__22800_23848 \x3d cljs.core.seq(scripts);\nvar chunk__22801_23849 \x3d null;\nvar count__22802_23850 \x3d (0);\nvar i__22803_23851 \x3d (0);\nwhile(true){\nif((i__22803_23851 \x3c count__22802_23850)){\nvar vec__22821_23852 \x3d chunk__22801_23849.cljs$core$IIndexed$_nth$arity$2(null, i__22803_23851);\nvar script_tag_23853 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22821_23852,(0),null);\nvar script_body_23854 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22821_23852,(1),null);\neval(script_body_23854);\n\n\nvar G__23855 \x3d seq__22800_23848;\nvar G__23856 \x3d chunk__22801_23849;\nvar G__23857 \x3d count__22802_23850;\nvar G__23858 \x3d (i__22803_23851 + (1));\nseq__22800_23848 \x3d G__23855;\nchunk__22801_23849 \x3d G__23856;\ncount__22802_23850 \x3d G__23857;\ni__22803_23851 \x3d G__23858;\ncontinue;\n} else {\nvar temp__5804__auto___23859 \x3d cljs.core.seq(seq__22800_23848);\nif(temp__5804__auto___23859){\nvar seq__22800_23861__$1 \x3d temp__5804__auto___23859;\nif(cljs.core.chunked_seq_QMARK_(seq__22800_23861__$1)){\nvar c__5525__auto___23862 \x3d cljs.core.chunk_first(seq__22800_23861__$1);\nvar G__23863 \x3d cljs.core.chunk_rest(seq__22800_23861__$1);\nvar G__23864 \x3d c__5525__auto___23862;\nvar G__23865 \x3d cljs.core.count(c__5525__auto___23862);\nvar G__23866 \x3d (0);\nseq__22800_23848 \x3d G__23863;\nchunk__22801_23849 \x3d G__23864;\ncount__22802_23850 \x3d G__23865;\ni__22803_23851 \x3d G__23866;\ncontinue;\n} else {\nvar vec__22825_23868 \x3d cljs.core.first(seq__22800_23861__$1);\nvar script_tag_23869 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22825_23868,(0),null);\nvar script_body_23870 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22825_23868,(1),null);\neval(script_body_23870);\n\n\nvar G__23871 \x3d cljs.core.next(seq__22800_23861__$1);\nvar G__23872 \x3d null;\nvar G__23873 \x3d (0);\nvar G__23874 \x3d (0);\nseq__22800_23848 \x3d G__23871;\nchunk__22801_23849 \x3d G__23872;\ncount__22802_23850 \x3d G__23873;\ni__22803_23851 \x3d G__23874;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s__$1,p__22830){\nvar vec__22833 \x3d p__22830;\nvar script_tag \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22833,(0),null);\nvar script_body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22833,(1),null);\nreturn clojure.string.replace(s__$1,script_tag,\x22\x22);\n}),s,scripts);\n});\nshadow.dom.str__GT_fragment \x3d (function shadow$dom$str__GT_fragment(s){\nvar el \x3d document.createElement(\x22div\x22);\n(el.innerHTML \x3d s);\n\nreturn (new shadow.dom.NativeColl(goog.dom.childrenToNode_(document,el)));\n});\nshadow.dom.node_name \x3d (function shadow$dom$node_name(el){\nreturn shadow.dom.dom_node(el).nodeName;\n});\nshadow.dom.ancestor_by_class \x3d (function shadow$dom$ancestor_by_class(el,cls){\nreturn goog.dom.getAncestorByClass(shadow.dom.dom_node(el),cls);\n});\nshadow.dom.ancestor_by_tag \x3d (function shadow$dom$ancestor_by_tag(var_args){\nvar G__22855 \x3d arguments.length;\nswitch (G__22855) {\ncase 2:\nreturn shadow.dom.ancestor_by_tag.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.dom.ancestor_by_tag.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.ancestor_by_tag.cljs$core$IFn$_invoke$arity$2 \x3d (function (el,tag){\nreturn goog.dom.getAncestorByTagNameAndClass(shadow.dom.dom_node(el),cljs.core.name(tag));\n}));\n\n(shadow.dom.ancestor_by_tag.cljs$core$IFn$_invoke$arity$3 \x3d (function (el,tag,cls){\nreturn goog.dom.getAncestorByTagNameAndClass(shadow.dom.dom_node(el),cljs.core.name(tag),cljs.core.name(cls));\n}));\n\n(shadow.dom.ancestor_by_tag.cljs$lang$maxFixedArity \x3d 3);\n\nshadow.dom.get_value \x3d (function shadow$dom$get_value(dom){\nreturn goog.dom.forms.getValue(shadow.dom.dom_node(dom));\n});\nshadow.dom.set_value \x3d (function shadow$dom$set_value(dom,value){\nreturn goog.dom.forms.setValue(shadow.dom.dom_node(dom),value);\n});\nshadow.dom.px \x3d (function shadow$dom$px(value){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((value | (0))),\x22px\x22].join(\x27\x27);\n});\nshadow.dom.pct \x3d (function shadow$dom$pct(value){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(value),\x22%\x22].join(\x27\x27);\n});\nshadow.dom.remove_style_STAR_ \x3d (function shadow$dom$remove_style_STAR_(el,style){\nreturn el.style.removeProperty(cljs.core.name(style));\n});\nshadow.dom.remove_style \x3d (function shadow$dom$remove_style(el,style){\nvar el__$1 \x3d shadow.dom.dom_node(el);\nreturn shadow.dom.remove_style_STAR_(el__$1,style);\n});\nshadow.dom.remove_styles \x3d (function shadow$dom$remove_styles(el,style_keys){\nvar el__$1 \x3d shadow.dom.dom_node(el);\nvar seq__22881 \x3d cljs.core.seq(style_keys);\nvar chunk__22882 \x3d null;\nvar count__22883 \x3d (0);\nvar i__22884 \x3d (0);\nwhile(true){\nif((i__22884 \x3c count__22883)){\nvar it \x3d chunk__22882.cljs$core$IIndexed$_nth$arity$2(null, i__22884);\nshadow.dom.remove_style_STAR_(el__$1,it);\n\n\nvar G__23885 \x3d seq__22881;\nvar G__23886 \x3d chunk__22882;\nvar G__23887 \x3d count__22883;\nvar G__23888 \x3d (i__22884 + (1));\nseq__22881 \x3d G__23885;\nchunk__22882 \x3d G__23886;\ncount__22883 \x3d G__23887;\ni__22884 \x3d G__23888;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22881);\nif(temp__5804__auto__){\nvar seq__22881__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22881__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22881__$1);\nvar G__23890 \x3d cljs.core.chunk_rest(seq__22881__$1);\nvar G__23891 \x3d c__5525__auto__;\nvar G__23892 \x3d cljs.core.count(c__5525__auto__);\nvar G__23893 \x3d (0);\nseq__22881 \x3d G__23890;\nchunk__22882 \x3d G__23891;\ncount__22883 \x3d G__23892;\ni__22884 \x3d G__23893;\ncontinue;\n} else {\nvar it \x3d cljs.core.first(seq__22881__$1);\nshadow.dom.remove_style_STAR_(el__$1,it);\n\n\nvar G__23898 \x3d cljs.core.next(seq__22881__$1);\nvar G__23899 \x3d null;\nvar G__23900 \x3d (0);\nvar G__23901 \x3d (0);\nseq__22881 \x3d G__23898;\nchunk__22882 \x3d G__23899;\ncount__22883 \x3d G__23900;\ni__22884 \x3d G__23901;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nshadow.dom.Coordinate \x3d (function (x,y,__meta,__extmap,__hash){\nthis.x \x3d x;\nthis.y \x3d y;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(shadow.dom.Coordinate.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k22921,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__22939 \x3d k22921;\nvar G__22939__$1 \x3d (((G__22939 instanceof cljs.core.Keyword))?G__22939.fqn:null);\nswitch (G__22939__$1) {\ncase \x22x\x22:\nreturn self__.x;\n\nbreak;\ncase \x22y\x22:\nreturn self__.y;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k22921,else__5303__auto__);\n\n}\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__22945){\nvar vec__22949 \x3d p__22945;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22949,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22949,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#shadow.dom.Coordinate{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),self__.x],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776),self__.y],null))], null),self__.__extmap));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__22920){\nvar self__ \x3d this;\nvar G__22920__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__22920__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new shadow.dom.Coordinate(self__.x,self__.y,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (145542109 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this22923,other22924){\nvar self__ \x3d this;\nvar this22923__$1 \x3d this;\nreturn (((!((other22924 \x3d\x3d null)))) \x26\x26 ((((this22923__$1.constructor \x3d\x3d\x3d other22924.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22923__$1.x,other22924.x)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22923__$1.y,other22924.y)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22923__$1.__extmap,other22924.__extmap)))))))));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776),null,new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new shadow.dom.Coordinate(self__.x,self__.y,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k22921){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__23016 \x3d k22921;\nvar G__23016__$1 \x3d (((G__23016 instanceof cljs.core.Keyword))?G__23016.fqn:null);\nswitch (G__23016__$1) {\ncase \x22x\x22:\ncase \x22y\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k22921);\n\n}\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__22920){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__23022 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__23023 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__23022.cljs$core$IFn$_invoke$arity$2 ? pred__23022.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),expr__23023) : pred__23022.call(null, new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),expr__23023)))){\nreturn (new shadow.dom.Coordinate(G__22920,self__.y,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23022.cljs$core$IFn$_invoke$arity$2 ? pred__23022.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776),expr__23023) : pred__23022.call(null, new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776),expr__23023)))){\nreturn (new shadow.dom.Coordinate(self__.x,G__22920,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.dom.Coordinate(self__.x,self__.y,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__22920),null));\n}\n}\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),self__.x,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776),self__.y,null))], null),self__.__extmap));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__22920){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new shadow.dom.Coordinate(self__.x,self__.y,G__22920,self__.__extmap,self__.__hash));\n}));\n\n(shadow.dom.Coordinate.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(shadow.dom.Coordinate.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22x\x22,\x22x\x22,-555367584,null),new cljs.core.Symbol(null,\x22y\x22,\x22y\x22,-117328249,null)], null);\n}));\n\n(shadow.dom.Coordinate.cljs$lang$type \x3d true);\n\n(shadow.dom.Coordinate.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22shadow.dom/Coordinate\x22,null,(1),null));\n}));\n\n(shadow.dom.Coordinate.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22shadow.dom/Coordinate\x22);\n}));\n\n/**\n * Positional factory function for shadow.dom/Coordinate.\n */\nshadow.dom.__GT_Coordinate \x3d (function shadow$dom$__GT_Coordinate(x,y){\nreturn (new shadow.dom.Coordinate(x,y,null,null,null));\n});\n\n/**\n * Factory function for shadow.dom/Coordinate, taking a map of keywords to field values.\n */\nshadow.dom.map__GT_Coordinate \x3d (function shadow$dom$map__GT_Coordinate(G__22929){\nvar extmap__5342__auto__ \x3d (function (){var G__23045 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__22929,new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776)], 0));\nif(cljs.core.record_QMARK_(G__22929)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__23045);\n} else {\nreturn G__23045;\n}\n})();\nreturn (new shadow.dom.Coordinate(new cljs.core.Keyword(null,\x22x\x22,\x22x\x22,2099068185).cljs$core$IFn$_invoke$arity$1(G__22929),new cljs.core.Keyword(null,\x22y\x22,\x22y\x22,-1757859776).cljs$core$IFn$_invoke$arity$1(G__22929),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\nshadow.dom.get_position \x3d (function shadow$dom$get_position(el){\nvar pos \x3d goog.style.getPosition(shadow.dom.dom_node(el));\nreturn shadow.dom.__GT_Coordinate(pos.x,pos.y);\n});\nshadow.dom.get_client_position \x3d (function shadow$dom$get_client_position(el){\nvar pos \x3d goog.style.getClientPosition(shadow.dom.dom_node(el));\nreturn shadow.dom.__GT_Coordinate(pos.x,pos.y);\n});\nshadow.dom.get_page_offset \x3d (function shadow$dom$get_page_offset(el){\nvar pos \x3d goog.style.getPageOffset(shadow.dom.dom_node(el));\nreturn shadow.dom.__GT_Coordinate(pos.x,pos.y);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nshadow.dom.Size \x3d (function (w,h,__meta,__extmap,__hash){\nthis.w \x3d w;\nthis.h \x3d h;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(shadow.dom.Size.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(shadow.dom.Size.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k23065,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__23084 \x3d k23065;\nvar G__23084__$1 \x3d (((G__23084 instanceof cljs.core.Keyword))?G__23084.fqn:null);\nswitch (G__23084__$1) {\ncase \x22w\x22:\nreturn self__.w;\n\nbreak;\ncase \x22h\x22:\nreturn self__.h;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k23065,else__5303__auto__);\n\n}\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__23092){\nvar vec__23093 \x3d p__23092;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23093,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23093,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#shadow.dom.Size{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),self__.w],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740),self__.h],null))], null),self__.__extmap));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__23064){\nvar self__ \x3d this;\nvar G__23064__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__23064__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(shadow.dom.Size.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new shadow.dom.Size(self__.w,self__.h,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-1228019642 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this23066,other23067){\nvar self__ \x3d this;\nvar this23066__$1 \x3d this;\nreturn (((!((other23067 \x3d\x3d null)))) \x26\x26 ((((this23066__$1.constructor \x3d\x3d\x3d other23067.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23066__$1.w,other23067.w)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23066__$1.h,other23067.h)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23066__$1.__extmap,other23067.__extmap)))))))));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),null,new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new shadow.dom.Size(self__.w,self__.h,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k23065){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__23145 \x3d k23065;\nvar G__23145__$1 \x3d (((G__23145 instanceof cljs.core.Keyword))?G__23145.fqn:null);\nswitch (G__23145__$1) {\ncase \x22w\x22:\ncase \x22h\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k23065);\n\n}\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__23064){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__23153 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__23154 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__23153.cljs$core$IFn$_invoke$arity$2 ? pred__23153.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),expr__23154) : pred__23153.call(null, new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),expr__23154)))){\nreturn (new shadow.dom.Size(G__23064,self__.h,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23153.cljs$core$IFn$_invoke$arity$2 ? pred__23153.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740),expr__23154) : pred__23153.call(null, new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740),expr__23154)))){\nreturn (new shadow.dom.Size(self__.w,G__23064,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.dom.Size(self__.w,self__.h,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__23064),null));\n}\n}\n}));\n\n(shadow.dom.Size.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),self__.w,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740),self__.h,null))], null),self__.__extmap));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__23064){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new shadow.dom.Size(self__.w,self__.h,G__23064,self__.__extmap,self__.__hash));\n}));\n\n(shadow.dom.Size.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(shadow.dom.Size.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22w\x22,\x22w\x22,1994700528,null),new cljs.core.Symbol(null,\x22h\x22,\x22h\x22,-1544777029,null)], null);\n}));\n\n(shadow.dom.Size.cljs$lang$type \x3d true);\n\n(shadow.dom.Size.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22shadow.dom/Size\x22,null,(1),null));\n}));\n\n(shadow.dom.Size.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22shadow.dom/Size\x22);\n}));\n\n/**\n * Positional factory function for shadow.dom/Size.\n */\nshadow.dom.__GT_Size \x3d (function shadow$dom$__GT_Size(w,h){\nreturn (new shadow.dom.Size(w,h,null,null,null));\n});\n\n/**\n * Factory function for shadow.dom/Size, taking a map of keywords to field values.\n */\nshadow.dom.map__GT_Size \x3d (function shadow$dom$map__GT_Size(G__23072){\nvar extmap__5342__auto__ \x3d (function (){var G__23190 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__23072,new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740)], 0));\nif(cljs.core.record_QMARK_(G__23072)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__23190);\n} else {\nreturn G__23190;\n}\n})();\nreturn (new shadow.dom.Size(new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001).cljs$core$IFn$_invoke$arity$1(G__23072),new cljs.core.Keyword(null,\x22h\x22,\x22h\x22,1109658740).cljs$core$IFn$_invoke$arity$1(G__23072),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\nshadow.dom.size__GT_clj \x3d (function shadow$dom$size__GT_clj(size){\nreturn (new shadow.dom.Size(size.width,size.height,null,null,null));\n});\nshadow.dom.get_size \x3d (function shadow$dom$get_size(el){\nreturn shadow.dom.size__GT_clj(goog.style.getSize(shadow.dom.dom_node(el)));\n});\nshadow.dom.get_height \x3d (function shadow$dom$get_height(el){\nreturn shadow.dom.get_size(el).h;\n});\nshadow.dom.get_viewport_size \x3d (function shadow$dom$get_viewport_size(){\nreturn shadow.dom.size__GT_clj(goog.dom.getViewportSize());\n});\nshadow.dom.first_child \x3d (function shadow$dom$first_child(el){\nreturn (shadow.dom.dom_node(el).children[(0)]);\n});\nshadow.dom.select_option_values \x3d (function shadow$dom$select_option_values(el){\nvar native$ \x3d shadow.dom.dom_node(el);\nvar opts \x3d (native$[\x22options\x22]);\nvar a__5590__auto__ \x3d opts;\nvar l__5591__auto__ \x3d a__5590__auto__.length;\nvar i \x3d (0);\nvar ret \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nif((i \x3c l__5591__auto__)){\nvar G__24018 \x3d (i + (1));\nvar G__24019 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,(opts[i][\x22value\x22]));\ni \x3d G__24018;\nret \x3d G__24019;\ncontinue;\n} else {\nreturn ret;\n}\nbreak;\n}\n});\nshadow.dom.build_url \x3d (function shadow$dom$build_url(path,query_params){\nif(cljs.core.empty_QMARK_(query_params)){\nreturn path;\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(path),\x22?\x22,clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x26\x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__23251){\nvar vec__23252 \x3d p__23251;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23252,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23252,(1),null);\nreturn [cljs.core.name(k),\x22\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(encodeURIComponent(cljs.core.str.cljs$core$IFn$_invoke$arity$1(v)))].join(\x27\x27);\n}),query_params))].join(\x27\x27);\n}\n});\nshadow.dom.redirect \x3d (function shadow$dom$redirect(var_args){\nvar G__23270 \x3d arguments.length;\nswitch (G__23270) {\ncase 1:\nreturn shadow.dom.redirect.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.dom.redirect.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.dom.redirect.cljs$core$IFn$_invoke$arity$1 \x3d (function (path){\nreturn shadow.dom.redirect.cljs$core$IFn$_invoke$arity$2(path,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(shadow.dom.redirect.cljs$core$IFn$_invoke$arity$2 \x3d (function (path,query_params){\nreturn (document[\x22location\x22][\x22href\x22] \x3d shadow.dom.build_url(path,query_params));\n}));\n\n(shadow.dom.redirect.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.dom.reload_BANG_ \x3d (function shadow$dom$reload_BANG_(){\nreturn (document.location.href \x3d document.location.href);\n});\nshadow.dom.tag_name \x3d (function shadow$dom$tag_name(el){\nvar dom \x3d shadow.dom.dom_node(el);\nreturn dom.tagName;\n});\nshadow.dom.insert_after \x3d (function shadow$dom$insert_after(ref,new$){\nvar new_node \x3d shadow.dom.dom_node(new$);\ngoog.dom.insertSiblingAfter(new_node,shadow.dom.dom_node(ref));\n\nreturn new_node;\n});\nshadow.dom.insert_before \x3d (function shadow$dom$insert_before(ref,new$){\nvar new_node \x3d shadow.dom.dom_node(new$);\ngoog.dom.insertSiblingBefore(new_node,shadow.dom.dom_node(ref));\n\nreturn new_node;\n});\nshadow.dom.insert_first \x3d (function shadow$dom$insert_first(ref,new$){\nvar temp__5802__auto__ \x3d shadow.dom.dom_node(ref).firstChild;\nif(cljs.core.truth_(temp__5802__auto__)){\nvar child \x3d temp__5802__auto__;\nreturn shadow.dom.insert_before(child,new$);\n} else {\nreturn shadow.dom.append.cljs$core$IFn$_invoke$arity$2(ref,new$);\n}\n});\nshadow.dom.index_of \x3d (function shadow$dom$index_of(el){\nvar el__$1 \x3d shadow.dom.dom_node(el);\nvar i \x3d (0);\nwhile(true){\nvar ps \x3d el__$1.previousSibling;\nif((ps \x3d\x3d null)){\nreturn i;\n} else {\nvar G__24035 \x3d ps;\nvar G__24036 \x3d (i + (1));\nel__$1 \x3d G__24035;\ni \x3d G__24036;\ncontinue;\n}\nbreak;\n}\n});\nshadow.dom.get_parent \x3d (function shadow$dom$get_parent(el){\nreturn goog.dom.getParentElement(shadow.dom.dom_node(el));\n});\nshadow.dom.parents \x3d (function shadow$dom$parents(el){\nvar parent \x3d shadow.dom.get_parent(el);\nif(cljs.core.truth_(parent)){\nreturn cljs.core.cons(parent,(new cljs.core.LazySeq(null,(function (){\nreturn (shadow.dom.parents.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.parents.cljs$core$IFn$_invoke$arity$1(parent) : shadow.dom.parents.call(null, parent));\n}),null,null)));\n} else {\nreturn null;\n}\n});\nshadow.dom.matches \x3d (function shadow$dom$matches(el,sel){\nreturn shadow.dom.dom_node(el).matches(sel);\n});\nshadow.dom.get_next_sibling \x3d (function shadow$dom$get_next_sibling(el){\nreturn goog.dom.getNextElementSibling(shadow.dom.dom_node(el));\n});\nshadow.dom.get_previous_sibling \x3d (function shadow$dom$get_previous_sibling(el){\nreturn goog.dom.getPreviousElementSibling(shadow.dom.dom_node(el));\n});\nshadow.dom.xmlns \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 2, [\x22svg\x22,\x22http://www.w3.org/2000/svg\x22,\x22xlink\x22,\x22http://www.w3.org/1999/xlink\x22], null));\nshadow.dom.create_svg_node \x3d (function shadow$dom$create_svg_node(tag_def,props){\nvar vec__23327 \x3d shadow.dom.parse_tag(tag_def);\nvar tag_name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23327,(0),null);\nvar tag_id \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23327,(1),null);\nvar tag_classes \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23327,(2),null);\nvar el \x3d document.createElementNS(\x22http://www.w3.org/2000/svg\x22,tag_name);\nif(cljs.core.truth_(tag_id)){\nel.setAttribute(\x22id\x22,tag_id);\n} else {\n}\n\nif(cljs.core.truth_(tag_classes)){\nel.setAttribute(\x22class\x22,shadow.dom.merge_class_string(new cljs.core.Keyword(null,\x22class\x22,\x22class\x22,-2030961996).cljs$core$IFn$_invoke$arity$1(props),tag_classes));\n} else {\n}\n\nvar seq__23338_24043 \x3d cljs.core.seq(props);\nvar chunk__23339_24044 \x3d null;\nvar count__23340_24045 \x3d (0);\nvar i__23341_24046 \x3d (0);\nwhile(true){\nif((i__23341_24046 \x3c count__23340_24045)){\nvar vec__23386_24047 \x3d chunk__23339_24044.cljs$core$IIndexed$_nth$arity$2(null, i__23341_24046);\nvar k_24048 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23386_24047,(0),null);\nvar v_24049 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23386_24047,(1),null);\nel.setAttributeNS((function (){var temp__5804__auto__ \x3d cljs.core.namespace(k_24048);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar ns \x3d temp__5804__auto__;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.dom.xmlns),ns);\n} else {\nreturn null;\n}\n})(),cljs.core.name(k_24048),v_24049);\n\n\nvar G__24054 \x3d seq__23338_24043;\nvar G__24055 \x3d chunk__23339_24044;\nvar G__24056 \x3d count__23340_24045;\nvar G__24057 \x3d (i__23341_24046 + (1));\nseq__23338_24043 \x3d G__24054;\nchunk__23339_24044 \x3d G__24055;\ncount__23340_24045 \x3d G__24056;\ni__23341_24046 \x3d G__24057;\ncontinue;\n} else {\nvar temp__5804__auto___24058 \x3d cljs.core.seq(seq__23338_24043);\nif(temp__5804__auto___24058){\nvar seq__23338_24060__$1 \x3d temp__5804__auto___24058;\nif(cljs.core.chunked_seq_QMARK_(seq__23338_24060__$1)){\nvar c__5525__auto___24061 \x3d cljs.core.chunk_first(seq__23338_24060__$1);\nvar G__24062 \x3d cljs.core.chunk_rest(seq__23338_24060__$1);\nvar G__24064 \x3d c__5525__auto___24061;\nvar G__24066 \x3d cljs.core.count(c__5525__auto___24061);\nvar G__24068 \x3d (0);\nseq__23338_24043 \x3d G__24062;\nchunk__23339_24044 \x3d G__24064;\ncount__23340_24045 \x3d G__24066;\ni__23341_24046 \x3d G__24068;\ncontinue;\n} else {\nvar vec__23401_24071 \x3d cljs.core.first(seq__23338_24060__$1);\nvar k_24072 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23401_24071,(0),null);\nvar v_24073 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23401_24071,(1),null);\nel.setAttributeNS((function (){var temp__5804__auto____$1 \x3d cljs.core.namespace(k_24072);\nif(cljs.core.truth_(temp__5804__auto____$1)){\nvar ns \x3d temp__5804__auto____$1;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.dom.xmlns),ns);\n} else {\nreturn null;\n}\n})(),cljs.core.name(k_24072),v_24073);\n\n\nvar G__24074 \x3d cljs.core.next(seq__23338_24060__$1);\nvar G__24075 \x3d null;\nvar G__24076 \x3d (0);\nvar G__24077 \x3d (0);\nseq__23338_24043 \x3d G__24074;\nchunk__23339_24044 \x3d G__24075;\ncount__23340_24045 \x3d G__24076;\ni__23341_24046 \x3d G__24077;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn el;\n});\nshadow.dom.svg_node \x3d (function shadow$dom$svg_node(el){\nif((el \x3d\x3d null)){\nreturn null;\n} else {\nif((((!((el \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d el.shadow$dom$SVGElement$))))?true:false):false)){\nreturn el.shadow$dom$SVGElement$_to_svg$arity$1(null, );\n} else {\nreturn el;\n\n}\n}\n});\nshadow.dom.make_svg_node \x3d (function shadow$dom$make_svg_node(structure){\nvar vec__23417 \x3d shadow.dom.destructure_node(shadow.dom.create_svg_node,structure);\nvar node \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23417,(0),null);\nvar node_children \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23417,(1),null);\nvar seq__23421_24080 \x3d cljs.core.seq(node_children);\nvar chunk__23423_24081 \x3d null;\nvar count__23424_24082 \x3d (0);\nvar i__23425_24083 \x3d (0);\nwhile(true){\nif((i__23425_24083 \x3c count__23424_24082)){\nvar child_struct_24084 \x3d chunk__23423_24081.cljs$core$IIndexed$_nth$arity$2(null, i__23425_24083);\nif((!((child_struct_24084 \x3d\x3d null)))){\nif(typeof child_struct_24084 \x3d\x3d\x3d \x27string\x27){\nvar text_24085 \x3d (node[\x22textContent\x22]);\n(node[\x22textContent\x22] \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(text_24085),child_struct_24084].join(\x27\x27));\n} else {\nvar children_24086 \x3d shadow.dom.svg_node(child_struct_24084);\nif(cljs.core.seq_QMARK_(children_24086)){\nvar seq__23487_24087 \x3d cljs.core.seq(children_24086);\nvar chunk__23489_24088 \x3d null;\nvar count__23490_24089 \x3d (0);\nvar i__23491_24090 \x3d (0);\nwhile(true){\nif((i__23491_24090 \x3c count__23490_24089)){\nvar child_24092 \x3d chunk__23489_24088.cljs$core$IIndexed$_nth$arity$2(null, i__23491_24090);\nif(cljs.core.truth_(child_24092)){\nnode.appendChild(child_24092);\n\n\nvar G__24095 \x3d seq__23487_24087;\nvar G__24096 \x3d chunk__23489_24088;\nvar G__24097 \x3d count__23490_24089;\nvar G__24098 \x3d (i__23491_24090 + (1));\nseq__23487_24087 \x3d G__24095;\nchunk__23489_24088 \x3d G__24096;\ncount__23490_24089 \x3d G__24097;\ni__23491_24090 \x3d G__24098;\ncontinue;\n} else {\nvar G__24101 \x3d seq__23487_24087;\nvar G__24102 \x3d chunk__23489_24088;\nvar G__24103 \x3d count__23490_24089;\nvar G__24104 \x3d (i__23491_24090 + (1));\nseq__23487_24087 \x3d G__24101;\nchunk__23489_24088 \x3d G__24102;\ncount__23490_24089 \x3d G__24103;\ni__23491_24090 \x3d G__24104;\ncontinue;\n}\n} else {\nvar temp__5804__auto___24110 \x3d cljs.core.seq(seq__23487_24087);\nif(temp__5804__auto___24110){\nvar seq__23487_24113__$1 \x3d temp__5804__auto___24110;\nif(cljs.core.chunked_seq_QMARK_(seq__23487_24113__$1)){\nvar c__5525__auto___24116 \x3d cljs.core.chunk_first(seq__23487_24113__$1);\nvar G__24117 \x3d cljs.core.chunk_rest(seq__23487_24113__$1);\nvar G__24118 \x3d c__5525__auto___24116;\nvar G__24119 \x3d cljs.core.count(c__5525__auto___24116);\nvar G__24120 \x3d (0);\nseq__23487_24087 \x3d G__24117;\nchunk__23489_24088 \x3d G__24118;\ncount__23490_24089 \x3d G__24119;\ni__23491_24090 \x3d G__24120;\ncontinue;\n} else {\nvar child_24121 \x3d cljs.core.first(seq__23487_24113__$1);\nif(cljs.core.truth_(child_24121)){\nnode.appendChild(child_24121);\n\n\nvar G__24123 \x3d cljs.core.next(seq__23487_24113__$1);\nvar G__24124 \x3d null;\nvar G__24125 \x3d (0);\nvar G__24126 \x3d (0);\nseq__23487_24087 \x3d G__24123;\nchunk__23489_24088 \x3d G__24124;\ncount__23490_24089 \x3d G__24125;\ni__23491_24090 \x3d G__24126;\ncontinue;\n} else {\nvar G__24127 \x3d cljs.core.next(seq__23487_24113__$1);\nvar G__24128 \x3d null;\nvar G__24129 \x3d (0);\nvar G__24130 \x3d (0);\nseq__23487_24087 \x3d G__24127;\nchunk__23489_24088 \x3d G__24128;\ncount__23490_24089 \x3d G__24129;\ni__23491_24090 \x3d G__24130;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n} else {\nnode.appendChild(children_24086);\n}\n}\n\n\nvar G__24131 \x3d seq__23421_24080;\nvar G__24132 \x3d chunk__23423_24081;\nvar G__24133 \x3d count__23424_24082;\nvar G__24134 \x3d (i__23425_24083 + (1));\nseq__23421_24080 \x3d G__24131;\nchunk__23423_24081 \x3d G__24132;\ncount__23424_24082 \x3d G__24133;\ni__23425_24083 \x3d G__24134;\ncontinue;\n} else {\nvar G__24135 \x3d seq__23421_24080;\nvar G__24136 \x3d chunk__23423_24081;\nvar G__24137 \x3d count__23424_24082;\nvar G__24138 \x3d (i__23425_24083 + (1));\nseq__23421_24080 \x3d G__24135;\nchunk__23423_24081 \x3d G__24136;\ncount__23424_24082 \x3d G__24137;\ni__23425_24083 \x3d G__24138;\ncontinue;\n}\n} else {\nvar temp__5804__auto___24139 \x3d cljs.core.seq(seq__23421_24080);\nif(temp__5804__auto___24139){\nvar seq__23421_24140__$1 \x3d temp__5804__auto___24139;\nif(cljs.core.chunked_seq_QMARK_(seq__23421_24140__$1)){\nvar c__5525__auto___24141 \x3d cljs.core.chunk_first(seq__23421_24140__$1);\nvar G__24142 \x3d cljs.core.chunk_rest(seq__23421_24140__$1);\nvar G__24143 \x3d c__5525__auto___24141;\nvar G__24144 \x3d cljs.core.count(c__5525__auto___24141);\nvar G__24145 \x3d (0);\nseq__23421_24080 \x3d G__24142;\nchunk__23423_24081 \x3d G__24143;\ncount__23424_24082 \x3d G__24144;\ni__23425_24083 \x3d G__24145;\ncontinue;\n} else {\nvar child_struct_24146 \x3d cljs.core.first(seq__23421_24140__$1);\nif((!((child_struct_24146 \x3d\x3d null)))){\nif(typeof child_struct_24146 \x3d\x3d\x3d \x27string\x27){\nvar text_24148 \x3d (node[\x22textContent\x22]);\n(node[\x22textContent\x22] \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(text_24148),child_struct_24146].join(\x27\x27));\n} else {\nvar children_24149 \x3d shadow.dom.svg_node(child_struct_24146);\nif(cljs.core.seq_QMARK_(children_24149)){\nvar seq__23516_24150 \x3d cljs.core.seq(children_24149);\nvar chunk__23518_24151 \x3d null;\nvar count__23519_24152 \x3d (0);\nvar i__23520_24153 \x3d (0);\nwhile(true){\nif((i__23520_24153 \x3c count__23519_24152)){\nvar child_24154 \x3d chunk__23518_24151.cljs$core$IIndexed$_nth$arity$2(null, i__23520_24153);\nif(cljs.core.truth_(child_24154)){\nnode.appendChild(child_24154);\n\n\nvar G__24156 \x3d seq__23516_24150;\nvar G__24157 \x3d chunk__23518_24151;\nvar G__24158 \x3d count__23519_24152;\nvar G__24159 \x3d (i__23520_24153 + (1));\nseq__23516_24150 \x3d G__24156;\nchunk__23518_24151 \x3d G__24157;\ncount__23519_24152 \x3d G__24158;\ni__23520_24153 \x3d G__24159;\ncontinue;\n} else {\nvar G__24165 \x3d seq__23516_24150;\nvar G__24166 \x3d chunk__23518_24151;\nvar G__24167 \x3d count__23519_24152;\nvar G__24168 \x3d (i__23520_24153 + (1));\nseq__23516_24150 \x3d G__24165;\nchunk__23518_24151 \x3d G__24166;\ncount__23519_24152 \x3d G__24167;\ni__23520_24153 \x3d G__24168;\ncontinue;\n}\n} else {\nvar temp__5804__auto___24169__$1 \x3d cljs.core.seq(seq__23516_24150);\nif(temp__5804__auto___24169__$1){\nvar seq__23516_24170__$1 \x3d temp__5804__auto___24169__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__23516_24170__$1)){\nvar c__5525__auto___24171 \x3d cljs.core.chunk_first(seq__23516_24170__$1);\nvar G__24172 \x3d cljs.core.chunk_rest(seq__23516_24170__$1);\nvar G__24173 \x3d c__5525__auto___24171;\nvar G__24174 \x3d cljs.core.count(c__5525__auto___24171);\nvar G__24175 \x3d (0);\nseq__23516_24150 \x3d G__24172;\nchunk__23518_24151 \x3d G__24173;\ncount__23519_24152 \x3d G__24174;\ni__23520_24153 \x3d G__24175;\ncontinue;\n} else {\nvar child_24177 \x3d cljs.core.first(seq__23516_24170__$1);\nif(cljs.core.truth_(child_24177)){\nnode.appendChild(child_24177);\n\n\nvar G__24178 \x3d cljs.core.next(seq__23516_24170__$1);\nvar G__24179 \x3d null;\nvar G__24180 \x3d (0);\nvar G__24181 \x3d (0);\nseq__23516_24150 \x3d G__24178;\nchunk__23518_24151 \x3d G__24179;\ncount__23519_24152 \x3d G__24180;\ni__23520_24153 \x3d G__24181;\ncontinue;\n} else {\nvar G__24183 \x3d cljs.core.next(seq__23516_24170__$1);\nvar G__24184 \x3d null;\nvar G__24185 \x3d (0);\nvar G__24186 \x3d (0);\nseq__23516_24150 \x3d G__24183;\nchunk__23518_24151 \x3d G__24184;\ncount__23519_24152 \x3d G__24185;\ni__23520_24153 \x3d G__24186;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n} else {\nnode.appendChild(children_24149);\n}\n}\n\n\nvar G__24187 \x3d cljs.core.next(seq__23421_24140__$1);\nvar G__24188 \x3d null;\nvar G__24189 \x3d (0);\nvar G__24190 \x3d (0);\nseq__23421_24080 \x3d G__24187;\nchunk__23423_24081 \x3d G__24188;\ncount__23424_24082 \x3d G__24189;\ni__23425_24083 \x3d G__24190;\ncontinue;\n} else {\nvar G__24191 \x3d cljs.core.next(seq__23421_24140__$1);\nvar G__24192 \x3d null;\nvar G__24193 \x3d (0);\nvar G__24194 \x3d (0);\nseq__23421_24080 \x3d G__24191;\nchunk__23423_24081 \x3d G__24192;\ncount__23424_24082 \x3d G__24193;\ni__23425_24083 \x3d G__24194;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn node;\n});\n(shadow.dom.SVGElement[\x22string\x22] \x3d true);\n\n(shadow.dom._to_svg[\x22string\x22] \x3d (function (this$){\nif((this$ instanceof cljs.core.Keyword)){\nreturn shadow.dom.make_svg_node(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$], null));\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22strings cannot be in svgs\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22this\x22,\x22this\x22,-611633625),this$], null));\n}\n}));\n\n(cljs.core.PersistentVector.prototype.shadow$dom$SVGElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentVector.prototype.shadow$dom$SVGElement$_to_svg$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn shadow.dom.make_svg_node(this$__$1);\n}));\n\n(cljs.core.LazySeq.prototype.shadow$dom$SVGElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.LazySeq.prototype.shadow$dom$SVGElement$_to_svg$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2(shadow.dom._to_svg,this$__$1);\n}));\n\n(shadow.dom.SVGElement[\x22null\x22] \x3d true);\n\n(shadow.dom._to_svg[\x22null\x22] \x3d (function (_){\nreturn null;\n}));\nshadow.dom.svg \x3d (function shadow$dom$svg(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___24203 \x3d arguments.length;\nvar i__5727__auto___24204 \x3d (0);\nwhile(true){\nif((i__5727__auto___24204 \x3c len__5726__auto___24203)){\nargs__5732__auto__.push((arguments[i__5727__auto___24204]));\n\nvar G__24205 \x3d (i__5727__auto___24204 + (1));\ni__5727__auto___24204 \x3d G__24205;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn shadow.dom.svg.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(shadow.dom.svg.cljs$core$IFn$_invoke$arity$variadic \x3d (function (attrs,children){\nreturn shadow.dom._to_svg(cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22svg\x22,\x22svg\x22,856789142),attrs], null),children)));\n}));\n\n(shadow.dom.svg.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(shadow.dom.svg.cljs$lang$applyTo \x3d (function (seq23549){\nvar G__23550 \x3d cljs.core.first(seq23549);\nvar seq23549__$1 \x3d cljs.core.next(seq23549);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__23550,seq23549__$1);\n}));\n\n");
SHADOW_ENV.evalLoad("cljs.core.async.impl.protocols.js", true, "goog.provide(\x27cljs.core.async.impl.protocols\x27);\ncljs.core.async.impl.protocols.MAX_QUEUE_SIZE \x3d (1024);\n\n/**\n * @interface\n */\ncljs.core.async.impl.protocols.ReadPort \x3d function(){};\n\nvar cljs$core$async$impl$protocols$ReadPort$take_BANG_$dyn_19878 \x3d (function (port,fn1_handler){\nvar x__5350__auto__ \x3d (((port \x3d\x3d null))?null:port);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.take_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(port,fn1_handler) : m__5351__auto__.call(null, port,fn1_handler));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.take_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(port,fn1_handler) : m__5349__auto__.call(null, port,fn1_handler));\n} else {\nthrow cljs.core.missing_protocol(\x22ReadPort.take!\x22,port);\n}\n}\n});\n/**\n * derefable val if taken, nil if take was enqueued\n */\ncljs.core.async.impl.protocols.take_BANG_ \x3d (function cljs$core$async$impl$protocols$take_BANG_(port,fn1_handler){\nif((((!((port \x3d\x3d null)))) \x26\x26 ((!((port.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 \x3d\x3d null)))))){\nreturn port.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2(port,fn1_handler);\n} else {\nreturn cljs$core$async$impl$protocols$ReadPort$take_BANG_$dyn_19878(port,fn1_handler);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.core.async.impl.protocols.WritePort \x3d function(){};\n\nvar cljs$core$async$impl$protocols$WritePort$put_BANG_$dyn_19883 \x3d (function (port,val,fn1_handler){\nvar x__5350__auto__ \x3d (((port \x3d\x3d null))?null:port);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.put_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(port,val,fn1_handler) : m__5351__auto__.call(null, port,val,fn1_handler));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.put_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(port,val,fn1_handler) : m__5349__auto__.call(null, port,val,fn1_handler));\n} else {\nthrow cljs.core.missing_protocol(\x22WritePort.put!\x22,port);\n}\n}\n});\n/**\n * derefable boolean (false if already closed) if handled, nil if put was enqueued.\n * Must throw on nil val.\n */\ncljs.core.async.impl.protocols.put_BANG_ \x3d (function cljs$core$async$impl$protocols$put_BANG_(port,val,fn1_handler){\nif((((!((port \x3d\x3d null)))) \x26\x26 ((!((port.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 \x3d\x3d null)))))){\nreturn port.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3(port,val,fn1_handler);\n} else {\nreturn cljs$core$async$impl$protocols$WritePort$put_BANG_$dyn_19883(port,val,fn1_handler);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.core.async.impl.protocols.Channel \x3d function(){};\n\nvar cljs$core$async$impl$protocols$Channel$close_BANG_$dyn_19889 \x3d (function (chan){\nvar x__5350__auto__ \x3d (((chan \x3d\x3d null))?null:chan);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.close_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(chan) : m__5351__auto__.call(null, chan));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.close_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(chan) : m__5349__auto__.call(null, chan));\n} else {\nthrow cljs.core.missing_protocol(\x22Channel.close!\x22,chan);\n}\n}\n});\ncljs.core.async.impl.protocols.close_BANG_ \x3d (function cljs$core$async$impl$protocols$close_BANG_(chan){\nif((((!((chan \x3d\x3d null)))) \x26\x26 ((!((chan.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 \x3d\x3d null)))))){\nreturn chan.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1(chan);\n} else {\nreturn cljs$core$async$impl$protocols$Channel$close_BANG_$dyn_19889(chan);\n}\n});\n\nvar cljs$core$async$impl$protocols$Channel$closed_QMARK_$dyn_19896 \x3d (function (chan){\nvar x__5350__auto__ \x3d (((chan \x3d\x3d null))?null:chan);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.closed_QMARK_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(chan) : m__5351__auto__.call(null, chan));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.closed_QMARK_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(chan) : m__5349__auto__.call(null, chan));\n} else {\nthrow cljs.core.missing_protocol(\x22Channel.closed?\x22,chan);\n}\n}\n});\ncljs.core.async.impl.protocols.closed_QMARK_ \x3d (function cljs$core$async$impl$protocols$closed_QMARK_(chan){\nif((((!((chan \x3d\x3d null)))) \x26\x26 ((!((chan.cljs$core$async$impl$protocols$Channel$closed_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn chan.cljs$core$async$impl$protocols$Channel$closed_QMARK_$arity$1(chan);\n} else {\nreturn cljs$core$async$impl$protocols$Channel$closed_QMARK_$dyn_19896(chan);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.core.async.impl.protocols.Handler \x3d function(){};\n\nvar cljs$core$async$impl$protocols$Handler$active_QMARK_$dyn_19902 \x3d (function (h){\nvar x__5350__auto__ \x3d (((h \x3d\x3d null))?null:h);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.active_QMARK_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(h) : m__5351__auto__.call(null, h));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.active_QMARK_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(h) : m__5349__auto__.call(null, h));\n} else {\nthrow cljs.core.missing_protocol(\x22Handler.active?\x22,h);\n}\n}\n});\n/**\n * returns true if has callback. Must work w/o lock\n */\ncljs.core.async.impl.protocols.active_QMARK_ \x3d (function cljs$core$async$impl$protocols$active_QMARK_(h){\nif((((!((h \x3d\x3d null)))) \x26\x26 ((!((h.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn h.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(h);\n} else {\nreturn cljs$core$async$impl$protocols$Handler$active_QMARK_$dyn_19902(h);\n}\n});\n\nvar cljs$core$async$impl$protocols$Handler$blockable_QMARK_$dyn_19909 \x3d (function (h){\nvar x__5350__auto__ \x3d (((h \x3d\x3d null))?null:h);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.blockable_QMARK_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(h) : m__5351__auto__.call(null, h));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.blockable_QMARK_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(h) : m__5349__auto__.call(null, h));\n} else {\nthrow cljs.core.missing_protocol(\x22Handler.blockable?\x22,h);\n}\n}\n});\n/**\n * returns true if this handler may be blocked, otherwise it must not block\n */\ncljs.core.async.impl.protocols.blockable_QMARK_ \x3d (function cljs$core$async$impl$protocols$blockable_QMARK_(h){\nif((((!((h \x3d\x3d null)))) \x26\x26 ((!((h.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn h.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1(h);\n} else {\nreturn cljs$core$async$impl$protocols$Handler$blockable_QMARK_$dyn_19909(h);\n}\n});\n\nvar cljs$core$async$impl$protocols$Handler$commit$dyn_19915 \x3d (function (h){\nvar x__5350__auto__ \x3d (((h \x3d\x3d null))?null:h);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.commit[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(h) : m__5351__auto__.call(null, h));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.commit[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(h) : m__5349__auto__.call(null, h));\n} else {\nthrow cljs.core.missing_protocol(\x22Handler.commit\x22,h);\n}\n}\n});\n/**\n * commit to fulfilling its end of the transfer, returns cb. Must be called within lock\n */\ncljs.core.async.impl.protocols.commit \x3d (function cljs$core$async$impl$protocols$commit(h){\nif((((!((h \x3d\x3d null)))) \x26\x26 ((!((h.cljs$core$async$impl$protocols$Handler$commit$arity$1 \x3d\x3d null)))))){\nreturn h.cljs$core$async$impl$protocols$Handler$commit$arity$1(h);\n} else {\nreturn cljs$core$async$impl$protocols$Handler$commit$dyn_19915(h);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.core.async.impl.protocols.Buffer \x3d function(){};\n\nvar cljs$core$async$impl$protocols$Buffer$full_QMARK_$dyn_19919 \x3d (function (b){\nvar x__5350__auto__ \x3d (((b \x3d\x3d null))?null:b);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.full_QMARK_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(b) : m__5351__auto__.call(null, b));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.full_QMARK_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(b) : m__5349__auto__.call(null, b));\n} else {\nthrow cljs.core.missing_protocol(\x22Buffer.full?\x22,b);\n}\n}\n});\n/**\n * returns true if buffer cannot accept put\n */\ncljs.core.async.impl.protocols.full_QMARK_ \x3d (function cljs$core$async$impl$protocols$full_QMARK_(b){\nif((((!((b \x3d\x3d null)))) \x26\x26 ((!((b.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 \x3d\x3d null)))))){\nreturn b.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1(b);\n} else {\nreturn cljs$core$async$impl$protocols$Buffer$full_QMARK_$dyn_19919(b);\n}\n});\n\nvar cljs$core$async$impl$protocols$Buffer$remove_BANG_$dyn_19928 \x3d (function (b){\nvar x__5350__auto__ \x3d (((b \x3d\x3d null))?null:b);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.remove_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(b) : m__5351__auto__.call(null, b));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.remove_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(b) : m__5349__auto__.call(null, b));\n} else {\nthrow cljs.core.missing_protocol(\x22Buffer.remove!\x22,b);\n}\n}\n});\n/**\n * remove and return next item from buffer, called under chan mutex\n */\ncljs.core.async.impl.protocols.remove_BANG_ \x3d (function cljs$core$async$impl$protocols$remove_BANG_(b){\nif((((!((b \x3d\x3d null)))) \x26\x26 ((!((b.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 \x3d\x3d null)))))){\nreturn b.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(b);\n} else {\nreturn cljs$core$async$impl$protocols$Buffer$remove_BANG_$dyn_19928(b);\n}\n});\n\nvar cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$dyn_19932 \x3d (function (b,itm){\nvar x__5350__auto__ \x3d (((b \x3d\x3d null))?null:b);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.add_BANG__STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(b,itm) : m__5351__auto__.call(null, b,itm));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.add_BANG__STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(b,itm) : m__5349__auto__.call(null, b,itm));\n} else {\nthrow cljs.core.missing_protocol(\x22Buffer.add!*\x22,b);\n}\n}\n});\n/**\n * if room, add item to the buffer, returns b, called under chan mutex\n */\ncljs.core.async.impl.protocols.add_BANG__STAR_ \x3d (function cljs$core$async$impl$protocols$add_BANG__STAR_(b,itm){\nif((((!((b \x3d\x3d null)))) \x26\x26 ((!((b.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2 \x3d\x3d null)))))){\nreturn b.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2(b,itm);\n} else {\nreturn cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$dyn_19932(b,itm);\n}\n});\n\nvar cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$dyn_19937 \x3d (function (b){\nvar x__5350__auto__ \x3d (((b \x3d\x3d null))?null:b);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.protocols.close_buf_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(b) : m__5351__auto__.call(null, b));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.protocols.close_buf_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(b) : m__5349__auto__.call(null, b));\n} else {\nthrow cljs.core.missing_protocol(\x22Buffer.close-buf!\x22,b);\n}\n}\n});\n/**\n * called on chan closed under chan mutex, return ignored\n */\ncljs.core.async.impl.protocols.close_buf_BANG_ \x3d (function cljs$core$async$impl$protocols$close_buf_BANG_(b){\nif((((!((b \x3d\x3d null)))) \x26\x26 ((!((b.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1 \x3d\x3d null)))))){\nreturn b.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1(b);\n} else {\nreturn cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$dyn_19937(b);\n}\n});\n\ncljs.core.async.impl.protocols.add_BANG_ \x3d (function cljs$core$async$impl$protocols$add_BANG_(var_args){\nvar G__19855 \x3d arguments.length;\nswitch (G__19855) {\ncase 1:\nreturn cljs.core.async.impl.protocols.add_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.impl.protocols.add_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.impl.protocols.add_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (b){\nreturn b;\n}));\n\n(cljs.core.async.impl.protocols.add_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (b,itm){\nif((!((itm \x3d\x3d null)))){\n} else {\nthrow (new Error(\x22Assert failed: (not (nil? itm))\x22));\n}\n\nreturn cljs.core.async.impl.protocols.add_BANG__STAR_(b,itm);\n}));\n\n(cljs.core.async.impl.protocols.add_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n * @interface\n */\ncljs.core.async.impl.protocols.UnblockingBuffer \x3d function(){};\n\n");
SHADOW_ENV.evalLoad("cljs.core.async.impl.buffers.js", true, "goog.provide(\x27cljs.core.async.impl.buffers\x27);\ncljs.core.async.impl.buffers.acopy \x3d (function cljs$core$async$impl$buffers$acopy(src,src_start,dest,dest_start,len){\nvar cnt \x3d (0);\nwhile(true){\nif((cnt \x3c len)){\n(dest[(dest_start + cnt)] \x3d (src[(src_start + cnt)]));\n\nvar G__22232 \x3d (cnt + (1));\ncnt \x3d G__22232;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n*/\ncljs.core.async.impl.buffers.RingBuffer \x3d (function (head,tail,length,arr){\nthis.head \x3d head;\nthis.tail \x3d tail;\nthis.length \x3d length;\nthis.arr \x3d arr;\n});\n(cljs.core.async.impl.buffers.RingBuffer.prototype.pop \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif((self__.length \x3d\x3d\x3d (0))){\nreturn null;\n} else {\nvar x \x3d (self__.arr[self__.tail]);\n(self__.arr[self__.tail] \x3d null);\n\n(self__.tail \x3d ((self__.tail + (1)) % self__.arr.length));\n\n(self__.length \x3d (self__.length - (1)));\n\nreturn x;\n}\n}));\n\n(cljs.core.async.impl.buffers.RingBuffer.prototype.unshift \x3d (function (x){\nvar self__ \x3d this;\nvar _ \x3d this;\n(self__.arr[self__.head] \x3d x);\n\n(self__.head \x3d ((self__.head + (1)) % self__.arr.length));\n\n(self__.length \x3d (self__.length + (1)));\n\nreturn null;\n}));\n\n(cljs.core.async.impl.buffers.RingBuffer.prototype.unbounded_unshift \x3d (function (x){\nvar self__ \x3d this;\nvar this$ \x3d this;\nif(((self__.length + (1)) \x3d\x3d\x3d self__.arr.length)){\nthis$.resize();\n} else {\n}\n\nreturn this$.unshift(x);\n}));\n\n(cljs.core.async.impl.buffers.RingBuffer.prototype.resize \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar new_arr_size \x3d (self__.arr.length * (2));\nvar new_arr \x3d (new Array(new_arr_size));\nif((self__.tail \x3c self__.head)){\ncljs.core.async.impl.buffers.acopy(self__.arr,self__.tail,new_arr,(0),self__.length);\n\n(self__.tail \x3d (0));\n\n(self__.head \x3d self__.length);\n\nreturn (self__.arr \x3d new_arr);\n} else {\nif((self__.tail \x3e self__.head)){\ncljs.core.async.impl.buffers.acopy(self__.arr,self__.tail,new_arr,(0),(self__.arr.length - self__.tail));\n\ncljs.core.async.impl.buffers.acopy(self__.arr,(0),new_arr,(self__.arr.length - self__.tail),self__.head);\n\n(self__.tail \x3d (0));\n\n(self__.head \x3d self__.length);\n\nreturn (self__.arr \x3d new_arr);\n} else {\nif((self__.tail \x3d\x3d\x3d self__.head)){\n(self__.tail \x3d (0));\n\n(self__.head \x3d (0));\n\nreturn (self__.arr \x3d new_arr);\n} else {\nreturn null;\n}\n}\n}\n}));\n\n(cljs.core.async.impl.buffers.RingBuffer.prototype.cleanup \x3d (function (keep_QMARK_){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar n__5593__auto__ \x3d self__.length;\nvar x \x3d (0);\nwhile(true){\nif((x \x3c n__5593__auto__)){\nvar v_22242 \x3d this$.pop();\nif((keep_QMARK_.cljs$core$IFn$_invoke$arity$1 ? keep_QMARK_.cljs$core$IFn$_invoke$arity$1(v_22242) : keep_QMARK_.call(null, v_22242))){\nthis$.unshift(v_22242);\n} else {\n}\n\nvar G__22244 \x3d (x + (1));\nx \x3d G__22244;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(cljs.core.async.impl.buffers.RingBuffer.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22head\x22,\x22head\x22,869147608,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22tail\x22,\x22tail\x22,494507963,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22length\x22,\x22length\x22,-2065447907,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22arr\x22,\x22arr\x22,2115492975,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.async.impl.buffers.RingBuffer.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.buffers.RingBuffer.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.buffers/RingBuffer\x22);\n\n(cljs.core.async.impl.buffers.RingBuffer.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.buffers/RingBuffer\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.buffers/RingBuffer.\n */\ncljs.core.async.impl.buffers.__GT_RingBuffer \x3d (function cljs$core$async$impl$buffers$__GT_RingBuffer(head,tail,length,arr){\nreturn (new cljs.core.async.impl.buffers.RingBuffer(head,tail,length,arr));\n});\n\ncljs.core.async.impl.buffers.ring_buffer \x3d (function cljs$core$async$impl$buffers$ring_buffer(n){\nif((n \x3e (0))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t create a ring buffer of size 0\x22,\x22\\n\x22,\x22(\x3e n 0)\x22].join(\x27\x27)));\n}\n\nreturn (new cljs.core.async.impl.buffers.RingBuffer((0),(0),(0),(new Array(n))));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.async.impl.protocols.Buffer}\n*/\ncljs.core.async.impl.buffers.FixedBuffer \x3d (function (buf,n){\nthis.buf \x3d buf;\nthis.n \x3d n;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.buf.length \x3e\x3d self__.n);\n}));\n\n(cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.buf.pop();\n}));\n\n(cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2 \x3d (function (this$,itm){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nself__.buf.unbounded_unshift(itm);\n\nreturn this$__$1;\n}));\n\n(cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.buf.length;\n}));\n\n(cljs.core.async.impl.buffers.FixedBuffer.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null)], null);\n}));\n\n(cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.buffers/FixedBuffer\x22);\n\n(cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.buffers/FixedBuffer\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.buffers/FixedBuffer.\n */\ncljs.core.async.impl.buffers.__GT_FixedBuffer \x3d (function cljs$core$async$impl$buffers$__GT_FixedBuffer(buf,n){\nreturn (new cljs.core.async.impl.buffers.FixedBuffer(buf,n));\n});\n\ncljs.core.async.impl.buffers.fixed_buffer \x3d (function cljs$core$async$impl$buffers$fixed_buffer(n){\nreturn (new cljs.core.async.impl.buffers.FixedBuffer(cljs.core.async.impl.buffers.ring_buffer(n),n));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.async.impl.protocols.UnblockingBuffer}\n * @implements {cljs.core.async.impl.protocols.Buffer}\n*/\ncljs.core.async.impl.buffers.DroppingBuffer \x3d (function (buf,n){\nthis.buf \x3d buf;\nthis.n \x3d n;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn false;\n}));\n\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.buf.pop();\n}));\n\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2 \x3d (function (this$,itm){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((self__.buf.length \x3d\x3d\x3d self__.n)){\n} else {\nself__.buf.unshift(itm);\n}\n\nreturn this$__$1;\n}));\n\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.buf.length;\n}));\n\n(cljs.core.async.impl.buffers.DroppingBuffer.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null)], null);\n}));\n\n(cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.buffers/DroppingBuffer\x22);\n\n(cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.buffers/DroppingBuffer\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.buffers/DroppingBuffer.\n */\ncljs.core.async.impl.buffers.__GT_DroppingBuffer \x3d (function cljs$core$async$impl$buffers$__GT_DroppingBuffer(buf,n){\nreturn (new cljs.core.async.impl.buffers.DroppingBuffer(buf,n));\n});\n\ncljs.core.async.impl.buffers.dropping_buffer \x3d (function cljs$core$async$impl$buffers$dropping_buffer(n){\nreturn (new cljs.core.async.impl.buffers.DroppingBuffer(cljs.core.async.impl.buffers.ring_buffer(n),n));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.async.impl.protocols.UnblockingBuffer}\n * @implements {cljs.core.async.impl.protocols.Buffer}\n*/\ncljs.core.async.impl.buffers.SlidingBuffer \x3d (function (buf,n){\nthis.buf \x3d buf;\nthis.n \x3d n;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn false;\n}));\n\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.buf.pop();\n}));\n\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2 \x3d (function (this$,itm){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((self__.buf.length \x3d\x3d\x3d self__.n)){\nthis$__$1.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(null, );\n} else {\n}\n\nself__.buf.unshift(itm);\n\nreturn this$__$1;\n}));\n\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn null;\n}));\n\n(cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.buf.length;\n}));\n\n(cljs.core.async.impl.buffers.SlidingBuffer.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.Symbol(null,\x22n\x22,\x22n\x22,-2092305744,null)], null);\n}));\n\n(cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.buffers/SlidingBuffer\x22);\n\n(cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.buffers/SlidingBuffer\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.buffers/SlidingBuffer.\n */\ncljs.core.async.impl.buffers.__GT_SlidingBuffer \x3d (function cljs$core$async$impl$buffers$__GT_SlidingBuffer(buf,n){\nreturn (new cljs.core.async.impl.buffers.SlidingBuffer(buf,n));\n});\n\ncljs.core.async.impl.buffers.sliding_buffer \x3d (function cljs$core$async$impl$buffers$sliding_buffer(n){\nreturn (new cljs.core.async.impl.buffers.SlidingBuffer(cljs.core.async.impl.buffers.ring_buffer(n),n));\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.async !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.async.impl !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.async.impl.buffers !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.async.impl.buffers.NO_VAL !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.core.async.impl.buffers.NO_VAL \x3d (new Object());\n}\ncljs.core.async.impl.buffers.undelivered_QMARK_ \x3d (function cljs$core$async$impl$buffers$undelivered_QMARK_(val){\nreturn (cljs.core.async.impl.buffers.NO_VAL \x3d\x3d\x3d val);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.async.impl.protocols.UnblockingBuffer}\n * @implements {cljs.core.async.impl.protocols.Buffer}\n*/\ncljs.core.async.impl.buffers.PromiseBuffer \x3d (function (val){\nthis.val \x3d val;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn false;\n}));\n\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG__STAR_$arity$2 \x3d (function (this$,itm){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core.async.impl.buffers.undelivered_QMARK_(self__.val)){\n(self__.val \x3d itm);\n} else {\n}\n\nreturn this$__$1;\n}));\n\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.async.impl.buffers.undelivered_QMARK_(self__.val)){\nreturn (self__.val \x3d null);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.async.impl.buffers.PromiseBuffer.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.async.impl.buffers.undelivered_QMARK_(self__.val)){\nreturn (0);\n} else {\nreturn (1);\n}\n}));\n\n(cljs.core.async.impl.buffers.PromiseBuffer.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.async.impl.buffers.PromiseBuffer.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.buffers.PromiseBuffer.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.buffers/PromiseBuffer\x22);\n\n(cljs.core.async.impl.buffers.PromiseBuffer.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.buffers/PromiseBuffer\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.buffers/PromiseBuffer.\n */\ncljs.core.async.impl.buffers.__GT_PromiseBuffer \x3d (function cljs$core$async$impl$buffers$__GT_PromiseBuffer(val){\nreturn (new cljs.core.async.impl.buffers.PromiseBuffer(val));\n});\n\ncljs.core.async.impl.buffers.promise_buffer \x3d (function cljs$core$async$impl$buffers$promise_buffer(){\nreturn (new cljs.core.async.impl.buffers.PromiseBuffer(cljs.core.async.impl.buffers.NO_VAL));\n});\n");
SHADOW_ENV.evalLoad("goog.debug.entrypointregistry.js", true, "goog.provide(\x22goog.debug.EntryPointMonitor\x22);\ngoog.provide(\x22goog.debug.entryPointRegistry\x22);\ngoog.require(\x22goog.asserts\x22);\ngoog.debug.entryPointRegistry.EntryPointMonitor \x3d function() {\n};\ngoog.debug.entryPointRegistry.EntryPointMonitor.prototype.wrap;\ngoog.debug.entryPointRegistry.EntryPointMonitor.prototype.unwrap;\ngoog.debug.EntryPointMonitor \x3d goog.debug.entryPointRegistry.EntryPointMonitor;\ngoog.debug.entryPointRegistry.refList_ \x3d [];\ngoog.debug.entryPointRegistry.monitors_ \x3d [];\ngoog.debug.entryPointRegistry.monitorsMayExist_ \x3d false;\ngoog.debug.entryPointRegistry.register \x3d function(callback) {\n goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length] \x3d callback;\n if (goog.debug.entryPointRegistry.monitorsMayExist_) {\n var monitors \x3d goog.debug.entryPointRegistry.monitors_;\n var i \x3d 0;\n for (; i \x3c monitors.length; i++) {\n callback(goog.bind(monitors[i].wrap, monitors[i]));\n }\n }\n};\ngoog.debug.entryPointRegistry.monitorAll \x3d function(monitor) {\n goog.debug.entryPointRegistry.monitorsMayExist_ \x3d true;\n var transformer \x3d goog.bind(monitor.wrap, monitor);\n var i \x3d 0;\n for (; i \x3c goog.debug.entryPointRegistry.refList_.length; i++) {\n goog.debug.entryPointRegistry.refList_[i](transformer);\n }\n goog.debug.entryPointRegistry.monitors_.push(monitor);\n};\ngoog.debug.entryPointRegistry.unmonitorAllIfPossible \x3d function(monitor) {\n var monitors \x3d goog.debug.entryPointRegistry.monitors_;\n goog.asserts.assert(monitor \x3d\x3d monitors[monitors.length - 1], \x22Only the most recent monitor can be unwrapped.\x22);\n var transformer \x3d goog.bind(monitor.unwrap, monitor);\n var i \x3d 0;\n for (; i \x3c goog.debug.entryPointRegistry.refList_.length; i++) {\n goog.debug.entryPointRegistry.refList_[i](transformer);\n }\n monitors.length--;\n};\n");
SHADOW_ENV.evalLoad("goog.async.nexttick.js", true, "goog.provide(\x22goog.async.nextTick\x22);\ngoog.require(\x22goog.debug.entryPointRegistry\x22);\ngoog.require(\x22goog.dom\x22);\ngoog.require(\x22goog.dom.TagName\x22);\ngoog.require(\x22goog.functions\x22);\ngoog.require(\x22goog.labs.userAgent.browser\x22);\ngoog.require(\x22goog.labs.userAgent.engine\x22);\ngoog.async.nextTick \x3d function(callback, opt_context, opt_useSetImmediate) {\n var cb \x3d callback;\n if (opt_context) {\n cb \x3d goog.bind(callback, opt_context);\n }\n cb \x3d goog.async.nextTick.wrapCallback_(cb);\n if (typeof goog.global.setImmediate \x3d\x3d\x3d \x22function\x22 \x26\x26 (opt_useSetImmediate || goog.async.nextTick.useSetImmediate_())) {\n goog.global.setImmediate(cb);\n return;\n }\n if (!goog.async.nextTick.nextTickImpl) {\n goog.async.nextTick.nextTickImpl \x3d goog.async.nextTick.getNextTickImpl_();\n }\n goog.async.nextTick.nextTickImpl(cb);\n};\ngoog.async.nextTick.useSetImmediate_ \x3d function() {\n if (!goog.global.Window || !goog.global.Window.prototype) {\n return true;\n }\n if (goog.labs.userAgent.browser.isEdge() || goog.global.Window.prototype.setImmediate !\x3d goog.global.setImmediate) {\n return true;\n }\n return false;\n};\ngoog.async.nextTick.nextTickImpl;\ngoog.async.nextTick.getNextTickImpl_ \x3d function() {\n var Channel \x3d goog.global[\x22MessageChannel\x22];\n if (typeof Channel \x3d\x3d\x3d \x22undefined\x22 \x26\x26 typeof window !\x3d\x3d \x22undefined\x22 \x26\x26 window.postMessage \x26\x26 window.addEventListener \x26\x26 !goog.labs.userAgent.engine.isPresto()) {\n Channel \x3d function() {\n var iframe \x3d goog.dom.createElement(goog.dom.TagName.IFRAME);\n iframe.style.display \x3d \x22none\x22;\n document.documentElement.appendChild(iframe);\n var win \x3d iframe.contentWindow;\n var doc \x3d win.document;\n doc.open();\n doc.close();\n var message \x3d \x22callImmediate\x22 + Math.random();\n var origin \x3d win.location.protocol \x3d\x3d \x22file:\x22 ? \x22*\x22 : win.location.protocol + \x22//\x22 + win.location.host;\n var onmessage \x3d goog.bind(function(e) {\n if (origin !\x3d \x22*\x22 \x26\x26 e.origin !\x3d origin || e.data !\x3d message) {\n return;\n }\n this[\x22port1\x22].onmessage();\n }, this);\n win.addEventListener(\x22message\x22, onmessage, false);\n this[\x22port1\x22] \x3d {};\n this[\x22port2\x22] \x3d {postMessage:function() {\n win.postMessage(message, origin);\n }};\n };\n }\n if (typeof Channel !\x3d\x3d \x22undefined\x22 \x26\x26 !goog.labs.userAgent.browser.isIE()) {\n var channel \x3d new Channel();\n var head \x3d {};\n var tail \x3d head;\n channel[\x22port1\x22].onmessage \x3d function() {\n if (head.next !\x3d\x3d undefined) {\n head \x3d head.next;\n var cb \x3d head.cb;\n head.cb \x3d null;\n cb();\n }\n };\n return function(cb) {\n tail.next \x3d {cb:cb};\n tail \x3d tail.next;\n channel[\x22port2\x22].postMessage(0);\n };\n }\n return function(cb) {\n goog.global.setTimeout(cb, 0);\n };\n};\ngoog.async.nextTick.wrapCallback_ \x3d goog.functions.identity;\ngoog.debug.entryPointRegistry.register(function(transformer) {\n goog.async.nextTick.wrapCallback_ \x3d transformer;\n});\n");
SHADOW_ENV.evalLoad("cljs.core.async.impl.dispatch.js", true, "goog.provide(\x27cljs.core.async.impl.dispatch\x27);\ncljs.core.async.impl.dispatch.tasks \x3d cljs.core.async.impl.buffers.ring_buffer((32));\ncljs.core.async.impl.dispatch.running_QMARK_ \x3d false;\ncljs.core.async.impl.dispatch.queued_QMARK_ \x3d false;\ncljs.core.async.impl.dispatch.TASK_BATCH_SIZE \x3d (1024);\ncljs.core.async.impl.dispatch.process_messages \x3d (function cljs$core$async$impl$dispatch$process_messages(){\n(cljs.core.async.impl.dispatch.running_QMARK_ \x3d true);\n\n(cljs.core.async.impl.dispatch.queued_QMARK_ \x3d false);\n\nvar count_22284 \x3d (0);\nwhile(true){\nvar m_22285 \x3d cljs.core.async.impl.dispatch.tasks.pop();\nif((m_22285 \x3d\x3d null)){\n} else {\n(m_22285.cljs$core$IFn$_invoke$arity$0 ? m_22285.cljs$core$IFn$_invoke$arity$0() : m_22285.call(null, ));\n\nif((count_22284 \x3c cljs.core.async.impl.dispatch.TASK_BATCH_SIZE)){\nvar G__22286 \x3d (count_22284 + (1));\ncount_22284 \x3d G__22286;\ncontinue;\n} else {\n}\n}\nbreak;\n}\n\n(cljs.core.async.impl.dispatch.running_QMARK_ \x3d false);\n\nif((cljs.core.async.impl.dispatch.tasks.length \x3e (0))){\nreturn (cljs.core.async.impl.dispatch.queue_dispatcher.cljs$core$IFn$_invoke$arity$0 ? cljs.core.async.impl.dispatch.queue_dispatcher.cljs$core$IFn$_invoke$arity$0() : cljs.core.async.impl.dispatch.queue_dispatcher.call(null, ));\n} else {\nreturn null;\n}\n});\ncljs.core.async.impl.dispatch.queue_dispatcher \x3d (function cljs$core$async$impl$dispatch$queue_dispatcher(){\nif(((cljs.core.async.impl.dispatch.queued_QMARK_) \x26\x26 (cljs.core.async.impl.dispatch.running_QMARK_))){\nreturn null;\n} else {\n(cljs.core.async.impl.dispatch.queued_QMARK_ \x3d true);\n\nreturn goog.async.nextTick(cljs.core.async.impl.dispatch.process_messages);\n}\n});\ncljs.core.async.impl.dispatch.run \x3d (function cljs$core$async$impl$dispatch$run(f){\ncljs.core.async.impl.dispatch.tasks.unbounded_unshift(f);\n\nreturn cljs.core.async.impl.dispatch.queue_dispatcher();\n});\ncljs.core.async.impl.dispatch.queue_delay \x3d (function cljs$core$async$impl$dispatch$queue_delay(f,delay){\nreturn setTimeout(f,delay);\n});\n");
SHADOW_ENV.evalLoad("cljs.core.async.impl.channels.js", true, "goog.provide(\x27cljs.core.async.impl.channels\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343 \x3d (function (val,meta22344){\nthis.val \x3d val;\nthis.meta22344 \x3d meta22344;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 425984;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_22345,meta22344__$1){\nvar self__ \x3d this;\nvar _22345__$1 \x3d this;\nreturn (new cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343(self__.val,meta22344__$1));\n}));\n\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_22345){\nvar self__ \x3d this;\nvar _22345__$1 \x3d this;\nreturn self__.meta22344;\n}));\n\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.val;\n}));\n\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.Symbol(null,\x22meta22344\x22,\x22meta22344\x22,-1430843973,null)], null);\n}));\n\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.channels/t_cljs$core$async$impl$channels22343\x22);\n\n(cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.channels/t_cljs$core$async$impl$channels22343\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.channels/t_cljs$core$async$impl$channels22343.\n */\ncljs.core.async.impl.channels.__GT_t_cljs$core$async$impl$channels22343 \x3d (function cljs$core$async$impl$channels$__GT_t_cljs$core$async$impl$channels22343(val,meta22344){\nreturn (new cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343(val,meta22344));\n});\n\n\ncljs.core.async.impl.channels.box \x3d (function cljs$core$async$impl$channels$box(val){\nreturn (new cljs.core.async.impl.channels.t_cljs$core$async$impl$channels22343(val,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n*/\ncljs.core.async.impl.channels.PutBox \x3d (function (handler,val){\nthis.handler \x3d handler;\nthis.val \x3d val;\n});\n\n(cljs.core.async.impl.channels.PutBox.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22handler\x22,\x22handler\x22,1444934915,null),new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null)], null);\n}));\n\n(cljs.core.async.impl.channels.PutBox.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.channels.PutBox.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.channels/PutBox\x22);\n\n(cljs.core.async.impl.channels.PutBox.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.channels/PutBox\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.channels/PutBox.\n */\ncljs.core.async.impl.channels.__GT_PutBox \x3d (function cljs$core$async$impl$channels$__GT_PutBox(handler,val){\nreturn (new cljs.core.async.impl.channels.PutBox(handler,val));\n});\n\ncljs.core.async.impl.channels.put_active_QMARK_ \x3d (function cljs$core$async$impl$channels$put_active_QMARK_(box){\nreturn cljs.core.async.impl.protocols.active_QMARK_(box.handler);\n});\ncljs.core.async.impl.channels.MAX_DIRTY \x3d (64);\n\n/**\n * @interface\n */\ncljs.core.async.impl.channels.MMC \x3d function(){};\n\nvar cljs$core$async$impl$channels$MMC$abort$dyn_22864 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (cljs.core.async.impl.channels.abort[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.impl.channels.abort[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22MMC.abort\x22,this$);\n}\n}\n});\ncljs.core.async.impl.channels.abort \x3d (function cljs$core$async$impl$channels$abort(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.cljs$core$async$impl$channels$MMC$abort$arity$1 \x3d\x3d null)))))){\nreturn this$.cljs$core$async$impl$channels$MMC$abort$arity$1(this$);\n} else {\nreturn cljs$core$async$impl$channels$MMC$abort$dyn_22864(this$);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.channels.MMC}\n * @implements {cljs.core.async.impl.protocols.Channel}\n * @implements {cljs.core.async.impl.protocols.WritePort}\n * @implements {cljs.core.async.impl.protocols.ReadPort}\n*/\ncljs.core.async.impl.channels.ManyToManyChannel \x3d (function (takes,dirty_takes,puts,dirty_puts,buf,closed,add_BANG_){\nthis.takes \x3d takes;\nthis.dirty_takes \x3d dirty_takes;\nthis.puts \x3d puts;\nthis.dirty_puts \x3d dirty_puts;\nthis.buf \x3d buf;\nthis.closed \x3d closed;\nthis.add_BANG_ \x3d add_BANG_;\n});\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$channels$MMC$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$channels$MMC$abort$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nwhile(true){\nvar putter_22870 \x3d self__.puts.pop();\nif((putter_22870 \x3d\x3d null)){\n} else {\nvar put_handler_22871 \x3d putter_22870.handler;\nvar val_22872 \x3d putter_22870.val;\nif(put_handler_22871.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, )){\nvar put_cb_22873 \x3d put_handler_22871.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\ncljs.core.async.impl.dispatch.run(((function (put_cb_22873,put_handler_22871,val_22872,putter_22870,this$__$1){\nreturn (function (){\nreturn (put_cb_22873.cljs$core$IFn$_invoke$arity$1 ? put_cb_22873.cljs$core$IFn$_invoke$arity$1(true) : put_cb_22873.call(null, true));\n});})(put_cb_22873,put_handler_22871,val_22872,putter_22870,this$__$1))\n);\n} else {\ncontinue;\n}\n}\nbreak;\n}\n\nself__.puts.cleanup(cljs.core.constantly(false));\n\nreturn this$__$1.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1(null, );\n}));\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$WritePort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 \x3d (function (this$,val,handler){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((!((val \x3d\x3d null)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22Can\x27t put nil on a channel\x22,\x22\\n\x22,\x22(not (nil? val))\x22].join(\x27\x27)));\n}\n\nvar closed__$1 \x3d self__.closed;\nif((!(handler.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, )))){\nreturn cljs.core.async.impl.channels.box((!(closed__$1)));\n} else {\nif(closed__$1){\nhandler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n\nreturn cljs.core.async.impl.channels.box(false);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d self__.buf;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not(self__.buf.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1(null, ));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nhandler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n\nvar done_QMARK_ \x3d cljs.core.reduced_QMARK_((self__.add_BANG_.cljs$core$IFn$_invoke$arity$2 ? self__.add_BANG_.cljs$core$IFn$_invoke$arity$2(self__.buf,val) : self__.add_BANG_.call(null, self__.buf,val)));\nvar take_cbs \x3d (function (){var takers \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nif((((self__.takes.length \x3e (0))) \x26\x26 ((cljs.core.count(self__.buf) \x3e (0))))){\nvar taker \x3d self__.takes.pop();\nif(taker.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, )){\nvar ret \x3d taker.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\nvar val__$1 \x3d self__.buf.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(null, );\nvar G__22886 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(takers,((function (takers,ret,val__$1,taker,done_QMARK_,closed__$1,this$__$1){\nreturn (function (){\nreturn (ret.cljs$core$IFn$_invoke$arity$1 ? ret.cljs$core$IFn$_invoke$arity$1(val__$1) : ret.call(null, val__$1));\n});})(takers,ret,val__$1,taker,done_QMARK_,closed__$1,this$__$1))\n);\ntakers \x3d G__22886;\ncontinue;\n} else {\nvar G__22887 \x3d takers;\ntakers \x3d G__22887;\ncontinue;\n}\n} else {\nreturn takers;\n}\nbreak;\n}\n})();\nif(done_QMARK_){\nthis$__$1.cljs$core$async$impl$channels$MMC$abort$arity$1(null, );\n} else {\n}\n\nif(cljs.core.seq(take_cbs)){\nvar seq__22535_22889 \x3d cljs.core.seq(take_cbs);\nvar chunk__22536_22890 \x3d null;\nvar count__22537_22891 \x3d (0);\nvar i__22538_22892 \x3d (0);\nwhile(true){\nif((i__22538_22892 \x3c count__22537_22891)){\nvar f_22893 \x3d chunk__22536_22890.cljs$core$IIndexed$_nth$arity$2(null, i__22538_22892);\ncljs.core.async.impl.dispatch.run(f_22893);\n\n\nvar G__22896 \x3d seq__22535_22889;\nvar G__22897 \x3d chunk__22536_22890;\nvar G__22898 \x3d count__22537_22891;\nvar G__22899 \x3d (i__22538_22892 + (1));\nseq__22535_22889 \x3d G__22896;\nchunk__22536_22890 \x3d G__22897;\ncount__22537_22891 \x3d G__22898;\ni__22538_22892 \x3d G__22899;\ncontinue;\n} else {\nvar temp__5804__auto___22901 \x3d cljs.core.seq(seq__22535_22889);\nif(temp__5804__auto___22901){\nvar seq__22535_22902__$1 \x3d temp__5804__auto___22901;\nif(cljs.core.chunked_seq_QMARK_(seq__22535_22902__$1)){\nvar c__5525__auto___22903 \x3d cljs.core.chunk_first(seq__22535_22902__$1);\nvar G__22904 \x3d cljs.core.chunk_rest(seq__22535_22902__$1);\nvar G__22905 \x3d c__5525__auto___22903;\nvar G__22906 \x3d cljs.core.count(c__5525__auto___22903);\nvar G__22907 \x3d (0);\nseq__22535_22889 \x3d G__22904;\nchunk__22536_22890 \x3d G__22905;\ncount__22537_22891 \x3d G__22906;\ni__22538_22892 \x3d G__22907;\ncontinue;\n} else {\nvar f_22910 \x3d cljs.core.first(seq__22535_22902__$1);\ncljs.core.async.impl.dispatch.run(f_22910);\n\n\nvar G__22916 \x3d cljs.core.next(seq__22535_22902__$1);\nvar G__22917 \x3d null;\nvar G__22918 \x3d (0);\nvar G__22919 \x3d (0);\nseq__22535_22889 \x3d G__22916;\nchunk__22536_22890 \x3d G__22917;\ncount__22537_22891 \x3d G__22918;\ni__22538_22892 \x3d G__22919;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nreturn cljs.core.async.impl.channels.box(true);\n} else {\nvar taker \x3d (function (){while(true){\nvar taker \x3d self__.takes.pop();\nif(cljs.core.truth_(taker)){\nif(cljs.core.truth_(taker.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, ))){\nreturn taker;\n} else {\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n})();\nif(cljs.core.truth_(taker)){\nvar take_cb \x3d taker.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\nhandler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n\ncljs.core.async.impl.dispatch.run((function (){\nreturn (take_cb.cljs$core$IFn$_invoke$arity$1 ? take_cb.cljs$core$IFn$_invoke$arity$1(val) : take_cb.call(null, val));\n}));\n\nreturn cljs.core.async.impl.channels.box(true);\n} else {\nif((self__.dirty_puts \x3e (64))){\n(self__.dirty_puts \x3d (0));\n\nself__.puts.cleanup(cljs.core.async.impl.channels.put_active_QMARK_);\n} else {\n(self__.dirty_puts \x3d (self__.dirty_puts + (1)));\n}\n\nif(cljs.core.truth_(handler.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1(null, ))){\nif((self__.puts.length \x3c (1024))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22No more than \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((1024)),\x22 pending puts are allowed on a single channel.\x22,\x22 Consider using a windowed buffer.\x22].join(\x27\x27),\x22\\n\x22,\x22(\x3c (.-length puts) impl/MAX-QUEUE-SIZE)\x22].join(\x27\x27)));\n}\n\nself__.puts.unbounded_unshift((new cljs.core.async.impl.channels.PutBox(handler,val)));\n} else {\n}\n\nreturn null;\n}\n}\n}\n}\n}));\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$ReadPort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 \x3d (function (this$,handler){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((!(handler.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, )))){\nreturn null;\n} else {\nif((((!((self__.buf \x3d\x3d null)))) \x26\x26 ((cljs.core.count(self__.buf) \x3e (0))))){\nvar temp__5802__auto__ \x3d handler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\nif(cljs.core.truth_(temp__5802__auto__)){\nvar take_cb \x3d temp__5802__auto__;\nvar val \x3d self__.buf.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(null, );\nvar vec__22585 \x3d ((((cljs.core.not(self__.buf.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1(null, ))) \x26\x26 ((self__.puts.length \x3e (0)))))?(function (){var cbs \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nvar putter \x3d self__.puts.pop();\nvar put_handler \x3d putter.handler;\nvar val__$1 \x3d putter.val;\nvar cb \x3d (function (){var and__5000__auto__ \x3d put_handler.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, );\nif(and__5000__auto__){\nreturn put_handler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n} else {\nreturn and__5000__auto__;\n}\n})();\nvar cbs__$1 \x3d (cljs.core.truth_(cb)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cbs,cb):cbs);\nvar done_QMARK_ \x3d (cljs.core.truth_(cb)?cljs.core.reduced_QMARK_((self__.add_BANG_.cljs$core$IFn$_invoke$arity$2 ? self__.add_BANG_.cljs$core$IFn$_invoke$arity$2(self__.buf,val__$1) : self__.add_BANG_.call(null, self__.buf,val__$1))):null);\nif(((cljs.core.not(done_QMARK_)) \x26\x26 (((cljs.core.not(self__.buf.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1(null, ))) \x26\x26 ((self__.puts.length \x3e (0))))))){\nvar G__22947 \x3d cbs__$1;\ncbs \x3d G__22947;\ncontinue;\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [done_QMARK_,cbs__$1], null);\n}\nbreak;\n}\n})():null);\nvar done_QMARK_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22585,(0),null);\nvar cbs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22585,(1),null);\nif(cljs.core.truth_(done_QMARK_)){\nthis$__$1.cljs$core$async$impl$channels$MMC$abort$arity$1(null, );\n} else {\n}\n\nvar seq__22633_22954 \x3d cljs.core.seq(cbs);\nvar chunk__22634_22955 \x3d null;\nvar count__22635_22956 \x3d (0);\nvar i__22636_22957 \x3d (0);\nwhile(true){\nif((i__22636_22957 \x3c count__22635_22956)){\nvar cb_22959 \x3d chunk__22634_22955.cljs$core$IIndexed$_nth$arity$2(null, i__22636_22957);\ncljs.core.async.impl.dispatch.run(((function (seq__22633_22954,chunk__22634_22955,count__22635_22956,i__22636_22957,cb_22959,val,vec__22585,done_QMARK_,cbs,take_cb,temp__5802__auto__,this$__$1){\nreturn (function (){\nreturn (cb_22959.cljs$core$IFn$_invoke$arity$1 ? cb_22959.cljs$core$IFn$_invoke$arity$1(true) : cb_22959.call(null, true));\n});})(seq__22633_22954,chunk__22634_22955,count__22635_22956,i__22636_22957,cb_22959,val,vec__22585,done_QMARK_,cbs,take_cb,temp__5802__auto__,this$__$1))\n);\n\n\nvar G__22963 \x3d seq__22633_22954;\nvar G__22964 \x3d chunk__22634_22955;\nvar G__22965 \x3d count__22635_22956;\nvar G__22966 \x3d (i__22636_22957 + (1));\nseq__22633_22954 \x3d G__22963;\nchunk__22634_22955 \x3d G__22964;\ncount__22635_22956 \x3d G__22965;\ni__22636_22957 \x3d G__22966;\ncontinue;\n} else {\nvar temp__5804__auto___22967 \x3d cljs.core.seq(seq__22633_22954);\nif(temp__5804__auto___22967){\nvar seq__22633_22970__$1 \x3d temp__5804__auto___22967;\nif(cljs.core.chunked_seq_QMARK_(seq__22633_22970__$1)){\nvar c__5525__auto___22971 \x3d cljs.core.chunk_first(seq__22633_22970__$1);\nvar G__22974 \x3d cljs.core.chunk_rest(seq__22633_22970__$1);\nvar G__22975 \x3d c__5525__auto___22971;\nvar G__22976 \x3d cljs.core.count(c__5525__auto___22971);\nvar G__22977 \x3d (0);\nseq__22633_22954 \x3d G__22974;\nchunk__22634_22955 \x3d G__22975;\ncount__22635_22956 \x3d G__22976;\ni__22636_22957 \x3d G__22977;\ncontinue;\n} else {\nvar cb_22979 \x3d cljs.core.first(seq__22633_22970__$1);\ncljs.core.async.impl.dispatch.run(((function (seq__22633_22954,chunk__22634_22955,count__22635_22956,i__22636_22957,cb_22979,seq__22633_22970__$1,temp__5804__auto___22967,val,vec__22585,done_QMARK_,cbs,take_cb,temp__5802__auto__,this$__$1){\nreturn (function (){\nreturn (cb_22979.cljs$core$IFn$_invoke$arity$1 ? cb_22979.cljs$core$IFn$_invoke$arity$1(true) : cb_22979.call(null, true));\n});})(seq__22633_22954,chunk__22634_22955,count__22635_22956,i__22636_22957,cb_22979,seq__22633_22970__$1,temp__5804__auto___22967,val,vec__22585,done_QMARK_,cbs,take_cb,temp__5802__auto__,this$__$1))\n);\n\n\nvar G__22981 \x3d cljs.core.next(seq__22633_22970__$1);\nvar G__22982 \x3d null;\nvar G__22983 \x3d (0);\nvar G__22984 \x3d (0);\nseq__22633_22954 \x3d G__22981;\nchunk__22634_22955 \x3d G__22982;\ncount__22635_22956 \x3d G__22983;\ni__22636_22957 \x3d G__22984;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.async.impl.channels.box(val);\n} else {\nreturn null;\n}\n} else {\nvar putter \x3d (function (){while(true){\nvar putter \x3d self__.puts.pop();\nif(cljs.core.truth_(putter)){\nif(cljs.core.async.impl.protocols.active_QMARK_(putter.handler)){\nreturn putter;\n} else {\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n})();\nif(cljs.core.truth_(putter)){\nvar put_cb \x3d cljs.core.async.impl.protocols.commit(putter.handler);\nhandler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n\ncljs.core.async.impl.dispatch.run((function (){\nreturn (put_cb.cljs$core$IFn$_invoke$arity$1 ? put_cb.cljs$core$IFn$_invoke$arity$1(true) : put_cb.call(null, true));\n}));\n\nreturn cljs.core.async.impl.channels.box(putter.val);\n} else {\nif(cljs.core.truth_(self__.closed)){\nif(cljs.core.truth_(self__.buf)){\n(self__.add_BANG_.cljs$core$IFn$_invoke$arity$1 ? self__.add_BANG_.cljs$core$IFn$_invoke$arity$1(self__.buf) : self__.add_BANG_.call(null, self__.buf));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d handler.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, );\nif(cljs.core.truth_(and__5000__auto__)){\nreturn handler.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n} else {\nreturn and__5000__auto__;\n}\n})())){\nvar has_val \x3d (function (){var and__5000__auto__ \x3d self__.buf;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (cljs.core.count(self__.buf) \x3e (0));\n} else {\nreturn and__5000__auto__;\n}\n})();\nvar val \x3d (cljs.core.truth_(has_val)?self__.buf.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(null, ):null);\nreturn cljs.core.async.impl.channels.box(val);\n} else {\nreturn null;\n}\n} else {\nif((self__.dirty_takes \x3e (64))){\n(self__.dirty_takes \x3d (0));\n\nself__.takes.cleanup(cljs.core.async.impl.protocols.active_QMARK_);\n} else {\n(self__.dirty_takes \x3d (self__.dirty_takes + (1)));\n}\n\nif(cljs.core.truth_(handler.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1(null, ))){\nif((self__.takes.length \x3c (1024))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22No more than \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((1024)),\x22 pending takes are allowed on a single channel.\x22].join(\x27\x27),\x22\\n\x22,\x22(\x3c (.-length takes) impl/MAX-QUEUE-SIZE)\x22].join(\x27\x27)));\n}\n\nself__.takes.unbounded_unshift(handler);\n} else {\n}\n\nreturn null;\n}\n}\n}\n}\n}));\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$closed_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.closed;\n}));\n\n(cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(self__.closed){\nreturn null;\n} else {\n(self__.closed \x3d true);\n\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d self__.buf;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (self__.puts.length \x3d\x3d\x3d (0));\n} else {\nreturn and__5000__auto__;\n}\n})())){\n(self__.add_BANG_.cljs$core$IFn$_invoke$arity$1 ? self__.add_BANG_.cljs$core$IFn$_invoke$arity$1(self__.buf) : self__.add_BANG_.call(null, self__.buf));\n} else {\n}\n\nwhile(true){\nvar taker_23009 \x3d self__.takes.pop();\nif((taker_23009 \x3d\x3d null)){\n} else {\nif(taker_23009.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, )){\nvar take_cb_23011 \x3d taker_23009.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\nvar val_23012 \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d self__.buf;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (cljs.core.count(self__.buf) \x3e (0));\n} else {\nreturn and__5000__auto__;\n}\n})())?self__.buf.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(null, ):null);\ncljs.core.async.impl.dispatch.run(((function (take_cb_23011,val_23012,taker_23009,this$__$1){\nreturn (function (){\nreturn (take_cb_23011.cljs$core$IFn$_invoke$arity$1 ? take_cb_23011.cljs$core$IFn$_invoke$arity$1(val_23012) : take_cb_23011.call(null, val_23012));\n});})(take_cb_23011,val_23012,taker_23009,this$__$1))\n);\n} else {\n}\n\ncontinue;\n}\nbreak;\n}\n\nif(cljs.core.truth_(self__.buf)){\nself__.buf.cljs$core$async$impl$protocols$Buffer$close_buf_BANG_$arity$1(null, );\n} else {\n}\n\nreturn null;\n}\n}));\n\n(cljs.core.async.impl.channels.ManyToManyChannel.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22takes\x22,\x22takes\x22,298247964,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22dirty-takes\x22,\x22dirty-takes\x22,575642138,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22puts\x22,\x22puts\x22,-1883877054,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22dirty-puts\x22,\x22dirty-puts\x22,57041148,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22buf\x22,\x22buf\x22,1426618187,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22not-native\x22,\x22not-native\x22,-236392494,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22closed\x22,\x22closed\x22,720856168,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22add!\x22,\x22add!\x22,2046056845,null)], null);\n}));\n\n(cljs.core.async.impl.channels.ManyToManyChannel.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.channels.ManyToManyChannel.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.channels/ManyToManyChannel\x22);\n\n(cljs.core.async.impl.channels.ManyToManyChannel.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.channels/ManyToManyChannel\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.channels/ManyToManyChannel.\n */\ncljs.core.async.impl.channels.__GT_ManyToManyChannel \x3d (function cljs$core$async$impl$channels$__GT_ManyToManyChannel(takes,dirty_takes,puts,dirty_puts,buf,closed,add_BANG_){\nreturn (new cljs.core.async.impl.channels.ManyToManyChannel(takes,dirty_takes,puts,dirty_puts,buf,closed,add_BANG_));\n});\n\ncljs.core.async.impl.channels.ex_handler \x3d (function cljs$core$async$impl$channels$ex_handler(ex){\nconsole.log(ex);\n\nreturn null;\n});\ncljs.core.async.impl.channels.handle \x3d (function cljs$core$async$impl$channels$handle(buf,exh,t){\nvar else$ \x3d (function (){var fexpr__22793 \x3d (function (){var or__5002__auto__ \x3d exh;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.async.impl.channels.ex_handler;\n}\n})();\nreturn (fexpr__22793.cljs$core$IFn$_invoke$arity$1 ? fexpr__22793.cljs$core$IFn$_invoke$arity$1(t) : fexpr__22793.call(null, t));\n})();\nif((else$ \x3d\x3d null)){\nreturn buf;\n} else {\nreturn cljs.core.async.impl.protocols.add_BANG_.cljs$core$IFn$_invoke$arity$2(buf,else$);\n}\n});\ncljs.core.async.impl.channels.chan \x3d (function cljs$core$async$impl$channels$chan(var_args){\nvar G__22809 \x3d arguments.length;\nswitch (G__22809) {\ncase 1:\nreturn cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$1 \x3d (function (buf){\nreturn cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$2(buf,null);\n}));\n\n(cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$2 \x3d (function (buf,xform){\nreturn cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$3(buf,xform,null);\n}));\n\n(cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$3 \x3d (function (buf,xform,exh){\nreturn (new cljs.core.async.impl.channels.ManyToManyChannel(cljs.core.async.impl.buffers.ring_buffer((32)),(0),cljs.core.async.impl.buffers.ring_buffer((32)),(0),buf,false,(function (){var add_BANG_ \x3d (cljs.core.truth_(xform)?(xform.cljs$core$IFn$_invoke$arity$1 ? xform.cljs$core$IFn$_invoke$arity$1(cljs.core.async.impl.protocols.add_BANG_) : xform.call(null, cljs.core.async.impl.protocols.add_BANG_)):cljs.core.async.impl.protocols.add_BANG_);\nreturn (function() {\nvar G__23047 \x3d null;\nvar G__23047__1 \x3d (function (buf__$1){\ntry{return (add_BANG_.cljs$core$IFn$_invoke$arity$1 ? add_BANG_.cljs$core$IFn$_invoke$arity$1(buf__$1) : add_BANG_.call(null, buf__$1));\n}catch (e22840){var t \x3d e22840;\nreturn cljs.core.async.impl.channels.handle(buf__$1,exh,t);\n}});\nvar G__23047__2 \x3d (function (buf__$1,val){\ntry{return (add_BANG_.cljs$core$IFn$_invoke$arity$2 ? add_BANG_.cljs$core$IFn$_invoke$arity$2(buf__$1,val) : add_BANG_.call(null, buf__$1,val));\n}catch (e22841){var t \x3d e22841;\nreturn cljs.core.async.impl.channels.handle(buf__$1,exh,t);\n}});\nG__23047 \x3d function(buf__$1,val){\nswitch(arguments.length){\ncase 1:\nreturn G__23047__1.call(this,buf__$1);\ncase 2:\nreturn G__23047__2.call(this,buf__$1,val);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__23047.cljs$core$IFn$_invoke$arity$1 \x3d G__23047__1;\nG__23047.cljs$core$IFn$_invoke$arity$2 \x3d G__23047__2;\nreturn G__23047;\n})()\n})()));\n}));\n\n(cljs.core.async.impl.channels.chan.cljs$lang$maxFixedArity \x3d 3);\n\n");
SHADOW_ENV.evalLoad("cljs.core.async.impl.timers.js", true, "goog.provide(\x27cljs.core.async.impl.timers\x27);\ncljs.core.async.impl.timers.MAX_LEVEL \x3d (15);\ncljs.core.async.impl.timers.P \x3d ((1) / (2));\ncljs.core.async.impl.timers.random_level \x3d (function cljs$core$async$impl$timers$random_level(var_args){\nvar G__22922 \x3d arguments.length;\nswitch (G__22922) {\ncase 0:\nreturn cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$1((0));\n}));\n\n(cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$1 \x3d (function (level){\nwhile(true){\nif((((Math.random() \x3c cljs.core.async.impl.timers.P)) \x26\x26 ((level \x3c cljs.core.async.impl.timers.MAX_LEVEL)))){\nvar G__23217 \x3d (level + (1));\nlevel \x3d G__23217;\ncontinue;\n} else {\nreturn level;\n}\nbreak;\n}\n}));\n\n(cljs.core.async.impl.timers.random_level.cljs$lang$maxFixedArity \x3d 1);\n\n\n/**\n* @constructor\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IPrintWithWriter}\n*/\ncljs.core.async.impl.timers.SkipListNode \x3d (function (key,val,forward){\nthis.key \x3d key;\nthis.val \x3d val;\nthis.forward \x3d forward;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2155872256;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.timers.SkipListNode.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn (new cljs.core.List(null,self__.key,(new cljs.core.List(null,self__.val,null,(1),null)),(2),null));\n}));\n\n(cljs.core.async.impl.timers.SkipListNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22[\x22,\x22 \x22,\x22]\x22,opts,coll__$1);\n}));\n\n(cljs.core.async.impl.timers.SkipListNode.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22key\x22,\x22key\x22,124488940,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22val\x22,\x22val\x22,1769233139,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22forward\x22,\x22forward\x22,1083186224,null)], null);\n}));\n\n(cljs.core.async.impl.timers.SkipListNode.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.timers.SkipListNode.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.timers/SkipListNode\x22);\n\n(cljs.core.async.impl.timers.SkipListNode.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.timers/SkipListNode\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.timers/SkipListNode.\n */\ncljs.core.async.impl.timers.__GT_SkipListNode \x3d (function cljs$core$async$impl$timers$__GT_SkipListNode(key,val,forward){\nreturn (new cljs.core.async.impl.timers.SkipListNode(key,val,forward));\n});\n\ncljs.core.async.impl.timers.skip_list_node \x3d (function cljs$core$async$impl$timers$skip_list_node(var_args){\nvar G__22993 \x3d arguments.length;\nswitch (G__22993) {\ncase 1:\nreturn cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$1 \x3d (function (level){\nreturn cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3(null,null,level);\n}));\n\n(cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3 \x3d (function (k,v,level){\nvar arr \x3d (new Array((level + (1))));\nvar i_23231 \x3d (0);\nwhile(true){\nif((i_23231 \x3c arr.length)){\n(arr[i_23231] \x3d null);\n\nvar G__23233 \x3d (i_23231 + (1));\ni_23231 \x3d G__23233;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn (new cljs.core.async.impl.timers.SkipListNode(k,v,arr));\n}));\n\n(cljs.core.async.impl.timers.skip_list_node.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.async.impl.timers.least_greater_node \x3d (function cljs$core$async$impl$timers$least_greater_node(var_args){\nvar G__23026 \x3d arguments.length;\nswitch (G__23026) {\ncase 3:\nreturn cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$3 \x3d (function (x,k,level){\nreturn cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4(x,k,level,null);\n}));\n\n(cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4 \x3d (function (x,k,level,update){\nwhile(true){\nif((!((level \x3c (0))))){\nvar x__$1 \x3d (function (){var x__$1 \x3d x;\nwhile(true){\nvar temp__5802__auto__ \x3d (((level \x3c x__$1.forward.length))?(x__$1.forward[level]):null);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar x_SINGLEQUOTE_ \x3d temp__5802__auto__;\nif((x_SINGLEQUOTE_.key \x3c k)){\nvar G__23245 \x3d x_SINGLEQUOTE_;\nx__$1 \x3d G__23245;\ncontinue;\n} else {\nreturn x__$1;\n}\n} else {\nreturn x__$1;\n}\nbreak;\n}\n})();\nif((update \x3d\x3d null)){\n} else {\n(update[level] \x3d x__$1);\n}\n\nvar G__23246 \x3d x__$1;\nvar G__23247 \x3d k;\nvar G__23248 \x3d (level - (1));\nvar G__23249 \x3d update;\nx \x3d G__23246;\nk \x3d G__23247;\nlevel \x3d G__23248;\nupdate \x3d G__23249;\ncontinue;\n} else {\nreturn x;\n}\nbreak;\n}\n}));\n\n(cljs.core.async.impl.timers.least_greater_node.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n* @constructor\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IPrintWithWriter}\n*/\ncljs.core.async.impl.timers.SkipList \x3d (function (header,level){\nthis.header \x3d header;\nthis.level \x3d level;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2155872256;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.timers.SkipList.prototype.put \x3d (function (k,v){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar update \x3d (new Array(cljs.core.async.impl.timers.MAX_LEVEL));\nvar x \x3d cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4(self__.header,k,self__.level,update);\nvar x__$1 \x3d (x.forward[(0)]);\nif((((!((x__$1 \x3d\x3d null)))) \x26\x26 ((x__$1.key \x3d\x3d\x3d k)))){\nreturn (x__$1.val \x3d v);\n} else {\nvar new_level \x3d cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$0();\nif((new_level \x3e self__.level)){\nvar i_23260 \x3d (self__.level + (1));\nwhile(true){\nif((i_23260 \x3c\x3d (new_level + (1)))){\n(update[i_23260] \x3d self__.header);\n\nvar G__23261 \x3d (i_23260 + (1));\ni_23260 \x3d G__23261;\ncontinue;\n} else {\n}\nbreak;\n}\n\n(self__.level \x3d new_level);\n} else {\n}\n\nvar x__$2 \x3d cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3(k,v,(new Array(new_level)));\nvar i \x3d (0);\nwhile(true){\nif((i \x3c\x3d self__.level)){\nvar links_23264 \x3d (update[i]).forward;\nif((i \x3c x__$2.forward.length)){\n(x__$2.forward[i] \x3d (links_23264[i]));\n} else {\nx__$2.forward.push((((i \x3c links_23264.length))?(links_23264[i]):null));\n}\n\nif((i \x3c links_23264.length)){\n(links_23264[i] \x3d x__$2);\n} else {\nlinks_23264.push(x__$2);\n}\n\nvar G__23271 \x3d (i + (1));\ni \x3d G__23271;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}\n}));\n\n(cljs.core.async.impl.timers.SkipList.prototype.remove \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar update \x3d (new Array(cljs.core.async.impl.timers.MAX_LEVEL));\nvar x \x3d cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4(self__.header,k,self__.level,update);\nvar x__$1 \x3d (((x.forward.length \x3d\x3d\x3d (0)))?null:(x.forward[(0)]));\nif((((!((x__$1 \x3d\x3d null)))) \x26\x26 ((x__$1.key \x3d\x3d\x3d k)))){\nvar i_23278 \x3d (0);\nwhile(true){\nif((i_23278 \x3c\x3d self__.level)){\nvar links_23280 \x3d (update[i_23278]).forward;\nif((x__$1 \x3d\x3d\x3d (((i_23278 \x3c links_23280.length))?(links_23280[i_23278]):null))){\n(links_23280[i_23278] \x3d (x__$1.forward[i_23278]));\n\nvar G__23283 \x3d (i_23278 + (1));\ni_23278 \x3d G__23283;\ncontinue;\n} else {\nvar G__23284 \x3d (i_23278 + (1));\ni_23278 \x3d G__23284;\ncontinue;\n}\n} else {\n}\nbreak;\n}\n\nwhile(true){\nif(((((((0) \x3c self__.level)) \x26\x26 ((self__.level \x3c self__.header.forward.length)))) \x26\x26 (((self__.header.forward[self__.level]) \x3d\x3d null)))){\n(self__.level \x3d (self__.level - (1)));\n\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.async.impl.timers.SkipList.prototype.ceilingEntry \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar x \x3d self__.header;\nvar level__$1 \x3d self__.level;\nwhile(true){\nif((!((level__$1 \x3c (0))))){\nvar nx \x3d (function (){var x__$1 \x3d x;\nwhile(true){\nvar x_SINGLEQUOTE_ \x3d (((level__$1 \x3c x__$1.forward.length))?(x__$1.forward[level__$1]):null);\nif((!((x_SINGLEQUOTE_ \x3d\x3d null)))){\nif((x_SINGLEQUOTE_.key \x3e k)){\nreturn x__$1;\n} else {\nvar G__23285 \x3d x_SINGLEQUOTE_;\nx__$1 \x3d G__23285;\ncontinue;\n}\n} else {\nif((level__$1 \x3d\x3d\x3d (0))){\nreturn x__$1;\n} else {\nreturn null;\n}\n}\nbreak;\n}\n})();\nif(cljs.core.truth_(nx)){\nvar G__23286 \x3d nx;\nvar G__23287 \x3d (level__$1 - (1));\nx \x3d G__23286;\nlevel__$1 \x3d G__23287;\ncontinue;\n} else {\nvar G__23288 \x3d x;\nvar G__23289 \x3d (level__$1 - (1));\nx \x3d G__23288;\nlevel__$1 \x3d G__23289;\ncontinue;\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x.key,k)){\nreturn x;\n} else {\nreturn (x.forward[(0)]);\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.async.impl.timers.SkipList.prototype.floorEntry \x3d (function (k){\nvar self__ \x3d this;\nvar coll \x3d this;\nvar x \x3d self__.header;\nvar level__$1 \x3d self__.level;\nwhile(true){\nif((!((level__$1 \x3c (0))))){\nvar nx \x3d (function (){var x__$1 \x3d x;\nwhile(true){\nvar x_SINGLEQUOTE_ \x3d (((level__$1 \x3c x__$1.forward.length))?(x__$1.forward[level__$1]):null);\nif((!((x_SINGLEQUOTE_ \x3d\x3d null)))){\nif((x_SINGLEQUOTE_.key \x3e k)){\nreturn x__$1;\n} else {\nvar G__23290 \x3d x_SINGLEQUOTE_;\nx__$1 \x3d G__23290;\ncontinue;\n}\n} else {\nif((level__$1 \x3d\x3d\x3d (0))){\nreturn x__$1;\n} else {\nreturn null;\n}\n}\nbreak;\n}\n})();\nif(cljs.core.truth_(nx)){\nvar G__23291 \x3d nx;\nvar G__23292 \x3d (level__$1 - (1));\nx \x3d G__23291;\nlevel__$1 \x3d G__23292;\ncontinue;\n} else {\nvar G__23293 \x3d x;\nvar G__23294 \x3d (level__$1 - (1));\nx \x3d G__23293;\nlevel__$1 \x3d G__23294;\ncontinue;\n}\n} else {\nif((x \x3d\x3d\x3d self__.header)){\nreturn null;\n} else {\nreturn x;\n}\n}\nbreak;\n}\n}));\n\n(cljs.core.async.impl.timers.SkipList.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (coll){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar iter \x3d (function cljs$core$async$impl$timers$iter(node){\nreturn (new cljs.core.LazySeq(null,(function (){\nif((node \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node.key,node.val], null),cljs$core$async$impl$timers$iter((node.forward[(0)])));\n}\n}),null,null));\n});\nreturn iter((self__.header.forward[(0)]));\n}));\n\n(cljs.core.async.impl.timers.SkipList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (coll,writer,opts){\nvar self__ \x3d this;\nvar coll__$1 \x3d this;\nvar pr_pair \x3d (function (keyval){\nreturn cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts,keyval);\n});\nreturn cljs.core.pr_sequential_writer(writer,pr_pair,\x22{\x22,\x22, \x22,\x22}\x22,opts,coll__$1);\n}));\n\n(cljs.core.async.impl.timers.SkipList.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22header\x22,\x22header\x22,1759972661,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22level\x22,\x22level\x22,-1363938217,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.core.async.impl.timers.SkipList.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.timers.SkipList.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.timers/SkipList\x22);\n\n(cljs.core.async.impl.timers.SkipList.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.timers/SkipList\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.timers/SkipList.\n */\ncljs.core.async.impl.timers.__GT_SkipList \x3d (function cljs$core$async$impl$timers$__GT_SkipList(header,level){\nreturn (new cljs.core.async.impl.timers.SkipList(header,level));\n});\n\ncljs.core.async.impl.timers.skip_list \x3d (function cljs$core$async$impl$timers$skip_list(){\nreturn (new cljs.core.async.impl.timers.SkipList(cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$1((0)),(0)));\n});\ncljs.core.async.impl.timers.timeouts_map \x3d cljs.core.async.impl.timers.skip_list();\ncljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS \x3d (10);\n/**\n * returns a channel that will close after msecs\n */\ncljs.core.async.impl.timers.timeout \x3d (function cljs$core$async$impl$timers$timeout(msecs){\nvar timeout \x3d ((new Date()).valueOf() + msecs);\nvar me \x3d cljs.core.async.impl.timers.timeouts_map.ceilingEntry(timeout);\nvar or__5002__auto__ \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d me;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (me.key \x3c (timeout + cljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS));\n} else {\nreturn and__5000__auto__;\n}\n})())?me.val:null);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar timeout_channel \x3d cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$1(null);\ncljs.core.async.impl.timers.timeouts_map.put(timeout,timeout_channel);\n\ncljs.core.async.impl.dispatch.queue_delay((function (){\ncljs.core.async.impl.timers.timeouts_map.remove(timeout);\n\nreturn cljs.core.async.impl.protocols.close_BANG_(timeout_channel);\n}),msecs);\n\nreturn timeout_channel;\n}\n});\n");
SHADOW_ENV.evalLoad("cljs.core.async.impl.ioc_helpers.js", true, "goog.provide(\x27cljs.core.async.impl.ioc_helpers\x27);\ncljs.core.async.impl.ioc_helpers.FN_IDX \x3d (0);\ncljs.core.async.impl.ioc_helpers.STATE_IDX \x3d (1);\ncljs.core.async.impl.ioc_helpers.VALUE_IDX \x3d (2);\ncljs.core.async.impl.ioc_helpers.BINDINGS_IDX \x3d (3);\ncljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES \x3d (4);\ncljs.core.async.impl.ioc_helpers.CURRENT_EXCEPTION \x3d (5);\ncljs.core.async.impl.ioc_helpers.USER_START_IDX \x3d (6);\ncljs.core.async.impl.ioc_helpers.aset_object \x3d (function cljs$core$async$impl$ioc_helpers$aset_object(arr,idx,o){\nreturn (arr[idx][o]);\n});\ncljs.core.async.impl.ioc_helpers.aget_object \x3d (function cljs$core$async$impl$ioc_helpers$aget_object(arr,idx){\nreturn (arr[idx]);\n});\n/**\n * Returns true if the machine is in a finished state\n */\ncljs.core.async.impl.ioc_helpers.finished_QMARK_ \x3d (function cljs$core$async$impl$ioc_helpers$finished_QMARK_(state_array){\nreturn cljs.core.keyword_identical_QMARK_((state_array[(1)]),new cljs.core.Keyword(null,\x22finished\x22,\x22finished\x22,-1018867731));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Handler}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896 \x3d (function (f,meta21897){\nthis.f \x3d f;\nthis.meta21897 \x3d meta21897;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_21898,meta21897__$1){\nvar self__ \x3d this;\nvar _21898__$1 \x3d this;\nreturn (new cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896(self__.f,meta21897__$1));\n}));\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_21898){\nvar self__ \x3d this;\nvar _21898__$1 \x3d this;\nreturn self__.meta21897;\n}));\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.prototype.cljs$core$async$impl$protocols$Handler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.prototype.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.f;\n}));\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22meta21897\x22,\x22meta21897\x22,-502825892,null)], null);\n}));\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.cljs$lang$type \x3d true);\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.cljs$lang$ctorStr \x3d \x22cljs.core.async.impl.ioc-helpers/t_cljs$core$async$impl$ioc_helpers21896\x22);\n\n(cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async.impl.ioc-helpers/t_cljs$core$async$impl$ioc_helpers21896\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async.impl.ioc-helpers/t_cljs$core$async$impl$ioc_helpers21896.\n */\ncljs.core.async.impl.ioc_helpers.__GT_t_cljs$core$async$impl$ioc_helpers21896 \x3d (function cljs$core$async$impl$ioc_helpers$__GT_t_cljs$core$async$impl$ioc_helpers21896(f,meta21897){\nreturn (new cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896(f,meta21897));\n});\n\n\ncljs.core.async.impl.ioc_helpers.fn_handler \x3d (function cljs$core$async$impl$ioc_helpers$fn_handler(f){\nreturn (new cljs.core.async.impl.ioc_helpers.t_cljs$core$async$impl$ioc_helpers21896(f,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.core.async.impl.ioc_helpers.run_state_machine \x3d (function cljs$core$async$impl$ioc_helpers$run_state_machine(state){\nvar fexpr__21919 \x3d cljs.core.async.impl.ioc_helpers.aget_object(state,(0));\nreturn (fexpr__21919.cljs$core$IFn$_invoke$arity$1 ? fexpr__21919.cljs$core$IFn$_invoke$arity$1(state) : fexpr__21919.call(null, state));\n});\ncljs.core.async.impl.ioc_helpers.run_state_machine_wrapped \x3d (function cljs$core$async$impl$ioc_helpers$run_state_machine_wrapped(state){\ntry{return cljs.core.async.impl.ioc_helpers.run_state_machine(state);\n}catch (e21923){if((e21923 instanceof Object)){\nvar ex \x3d e21923;\ncljs.core.async.impl.ioc_helpers.aget_object(state,(6)).cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1(null, );\n\nthrow ex;\n} else {\nthrow e21923;\n\n}\n}});\ncljs.core.async.impl.ioc_helpers.take_BANG_ \x3d (function cljs$core$async$impl$ioc_helpers$take_BANG_(state,blk,c){\nvar temp__5802__auto__ \x3d c.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2(null, cljs.core.async.impl.ioc_helpers.fn_handler((function (x){\nvar statearr_21940_22029 \x3d state;\n(statearr_21940_22029[(2)] \x3d x);\n\n(statearr_21940_22029[(1)] \x3d blk);\n\n\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state);\n})));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar cb \x3d temp__5802__auto__;\nvar statearr_21947_22032 \x3d state;\n(statearr_21947_22032[(2)] \x3d cljs.core.deref(cb));\n\n(statearr_21947_22032[(1)] \x3d blk);\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n});\ncljs.core.async.impl.ioc_helpers.put_BANG_ \x3d (function cljs$core$async$impl$ioc_helpers$put_BANG_(state,blk,c,val){\nvar temp__5802__auto__ \x3d c.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3(null, val,cljs.core.async.impl.ioc_helpers.fn_handler((function (ret_val){\nvar statearr_21966_22040 \x3d state;\n(statearr_21966_22040[(2)] \x3d ret_val);\n\n(statearr_21966_22040[(1)] \x3d blk);\n\n\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state);\n})));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar cb \x3d temp__5802__auto__;\nvar statearr_21973_22044 \x3d state;\n(statearr_21973_22044[(2)] \x3d cljs.core.deref(cb));\n\n(statearr_21973_22044[(1)] \x3d blk);\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n});\ncljs.core.async.impl.ioc_helpers.return_chan \x3d (function cljs$core$async$impl$ioc_helpers$return_chan(state,value){\nvar c \x3d (state[(6)]);\nif((value \x3d\x3d null)){\n} else {\nc.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3(null, value,cljs.core.async.impl.ioc_helpers.fn_handler((function (_){\nreturn null;\n})));\n}\n\nc.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1(null, );\n\nreturn c;\n});\n");
SHADOW_ENV.evalLoad("cljs.core.async.js", true, "goog.provide(\x27cljs.core.async\x27);\ngoog.scope(function(){\n cljs.core.async.goog$module$goog$array \x3d goog.module.get(\x27goog.array\x27);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Handler}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async23449 \x3d (function (f,blockable,meta23450){\nthis.f \x3d f;\nthis.blockable \x3d blockable;\nthis.meta23450 \x3d meta23450;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async23449.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_23451,meta23450__$1){\nvar self__ \x3d this;\nvar _23451__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async23449(self__.f,self__.blockable,meta23450__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async23449.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_23451){\nvar self__ \x3d this;\nvar _23451__$1 \x3d this;\nreturn self__.meta23450;\n}));\n\n(cljs.core.async.t_cljs$core$async23449.prototype.cljs$core$async$impl$protocols$Handler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async23449.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(cljs.core.async.t_cljs$core$async23449.prototype.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.blockable;\n}));\n\n(cljs.core.async.t_cljs$core$async23449.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.f;\n}));\n\n(cljs.core.async.t_cljs$core$async23449.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22blockable\x22,\x22blockable\x22,-28395259,null),new cljs.core.Symbol(null,\x22meta23450\x22,\x22meta23450\x22,-31854318,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async23449.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async23449.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async23449\x22);\n\n(cljs.core.async.t_cljs$core$async23449.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async23449\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async23449.\n */\ncljs.core.async.__GT_t_cljs$core$async23449 \x3d (function cljs$core$async$__GT_t_cljs$core$async23449(f,blockable,meta23450){\nreturn (new cljs.core.async.t_cljs$core$async23449(f,blockable,meta23450));\n});\n\n\ncljs.core.async.fn_handler \x3d (function cljs$core$async$fn_handler(var_args){\nvar G__23447 \x3d arguments.length;\nswitch (G__23447) {\ncase 1:\nreturn cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$1 \x3d (function (f){\nreturn cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$2(f,true);\n}));\n\n(cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,blockable){\nreturn (new cljs.core.async.t_cljs$core$async23449(f,blockable,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cljs.core.async.fn_handler.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a fixed buffer of size n. When full, puts will block/park.\n */\ncljs.core.async.buffer \x3d (function cljs$core$async$buffer(n){\nreturn cljs.core.async.impl.buffers.fixed_buffer(n);\n});\n/**\n * Returns a buffer of size n. When full, puts will complete but\n * val will be dropped (no transfer).\n */\ncljs.core.async.dropping_buffer \x3d (function cljs$core$async$dropping_buffer(n){\nreturn cljs.core.async.impl.buffers.dropping_buffer(n);\n});\n/**\n * Returns a buffer of size n. When full, puts will complete, and be\n * buffered, but oldest elements in buffer will be dropped (not\n * transferred).\n */\ncljs.core.async.sliding_buffer \x3d (function cljs$core$async$sliding_buffer(n){\nreturn cljs.core.async.impl.buffers.sliding_buffer(n);\n});\n/**\n * Returns true if a channel created with buff will never block. That is to say,\n * puts into this buffer will never cause the buffer to be full. \n */\ncljs.core.async.unblocking_buffer_QMARK_ \x3d (function cljs$core$async$unblocking_buffer_QMARK_(buff){\nif((!((buff \x3d\x3d null)))){\nif(((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d buff.cljs$core$async$impl$protocols$UnblockingBuffer$)))){\nreturn true;\n} else {\nif((!buff.cljs$lang$protocol_mask$partition$)){\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.async.impl.protocols.UnblockingBuffer,buff);\n} else {\nreturn false;\n}\n}\n} else {\nreturn cljs.core.native_satisfies_QMARK_(cljs.core.async.impl.protocols.UnblockingBuffer,buff);\n}\n});\n/**\n * Creates a channel with an optional buffer, an optional transducer (like (map f),\n * (filter p) etc or a composition thereof), and an optional exception handler.\n * If buf-or-n is a number, will create and use a fixed buffer of that size. If a\n * transducer is supplied a buffer must be specified. ex-handler must be a\n * fn of one argument - if an exception occurs during transformation it will be called\n * with the thrown value as an argument, and any non-nil return value will be placed\n * in the channel.\n */\ncljs.core.async.chan \x3d (function cljs$core$async$chan(var_args){\nvar G__23498 \x3d arguments.length;\nswitch (G__23498) {\ncase 0:\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.chan.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1 \x3d (function (buf_or_n){\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$3(buf_or_n,null,null);\n}));\n\n(cljs.core.async.chan.cljs$core$IFn$_invoke$arity$2 \x3d (function (buf_or_n,xform){\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$3(buf_or_n,xform,null);\n}));\n\n(cljs.core.async.chan.cljs$core$IFn$_invoke$arity$3 \x3d (function (buf_or_n,xform,ex_handler){\nvar buf_or_n__$1 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(buf_or_n,(0)))?null:buf_or_n);\nif(cljs.core.truth_(xform)){\nif(cljs.core.truth_(buf_or_n__$1)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22buffer must be supplied when transducer is\x22,\x22\\n\x22,\x22buf-or-n\x22].join(\x27\x27)));\n}\n} else {\n}\n\nreturn cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$3(((typeof buf_or_n__$1 \x3d\x3d\x3d \x27number\x27)?cljs.core.async.buffer(buf_or_n__$1):buf_or_n__$1),xform,ex_handler);\n}));\n\n(cljs.core.async.chan.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Creates a promise channel with an optional transducer, and an optional\n * exception-handler. A promise channel can take exactly one value that consumers\n * will receive. Once full, puts complete but val is dropped (no transfer).\n * Consumers will block until either a value is placed in the channel or the\n * channel is closed. See chan for the semantics of xform and ex-handler.\n */\ncljs.core.async.promise_chan \x3d (function cljs$core$async$promise_chan(var_args){\nvar G__23526 \x3d arguments.length;\nswitch (G__23526) {\ncase 0:\nreturn cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$1(null);\n}));\n\n(cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$1 \x3d (function (xform){\nreturn cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$2(xform,null);\n}));\n\n(cljs.core.async.promise_chan.cljs$core$IFn$_invoke$arity$2 \x3d (function (xform,ex_handler){\nreturn cljs.core.async.chan.cljs$core$IFn$_invoke$arity$3(cljs.core.async.impl.buffers.promise_buffer(),xform,ex_handler);\n}));\n\n(cljs.core.async.promise_chan.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a channel that will close after msecs\n */\ncljs.core.async.timeout \x3d (function cljs$core$async$timeout(msecs){\nreturn cljs.core.async.impl.timers.timeout(msecs);\n});\n/**\n * takes a val from port. Must be called inside a (go ...) block. Will\n * return nil if closed. Will park if nothing is available.\n * Returns true unless port is already closed\n */\ncljs.core.async._LT__BANG_ \x3d (function cljs$core$async$_LT__BANG_(port){\nthrow (new Error(\x22\x3c! used not in (go ...) block\x22));\n});\n/**\n * Asynchronously takes a val from port, passing to fn1. Will pass nil\n * if closed. If on-caller? (default true) is true, and value is\n * immediately available, will call fn1 on calling thread.\n * Returns nil.\n */\ncljs.core.async.take_BANG_ \x3d (function cljs$core$async$take_BANG_(var_args){\nvar G__23540 \x3d arguments.length;\nswitch (G__23540) {\ncase 2:\nreturn cljs.core.async.take_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.take_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.take_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (port,fn1){\nreturn cljs.core.async.take_BANG_.cljs$core$IFn$_invoke$arity$3(port,fn1,true);\n}));\n\n(cljs.core.async.take_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (port,fn1,on_caller_QMARK_){\nvar ret \x3d cljs.core.async.impl.protocols.take_BANG_(port,cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$1(fn1));\nif(cljs.core.truth_(ret)){\nvar val_26993 \x3d cljs.core.deref(ret);\nif(cljs.core.truth_(on_caller_QMARK_)){\n(fn1.cljs$core$IFn$_invoke$arity$1 ? fn1.cljs$core$IFn$_invoke$arity$1(val_26993) : fn1.call(null, val_26993));\n} else {\ncljs.core.async.impl.dispatch.run((function (){\nreturn (fn1.cljs$core$IFn$_invoke$arity$1 ? fn1.cljs$core$IFn$_invoke$arity$1(val_26993) : fn1.call(null, val_26993));\n}));\n}\n} else {\n}\n\nreturn null;\n}));\n\n(cljs.core.async.take_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.async.nop \x3d (function cljs$core$async$nop(_){\nreturn null;\n});\ncljs.core.async.fhnop \x3d cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$1(cljs.core.async.nop);\n/**\n * puts a val into port. nil values are not allowed. Must be called\n * inside a (go ...) block. Will park if no buffer space is available.\n * Returns true unless port is already closed.\n */\ncljs.core.async._GT__BANG_ \x3d (function cljs$core$async$_GT__BANG_(port,val){\nthrow (new Error(\x22\x3e! used not in (go ...) block\x22));\n});\n/**\n * Asynchronously puts a val into port, calling fn1 (if supplied) when\n * complete. nil values are not allowed. Will throw if closed. If\n * on-caller? (default true) is true, and the put is immediately\n * accepted, will call fn1 on calling thread. Returns nil.\n */\ncljs.core.async.put_BANG_ \x3d (function cljs$core$async$put_BANG_(var_args){\nvar G__23563 \x3d arguments.length;\nswitch (G__23563) {\ncase 2:\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (port,val){\nvar temp__5802__auto__ \x3d cljs.core.async.impl.protocols.put_BANG_(port,val,cljs.core.async.fhnop);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar ret \x3d temp__5802__auto__;\nreturn cljs.core.deref(ret);\n} else {\nreturn true;\n}\n}));\n\n(cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (port,val,fn1){\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$4(port,val,fn1,true);\n}));\n\n(cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$4 \x3d (function (port,val,fn1,on_caller_QMARK_){\nvar temp__5802__auto__ \x3d cljs.core.async.impl.protocols.put_BANG_(port,val,cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$1(fn1));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar retb \x3d temp__5802__auto__;\nvar ret \x3d cljs.core.deref(retb);\nif(cljs.core.truth_(on_caller_QMARK_)){\n(fn1.cljs$core$IFn$_invoke$arity$1 ? fn1.cljs$core$IFn$_invoke$arity$1(ret) : fn1.call(null, ret));\n} else {\ncljs.core.async.impl.dispatch.run((function (){\nreturn (fn1.cljs$core$IFn$_invoke$arity$1 ? fn1.cljs$core$IFn$_invoke$arity$1(ret) : fn1.call(null, ret));\n}));\n}\n\nreturn ret;\n} else {\nreturn true;\n}\n}));\n\n(cljs.core.async.put_BANG_.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.core.async.close_BANG_ \x3d (function cljs$core$async$close_BANG_(port){\nreturn cljs.core.async.impl.protocols.close_BANG_(port);\n});\ncljs.core.async.random_array \x3d (function cljs$core$async$random_array(n){\nvar a \x3d (new Array(n));\nvar n__5593__auto___26995 \x3d n;\nvar x_26996 \x3d (0);\nwhile(true){\nif((x_26996 \x3c n__5593__auto___26995)){\n(a[x_26996] \x3d x_26996);\n\nvar G__26997 \x3d (x_26996 + (1));\nx_26996 \x3d G__26997;\ncontinue;\n} else {\n}\nbreak;\n}\n\ncljs.core.async.goog$module$goog$array.shuffle(a);\n\nreturn a;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Handler}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async23591 \x3d (function (flag,meta23592){\nthis.flag \x3d flag;\nthis.meta23592 \x3d meta23592;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async23591.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_23593,meta23592__$1){\nvar self__ \x3d this;\nvar _23593__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async23591(self__.flag,meta23592__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async23591.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_23593){\nvar self__ \x3d this;\nvar _23593__$1 \x3d this;\nreturn self__.meta23592;\n}));\n\n(cljs.core.async.t_cljs$core$async23591.prototype.cljs$core$async$impl$protocols$Handler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async23591.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.deref(self__.flag);\n}));\n\n(cljs.core.async.t_cljs$core$async23591.prototype.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(cljs.core.async.t_cljs$core$async23591.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.reset_BANG_(self__.flag,null);\n\nreturn true;\n}));\n\n(cljs.core.async.t_cljs$core$async23591.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22flag\x22,\x22flag\x22,-1565787888,null),new cljs.core.Symbol(null,\x22meta23592\x22,\x22meta23592\x22,-2037850213,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async23591.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async23591.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async23591\x22);\n\n(cljs.core.async.t_cljs$core$async23591.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async23591\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async23591.\n */\ncljs.core.async.__GT_t_cljs$core$async23591 \x3d (function cljs$core$async$__GT_t_cljs$core$async23591(flag,meta23592){\nreturn (new cljs.core.async.t_cljs$core$async23591(flag,meta23592));\n});\n\n\ncljs.core.async.alt_flag \x3d (function cljs$core$async$alt_flag(){\nvar flag \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(true);\nreturn (new cljs.core.async.t_cljs$core$async23591(flag,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Handler}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async23610 \x3d (function (flag,cb,meta23611){\nthis.flag \x3d flag;\nthis.cb \x3d cb;\nthis.meta23611 \x3d meta23611;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async23610.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_23612,meta23611__$1){\nvar self__ \x3d this;\nvar _23612__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async23610(self__.flag,self__.cb,meta23611__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async23610.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_23612){\nvar self__ \x3d this;\nvar _23612__$1 \x3d this;\nreturn self__.meta23611;\n}));\n\n(cljs.core.async.t_cljs$core$async23610.prototype.cljs$core$async$impl$protocols$Handler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async23610.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.active_QMARK_(self__.flag);\n}));\n\n(cljs.core.async.t_cljs$core$async23610.prototype.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn true;\n}));\n\n(cljs.core.async.t_cljs$core$async23610.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.async.impl.protocols.commit(self__.flag);\n\nreturn self__.cb;\n}));\n\n(cljs.core.async.t_cljs$core$async23610.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22flag\x22,\x22flag\x22,-1565787888,null),new cljs.core.Symbol(null,\x22cb\x22,\x22cb\x22,-2064487928,null),new cljs.core.Symbol(null,\x22meta23611\x22,\x22meta23611\x22,-720860246,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async23610.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async23610.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async23610\x22);\n\n(cljs.core.async.t_cljs$core$async23610.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async23610\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async23610.\n */\ncljs.core.async.__GT_t_cljs$core$async23610 \x3d (function cljs$core$async$__GT_t_cljs$core$async23610(flag,cb,meta23611){\nreturn (new cljs.core.async.t_cljs$core$async23610(flag,cb,meta23611));\n});\n\n\ncljs.core.async.alt_handler \x3d (function cljs$core$async$alt_handler(flag,cb){\nreturn (new cljs.core.async.t_cljs$core$async23610(flag,cb,cljs.core.PersistentArrayMap.EMPTY));\n});\n/**\n * returns derefable [val port] if immediate, nil if enqueued\n */\ncljs.core.async.do_alts \x3d (function cljs$core$async$do_alts(fret,ports,opts){\nif((cljs.core.count(ports) \x3e (0))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22alts must have at least one channel operation\x22,\x22\\n\x22,\x22(pos? (count ports))\x22].join(\x27\x27)));\n}\n\nvar flag \x3d cljs.core.async.alt_flag();\nvar n \x3d cljs.core.count(ports);\nvar idxs \x3d cljs.core.async.random_array(n);\nvar priority \x3d new cljs.core.Keyword(null,\x22priority\x22,\x22priority\x22,1431093715).cljs$core$IFn$_invoke$arity$1(opts);\nvar ret \x3d (function (){var i \x3d (0);\nwhile(true){\nif((i \x3c n)){\nvar idx \x3d (cljs.core.truth_(priority)?i:(idxs[i]));\nvar port \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(ports,idx);\nvar wport \x3d ((cljs.core.vector_QMARK_(port))?(port.cljs$core$IFn$_invoke$arity$1 ? port.cljs$core$IFn$_invoke$arity$1((0)) : port.call(null, (0))):null);\nvar vbox \x3d (cljs.core.truth_(wport)?(function (){var val \x3d (port.cljs$core$IFn$_invoke$arity$1 ? port.cljs$core$IFn$_invoke$arity$1((1)) : port.call(null, (1)));\nreturn cljs.core.async.impl.protocols.put_BANG_(wport,val,cljs.core.async.alt_handler(flag,((function (i,val,idx,port,wport,flag,n,idxs,priority){\nreturn (function (p1__23642_SHARP_){\nvar G__23670 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [p1__23642_SHARP_,wport], null);\nreturn (fret.cljs$core$IFn$_invoke$arity$1 ? fret.cljs$core$IFn$_invoke$arity$1(G__23670) : fret.call(null, G__23670));\n});})(i,val,idx,port,wport,flag,n,idxs,priority))\n));\n})():cljs.core.async.impl.protocols.take_BANG_(port,cljs.core.async.alt_handler(flag,((function (i,idx,port,wport,flag,n,idxs,priority){\nreturn (function (p1__23643_SHARP_){\nvar G__23673 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [p1__23643_SHARP_,port], null);\nreturn (fret.cljs$core$IFn$_invoke$arity$1 ? fret.cljs$core$IFn$_invoke$arity$1(G__23673) : fret.call(null, G__23673));\n});})(i,idx,port,wport,flag,n,idxs,priority))\n)));\nif(cljs.core.truth_(vbox)){\nreturn cljs.core.async.impl.channels.box(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.deref(vbox),(function (){var or__5002__auto__ \x3d wport;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn port;\n}\n})()], null));\n} else {\nvar G__27002 \x3d (i + (1));\ni \x3d G__27002;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n})();\nvar or__5002__auto__ \x3d ret;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nif(cljs.core.contains_QMARK_(opts,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328))){\nvar temp__5804__auto__ \x3d (function (){var and__5000__auto__ \x3d flag.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(null, );\nif(cljs.core.truth_(and__5000__auto__)){\nreturn flag.cljs$core$async$impl$protocols$Handler$commit$arity$1(null, );\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5804__auto__)){\nvar got \x3d temp__5804__auto__;\nreturn cljs.core.async.impl.channels.box(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328).cljs$core$IFn$_invoke$arity$1(opts),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}\n});\n/**\n * Completes at most one of several channel operations. Must be called\n * inside a (go ...) block. ports is a vector of channel endpoints,\n * which can be either a channel to take from or a vector of\n * [channel-to-put-to val-to-put], in any combination. Takes will be\n * made as if by \x3c!, and puts will be made as if by \x3e!. Unless\n * the :priority option is true, if more than one port operation is\n * ready a non-deterministic choice will be made. If no operation is\n * ready and a :default value is supplied, [default-val :default] will\n * be returned, otherwise alts! will park until the first operation to\n * become ready completes. Returns [val port] of the completed\n * operation, where val is the value taken for takes, and a\n * boolean (true unless already closed, as per put!) for puts.\n * \n * opts are passed as :key val ... Supported options:\n * \n * :default val - the value to use if none of the operations are immediately ready\n * :priority true - (default nil) when true, the operations will be tried in order.\n * \n * Note: there is no guarantee that the port exps or val exprs will be\n * used, nor in what order should they be, so they should not be\n * depended upon for side effects.\n */\ncljs.core.async.alts_BANG_ \x3d (function cljs$core$async$alts_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27013 \x3d arguments.length;\nvar i__5727__auto___27014 \x3d (0);\nwhile(true){\nif((i__5727__auto___27014 \x3c len__5726__auto___27013)){\nargs__5732__auto__.push((arguments[i__5727__auto___27014]));\n\nvar G__27015 \x3d (i__5727__auto___27014 + (1));\ni__5727__auto___27014 \x3d G__27015;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.core.async.alts_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.core.async.alts_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (ports,p__23679){\nvar map__23680 \x3d p__23679;\nvar map__23680__$1 \x3d cljs.core.__destructure_map(map__23680);\nvar opts \x3d map__23680__$1;\nthrow (new Error(\x22alts! used not in (go ...) block\x22));\n}));\n\n(cljs.core.async.alts_BANG_.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.core.async.alts_BANG_.cljs$lang$applyTo \x3d (function (seq23676){\nvar G__23677 \x3d cljs.core.first(seq23676);\nvar seq23676__$1 \x3d cljs.core.next(seq23676);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__23677,seq23676__$1);\n}));\n\n/**\n * Puts a val into port if it\x27s possible to do so immediately.\n * nil values are not allowed. Never blocks. Returns true if offer succeeds.\n */\ncljs.core.async.offer_BANG_ \x3d (function cljs$core$async$offer_BANG_(port,val){\nvar ret \x3d cljs.core.async.impl.protocols.put_BANG_(port,val,cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$2(cljs.core.async.nop,false));\nif(cljs.core.truth_(ret)){\nreturn cljs.core.deref(ret);\n} else {\nreturn null;\n}\n});\n/**\n * Takes a val from port if it\x27s possible to do so immediately.\n * Never blocks. Returns value if successful, nil otherwise.\n */\ncljs.core.async.poll_BANG_ \x3d (function cljs$core$async$poll_BANG_(port){\nvar ret \x3d cljs.core.async.impl.protocols.take_BANG_(port,cljs.core.async.fn_handler.cljs$core$IFn$_invoke$arity$2(cljs.core.async.nop,false));\nif(cljs.core.truth_(ret)){\nreturn cljs.core.deref(ret);\n} else {\nreturn null;\n}\n});\n/**\n * Takes elements from the from channel and supplies them to the to\n * channel. By default, the to channel will be closed when the from\n * channel closes, but can be determined by the close? parameter. Will\n * stop consuming the from channel if the to channel closes\n */\ncljs.core.async.pipe \x3d (function cljs$core$async$pipe(var_args){\nvar G__23746 \x3d arguments.length;\nswitch (G__23746) {\ncase 2:\nreturn cljs.core.async.pipe.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.pipe.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.pipe.cljs$core$IFn$_invoke$arity$2 \x3d (function (from,to){\nreturn cljs.core.async.pipe.cljs$core$IFn$_invoke$arity$3(from,to,true);\n}));\n\n(cljs.core.async.pipe.cljs$core$IFn$_invoke$arity$3 \x3d (function (from,to,close_QMARK_){\nvar c__23318__auto___27017 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_23860){\nvar state_val_23867 \x3d (state_23860[(1)]);\nif((state_val_23867 \x3d\x3d\x3d (7))){\nvar inst_23840 \x3d (state_23860[(2)]);\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23883_27018 \x3d state_23860__$1;\n(statearr_23883_27018[(2)] \x3d inst_23840);\n\n(statearr_23883_27018[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (1))){\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23889_27019 \x3d state_23860__$1;\n(statearr_23889_27019[(2)] \x3d null);\n\n(statearr_23889_27019[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (4))){\nvar inst_23800 \x3d (state_23860[(7)]);\nvar inst_23800__$1 \x3d (state_23860[(2)]);\nvar inst_23805 \x3d (inst_23800__$1 \x3d\x3d null);\nvar state_23860__$1 \x3d (function (){var statearr_23906 \x3d state_23860;\n(statearr_23906[(7)] \x3d inst_23800__$1);\n\nreturn statearr_23906;\n})();\nif(cljs.core.truth_(inst_23805)){\nvar statearr_23912_27020 \x3d state_23860__$1;\n(statearr_23912_27020[(1)] \x3d (5));\n\n} else {\nvar statearr_23913_27021 \x3d state_23860__$1;\n(statearr_23913_27021[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (13))){\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23920_27022 \x3d state_23860__$1;\n(statearr_23920_27022[(2)] \x3d null);\n\n(statearr_23920_27022[(1)] \x3d (14));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (6))){\nvar inst_23800 \x3d (state_23860[(7)]);\nvar state_23860__$1 \x3d state_23860;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_23860__$1,(11),to,inst_23800);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (3))){\nvar inst_23846 \x3d (state_23860[(2)]);\nvar state_23860__$1 \x3d state_23860;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_23860__$1,inst_23846);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (12))){\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23922_27023 \x3d state_23860__$1;\n(statearr_23922_27023[(2)] \x3d null);\n\n(statearr_23922_27023[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (2))){\nvar state_23860__$1 \x3d state_23860;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_23860__$1,(4),from);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (11))){\nvar inst_23825 \x3d (state_23860[(2)]);\nvar state_23860__$1 \x3d state_23860;\nif(cljs.core.truth_(inst_23825)){\nvar statearr_23926_27024 \x3d state_23860__$1;\n(statearr_23926_27024[(1)] \x3d (12));\n\n} else {\nvar statearr_23927_27025 \x3d state_23860__$1;\n(statearr_23927_27025[(1)] \x3d (13));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (9))){\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23931_27026 \x3d state_23860__$1;\n(statearr_23931_27026[(2)] \x3d null);\n\n(statearr_23931_27026[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (5))){\nvar state_23860__$1 \x3d state_23860;\nif(cljs.core.truth_(close_QMARK_)){\nvar statearr_23936_27027 \x3d state_23860__$1;\n(statearr_23936_27027[(1)] \x3d (8));\n\n} else {\nvar statearr_23937_27028 \x3d state_23860__$1;\n(statearr_23937_27028[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (14))){\nvar inst_23837 \x3d (state_23860[(2)]);\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23938_27029 \x3d state_23860__$1;\n(statearr_23938_27029[(2)] \x3d inst_23837);\n\n(statearr_23938_27029[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (10))){\nvar inst_23818 \x3d (state_23860[(2)]);\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23939_27030 \x3d state_23860__$1;\n(statearr_23939_27030[(2)] \x3d inst_23818);\n\n(statearr_23939_27030[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_23867 \x3d\x3d\x3d (8))){\nvar inst_23811 \x3d cljs.core.async.close_BANG_(to);\nvar state_23860__$1 \x3d state_23860;\nvar statearr_23942_27031 \x3d state_23860__$1;\n(statearr_23942_27031[(2)] \x3d inst_23811);\n\n(statearr_23942_27031[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_23948 \x3d [null,null,null,null,null,null,null,null];\n(statearr_23948[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_23948[(1)] \x3d (1));\n\nreturn statearr_23948;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_23860){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_23860);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e23949){var ex__21872__auto__ \x3d e23949;\nvar statearr_23950_27032 \x3d state_23860;\n(statearr_23950_27032[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_23860[(4)]))){\nvar statearr_23951_27033 \x3d state_23860;\n(statearr_23951_27033[(1)] \x3d cljs.core.first((state_23860[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27034 \x3d state_23860;\nstate_23860 \x3d G__27034;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_23860){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_23860);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_23958 \x3d f__23319__auto__();\n(statearr_23958[(6)] \x3d c__23318__auto___27017);\n\nreturn statearr_23958;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn to;\n}));\n\n(cljs.core.async.pipe.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.async.pipeline_STAR_ \x3d (function cljs$core$async$pipeline_STAR_(n,to,xf,from,close_QMARK_,ex_handler,type){\nif((n \x3e (0))){\n} else {\nthrow (new Error(\x22Assert failed: (pos? n)\x22));\n}\n\nvar jobs \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(n);\nvar results \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(n);\nvar process__$1 \x3d (function (p__23995){\nvar vec__23996 \x3d p__23995;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23996,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23996,(1),null);\nvar job \x3d vec__23996;\nif((job \x3d\x3d null)){\ncljs.core.async.close_BANG_(results);\n\nreturn null;\n} else {\nvar res \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$3((1),xf,ex_handler);\nvar c__23318__auto___27035 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24022){\nvar state_val_24023 \x3d (state_24022[(1)]);\nif((state_val_24023 \x3d\x3d\x3d (1))){\nvar state_24022__$1 \x3d state_24022;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_24022__$1,(2),res,v);\n} else {\nif((state_val_24023 \x3d\x3d\x3d (2))){\nvar inst_24015 \x3d (state_24022[(2)]);\nvar inst_24020 \x3d cljs.core.async.close_BANG_(res);\nvar state_24022__$1 \x3d (function (){var statearr_24031 \x3d state_24022;\n(statearr_24031[(7)] \x3d inst_24015);\n\nreturn statearr_24031;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24022__$1,inst_24020);\n} else {\nreturn null;\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24034 \x3d [null,null,null,null,null,null,null,null];\n(statearr_24034[(0)] \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__);\n\n(statearr_24034[(1)] \x3d (1));\n\nreturn statearr_24034;\n});\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1 \x3d (function (state_24022){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24022);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24037){var ex__21872__auto__ \x3d e24037;\nvar statearr_24038_27036 \x3d state_24022;\n(statearr_24038_27036[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24022[(4)]))){\nvar statearr_24039_27037 \x3d state_24022;\n(statearr_24039_27037[(1)] \x3d cljs.core.first((state_24022[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27038 \x3d state_24022;\nstate_24022 \x3d G__27038;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d function(state_24022){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1.call(this,state_24022);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0;\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1;\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24042 \x3d f__23319__auto__();\n(statearr_24042[(6)] \x3d c__23318__auto___27035);\n\nreturn statearr_24042;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\ncljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(p,res);\n\nreturn true;\n}\n});\nvar async \x3d (function (p__24059){\nvar vec__24063 \x3d p__24059;\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24063,(0),null);\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24063,(1),null);\nvar job \x3d vec__24063;\nif((job \x3d\x3d null)){\ncljs.core.async.close_BANG_(results);\n\nreturn null;\n} else {\nvar res \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\n(xf.cljs$core$IFn$_invoke$arity$2 ? xf.cljs$core$IFn$_invoke$arity$2(v,res) : xf.call(null, v,res));\n\ncljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(p,res);\n\nreturn true;\n}\n});\nvar n__5593__auto___27039 \x3d n;\nvar __27040 \x3d (0);\nwhile(true){\nif((__27040 \x3c n__5593__auto___27039)){\nvar G__24079_27041 \x3d type;\nvar G__24079_27042__$1 \x3d (((G__24079_27041 instanceof cljs.core.Keyword))?G__24079_27041.fqn:null);\nswitch (G__24079_27042__$1) {\ncase \x22compute\x22:\nvar c__23318__auto___27044 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run(((function (__27040,c__23318__auto___27044,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async){\nreturn (function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d ((function (__27040,c__23318__auto___27044,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async){\nreturn (function (state_24114){\nvar state_val_24115 \x3d (state_24114[(1)]);\nif((state_val_24115 \x3d\x3d\x3d (1))){\nvar state_24114__$1 \x3d state_24114;\nvar statearr_24147_27048 \x3d state_24114__$1;\n(statearr_24147_27048[(2)] \x3d null);\n\n(statearr_24147_27048[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24115 \x3d\x3d\x3d (2))){\nvar state_24114__$1 \x3d state_24114;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24114__$1,(4),jobs);\n} else {\nif((state_val_24115 \x3d\x3d\x3d (3))){\nvar inst_24111 \x3d (state_24114[(2)]);\nvar state_24114__$1 \x3d state_24114;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24114__$1,inst_24111);\n} else {\nif((state_val_24115 \x3d\x3d\x3d (4))){\nvar inst_24094 \x3d (state_24114[(2)]);\nvar inst_24099 \x3d process__$1(inst_24094);\nvar state_24114__$1 \x3d state_24114;\nif(cljs.core.truth_(inst_24099)){\nvar statearr_24176_27049 \x3d state_24114__$1;\n(statearr_24176_27049[(1)] \x3d (5));\n\n} else {\nvar statearr_24182_27050 \x3d state_24114__$1;\n(statearr_24182_27050[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24115 \x3d\x3d\x3d (5))){\nvar state_24114__$1 \x3d state_24114;\nvar statearr_24195_27054 \x3d state_24114__$1;\n(statearr_24195_27054[(2)] \x3d null);\n\n(statearr_24195_27054[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24115 \x3d\x3d\x3d (6))){\nvar state_24114__$1 \x3d state_24114;\nvar statearr_24201_27055 \x3d state_24114__$1;\n(statearr_24201_27055[(2)] \x3d null);\n\n(statearr_24201_27055[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24115 \x3d\x3d\x3d (7))){\nvar inst_24108 \x3d (state_24114[(2)]);\nvar state_24114__$1 \x3d state_24114;\nvar statearr_24202_27056 \x3d state_24114__$1;\n(statearr_24202_27056[(2)] \x3d inst_24108);\n\n(statearr_24202_27056[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n});})(__27040,c__23318__auto___27044,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async))\n;\nreturn ((function (__27040,switch__21868__auto__,c__23318__auto___27044,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async){\nreturn (function() {\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24207 \x3d [null,null,null,null,null,null,null];\n(statearr_24207[(0)] \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__);\n\n(statearr_24207[(1)] \x3d (1));\n\nreturn statearr_24207;\n});\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1 \x3d (function (state_24114){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24114);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24209){var ex__21872__auto__ \x3d e24209;\nvar statearr_24210_27057 \x3d state_24114;\n(statearr_24210_27057[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24114[(4)]))){\nvar statearr_24211_27058 \x3d state_24114;\n(statearr_24211_27058[(1)] \x3d cljs.core.first((state_24114[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27059 \x3d state_24114;\nstate_24114 \x3d G__27059;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d function(state_24114){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1.call(this,state_24114);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0;\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1;\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__;\n})()\n;})(__27040,switch__21868__auto__,c__23318__auto___27044,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async))\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24215 \x3d f__23319__auto__();\n(statearr_24215[(6)] \x3d c__23318__auto___27044);\n\nreturn statearr_24215;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n});})(__27040,c__23318__auto___27044,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async))\n);\n\n\nbreak;\ncase \x22async\x22:\nvar c__23318__auto___27060 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run(((function (__27040,c__23318__auto___27060,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async){\nreturn (function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d ((function (__27040,c__23318__auto___27060,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async){\nreturn (function (state_24228){\nvar state_val_24229 \x3d (state_24228[(1)]);\nif((state_val_24229 \x3d\x3d\x3d (1))){\nvar state_24228__$1 \x3d state_24228;\nvar statearr_24232_27061 \x3d state_24228__$1;\n(statearr_24232_27061[(2)] \x3d null);\n\n(statearr_24232_27061[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24229 \x3d\x3d\x3d (2))){\nvar state_24228__$1 \x3d state_24228;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24228__$1,(4),jobs);\n} else {\nif((state_val_24229 \x3d\x3d\x3d (3))){\nvar inst_24226 \x3d (state_24228[(2)]);\nvar state_24228__$1 \x3d state_24228;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24228__$1,inst_24226);\n} else {\nif((state_val_24229 \x3d\x3d\x3d (4))){\nvar inst_24218 \x3d (state_24228[(2)]);\nvar inst_24219 \x3d async(inst_24218);\nvar state_24228__$1 \x3d state_24228;\nif(cljs.core.truth_(inst_24219)){\nvar statearr_24239_27062 \x3d state_24228__$1;\n(statearr_24239_27062[(1)] \x3d (5));\n\n} else {\nvar statearr_24240_27063 \x3d state_24228__$1;\n(statearr_24240_27063[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24229 \x3d\x3d\x3d (5))){\nvar state_24228__$1 \x3d state_24228;\nvar statearr_24241_27064 \x3d state_24228__$1;\n(statearr_24241_27064[(2)] \x3d null);\n\n(statearr_24241_27064[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24229 \x3d\x3d\x3d (6))){\nvar state_24228__$1 \x3d state_24228;\nvar statearr_24242_27065 \x3d state_24228__$1;\n(statearr_24242_27065[(2)] \x3d null);\n\n(statearr_24242_27065[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24229 \x3d\x3d\x3d (7))){\nvar inst_24224 \x3d (state_24228[(2)]);\nvar state_24228__$1 \x3d state_24228;\nvar statearr_24243_27066 \x3d state_24228__$1;\n(statearr_24243_27066[(2)] \x3d inst_24224);\n\n(statearr_24243_27066[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n});})(__27040,c__23318__auto___27060,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async))\n;\nreturn ((function (__27040,switch__21868__auto__,c__23318__auto___27060,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async){\nreturn (function() {\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24250 \x3d [null,null,null,null,null,null,null];\n(statearr_24250[(0)] \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__);\n\n(statearr_24250[(1)] \x3d (1));\n\nreturn statearr_24250;\n});\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1 \x3d (function (state_24228){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24228);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24256){var ex__21872__auto__ \x3d e24256;\nvar statearr_24257_27071 \x3d state_24228;\n(statearr_24257_27071[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24228[(4)]))){\nvar statearr_24258_27072 \x3d state_24228;\n(statearr_24258_27072[(1)] \x3d cljs.core.first((state_24228[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27073 \x3d state_24228;\nstate_24228 \x3d G__27073;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d function(state_24228){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1.call(this,state_24228);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0;\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1;\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__;\n})()\n;})(__27040,switch__21868__auto__,c__23318__auto___27060,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async))\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24259 \x3d f__23319__auto__();\n(statearr_24259[(6)] \x3d c__23318__auto___27060);\n\nreturn statearr_24259;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n});})(__27040,c__23318__auto___27060,G__24079_27041,G__24079_27042__$1,n__5593__auto___27039,jobs,results,process__$1,async))\n);\n\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__24079_27042__$1)].join(\x27\x27)));\n\n}\n\nvar G__27074 \x3d (__27040 + (1));\n__27040 \x3d G__27074;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar c__23318__auto___27075 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24281){\nvar state_val_24282 \x3d (state_24281[(1)]);\nif((state_val_24282 \x3d\x3d\x3d (7))){\nvar inst_24277 \x3d (state_24281[(2)]);\nvar state_24281__$1 \x3d state_24281;\nvar statearr_24289_27076 \x3d state_24281__$1;\n(statearr_24289_27076[(2)] \x3d inst_24277);\n\n(statearr_24289_27076[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (1))){\nvar state_24281__$1 \x3d state_24281;\nvar statearr_24290_27077 \x3d state_24281__$1;\n(statearr_24290_27077[(2)] \x3d null);\n\n(statearr_24290_27077[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (4))){\nvar inst_24262 \x3d (state_24281[(7)]);\nvar inst_24262__$1 \x3d (state_24281[(2)]);\nvar inst_24263 \x3d (inst_24262__$1 \x3d\x3d null);\nvar state_24281__$1 \x3d (function (){var statearr_24291 \x3d state_24281;\n(statearr_24291[(7)] \x3d inst_24262__$1);\n\nreturn statearr_24291;\n})();\nif(cljs.core.truth_(inst_24263)){\nvar statearr_24292_27078 \x3d state_24281__$1;\n(statearr_24292_27078[(1)] \x3d (5));\n\n} else {\nvar statearr_24293_27079 \x3d state_24281__$1;\n(statearr_24293_27079[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (6))){\nvar inst_24262 \x3d (state_24281[(7)]);\nvar inst_24267 \x3d (state_24281[(8)]);\nvar inst_24267__$1 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\nvar inst_24268 \x3d cljs.core.PersistentVector.EMPTY_NODE;\nvar inst_24269 \x3d [inst_24262,inst_24267__$1];\nvar inst_24270 \x3d (new cljs.core.PersistentVector(null,2,(5),inst_24268,inst_24269,null));\nvar state_24281__$1 \x3d (function (){var statearr_24294 \x3d state_24281;\n(statearr_24294[(8)] \x3d inst_24267__$1);\n\nreturn statearr_24294;\n})();\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_24281__$1,(8),jobs,inst_24270);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (3))){\nvar inst_24279 \x3d (state_24281[(2)]);\nvar state_24281__$1 \x3d state_24281;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24281__$1,inst_24279);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (2))){\nvar state_24281__$1 \x3d state_24281;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24281__$1,(4),from);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (9))){\nvar inst_24274 \x3d (state_24281[(2)]);\nvar state_24281__$1 \x3d (function (){var statearr_24303 \x3d state_24281;\n(statearr_24303[(9)] \x3d inst_24274);\n\nreturn statearr_24303;\n})();\nvar statearr_24305_27080 \x3d state_24281__$1;\n(statearr_24305_27080[(2)] \x3d null);\n\n(statearr_24305_27080[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (5))){\nvar inst_24265 \x3d cljs.core.async.close_BANG_(jobs);\nvar state_24281__$1 \x3d state_24281;\nvar statearr_24306_27081 \x3d state_24281__$1;\n(statearr_24306_27081[(2)] \x3d inst_24265);\n\n(statearr_24306_27081[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24282 \x3d\x3d\x3d (8))){\nvar inst_24267 \x3d (state_24281[(8)]);\nvar inst_24272 \x3d (state_24281[(2)]);\nvar state_24281__$1 \x3d (function (){var statearr_24308 \x3d state_24281;\n(statearr_24308[(10)] \x3d inst_24272);\n\nreturn statearr_24308;\n})();\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_24281__$1,(9),results,inst_24267);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24310 \x3d [null,null,null,null,null,null,null,null,null,null,null];\n(statearr_24310[(0)] \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__);\n\n(statearr_24310[(1)] \x3d (1));\n\nreturn statearr_24310;\n});\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1 \x3d (function (state_24281){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24281);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24311){var ex__21872__auto__ \x3d e24311;\nvar statearr_24312_27086 \x3d state_24281;\n(statearr_24312_27086[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24281[(4)]))){\nvar statearr_24313_27087 \x3d state_24281;\n(statearr_24313_27087[(1)] \x3d cljs.core.first((state_24281[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27088 \x3d state_24281;\nstate_24281 \x3d G__27088;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d function(state_24281){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1.call(this,state_24281);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0;\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1;\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24316 \x3d f__23319__auto__();\n(statearr_24316[(6)] \x3d c__23318__auto___27075);\n\nreturn statearr_24316;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24361){\nvar state_val_24362 \x3d (state_24361[(1)]);\nif((state_val_24362 \x3d\x3d\x3d (7))){\nvar inst_24357 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24363_27089 \x3d state_24361__$1;\n(statearr_24363_27089[(2)] \x3d inst_24357);\n\n(statearr_24363_27089[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (20))){\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24364_27090 \x3d state_24361__$1;\n(statearr_24364_27090[(2)] \x3d null);\n\n(statearr_24364_27090[(1)] \x3d (21));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (1))){\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24365_27091 \x3d state_24361__$1;\n(statearr_24365_27091[(2)] \x3d null);\n\n(statearr_24365_27091[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (4))){\nvar inst_24320 \x3d (state_24361[(7)]);\nvar inst_24320__$1 \x3d (state_24361[(2)]);\nvar inst_24321 \x3d (inst_24320__$1 \x3d\x3d null);\nvar state_24361__$1 \x3d (function (){var statearr_24366 \x3d state_24361;\n(statearr_24366[(7)] \x3d inst_24320__$1);\n\nreturn statearr_24366;\n})();\nif(cljs.core.truth_(inst_24321)){\nvar statearr_24367_27093 \x3d state_24361__$1;\n(statearr_24367_27093[(1)] \x3d (5));\n\n} else {\nvar statearr_24369_27094 \x3d state_24361__$1;\n(statearr_24369_27094[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (15))){\nvar inst_24336 \x3d (state_24361[(8)]);\nvar state_24361__$1 \x3d state_24361;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_24361__$1,(18),to,inst_24336);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (21))){\nvar inst_24352 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24370_27096 \x3d state_24361__$1;\n(statearr_24370_27096[(2)] \x3d inst_24352);\n\n(statearr_24370_27096[(1)] \x3d (13));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (13))){\nvar inst_24354 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d (function (){var statearr_24371 \x3d state_24361;\n(statearr_24371[(9)] \x3d inst_24354);\n\nreturn statearr_24371;\n})();\nvar statearr_24372_27097 \x3d state_24361__$1;\n(statearr_24372_27097[(2)] \x3d null);\n\n(statearr_24372_27097[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (6))){\nvar inst_24320 \x3d (state_24361[(7)]);\nvar state_24361__$1 \x3d state_24361;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24361__$1,(11),inst_24320);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (17))){\nvar inst_24347 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d state_24361;\nif(cljs.core.truth_(inst_24347)){\nvar statearr_24375_27098 \x3d state_24361__$1;\n(statearr_24375_27098[(1)] \x3d (19));\n\n} else {\nvar statearr_24380_27099 \x3d state_24361__$1;\n(statearr_24380_27099[(1)] \x3d (20));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (3))){\nvar inst_24359 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d state_24361;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24361__$1,inst_24359);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (12))){\nvar inst_24333 \x3d (state_24361[(10)]);\nvar state_24361__$1 \x3d state_24361;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24361__$1,(14),inst_24333);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (2))){\nvar state_24361__$1 \x3d state_24361;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24361__$1,(4),results);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (19))){\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24382_27101 \x3d state_24361__$1;\n(statearr_24382_27101[(2)] \x3d null);\n\n(statearr_24382_27101[(1)] \x3d (12));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (11))){\nvar inst_24333 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d (function (){var statearr_24383 \x3d state_24361;\n(statearr_24383[(10)] \x3d inst_24333);\n\nreturn statearr_24383;\n})();\nvar statearr_24384_27105 \x3d state_24361__$1;\n(statearr_24384_27105[(2)] \x3d null);\n\n(statearr_24384_27105[(1)] \x3d (12));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (9))){\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24389_27106 \x3d state_24361__$1;\n(statearr_24389_27106[(2)] \x3d null);\n\n(statearr_24389_27106[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (5))){\nvar state_24361__$1 \x3d state_24361;\nif(cljs.core.truth_(close_QMARK_)){\nvar statearr_24391_27107 \x3d state_24361__$1;\n(statearr_24391_27107[(1)] \x3d (8));\n\n} else {\nvar statearr_24392_27108 \x3d state_24361__$1;\n(statearr_24392_27108[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (14))){\nvar inst_24336 \x3d (state_24361[(8)]);\nvar inst_24338 \x3d (state_24361[(11)]);\nvar inst_24336__$1 \x3d (state_24361[(2)]);\nvar inst_24337 \x3d (inst_24336__$1 \x3d\x3d null);\nvar inst_24338__$1 \x3d cljs.core.not(inst_24337);\nvar state_24361__$1 \x3d (function (){var statearr_24394 \x3d state_24361;\n(statearr_24394[(8)] \x3d inst_24336__$1);\n\n(statearr_24394[(11)] \x3d inst_24338__$1);\n\nreturn statearr_24394;\n})();\nif(inst_24338__$1){\nvar statearr_24395_27109 \x3d state_24361__$1;\n(statearr_24395_27109[(1)] \x3d (15));\n\n} else {\nvar statearr_24396_27110 \x3d state_24361__$1;\n(statearr_24396_27110[(1)] \x3d (16));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (16))){\nvar inst_24338 \x3d (state_24361[(11)]);\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24397_27111 \x3d state_24361__$1;\n(statearr_24397_27111[(2)] \x3d inst_24338);\n\n(statearr_24397_27111[(1)] \x3d (17));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (10))){\nvar inst_24330 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24400_27112 \x3d state_24361__$1;\n(statearr_24400_27112[(2)] \x3d inst_24330);\n\n(statearr_24400_27112[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (18))){\nvar inst_24341 \x3d (state_24361[(2)]);\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24403_27113 \x3d state_24361__$1;\n(statearr_24403_27113[(2)] \x3d inst_24341);\n\n(statearr_24403_27113[(1)] \x3d (17));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24362 \x3d\x3d\x3d (8))){\nvar inst_24324 \x3d cljs.core.async.close_BANG_(to);\nvar state_24361__$1 \x3d state_24361;\nvar statearr_24404_27114 \x3d state_24361__$1;\n(statearr_24404_27114[(2)] \x3d inst_24324);\n\n(statearr_24404_27114[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24407 \x3d [null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_24407[(0)] \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__);\n\n(statearr_24407[(1)] \x3d (1));\n\nreturn statearr_24407;\n});\nvar cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1 \x3d (function (state_24361){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24361);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24410){var ex__21872__auto__ \x3d e24410;\nvar statearr_24411_27115 \x3d state_24361;\n(statearr_24411_27115[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24361[(4)]))){\nvar statearr_24412_27116 \x3d state_24361;\n(statearr_24412_27116[(1)] \x3d cljs.core.first((state_24361[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27117 \x3d state_24361;\nstate_24361 \x3d G__27117;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__ \x3d function(state_24361){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1.call(this,state_24361);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____0;\ncljs$core$async$pipeline_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$pipeline_STAR__$_state_machine__21869__auto____1;\nreturn cljs$core$async$pipeline_STAR__$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24416 \x3d f__23319__auto__();\n(statearr_24416[(6)] \x3d c__23318__auto__);\n\nreturn statearr_24416;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n});\n/**\n * Takes elements from the from channel and supplies them to the to\n * channel, subject to the async function af, with parallelism n. af\n * must be a function of two arguments, the first an input value and\n * the second a channel on which to place the result(s). The\n * presumption is that af will return immediately, having launched some\n * asynchronous operation whose completion/callback will put results on\n * the channel, then close! it. Outputs will be returned in order\n * relative to the inputs. By default, the to channel will be closed\n * when the from channel closes, but can be determined by the close?\n * parameter. Will stop consuming the from channel if the to channel\n * closes. See also pipeline, pipeline-blocking.\n */\ncljs.core.async.pipeline_async \x3d (function cljs$core$async$pipeline_async(var_args){\nvar G__24445 \x3d arguments.length;\nswitch (G__24445) {\ncase 4:\nreturn cljs.core.async.pipeline_async.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.async.pipeline_async.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.pipeline_async.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,to,af,from){\nreturn cljs.core.async.pipeline_async.cljs$core$IFn$_invoke$arity$5(n,to,af,from,true);\n}));\n\n(cljs.core.async.pipeline_async.cljs$core$IFn$_invoke$arity$5 \x3d (function (n,to,af,from,close_QMARK_){\nreturn cljs.core.async.pipeline_STAR_(n,to,af,from,close_QMARK_,null,new cljs.core.Keyword(null,\x22async\x22,\x22async\x22,1050769601));\n}));\n\n(cljs.core.async.pipeline_async.cljs$lang$maxFixedArity \x3d 5);\n\n/**\n * Takes elements from the from channel and supplies them to the to\n * channel, subject to the transducer xf, with parallelism n. Because\n * it is parallel, the transducer will be applied independently to each\n * element, not across elements, and may produce zero or more outputs\n * per input. Outputs will be returned in order relative to the\n * inputs. By default, the to channel will be closed when the from\n * channel closes, but can be determined by the close? parameter. Will\n * stop consuming the from channel if the to channel closes.\n * \n * Note this is supplied for API compatibility with the Clojure version.\n * Values of N \x3e 1 will not result in actual concurrency in a\n * single-threaded runtime.\n */\ncljs.core.async.pipeline \x3d (function cljs$core$async$pipeline(var_args){\nvar G__24455 \x3d arguments.length;\nswitch (G__24455) {\ncase 4:\nreturn cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$4 \x3d (function (n,to,xf,from){\nreturn cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$5(n,to,xf,from,true);\n}));\n\n(cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$5 \x3d (function (n,to,xf,from,close_QMARK_){\nreturn cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$6(n,to,xf,from,close_QMARK_,null);\n}));\n\n(cljs.core.async.pipeline.cljs$core$IFn$_invoke$arity$6 \x3d (function (n,to,xf,from,close_QMARK_,ex_handler){\nreturn cljs.core.async.pipeline_STAR_(n,to,xf,from,close_QMARK_,ex_handler,new cljs.core.Keyword(null,\x22compute\x22,\x22compute\x22,1555393130));\n}));\n\n(cljs.core.async.pipeline.cljs$lang$maxFixedArity \x3d 6);\n\n/**\n * Takes a predicate and a source channel and returns a vector of two\n * channels, the first of which will contain the values for which the\n * predicate returned true, the second those for which it returned\n * false.\n * \n * The out channels will be unbuffered by default, or two buf-or-ns can\n * be supplied. The channels will close after the source channel has\n * closed.\n */\ncljs.core.async.split \x3d (function cljs$core$async$split(var_args){\nvar G__24465 \x3d arguments.length;\nswitch (G__24465) {\ncase 2:\nreturn cljs.core.async.split.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 4:\nreturn cljs.core.async.split.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.split.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,ch){\nreturn cljs.core.async.split.cljs$core$IFn$_invoke$arity$4(p,ch,null,null);\n}));\n\n(cljs.core.async.split.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,ch,t_buf_or_n,f_buf_or_n){\nvar tc \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(t_buf_or_n);\nvar fc \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(f_buf_or_n);\nvar c__23318__auto___27121 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24498){\nvar state_val_24499 \x3d (state_24498[(1)]);\nif((state_val_24499 \x3d\x3d\x3d (7))){\nvar inst_24492 \x3d (state_24498[(2)]);\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24504_27122 \x3d state_24498__$1;\n(statearr_24504_27122[(2)] \x3d inst_24492);\n\n(statearr_24504_27122[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (1))){\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24508_27124 \x3d state_24498__$1;\n(statearr_24508_27124[(2)] \x3d null);\n\n(statearr_24508_27124[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (4))){\nvar inst_24473 \x3d (state_24498[(7)]);\nvar inst_24473__$1 \x3d (state_24498[(2)]);\nvar inst_24474 \x3d (inst_24473__$1 \x3d\x3d null);\nvar state_24498__$1 \x3d (function (){var statearr_24512 \x3d state_24498;\n(statearr_24512[(7)] \x3d inst_24473__$1);\n\nreturn statearr_24512;\n})();\nif(cljs.core.truth_(inst_24474)){\nvar statearr_24513_27126 \x3d state_24498__$1;\n(statearr_24513_27126[(1)] \x3d (5));\n\n} else {\nvar statearr_24514_27127 \x3d state_24498__$1;\n(statearr_24514_27127[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (13))){\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24517_27129 \x3d state_24498__$1;\n(statearr_24517_27129[(2)] \x3d null);\n\n(statearr_24517_27129[(1)] \x3d (14));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (6))){\nvar inst_24473 \x3d (state_24498[(7)]);\nvar inst_24479 \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(inst_24473) : p.call(null, inst_24473));\nvar state_24498__$1 \x3d state_24498;\nif(cljs.core.truth_(inst_24479)){\nvar statearr_24518_27130 \x3d state_24498__$1;\n(statearr_24518_27130[(1)] \x3d (9));\n\n} else {\nvar statearr_24519_27133 \x3d state_24498__$1;\n(statearr_24519_27133[(1)] \x3d (10));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (3))){\nvar inst_24494 \x3d (state_24498[(2)]);\nvar state_24498__$1 \x3d state_24498;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24498__$1,inst_24494);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (12))){\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24521_27135 \x3d state_24498__$1;\n(statearr_24521_27135[(2)] \x3d null);\n\n(statearr_24521_27135[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (2))){\nvar state_24498__$1 \x3d state_24498;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24498__$1,(4),ch);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (11))){\nvar inst_24473 \x3d (state_24498[(7)]);\nvar inst_24483 \x3d (state_24498[(2)]);\nvar state_24498__$1 \x3d state_24498;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_24498__$1,(8),inst_24483,inst_24473);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (9))){\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24522_27136 \x3d state_24498__$1;\n(statearr_24522_27136[(2)] \x3d tc);\n\n(statearr_24522_27136[(1)] \x3d (11));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (5))){\nvar inst_24476 \x3d cljs.core.async.close_BANG_(tc);\nvar inst_24477 \x3d cljs.core.async.close_BANG_(fc);\nvar state_24498__$1 \x3d (function (){var statearr_24523 \x3d state_24498;\n(statearr_24523[(8)] \x3d inst_24476);\n\nreturn statearr_24523;\n})();\nvar statearr_24525_27138 \x3d state_24498__$1;\n(statearr_24525_27138[(2)] \x3d inst_24477);\n\n(statearr_24525_27138[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (14))){\nvar inst_24490 \x3d (state_24498[(2)]);\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24526_27139 \x3d state_24498__$1;\n(statearr_24526_27139[(2)] \x3d inst_24490);\n\n(statearr_24526_27139[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (10))){\nvar state_24498__$1 \x3d state_24498;\nvar statearr_24527_27140 \x3d state_24498__$1;\n(statearr_24527_27140[(2)] \x3d fc);\n\n(statearr_24527_27140[(1)] \x3d (11));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24499 \x3d\x3d\x3d (8))){\nvar inst_24485 \x3d (state_24498[(2)]);\nvar state_24498__$1 \x3d state_24498;\nif(cljs.core.truth_(inst_24485)){\nvar statearr_24530_27141 \x3d state_24498__$1;\n(statearr_24530_27141[(1)] \x3d (12));\n\n} else {\nvar statearr_24531_27142 \x3d state_24498__$1;\n(statearr_24531_27142[(1)] \x3d (13));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24534 \x3d [null,null,null,null,null,null,null,null,null];\n(statearr_24534[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_24534[(1)] \x3d (1));\n\nreturn statearr_24534;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_24498){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24498);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24535){var ex__21872__auto__ \x3d e24535;\nvar statearr_24536_27144 \x3d state_24498;\n(statearr_24536_27144[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24498[(4)]))){\nvar statearr_24540_27145 \x3d state_24498;\n(statearr_24540_27145[(1)] \x3d cljs.core.first((state_24498[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27146 \x3d state_24498;\nstate_24498 \x3d G__27146;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_24498){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_24498);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24542 \x3d f__23319__auto__();\n(statearr_24542[(6)] \x3d c__23318__auto___27121);\n\nreturn statearr_24542;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tc,fc], null);\n}));\n\n(cljs.core.async.split.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * f should be a function of 2 arguments. Returns a channel containing\n * the single result of applying f to init and the first item from the\n * channel, then applying f to that result and the 2nd item, etc. If\n * the channel closes without yielding items, returns init and f is not\n * called. ch must close before reduce produces a result.\n */\ncljs.core.async.reduce \x3d (function cljs$core$async$reduce(f,init,ch){\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24570){\nvar state_val_24571 \x3d (state_24570[(1)]);\nif((state_val_24571 \x3d\x3d\x3d (7))){\nvar inst_24566 \x3d (state_24570[(2)]);\nvar state_24570__$1 \x3d state_24570;\nvar statearr_24575_27147 \x3d state_24570__$1;\n(statearr_24575_27147[(2)] \x3d inst_24566);\n\n(statearr_24575_27147[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (1))){\nvar inst_24549 \x3d init;\nvar inst_24550 \x3d inst_24549;\nvar state_24570__$1 \x3d (function (){var statearr_24576 \x3d state_24570;\n(statearr_24576[(7)] \x3d inst_24550);\n\nreturn statearr_24576;\n})();\nvar statearr_24577_27148 \x3d state_24570__$1;\n(statearr_24577_27148[(2)] \x3d null);\n\n(statearr_24577_27148[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (4))){\nvar inst_24553 \x3d (state_24570[(8)]);\nvar inst_24553__$1 \x3d (state_24570[(2)]);\nvar inst_24554 \x3d (inst_24553__$1 \x3d\x3d null);\nvar state_24570__$1 \x3d (function (){var statearr_24578 \x3d state_24570;\n(statearr_24578[(8)] \x3d inst_24553__$1);\n\nreturn statearr_24578;\n})();\nif(cljs.core.truth_(inst_24554)){\nvar statearr_24581_27149 \x3d state_24570__$1;\n(statearr_24581_27149[(1)] \x3d (5));\n\n} else {\nvar statearr_24584_27150 \x3d state_24570__$1;\n(statearr_24584_27150[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (6))){\nvar inst_24557 \x3d (state_24570[(9)]);\nvar inst_24553 \x3d (state_24570[(8)]);\nvar inst_24550 \x3d (state_24570[(7)]);\nvar inst_24557__$1 \x3d (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(inst_24550,inst_24553) : f.call(null, inst_24550,inst_24553));\nvar inst_24558 \x3d cljs.core.reduced_QMARK_(inst_24557__$1);\nvar state_24570__$1 \x3d (function (){var statearr_24585 \x3d state_24570;\n(statearr_24585[(9)] \x3d inst_24557__$1);\n\nreturn statearr_24585;\n})();\nif(inst_24558){\nvar statearr_24587_27151 \x3d state_24570__$1;\n(statearr_24587_27151[(1)] \x3d (8));\n\n} else {\nvar statearr_24588_27152 \x3d state_24570__$1;\n(statearr_24588_27152[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (3))){\nvar inst_24568 \x3d (state_24570[(2)]);\nvar state_24570__$1 \x3d state_24570;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24570__$1,inst_24568);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (2))){\nvar state_24570__$1 \x3d state_24570;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24570__$1,(4),ch);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (9))){\nvar inst_24557 \x3d (state_24570[(9)]);\nvar inst_24550 \x3d inst_24557;\nvar state_24570__$1 \x3d (function (){var statearr_24589 \x3d state_24570;\n(statearr_24589[(7)] \x3d inst_24550);\n\nreturn statearr_24589;\n})();\nvar statearr_24590_27157 \x3d state_24570__$1;\n(statearr_24590_27157[(2)] \x3d null);\n\n(statearr_24590_27157[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (5))){\nvar inst_24550 \x3d (state_24570[(7)]);\nvar state_24570__$1 \x3d state_24570;\nvar statearr_24591_27158 \x3d state_24570__$1;\n(statearr_24591_27158[(2)] \x3d inst_24550);\n\n(statearr_24591_27158[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (10))){\nvar inst_24564 \x3d (state_24570[(2)]);\nvar state_24570__$1 \x3d state_24570;\nvar statearr_24601_27159 \x3d state_24570__$1;\n(statearr_24601_27159[(2)] \x3d inst_24564);\n\n(statearr_24601_27159[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24571 \x3d\x3d\x3d (8))){\nvar inst_24557 \x3d (state_24570[(9)]);\nvar inst_24560 \x3d cljs.core.deref(inst_24557);\nvar state_24570__$1 \x3d state_24570;\nvar statearr_24609_27161 \x3d state_24570__$1;\n(statearr_24609_27161[(2)] \x3d inst_24560);\n\n(statearr_24609_27161[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$reduce_$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$reduce_$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24610 \x3d [null,null,null,null,null,null,null,null,null,null];\n(statearr_24610[(0)] \x3d cljs$core$async$reduce_$_state_machine__21869__auto__);\n\n(statearr_24610[(1)] \x3d (1));\n\nreturn statearr_24610;\n});\nvar cljs$core$async$reduce_$_state_machine__21869__auto____1 \x3d (function (state_24570){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24570);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24617){var ex__21872__auto__ \x3d e24617;\nvar statearr_24618_27162 \x3d state_24570;\n(statearr_24618_27162[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24570[(4)]))){\nvar statearr_24620_27163 \x3d state_24570;\n(statearr_24620_27163[(1)] \x3d cljs.core.first((state_24570[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27164 \x3d state_24570;\nstate_24570 \x3d G__27164;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$reduce_$_state_machine__21869__auto__ \x3d function(state_24570){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$reduce_$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$reduce_$_state_machine__21869__auto____1.call(this,state_24570);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$reduce_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$reduce_$_state_machine__21869__auto____0;\ncljs$core$async$reduce_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$reduce_$_state_machine__21869__auto____1;\nreturn cljs$core$async$reduce_$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24627 \x3d f__23319__auto__();\n(statearr_24627[(6)] \x3d c__23318__auto__);\n\nreturn statearr_24627;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n});\n/**\n * async/reduces a channel with a transformation (xform f).\n * Returns a channel containing the result. ch must close before\n * transduce produces a result.\n */\ncljs.core.async.transduce \x3d (function cljs$core$async$transduce(xform,f,init,ch){\nvar f__$1 \x3d (xform.cljs$core$IFn$_invoke$arity$1 ? xform.cljs$core$IFn$_invoke$arity$1(f) : xform.call(null, f));\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24647){\nvar state_val_24648 \x3d (state_24647[(1)]);\nif((state_val_24648 \x3d\x3d\x3d (1))){\nvar inst_24642 \x3d cljs.core.async.reduce(f__$1,init,ch);\nvar state_24647__$1 \x3d state_24647;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24647__$1,(2),inst_24642);\n} else {\nif((state_val_24648 \x3d\x3d\x3d (2))){\nvar inst_24644 \x3d (state_24647[(2)]);\nvar inst_24645 \x3d (f__$1.cljs$core$IFn$_invoke$arity$1 ? f__$1.cljs$core$IFn$_invoke$arity$1(inst_24644) : f__$1.call(null, inst_24644));\nvar state_24647__$1 \x3d state_24647;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24647__$1,inst_24645);\n} else {\nreturn null;\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$transduce_$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$transduce_$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24657 \x3d [null,null,null,null,null,null,null];\n(statearr_24657[(0)] \x3d cljs$core$async$transduce_$_state_machine__21869__auto__);\n\n(statearr_24657[(1)] \x3d (1));\n\nreturn statearr_24657;\n});\nvar cljs$core$async$transduce_$_state_machine__21869__auto____1 \x3d (function (state_24647){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24647);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24658){var ex__21872__auto__ \x3d e24658;\nvar statearr_24659_27173 \x3d state_24647;\n(statearr_24659_27173[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24647[(4)]))){\nvar statearr_24660_27174 \x3d state_24647;\n(statearr_24660_27174[(1)] \x3d cljs.core.first((state_24647[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27175 \x3d state_24647;\nstate_24647 \x3d G__27175;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$transduce_$_state_machine__21869__auto__ \x3d function(state_24647){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$transduce_$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$transduce_$_state_machine__21869__auto____1.call(this,state_24647);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$transduce_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$transduce_$_state_machine__21869__auto____0;\ncljs$core$async$transduce_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$transduce_$_state_machine__21869__auto____1;\nreturn cljs$core$async$transduce_$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24662 \x3d f__23319__auto__();\n(statearr_24662[(6)] \x3d c__23318__auto__);\n\nreturn statearr_24662;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n});\n/**\n * Puts the contents of coll into the supplied channel.\n * \n * By default the channel will be closed after the items are copied,\n * but can be determined by the close? parameter.\n * \n * Returns a channel which will close after the items are copied.\n */\ncljs.core.async.onto_chan_BANG_ \x3d (function cljs$core$async$onto_chan_BANG_(var_args){\nvar G__24665 \x3d arguments.length;\nswitch (G__24665) {\ncase 2:\nreturn cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (ch,coll){\nreturn cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$3(ch,coll,true);\n}));\n\n(cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (ch,coll,close_QMARK_){\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24693){\nvar state_val_24694 \x3d (state_24693[(1)]);\nif((state_val_24694 \x3d\x3d\x3d (7))){\nvar inst_24675 \x3d (state_24693[(2)]);\nvar state_24693__$1 \x3d state_24693;\nvar statearr_24699_27184 \x3d state_24693__$1;\n(statearr_24699_27184[(2)] \x3d inst_24675);\n\n(statearr_24699_27184[(1)] \x3d (6));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (1))){\nvar inst_24669 \x3d cljs.core.seq(coll);\nvar inst_24670 \x3d inst_24669;\nvar state_24693__$1 \x3d (function (){var statearr_24700 \x3d state_24693;\n(statearr_24700[(7)] \x3d inst_24670);\n\nreturn statearr_24700;\n})();\nvar statearr_24701_27185 \x3d state_24693__$1;\n(statearr_24701_27185[(2)] \x3d null);\n\n(statearr_24701_27185[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (4))){\nvar inst_24670 \x3d (state_24693[(7)]);\nvar inst_24673 \x3d cljs.core.first(inst_24670);\nvar state_24693__$1 \x3d state_24693;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_24693__$1,(7),ch,inst_24673);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (13))){\nvar inst_24687 \x3d (state_24693[(2)]);\nvar state_24693__$1 \x3d state_24693;\nvar statearr_24702_27186 \x3d state_24693__$1;\n(statearr_24702_27186[(2)] \x3d inst_24687);\n\n(statearr_24702_27186[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (6))){\nvar inst_24678 \x3d (state_24693[(2)]);\nvar state_24693__$1 \x3d state_24693;\nif(cljs.core.truth_(inst_24678)){\nvar statearr_24703_27187 \x3d state_24693__$1;\n(statearr_24703_27187[(1)] \x3d (8));\n\n} else {\nvar statearr_24704_27188 \x3d state_24693__$1;\n(statearr_24704_27188[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (3))){\nvar inst_24691 \x3d (state_24693[(2)]);\nvar state_24693__$1 \x3d state_24693;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24693__$1,inst_24691);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (12))){\nvar state_24693__$1 \x3d state_24693;\nvar statearr_24705_27189 \x3d state_24693__$1;\n(statearr_24705_27189[(2)] \x3d null);\n\n(statearr_24705_27189[(1)] \x3d (13));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (2))){\nvar inst_24670 \x3d (state_24693[(7)]);\nvar state_24693__$1 \x3d state_24693;\nif(cljs.core.truth_(inst_24670)){\nvar statearr_24706_27190 \x3d state_24693__$1;\n(statearr_24706_27190[(1)] \x3d (4));\n\n} else {\nvar statearr_24707_27191 \x3d state_24693__$1;\n(statearr_24707_27191[(1)] \x3d (5));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (11))){\nvar inst_24684 \x3d cljs.core.async.close_BANG_(ch);\nvar state_24693__$1 \x3d state_24693;\nvar statearr_24716_27192 \x3d state_24693__$1;\n(statearr_24716_27192[(2)] \x3d inst_24684);\n\n(statearr_24716_27192[(1)] \x3d (13));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (9))){\nvar state_24693__$1 \x3d state_24693;\nif(cljs.core.truth_(close_QMARK_)){\nvar statearr_24721_27193 \x3d state_24693__$1;\n(statearr_24721_27193[(1)] \x3d (11));\n\n} else {\nvar statearr_24722_27195 \x3d state_24693__$1;\n(statearr_24722_27195[(1)] \x3d (12));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (5))){\nvar inst_24670 \x3d (state_24693[(7)]);\nvar state_24693__$1 \x3d state_24693;\nvar statearr_24723_27197 \x3d state_24693__$1;\n(statearr_24723_27197[(2)] \x3d inst_24670);\n\n(statearr_24723_27197[(1)] \x3d (6));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (10))){\nvar inst_24689 \x3d (state_24693[(2)]);\nvar state_24693__$1 \x3d state_24693;\nvar statearr_24724_27198 \x3d state_24693__$1;\n(statearr_24724_27198[(2)] \x3d inst_24689);\n\n(statearr_24724_27198[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24694 \x3d\x3d\x3d (8))){\nvar inst_24670 \x3d (state_24693[(7)]);\nvar inst_24680 \x3d cljs.core.next(inst_24670);\nvar inst_24670__$1 \x3d inst_24680;\nvar state_24693__$1 \x3d (function (){var statearr_24727 \x3d state_24693;\n(statearr_24727[(7)] \x3d inst_24670__$1);\n\nreturn statearr_24727;\n})();\nvar statearr_24728_27199 \x3d state_24693__$1;\n(statearr_24728_27199[(2)] \x3d null);\n\n(statearr_24728_27199[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_24730 \x3d [null,null,null,null,null,null,null,null];\n(statearr_24730[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_24730[(1)] \x3d (1));\n\nreturn statearr_24730;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_24693){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24693);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e24731){var ex__21872__auto__ \x3d e24731;\nvar statearr_24732_27201 \x3d state_24693;\n(statearr_24732_27201[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24693[(4)]))){\nvar statearr_24733_27203 \x3d state_24693;\n(statearr_24733_27203[(1)] \x3d cljs.core.first((state_24693[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27204 \x3d state_24693;\nstate_24693 \x3d G__27204;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_24693){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_24693);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_24734 \x3d f__23319__auto__();\n(statearr_24734[(6)] \x3d c__23318__auto__);\n\nreturn statearr_24734;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n}));\n\n(cljs.core.async.onto_chan_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Creates and returns a channel which contains the contents of coll,\n * closing when exhausted.\n */\ncljs.core.async.to_chan_BANG_ \x3d (function cljs$core$async$to_chan_BANG_(coll){\nvar ch \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(cljs.core.bounded_count((100),coll));\ncljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$2(ch,coll);\n\nreturn ch;\n});\n/**\n * Deprecated - use onto-chan!\n */\ncljs.core.async.onto_chan \x3d (function cljs$core$async$onto_chan(var_args){\nvar G__24739 \x3d arguments.length;\nswitch (G__24739) {\ncase 2:\nreturn cljs.core.async.onto_chan.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.onto_chan.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.onto_chan.cljs$core$IFn$_invoke$arity$2 \x3d (function (ch,coll){\nreturn cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$3(ch,coll,true);\n}));\n\n(cljs.core.async.onto_chan.cljs$core$IFn$_invoke$arity$3 \x3d (function (ch,coll,close_QMARK_){\nreturn cljs.core.async.onto_chan_BANG_.cljs$core$IFn$_invoke$arity$3(ch,coll,close_QMARK_);\n}));\n\n(cljs.core.async.onto_chan.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Deprecated - use to-chan!\n */\ncljs.core.async.to_chan \x3d (function cljs$core$async$to_chan(coll){\nreturn cljs.core.async.to_chan_BANG_(coll);\n});\n\n/**\n * @interface\n */\ncljs.core.async.Mux \x3d function(){};\n\nvar cljs$core$async$Mux$muxch_STAR_$dyn_27219 \x3d (function (_){\nvar x__5350__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5351__auto__ \x3d (cljs.core.async.muxch_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5351__auto__.call(null, _));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.muxch_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5349__auto__.call(null, _));\n} else {\nthrow cljs.core.missing_protocol(\x22Mux.muxch*\x22,_);\n}\n}\n});\ncljs.core.async.muxch_STAR_ \x3d (function cljs$core$async$muxch_STAR_(_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.cljs$core$async$Mux$muxch_STAR_$arity$1 \x3d\x3d null)))))){\nreturn _.cljs$core$async$Mux$muxch_STAR_$arity$1(_);\n} else {\nreturn cljs$core$async$Mux$muxch_STAR_$dyn_27219(_);\n}\n});\n\n\n/**\n * @interface\n */\ncljs.core.async.Mult \x3d function(){};\n\nvar cljs$core$async$Mult$tap_STAR_$dyn_27220 \x3d (function (m,ch,close_QMARK_){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.tap_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(m,ch,close_QMARK_) : m__5351__auto__.call(null, m,ch,close_QMARK_));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.tap_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(m,ch,close_QMARK_) : m__5349__auto__.call(null, m,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22Mult.tap*\x22,m);\n}\n}\n});\ncljs.core.async.tap_STAR_ \x3d (function cljs$core$async$tap_STAR_(m,ch,close_QMARK_){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mult$tap_STAR_$arity$3 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mult$tap_STAR_$arity$3(m,ch,close_QMARK_);\n} else {\nreturn cljs$core$async$Mult$tap_STAR_$dyn_27220(m,ch,close_QMARK_);\n}\n});\n\nvar cljs$core$async$Mult$untap_STAR_$dyn_27221 \x3d (function (m,ch){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.untap_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(m,ch) : m__5351__auto__.call(null, m,ch));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.untap_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(m,ch) : m__5349__auto__.call(null, m,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22Mult.untap*\x22,m);\n}\n}\n});\ncljs.core.async.untap_STAR_ \x3d (function cljs$core$async$untap_STAR_(m,ch){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mult$untap_STAR_$arity$2 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mult$untap_STAR_$arity$2(m,ch);\n} else {\nreturn cljs$core$async$Mult$untap_STAR_$dyn_27221(m,ch);\n}\n});\n\nvar cljs$core$async$Mult$untap_all_STAR_$dyn_27223 \x3d (function (m){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.untap_all_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(m) : m__5351__auto__.call(null, m));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.untap_all_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(m) : m__5349__auto__.call(null, m));\n} else {\nthrow cljs.core.missing_protocol(\x22Mult.untap-all*\x22,m);\n}\n}\n});\ncljs.core.async.untap_all_STAR_ \x3d (function cljs$core$async$untap_all_STAR_(m){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mult$untap_all_STAR_$arity$1 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mult$untap_all_STAR_$arity$1(m);\n} else {\nreturn cljs$core$async$Mult$untap_all_STAR_$dyn_27223(m);\n}\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.async.Mult}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.async.Mux}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async24800 \x3d (function (ch,cs,meta24801){\nthis.ch \x3d ch;\nthis.cs \x3d cs;\nthis.meta24801 \x3d meta24801;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24802,meta24801__$1){\nvar self__ \x3d this;\nvar _24802__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async24800(self__.ch,self__.cs,meta24801__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24802){\nvar self__ \x3d this;\nvar _24802__$1 \x3d this;\nreturn self__.meta24801;\n}));\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$async$Mux$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$async$Mux$muxch_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.ch;\n}));\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$async$Mult$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$async$Mult$tap_STAR_$arity$3 \x3d (function (_,ch__$1,close_QMARK_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.cs,cljs.core.assoc,ch__$1,close_QMARK_);\n\nreturn null;\n}));\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$async$Mult$untap_STAR_$arity$2 \x3d (function (_,ch__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.cs,cljs.core.dissoc,ch__$1);\n\nreturn null;\n}));\n\n(cljs.core.async.t_cljs$core$async24800.prototype.cljs$core$async$Mult$untap_all_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.reset_BANG_(self__.cs,cljs.core.PersistentArrayMap.EMPTY);\n\nreturn null;\n}));\n\n(cljs.core.async.t_cljs$core$async24800.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ch\x22,\x22ch\x22,1085813622,null),new cljs.core.Symbol(null,\x22cs\x22,\x22cs\x22,-117024463,null),new cljs.core.Symbol(null,\x22meta24801\x22,\x22meta24801\x22,-1369581406,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async24800.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async24800.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async24800\x22);\n\n(cljs.core.async.t_cljs$core$async24800.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async24800\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async24800.\n */\ncljs.core.async.__GT_t_cljs$core$async24800 \x3d (function cljs$core$async$__GT_t_cljs$core$async24800(ch,cs,meta24801){\nreturn (new cljs.core.async.t_cljs$core$async24800(ch,cs,meta24801));\n});\n\n\n/**\n * Creates and returns a mult(iple) of the supplied channel. Channels\n * containing copies of the channel can be created with \x27tap\x27, and\n * detached with \x27untap\x27.\n * \n * Each item is distributed to all taps in parallel and synchronously,\n * i.e. each tap must accept before the next item is distributed. Use\n * buffering/windowing to prevent slow taps from holding up the mult.\n * \n * Items received when there are no taps get dropped.\n * \n * If a tap puts to a closed channel, it will be removed from the mult.\n */\ncljs.core.async.mult \x3d (function cljs$core$async$mult(ch){\nvar cs \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar m \x3d (new cljs.core.async.t_cljs$core$async24800(ch,cs,cljs.core.PersistentArrayMap.EMPTY));\nvar dchan \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\nvar dctr \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar done \x3d (function (_){\nif((cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(dctr,cljs.core.dec) \x3d\x3d\x3d (0))){\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(dchan,true);\n} else {\nreturn null;\n}\n});\nvar c__23318__auto___27227 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_24975){\nvar state_val_24978 \x3d (state_24975[(1)]);\nif((state_val_24978 \x3d\x3d\x3d (7))){\nvar inst_24967 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_24983_27228 \x3d state_24975__$1;\n(statearr_24983_27228[(2)] \x3d inst_24967);\n\n(statearr_24983_27228[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (20))){\nvar inst_24860 \x3d (state_24975[(7)]);\nvar inst_24876 \x3d cljs.core.first(inst_24860);\nvar inst_24877 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_24876,(0),null);\nvar inst_24878 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_24876,(1),null);\nvar state_24975__$1 \x3d (function (){var statearr_24984 \x3d state_24975;\n(statearr_24984[(8)] \x3d inst_24877);\n\nreturn statearr_24984;\n})();\nif(cljs.core.truth_(inst_24878)){\nvar statearr_24985_27229 \x3d state_24975__$1;\n(statearr_24985_27229[(1)] \x3d (22));\n\n} else {\nvar statearr_24989_27230 \x3d state_24975__$1;\n(statearr_24989_27230[(1)] \x3d (23));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (27))){\nvar inst_24906 \x3d (state_24975[(9)]);\nvar inst_24908 \x3d (state_24975[(10)]);\nvar inst_24821 \x3d (state_24975[(11)]);\nvar inst_24913 \x3d (state_24975[(12)]);\nvar inst_24913__$1 \x3d cljs.core._nth(inst_24906,inst_24908);\nvar inst_24915 \x3d cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$3(inst_24913__$1,inst_24821,done);\nvar state_24975__$1 \x3d (function (){var statearr_24998 \x3d state_24975;\n(statearr_24998[(12)] \x3d inst_24913__$1);\n\nreturn statearr_24998;\n})();\nif(cljs.core.truth_(inst_24915)){\nvar statearr_24999_27235 \x3d state_24975__$1;\n(statearr_24999_27235[(1)] \x3d (30));\n\n} else {\nvar statearr_25003_27236 \x3d state_24975__$1;\n(statearr_25003_27236[(1)] \x3d (31));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (1))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25004_27237 \x3d state_24975__$1;\n(statearr_25004_27237[(2)] \x3d null);\n\n(statearr_25004_27237[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (24))){\nvar inst_24860 \x3d (state_24975[(7)]);\nvar inst_24883 \x3d (state_24975[(2)]);\nvar inst_24884 \x3d cljs.core.next(inst_24860);\nvar inst_24830 \x3d inst_24884;\nvar inst_24831 \x3d null;\nvar inst_24832 \x3d (0);\nvar inst_24833 \x3d (0);\nvar state_24975__$1 \x3d (function (){var statearr_25005 \x3d state_24975;\n(statearr_25005[(13)] \x3d inst_24833);\n\n(statearr_25005[(14)] \x3d inst_24883);\n\n(statearr_25005[(15)] \x3d inst_24831);\n\n(statearr_25005[(16)] \x3d inst_24832);\n\n(statearr_25005[(17)] \x3d inst_24830);\n\nreturn statearr_25005;\n})();\nvar statearr_25006_27238 \x3d state_24975__$1;\n(statearr_25006_27238[(2)] \x3d null);\n\n(statearr_25006_27238[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (39))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25032_27239 \x3d state_24975__$1;\n(statearr_25032_27239[(2)] \x3d null);\n\n(statearr_25032_27239[(1)] \x3d (41));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (4))){\nvar inst_24821 \x3d (state_24975[(11)]);\nvar inst_24821__$1 \x3d (state_24975[(2)]);\nvar inst_24822 \x3d (inst_24821__$1 \x3d\x3d null);\nvar state_24975__$1 \x3d (function (){var statearr_25033 \x3d state_24975;\n(statearr_25033[(11)] \x3d inst_24821__$1);\n\nreturn statearr_25033;\n})();\nif(cljs.core.truth_(inst_24822)){\nvar statearr_25034_27240 \x3d state_24975__$1;\n(statearr_25034_27240[(1)] \x3d (5));\n\n} else {\nvar statearr_25035_27241 \x3d state_24975__$1;\n(statearr_25035_27241[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (15))){\nvar inst_24833 \x3d (state_24975[(13)]);\nvar inst_24831 \x3d (state_24975[(15)]);\nvar inst_24832 \x3d (state_24975[(16)]);\nvar inst_24830 \x3d (state_24975[(17)]);\nvar inst_24852 \x3d (state_24975[(2)]);\nvar inst_24857 \x3d (inst_24833 + (1));\nvar tmp25018 \x3d inst_24831;\nvar tmp25019 \x3d inst_24832;\nvar tmp25020 \x3d inst_24830;\nvar inst_24830__$1 \x3d tmp25020;\nvar inst_24831__$1 \x3d tmp25018;\nvar inst_24832__$1 \x3d tmp25019;\nvar inst_24833__$1 \x3d inst_24857;\nvar state_24975__$1 \x3d (function (){var statearr_25040 \x3d state_24975;\n(statearr_25040[(13)] \x3d inst_24833__$1);\n\n(statearr_25040[(15)] \x3d inst_24831__$1);\n\n(statearr_25040[(16)] \x3d inst_24832__$1);\n\n(statearr_25040[(17)] \x3d inst_24830__$1);\n\n(statearr_25040[(18)] \x3d inst_24852);\n\nreturn statearr_25040;\n})();\nvar statearr_25045_27242 \x3d state_24975__$1;\n(statearr_25045_27242[(2)] \x3d null);\n\n(statearr_25045_27242[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (21))){\nvar inst_24887 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25052_27243 \x3d state_24975__$1;\n(statearr_25052_27243[(2)] \x3d inst_24887);\n\n(statearr_25052_27243[(1)] \x3d (18));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (31))){\nvar inst_24913 \x3d (state_24975[(12)]);\nvar inst_24918 \x3d m.cljs$core$async$Mult$untap_STAR_$arity$2(null, inst_24913);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25057_27244 \x3d state_24975__$1;\n(statearr_25057_27244[(2)] \x3d inst_24918);\n\n(statearr_25057_27244[(1)] \x3d (32));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (32))){\nvar inst_24906 \x3d (state_24975[(9)]);\nvar inst_24908 \x3d (state_24975[(10)]);\nvar inst_24905 \x3d (state_24975[(19)]);\nvar inst_24907 \x3d (state_24975[(20)]);\nvar inst_24920 \x3d (state_24975[(2)]);\nvar inst_24921 \x3d (inst_24908 + (1));\nvar tmp25049 \x3d inst_24906;\nvar tmp25050 \x3d inst_24905;\nvar tmp25051 \x3d inst_24907;\nvar inst_24905__$1 \x3d tmp25050;\nvar inst_24906__$1 \x3d tmp25049;\nvar inst_24907__$1 \x3d tmp25051;\nvar inst_24908__$1 \x3d inst_24921;\nvar state_24975__$1 \x3d (function (){var statearr_25062 \x3d state_24975;\n(statearr_25062[(9)] \x3d inst_24906__$1);\n\n(statearr_25062[(10)] \x3d inst_24908__$1);\n\n(statearr_25062[(19)] \x3d inst_24905__$1);\n\n(statearr_25062[(20)] \x3d inst_24907__$1);\n\n(statearr_25062[(21)] \x3d inst_24920);\n\nreturn statearr_25062;\n})();\nvar statearr_25063_27245 \x3d state_24975__$1;\n(statearr_25063_27245[(2)] \x3d null);\n\n(statearr_25063_27245[(1)] \x3d (25));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (40))){\nvar inst_24934 \x3d (state_24975[(22)]);\nvar inst_24940 \x3d m.cljs$core$async$Mult$untap_STAR_$arity$2(null, inst_24934);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25064_27246 \x3d state_24975__$1;\n(statearr_25064_27246[(2)] \x3d inst_24940);\n\n(statearr_25064_27246[(1)] \x3d (41));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (33))){\nvar inst_24925 \x3d (state_24975[(23)]);\nvar inst_24927 \x3d cljs.core.chunked_seq_QMARK_(inst_24925);\nvar state_24975__$1 \x3d state_24975;\nif(inst_24927){\nvar statearr_25068_27247 \x3d state_24975__$1;\n(statearr_25068_27247[(1)] \x3d (36));\n\n} else {\nvar statearr_25077_27248 \x3d state_24975__$1;\n(statearr_25077_27248[(1)] \x3d (37));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (13))){\nvar inst_24842 \x3d (state_24975[(24)]);\nvar inst_24849 \x3d cljs.core.async.close_BANG_(inst_24842);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25078_27249 \x3d state_24975__$1;\n(statearr_25078_27249[(2)] \x3d inst_24849);\n\n(statearr_25078_27249[(1)] \x3d (15));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (22))){\nvar inst_24877 \x3d (state_24975[(8)]);\nvar inst_24880 \x3d cljs.core.async.close_BANG_(inst_24877);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25087_27250 \x3d state_24975__$1;\n(statearr_25087_27250[(2)] \x3d inst_24880);\n\n(statearr_25087_27250[(1)] \x3d (24));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (36))){\nvar inst_24925 \x3d (state_24975[(23)]);\nvar inst_24929 \x3d cljs.core.chunk_first(inst_24925);\nvar inst_24930 \x3d cljs.core.chunk_rest(inst_24925);\nvar inst_24931 \x3d cljs.core.count(inst_24929);\nvar inst_24905 \x3d inst_24930;\nvar inst_24906 \x3d inst_24929;\nvar inst_24907 \x3d inst_24931;\nvar inst_24908 \x3d (0);\nvar state_24975__$1 \x3d (function (){var statearr_25089 \x3d state_24975;\n(statearr_25089[(9)] \x3d inst_24906);\n\n(statearr_25089[(10)] \x3d inst_24908);\n\n(statearr_25089[(19)] \x3d inst_24905);\n\n(statearr_25089[(20)] \x3d inst_24907);\n\nreturn statearr_25089;\n})();\nvar statearr_25093_27255 \x3d state_24975__$1;\n(statearr_25093_27255[(2)] \x3d null);\n\n(statearr_25093_27255[(1)] \x3d (25));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (41))){\nvar inst_24925 \x3d (state_24975[(23)]);\nvar inst_24943 \x3d (state_24975[(2)]);\nvar inst_24944 \x3d cljs.core.next(inst_24925);\nvar inst_24905 \x3d inst_24944;\nvar inst_24906 \x3d null;\nvar inst_24907 \x3d (0);\nvar inst_24908 \x3d (0);\nvar state_24975__$1 \x3d (function (){var statearr_25097 \x3d state_24975;\n(statearr_25097[(25)] \x3d inst_24943);\n\n(statearr_25097[(9)] \x3d inst_24906);\n\n(statearr_25097[(10)] \x3d inst_24908);\n\n(statearr_25097[(19)] \x3d inst_24905);\n\n(statearr_25097[(20)] \x3d inst_24907);\n\nreturn statearr_25097;\n})();\nvar statearr_25098_27256 \x3d state_24975__$1;\n(statearr_25098_27256[(2)] \x3d null);\n\n(statearr_25098_27256[(1)] \x3d (25));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (43))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25099_27257 \x3d state_24975__$1;\n(statearr_25099_27257[(2)] \x3d null);\n\n(statearr_25099_27257[(1)] \x3d (44));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (29))){\nvar inst_24955 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25104_27261 \x3d state_24975__$1;\n(statearr_25104_27261[(2)] \x3d inst_24955);\n\n(statearr_25104_27261[(1)] \x3d (26));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (44))){\nvar inst_24964 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d (function (){var statearr_25105 \x3d state_24975;\n(statearr_25105[(26)] \x3d inst_24964);\n\nreturn statearr_25105;\n})();\nvar statearr_25106_27262 \x3d state_24975__$1;\n(statearr_25106_27262[(2)] \x3d null);\n\n(statearr_25106_27262[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (6))){\nvar inst_24897 \x3d (state_24975[(27)]);\nvar inst_24896 \x3d cljs.core.deref(cs);\nvar inst_24897__$1 \x3d cljs.core.keys(inst_24896);\nvar inst_24898 \x3d cljs.core.count(inst_24897__$1);\nvar inst_24899 \x3d cljs.core.reset_BANG_(dctr,inst_24898);\nvar inst_24904 \x3d cljs.core.seq(inst_24897__$1);\nvar inst_24905 \x3d inst_24904;\nvar inst_24906 \x3d null;\nvar inst_24907 \x3d (0);\nvar inst_24908 \x3d (0);\nvar state_24975__$1 \x3d (function (){var statearr_25109 \x3d state_24975;\n(statearr_25109[(9)] \x3d inst_24906);\n\n(statearr_25109[(10)] \x3d inst_24908);\n\n(statearr_25109[(19)] \x3d inst_24905);\n\n(statearr_25109[(27)] \x3d inst_24897__$1);\n\n(statearr_25109[(20)] \x3d inst_24907);\n\n(statearr_25109[(28)] \x3d inst_24899);\n\nreturn statearr_25109;\n})();\nvar statearr_25110_27263 \x3d state_24975__$1;\n(statearr_25110_27263[(2)] \x3d null);\n\n(statearr_25110_27263[(1)] \x3d (25));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (28))){\nvar inst_24905 \x3d (state_24975[(19)]);\nvar inst_24925 \x3d (state_24975[(23)]);\nvar inst_24925__$1 \x3d cljs.core.seq(inst_24905);\nvar state_24975__$1 \x3d (function (){var statearr_25111 \x3d state_24975;\n(statearr_25111[(23)] \x3d inst_24925__$1);\n\nreturn statearr_25111;\n})();\nif(inst_24925__$1){\nvar statearr_25114_27264 \x3d state_24975__$1;\n(statearr_25114_27264[(1)] \x3d (33));\n\n} else {\nvar statearr_25115_27265 \x3d state_24975__$1;\n(statearr_25115_27265[(1)] \x3d (34));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (25))){\nvar inst_24908 \x3d (state_24975[(10)]);\nvar inst_24907 \x3d (state_24975[(20)]);\nvar inst_24910 \x3d (inst_24908 \x3c inst_24907);\nvar inst_24911 \x3d inst_24910;\nvar state_24975__$1 \x3d state_24975;\nif(cljs.core.truth_(inst_24911)){\nvar statearr_25118_27266 \x3d state_24975__$1;\n(statearr_25118_27266[(1)] \x3d (27));\n\n} else {\nvar statearr_25119_27267 \x3d state_24975__$1;\n(statearr_25119_27267[(1)] \x3d (28));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (34))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25123_27268 \x3d state_24975__$1;\n(statearr_25123_27268[(2)] \x3d null);\n\n(statearr_25123_27268[(1)] \x3d (35));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (17))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25125_27269 \x3d state_24975__$1;\n(statearr_25125_27269[(2)] \x3d null);\n\n(statearr_25125_27269[(1)] \x3d (18));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (3))){\nvar inst_24969 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_24975__$1,inst_24969);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (12))){\nvar inst_24892 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25129_27270 \x3d state_24975__$1;\n(statearr_25129_27270[(2)] \x3d inst_24892);\n\n(statearr_25129_27270[(1)] \x3d (9));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (2))){\nvar state_24975__$1 \x3d state_24975;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24975__$1,(4),ch);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (23))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25130_27272 \x3d state_24975__$1;\n(statearr_25130_27272[(2)] \x3d null);\n\n(statearr_25130_27272[(1)] \x3d (24));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (35))){\nvar inst_24950 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25135_27275 \x3d state_24975__$1;\n(statearr_25135_27275[(2)] \x3d inst_24950);\n\n(statearr_25135_27275[(1)] \x3d (29));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (19))){\nvar inst_24860 \x3d (state_24975[(7)]);\nvar inst_24868 \x3d cljs.core.chunk_first(inst_24860);\nvar inst_24869 \x3d cljs.core.chunk_rest(inst_24860);\nvar inst_24870 \x3d cljs.core.count(inst_24868);\nvar inst_24830 \x3d inst_24869;\nvar inst_24831 \x3d inst_24868;\nvar inst_24832 \x3d inst_24870;\nvar inst_24833 \x3d (0);\nvar state_24975__$1 \x3d (function (){var statearr_25136 \x3d state_24975;\n(statearr_25136[(13)] \x3d inst_24833);\n\n(statearr_25136[(15)] \x3d inst_24831);\n\n(statearr_25136[(16)] \x3d inst_24832);\n\n(statearr_25136[(17)] \x3d inst_24830);\n\nreturn statearr_25136;\n})();\nvar statearr_25140_27276 \x3d state_24975__$1;\n(statearr_25140_27276[(2)] \x3d null);\n\n(statearr_25140_27276[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (11))){\nvar inst_24860 \x3d (state_24975[(7)]);\nvar inst_24830 \x3d (state_24975[(17)]);\nvar inst_24860__$1 \x3d cljs.core.seq(inst_24830);\nvar state_24975__$1 \x3d (function (){var statearr_25143 \x3d state_24975;\n(statearr_25143[(7)] \x3d inst_24860__$1);\n\nreturn statearr_25143;\n})();\nif(inst_24860__$1){\nvar statearr_25144_27277 \x3d state_24975__$1;\n(statearr_25144_27277[(1)] \x3d (16));\n\n} else {\nvar statearr_25145_27278 \x3d state_24975__$1;\n(statearr_25145_27278[(1)] \x3d (17));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (9))){\nvar inst_24894 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25147_27279 \x3d state_24975__$1;\n(statearr_25147_27279[(2)] \x3d inst_24894);\n\n(statearr_25147_27279[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (5))){\nvar inst_24828 \x3d cljs.core.deref(cs);\nvar inst_24829 \x3d cljs.core.seq(inst_24828);\nvar inst_24830 \x3d inst_24829;\nvar inst_24831 \x3d null;\nvar inst_24832 \x3d (0);\nvar inst_24833 \x3d (0);\nvar state_24975__$1 \x3d (function (){var statearr_25149 \x3d state_24975;\n(statearr_25149[(13)] \x3d inst_24833);\n\n(statearr_25149[(15)] \x3d inst_24831);\n\n(statearr_25149[(16)] \x3d inst_24832);\n\n(statearr_25149[(17)] \x3d inst_24830);\n\nreturn statearr_25149;\n})();\nvar statearr_25150_27280 \x3d state_24975__$1;\n(statearr_25150_27280[(2)] \x3d null);\n\n(statearr_25150_27280[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (14))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25152_27281 \x3d state_24975__$1;\n(statearr_25152_27281[(2)] \x3d null);\n\n(statearr_25152_27281[(1)] \x3d (15));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (45))){\nvar inst_24961 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25163_27282 \x3d state_24975__$1;\n(statearr_25163_27282[(2)] \x3d inst_24961);\n\n(statearr_25163_27282[(1)] \x3d (44));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (26))){\nvar inst_24897 \x3d (state_24975[(27)]);\nvar inst_24957 \x3d (state_24975[(2)]);\nvar inst_24958 \x3d cljs.core.seq(inst_24897);\nvar state_24975__$1 \x3d (function (){var statearr_25165 \x3d state_24975;\n(statearr_25165[(29)] \x3d inst_24957);\n\nreturn statearr_25165;\n})();\nif(inst_24958){\nvar statearr_25166_27283 \x3d state_24975__$1;\n(statearr_25166_27283[(1)] \x3d (42));\n\n} else {\nvar statearr_25167_27284 \x3d state_24975__$1;\n(statearr_25167_27284[(1)] \x3d (43));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (16))){\nvar inst_24860 \x3d (state_24975[(7)]);\nvar inst_24866 \x3d cljs.core.chunked_seq_QMARK_(inst_24860);\nvar state_24975__$1 \x3d state_24975;\nif(inst_24866){\nvar statearr_25169_27285 \x3d state_24975__$1;\n(statearr_25169_27285[(1)] \x3d (19));\n\n} else {\nvar statearr_25170_27286 \x3d state_24975__$1;\n(statearr_25170_27286[(1)] \x3d (20));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (38))){\nvar inst_24947 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25172_27287 \x3d state_24975__$1;\n(statearr_25172_27287[(2)] \x3d inst_24947);\n\n(statearr_25172_27287[(1)] \x3d (35));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (30))){\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25175_27291 \x3d state_24975__$1;\n(statearr_25175_27291[(2)] \x3d null);\n\n(statearr_25175_27291[(1)] \x3d (32));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (10))){\nvar inst_24833 \x3d (state_24975[(13)]);\nvar inst_24831 \x3d (state_24975[(15)]);\nvar inst_24841 \x3d cljs.core._nth(inst_24831,inst_24833);\nvar inst_24842 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_24841,(0),null);\nvar inst_24843 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_24841,(1),null);\nvar state_24975__$1 \x3d (function (){var statearr_25176 \x3d state_24975;\n(statearr_25176[(24)] \x3d inst_24842);\n\nreturn statearr_25176;\n})();\nif(cljs.core.truth_(inst_24843)){\nvar statearr_25177_27292 \x3d state_24975__$1;\n(statearr_25177_27292[(1)] \x3d (13));\n\n} else {\nvar statearr_25178_27293 \x3d state_24975__$1;\n(statearr_25178_27293[(1)] \x3d (14));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (18))){\nvar inst_24890 \x3d (state_24975[(2)]);\nvar state_24975__$1 \x3d state_24975;\nvar statearr_25181_27294 \x3d state_24975__$1;\n(statearr_25181_27294[(2)] \x3d inst_24890);\n\n(statearr_25181_27294[(1)] \x3d (12));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (42))){\nvar state_24975__$1 \x3d state_24975;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_24975__$1,(45),dchan);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (37))){\nvar inst_24821 \x3d (state_24975[(11)]);\nvar inst_24934 \x3d (state_24975[(22)]);\nvar inst_24925 \x3d (state_24975[(23)]);\nvar inst_24934__$1 \x3d cljs.core.first(inst_24925);\nvar inst_24935 \x3d cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$3(inst_24934__$1,inst_24821,done);\nvar state_24975__$1 \x3d (function (){var statearr_25183 \x3d state_24975;\n(statearr_25183[(22)] \x3d inst_24934__$1);\n\nreturn statearr_25183;\n})();\nif(cljs.core.truth_(inst_24935)){\nvar statearr_25184_27295 \x3d state_24975__$1;\n(statearr_25184_27295[(1)] \x3d (39));\n\n} else {\nvar statearr_25185_27296 \x3d state_24975__$1;\n(statearr_25185_27296[(1)] \x3d (40));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_24978 \x3d\x3d\x3d (8))){\nvar inst_24833 \x3d (state_24975[(13)]);\nvar inst_24832 \x3d (state_24975[(16)]);\nvar inst_24835 \x3d (inst_24833 \x3c inst_24832);\nvar inst_24836 \x3d inst_24835;\nvar state_24975__$1 \x3d state_24975;\nif(cljs.core.truth_(inst_24836)){\nvar statearr_25187_27298 \x3d state_24975__$1;\n(statearr_25187_27298[(1)] \x3d (10));\n\n} else {\nvar statearr_25188_27299 \x3d state_24975__$1;\n(statearr_25188_27299[(1)] \x3d (11));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$mult_$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$mult_$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_25190 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_25190[(0)] \x3d cljs$core$async$mult_$_state_machine__21869__auto__);\n\n(statearr_25190[(1)] \x3d (1));\n\nreturn statearr_25190;\n});\nvar cljs$core$async$mult_$_state_machine__21869__auto____1 \x3d (function (state_24975){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_24975);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e25191){var ex__21872__auto__ \x3d e25191;\nvar statearr_25192_27303 \x3d state_24975;\n(statearr_25192_27303[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_24975[(4)]))){\nvar statearr_25193_27304 \x3d state_24975;\n(statearr_25193_27304[(1)] \x3d cljs.core.first((state_24975[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27305 \x3d state_24975;\nstate_24975 \x3d G__27305;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$mult_$_state_machine__21869__auto__ \x3d function(state_24975){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$mult_$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$mult_$_state_machine__21869__auto____1.call(this,state_24975);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$mult_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$mult_$_state_machine__21869__auto____0;\ncljs$core$async$mult_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$mult_$_state_machine__21869__auto____1;\nreturn cljs$core$async$mult_$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_25194 \x3d f__23319__auto__();\n(statearr_25194[(6)] \x3d c__23318__auto___27227);\n\nreturn statearr_25194;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn m;\n});\n/**\n * Copies the mult source onto the supplied channel.\n * \n * By default the channel will be closed when the source closes,\n * but can be determined by the close? parameter.\n */\ncljs.core.async.tap \x3d (function cljs$core$async$tap(var_args){\nvar G__25196 \x3d arguments.length;\nswitch (G__25196) {\ncase 2:\nreturn cljs.core.async.tap.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.tap.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.tap.cljs$core$IFn$_invoke$arity$2 \x3d (function (mult,ch){\nreturn cljs.core.async.tap.cljs$core$IFn$_invoke$arity$3(mult,ch,true);\n}));\n\n(cljs.core.async.tap.cljs$core$IFn$_invoke$arity$3 \x3d (function (mult,ch,close_QMARK_){\ncljs.core.async.tap_STAR_(mult,ch,close_QMARK_);\n\nreturn ch;\n}));\n\n(cljs.core.async.tap.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Disconnects a target channel from a mult\n */\ncljs.core.async.untap \x3d (function cljs$core$async$untap(mult,ch){\nreturn cljs.core.async.untap_STAR_(mult,ch);\n});\n/**\n * Disconnects all target channels from a mult\n */\ncljs.core.async.untap_all \x3d (function cljs$core$async$untap_all(mult){\nreturn cljs.core.async.untap_all_STAR_(mult);\n});\n\n/**\n * @interface\n */\ncljs.core.async.Mix \x3d function(){};\n\nvar cljs$core$async$Mix$admix_STAR_$dyn_27316 \x3d (function (m,ch){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.admix_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(m,ch) : m__5351__auto__.call(null, m,ch));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.admix_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(m,ch) : m__5349__auto__.call(null, m,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22Mix.admix*\x22,m);\n}\n}\n});\ncljs.core.async.admix_STAR_ \x3d (function cljs$core$async$admix_STAR_(m,ch){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mix$admix_STAR_$arity$2 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mix$admix_STAR_$arity$2(m,ch);\n} else {\nreturn cljs$core$async$Mix$admix_STAR_$dyn_27316(m,ch);\n}\n});\n\nvar cljs$core$async$Mix$unmix_STAR_$dyn_27317 \x3d (function (m,ch){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.unmix_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(m,ch) : m__5351__auto__.call(null, m,ch));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.unmix_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(m,ch) : m__5349__auto__.call(null, m,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22Mix.unmix*\x22,m);\n}\n}\n});\ncljs.core.async.unmix_STAR_ \x3d (function cljs$core$async$unmix_STAR_(m,ch){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mix$unmix_STAR_$arity$2 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mix$unmix_STAR_$arity$2(m,ch);\n} else {\nreturn cljs$core$async$Mix$unmix_STAR_$dyn_27317(m,ch);\n}\n});\n\nvar cljs$core$async$Mix$unmix_all_STAR_$dyn_27318 \x3d (function (m){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.unmix_all_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(m) : m__5351__auto__.call(null, m));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.unmix_all_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(m) : m__5349__auto__.call(null, m));\n} else {\nthrow cljs.core.missing_protocol(\x22Mix.unmix-all*\x22,m);\n}\n}\n});\ncljs.core.async.unmix_all_STAR_ \x3d (function cljs$core$async$unmix_all_STAR_(m){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mix$unmix_all_STAR_$arity$1 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mix$unmix_all_STAR_$arity$1(m);\n} else {\nreturn cljs$core$async$Mix$unmix_all_STAR_$dyn_27318(m);\n}\n});\n\nvar cljs$core$async$Mix$toggle_STAR_$dyn_27319 \x3d (function (m,state_map){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.toggle_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(m,state_map) : m__5351__auto__.call(null, m,state_map));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.toggle_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(m,state_map) : m__5349__auto__.call(null, m,state_map));\n} else {\nthrow cljs.core.missing_protocol(\x22Mix.toggle*\x22,m);\n}\n}\n});\ncljs.core.async.toggle_STAR_ \x3d (function cljs$core$async$toggle_STAR_(m,state_map){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mix$toggle_STAR_$arity$2 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mix$toggle_STAR_$arity$2(m,state_map);\n} else {\nreturn cljs$core$async$Mix$toggle_STAR_$dyn_27319(m,state_map);\n}\n});\n\nvar cljs$core$async$Mix$solo_mode_STAR_$dyn_27320 \x3d (function (m,mode){\nvar x__5350__auto__ \x3d (((m \x3d\x3d null))?null:m);\nvar m__5351__auto__ \x3d (cljs.core.async.solo_mode_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(m,mode) : m__5351__auto__.call(null, m,mode));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.solo_mode_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(m,mode) : m__5349__auto__.call(null, m,mode));\n} else {\nthrow cljs.core.missing_protocol(\x22Mix.solo-mode*\x22,m);\n}\n}\n});\ncljs.core.async.solo_mode_STAR_ \x3d (function cljs$core$async$solo_mode_STAR_(m,mode){\nif((((!((m \x3d\x3d null)))) \x26\x26 ((!((m.cljs$core$async$Mix$solo_mode_STAR_$arity$2 \x3d\x3d null)))))){\nreturn m.cljs$core$async$Mix$solo_mode_STAR_$arity$2(m,mode);\n} else {\nreturn cljs$core$async$Mix$solo_mode_STAR_$dyn_27320(m,mode);\n}\n});\n\ncljs.core.async.ioc_alts_BANG_ \x3d (function cljs$core$async$ioc_alts_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27321 \x3d arguments.length;\nvar i__5727__auto___27322 \x3d (0);\nwhile(true){\nif((i__5727__auto___27322 \x3c len__5726__auto___27321)){\nargs__5732__auto__.push((arguments[i__5727__auto___27322]));\n\nvar G__27323 \x3d (i__5727__auto___27322 + (1));\ni__5727__auto___27322 \x3d G__27323;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((3) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((3)),(0),null)):null);\nreturn cljs.core.async.ioc_alts_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5733__auto__);\n});\n\n(cljs.core.async.ioc_alts_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (state,cont_block,ports,p__25235){\nvar map__25236 \x3d p__25235;\nvar map__25236__$1 \x3d cljs.core.__destructure_map(map__25236);\nvar opts \x3d map__25236__$1;\nvar statearr_25237_27324 \x3d state;\n(statearr_25237_27324[(1)] \x3d cont_block);\n\n\nvar temp__5804__auto__ \x3d cljs.core.async.do_alts((function (val){\nvar statearr_25238_27325 \x3d state;\n(statearr_25238_27325[(2)] \x3d val);\n\n\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state);\n}),ports,opts);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar cb \x3d temp__5804__auto__;\nvar statearr_25240_27326 \x3d state;\n(statearr_25240_27326[(2)] \x3d cljs.core.deref(cb));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.async.ioc_alts_BANG_.cljs$lang$maxFixedArity \x3d (3));\n\n/** @this {Function} */\n(cljs.core.async.ioc_alts_BANG_.cljs$lang$applyTo \x3d (function (seq25228){\nvar G__25229 \x3d cljs.core.first(seq25228);\nvar seq25228__$1 \x3d cljs.core.next(seq25228);\nvar G__25230 \x3d cljs.core.first(seq25228__$1);\nvar seq25228__$2 \x3d cljs.core.next(seq25228__$1);\nvar G__25231 \x3d cljs.core.first(seq25228__$2);\nvar seq25228__$3 \x3d cljs.core.next(seq25228__$2);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25229,G__25230,G__25231,seq25228__$3);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.async.Mix}\n * @implements {cljs.core.async.Mux}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async25269 \x3d (function (change,solo_mode,pick,cs,calc_state,out,changed,solo_modes,attrs,meta25270){\nthis.change \x3d change;\nthis.solo_mode \x3d solo_mode;\nthis.pick \x3d pick;\nthis.cs \x3d cs;\nthis.calc_state \x3d calc_state;\nthis.out \x3d out;\nthis.changed \x3d changed;\nthis.solo_modes \x3d solo_modes;\nthis.attrs \x3d attrs;\nthis.meta25270 \x3d meta25270;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_25271,meta25270__$1){\nvar self__ \x3d this;\nvar _25271__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async25269(self__.change,self__.solo_mode,self__.pick,self__.cs,self__.calc_state,self__.out,self__.changed,self__.solo_modes,self__.attrs,meta25270__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_25271){\nvar self__ \x3d this;\nvar _25271__$1 \x3d this;\nreturn self__.meta25270;\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mux$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mux$muxch_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.out;\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mix$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mix$admix_STAR_$arity$2 \x3d (function (_,ch){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.cs,cljs.core.assoc,ch,cljs.core.PersistentArrayMap.EMPTY);\n\nreturn (self__.changed.cljs$core$IFn$_invoke$arity$0 ? self__.changed.cljs$core$IFn$_invoke$arity$0() : self__.changed.call(null, ));\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mix$unmix_STAR_$arity$2 \x3d (function (_,ch){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.cs,cljs.core.dissoc,ch);\n\nreturn (self__.changed.cljs$core$IFn$_invoke$arity$0 ? self__.changed.cljs$core$IFn$_invoke$arity$0() : self__.changed.call(null, ));\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mix$unmix_all_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.reset_BANG_(self__.cs,cljs.core.PersistentArrayMap.EMPTY);\n\nreturn (self__.changed.cljs$core$IFn$_invoke$arity$0 ? self__.changed.cljs$core$IFn$_invoke$arity$0() : self__.changed.call(null, ));\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mix$toggle_STAR_$arity$2 \x3d (function (_,state_map){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.cs,cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.merge_with,cljs.core.merge),state_map);\n\nreturn (self__.changed.cljs$core$IFn$_invoke$arity$0 ? self__.changed.cljs$core$IFn$_invoke$arity$0() : self__.changed.call(null, ));\n}));\n\n(cljs.core.async.t_cljs$core$async25269.prototype.cljs$core$async$Mix$solo_mode_STAR_$arity$2 \x3d (function (_,mode){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_((self__.solo_modes.cljs$core$IFn$_invoke$arity$1 ? self__.solo_modes.cljs$core$IFn$_invoke$arity$1(mode) : self__.solo_modes.call(null, mode)))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,[\x22mode must be one of: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.solo_modes)].join(\x27\x27),\x22\\n\x22,\x22(solo-modes mode)\x22].join(\x27\x27)));\n}\n\ncljs.core.reset_BANG_(self__.solo_mode,mode);\n\nreturn (self__.changed.cljs$core$IFn$_invoke$arity$0 ? self__.changed.cljs$core$IFn$_invoke$arity$0() : self__.changed.call(null, ));\n}));\n\n(cljs.core.async.t_cljs$core$async25269.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22change\x22,\x22change\x22,477485025,null),new cljs.core.Symbol(null,\x22solo-mode\x22,\x22solo-mode\x22,2031788074,null),new cljs.core.Symbol(null,\x22pick\x22,\x22pick\x22,1300068175,null),new cljs.core.Symbol(null,\x22cs\x22,\x22cs\x22,-117024463,null),new cljs.core.Symbol(null,\x22calc-state\x22,\x22calc-state\x22,-349968968,null),new cljs.core.Symbol(null,\x22out\x22,\x22out\x22,729986010,null),new cljs.core.Symbol(null,\x22changed\x22,\x22changed\x22,-2083710852,null),new cljs.core.Symbol(null,\x22solo-modes\x22,\x22solo-modes\x22,882180540,null),new cljs.core.Symbol(null,\x22attrs\x22,\x22attrs\x22,-450137186,null),new cljs.core.Symbol(null,\x22meta25270\x22,\x22meta25270\x22,-2106600825,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async25269.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async25269.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async25269\x22);\n\n(cljs.core.async.t_cljs$core$async25269.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async25269\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async25269.\n */\ncljs.core.async.__GT_t_cljs$core$async25269 \x3d (function cljs$core$async$__GT_t_cljs$core$async25269(change,solo_mode,pick,cs,calc_state,out,changed,solo_modes,attrs,meta25270){\nreturn (new cljs.core.async.t_cljs$core$async25269(change,solo_mode,pick,cs,calc_state,out,changed,solo_modes,attrs,meta25270));\n});\n\n\n/**\n * Creates and returns a mix of one or more input channels which will\n * be put on the supplied out channel. Input sources can be added to\n * the mix with \x27admix\x27, and removed with \x27unmix\x27. A mix supports\n * soloing, muting and pausing multiple inputs atomically using\n * \x27toggle\x27, and can solo using either muting or pausing as determined\n * by \x27solo-mode\x27.\n * \n * Each channel can have zero or more boolean modes set via \x27toggle\x27:\n * \n * :solo - when true, only this (ond other soloed) channel(s) will appear\n * in the mix output channel. :mute and :pause states of soloed\n * channels are ignored. If solo-mode is :mute, non-soloed\n * channels are muted, if :pause, non-soloed channels are\n * paused.\n * \n * :mute - muted channels will have their contents consumed but not included in the mix\n * :pause - paused channels will not have their contents consumed (and thus also not included in the mix)\n */\ncljs.core.async.mix \x3d (function cljs$core$async$mix(out){\nvar cs \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar solo_modes \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22pause\x22,\x22pause\x22,-2095325672),null,new cljs.core.Keyword(null,\x22mute\x22,\x22mute\x22,1151223646),null], null), null);\nvar attrs \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(solo_modes,new cljs.core.Keyword(null,\x22solo\x22,\x22solo\x22,-316350075));\nvar solo_mode \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22mute\x22,\x22mute\x22,1151223646));\nvar change \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(cljs.core.async.sliding_buffer((1)));\nvar changed \x3d (function (){\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(change,true);\n});\nvar pick \x3d (function (attr,chs){\nreturn cljs.core.reduce_kv((function (ret,c,v){\nif(cljs.core.truth_((attr.cljs$core$IFn$_invoke$arity$1 ? attr.cljs$core$IFn$_invoke$arity$1(v) : attr.call(null, v)))){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,c);\n} else {\nreturn ret;\n}\n}),cljs.core.PersistentHashSet.EMPTY,chs);\n});\nvar calc_state \x3d (function (){\nvar chs \x3d cljs.core.deref(cs);\nvar mode \x3d cljs.core.deref(solo_mode);\nvar solos \x3d pick(new cljs.core.Keyword(null,\x22solo\x22,\x22solo\x22,-316350075),chs);\nvar pauses \x3d pick(new cljs.core.Keyword(null,\x22pause\x22,\x22pause\x22,-2095325672),chs);\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22solos\x22,\x22solos\x22,1441458643),solos,new cljs.core.Keyword(null,\x22mutes\x22,\x22mutes\x22,1068806309),pick(new cljs.core.Keyword(null,\x22mute\x22,\x22mute\x22,1151223646),chs),new cljs.core.Keyword(null,\x22reads\x22,\x22reads\x22,-1215067361),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(mode,new cljs.core.Keyword(null,\x22pause\x22,\x22pause\x22,-2095325672))) \x26\x26 ((!(cljs.core.empty_QMARK_(solos))))))?cljs.core.vec(solos):cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(pauses,cljs.core.keys(chs)))),change)], null);\n});\nvar m \x3d (new cljs.core.async.t_cljs$core$async25269(change,solo_mode,pick,cs,calc_state,out,changed,solo_modes,attrs,cljs.core.PersistentArrayMap.EMPTY));\nvar c__23318__auto___27337 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_25398){\nvar state_val_25401 \x3d (state_25398[(1)]);\nif((state_val_25401 \x3d\x3d\x3d (7))){\nvar inst_25347 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nif(cljs.core.truth_(inst_25347)){\nvar statearr_25409_27338 \x3d state_25398__$1;\n(statearr_25409_27338[(1)] \x3d (8));\n\n} else {\nvar statearr_25412_27339 \x3d state_25398__$1;\n(statearr_25412_27339[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (20))){\nvar inst_25340 \x3d (state_25398[(7)]);\nvar state_25398__$1 \x3d state_25398;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_25398__$1,(23),out,inst_25340);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (1))){\nvar inst_25323 \x3d calc_state();\nvar inst_25324 \x3d cljs.core.__destructure_map(inst_25323);\nvar inst_25325 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25324,new cljs.core.Keyword(null,\x22solos\x22,\x22solos\x22,1441458643));\nvar inst_25326 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25324,new cljs.core.Keyword(null,\x22mutes\x22,\x22mutes\x22,1068806309));\nvar inst_25327 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25324,new cljs.core.Keyword(null,\x22reads\x22,\x22reads\x22,-1215067361));\nvar inst_25328 \x3d inst_25323;\nvar state_25398__$1 \x3d (function (){var statearr_25425 \x3d state_25398;\n(statearr_25425[(8)] \x3d inst_25325);\n\n(statearr_25425[(9)] \x3d inst_25326);\n\n(statearr_25425[(10)] \x3d inst_25327);\n\n(statearr_25425[(11)] \x3d inst_25328);\n\nreturn statearr_25425;\n})();\nvar statearr_25426_27340 \x3d state_25398__$1;\n(statearr_25426_27340[(2)] \x3d null);\n\n(statearr_25426_27340[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (24))){\nvar inst_25331 \x3d (state_25398[(12)]);\nvar inst_25328 \x3d inst_25331;\nvar state_25398__$1 \x3d (function (){var statearr_25432 \x3d state_25398;\n(statearr_25432[(11)] \x3d inst_25328);\n\nreturn statearr_25432;\n})();\nvar statearr_25433_27341 \x3d state_25398__$1;\n(statearr_25433_27341[(2)] \x3d null);\n\n(statearr_25433_27341[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (4))){\nvar inst_25342 \x3d (state_25398[(13)]);\nvar inst_25340 \x3d (state_25398[(7)]);\nvar inst_25339 \x3d (state_25398[(2)]);\nvar inst_25340__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_25339,(0),null);\nvar inst_25341 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_25339,(1),null);\nvar inst_25342__$1 \x3d (inst_25340__$1 \x3d\x3d null);\nvar state_25398__$1 \x3d (function (){var statearr_25439 \x3d state_25398;\n(statearr_25439[(14)] \x3d inst_25341);\n\n(statearr_25439[(13)] \x3d inst_25342__$1);\n\n(statearr_25439[(7)] \x3d inst_25340__$1);\n\nreturn statearr_25439;\n})();\nif(cljs.core.truth_(inst_25342__$1)){\nvar statearr_25440_27342 \x3d state_25398__$1;\n(statearr_25440_27342[(1)] \x3d (5));\n\n} else {\nvar statearr_25441_27343 \x3d state_25398__$1;\n(statearr_25441_27343[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (15))){\nvar inst_25362 \x3d (state_25398[(15)]);\nvar inst_25332 \x3d (state_25398[(16)]);\nvar inst_25362__$1 \x3d cljs.core.empty_QMARK_(inst_25332);\nvar state_25398__$1 \x3d (function (){var statearr_25442 \x3d state_25398;\n(statearr_25442[(15)] \x3d inst_25362__$1);\n\nreturn statearr_25442;\n})();\nif(inst_25362__$1){\nvar statearr_25443_27344 \x3d state_25398__$1;\n(statearr_25443_27344[(1)] \x3d (17));\n\n} else {\nvar statearr_25445_27346 \x3d state_25398__$1;\n(statearr_25445_27346[(1)] \x3d (18));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (21))){\nvar inst_25331 \x3d (state_25398[(12)]);\nvar inst_25328 \x3d inst_25331;\nvar state_25398__$1 \x3d (function (){var statearr_25446 \x3d state_25398;\n(statearr_25446[(11)] \x3d inst_25328);\n\nreturn statearr_25446;\n})();\nvar statearr_25447_27348 \x3d state_25398__$1;\n(statearr_25447_27348[(2)] \x3d null);\n\n(statearr_25447_27348[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (13))){\nvar inst_25354 \x3d (state_25398[(2)]);\nvar inst_25355 \x3d calc_state();\nvar inst_25328 \x3d inst_25355;\nvar state_25398__$1 \x3d (function (){var statearr_25449 \x3d state_25398;\n(statearr_25449[(17)] \x3d inst_25354);\n\n(statearr_25449[(11)] \x3d inst_25328);\n\nreturn statearr_25449;\n})();\nvar statearr_25451_27353 \x3d state_25398__$1;\n(statearr_25451_27353[(2)] \x3d null);\n\n(statearr_25451_27353[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (22))){\nvar inst_25382 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25452_27354 \x3d state_25398__$1;\n(statearr_25452_27354[(2)] \x3d inst_25382);\n\n(statearr_25452_27354[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (6))){\nvar inst_25341 \x3d (state_25398[(14)]);\nvar inst_25345 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(inst_25341,change);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25453_27358 \x3d state_25398__$1;\n(statearr_25453_27358[(2)] \x3d inst_25345);\n\n(statearr_25453_27358[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (25))){\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25454_27359 \x3d state_25398__$1;\n(statearr_25454_27359[(2)] \x3d null);\n\n(statearr_25454_27359[(1)] \x3d (26));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (17))){\nvar inst_25333 \x3d (state_25398[(18)]);\nvar inst_25341 \x3d (state_25398[(14)]);\nvar inst_25364 \x3d (inst_25333.cljs$core$IFn$_invoke$arity$1 ? inst_25333.cljs$core$IFn$_invoke$arity$1(inst_25341) : inst_25333.call(null, inst_25341));\nvar inst_25365 \x3d cljs.core.not(inst_25364);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25455_27360 \x3d state_25398__$1;\n(statearr_25455_27360[(2)] \x3d inst_25365);\n\n(statearr_25455_27360[(1)] \x3d (19));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (3))){\nvar inst_25386 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_25398__$1,inst_25386);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (12))){\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25456_27361 \x3d state_25398__$1;\n(statearr_25456_27361[(2)] \x3d null);\n\n(statearr_25456_27361[(1)] \x3d (13));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (2))){\nvar inst_25331 \x3d (state_25398[(12)]);\nvar inst_25328 \x3d (state_25398[(11)]);\nvar inst_25331__$1 \x3d cljs.core.__destructure_map(inst_25328);\nvar inst_25332 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25331__$1,new cljs.core.Keyword(null,\x22solos\x22,\x22solos\x22,1441458643));\nvar inst_25333 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25331__$1,new cljs.core.Keyword(null,\x22mutes\x22,\x22mutes\x22,1068806309));\nvar inst_25334 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25331__$1,new cljs.core.Keyword(null,\x22reads\x22,\x22reads\x22,-1215067361));\nvar state_25398__$1 \x3d (function (){var statearr_25465 \x3d state_25398;\n(statearr_25465[(18)] \x3d inst_25333);\n\n(statearr_25465[(16)] \x3d inst_25332);\n\n(statearr_25465[(12)] \x3d inst_25331__$1);\n\nreturn statearr_25465;\n})();\nreturn cljs.core.async.ioc_alts_BANG_(state_25398__$1,(4),inst_25334);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (23))){\nvar inst_25373 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nif(cljs.core.truth_(inst_25373)){\nvar statearr_25474_27364 \x3d state_25398__$1;\n(statearr_25474_27364[(1)] \x3d (24));\n\n} else {\nvar statearr_25475_27365 \x3d state_25398__$1;\n(statearr_25475_27365[(1)] \x3d (25));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (19))){\nvar inst_25368 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25477_27366 \x3d state_25398__$1;\n(statearr_25477_27366[(2)] \x3d inst_25368);\n\n(statearr_25477_27366[(1)] \x3d (16));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (11))){\nvar inst_25341 \x3d (state_25398[(14)]);\nvar inst_25351 \x3d cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cs,cljs.core.dissoc,inst_25341);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25479_27367 \x3d state_25398__$1;\n(statearr_25479_27367[(2)] \x3d inst_25351);\n\n(statearr_25479_27367[(1)] \x3d (13));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (9))){\nvar inst_25341 \x3d (state_25398[(14)]);\nvar inst_25332 \x3d (state_25398[(16)]);\nvar inst_25359 \x3d (state_25398[(19)]);\nvar inst_25359__$1 \x3d (inst_25332.cljs$core$IFn$_invoke$arity$1 ? inst_25332.cljs$core$IFn$_invoke$arity$1(inst_25341) : inst_25332.call(null, inst_25341));\nvar state_25398__$1 \x3d (function (){var statearr_25483 \x3d state_25398;\n(statearr_25483[(19)] \x3d inst_25359__$1);\n\nreturn statearr_25483;\n})();\nif(cljs.core.truth_(inst_25359__$1)){\nvar statearr_25484_27368 \x3d state_25398__$1;\n(statearr_25484_27368[(1)] \x3d (14));\n\n} else {\nvar statearr_25487_27369 \x3d state_25398__$1;\n(statearr_25487_27369[(1)] \x3d (15));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (5))){\nvar inst_25342 \x3d (state_25398[(13)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25495_27370 \x3d state_25398__$1;\n(statearr_25495_27370[(2)] \x3d inst_25342);\n\n(statearr_25495_27370[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (14))){\nvar inst_25359 \x3d (state_25398[(19)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25502_27371 \x3d state_25398__$1;\n(statearr_25502_27371[(2)] \x3d inst_25359);\n\n(statearr_25502_27371[(1)] \x3d (16));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (26))){\nvar inst_25378 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25503_27375 \x3d state_25398__$1;\n(statearr_25503_27375[(2)] \x3d inst_25378);\n\n(statearr_25503_27375[(1)] \x3d (22));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (16))){\nvar inst_25370 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nif(cljs.core.truth_(inst_25370)){\nvar statearr_25509_27376 \x3d state_25398__$1;\n(statearr_25509_27376[(1)] \x3d (20));\n\n} else {\nvar statearr_25514_27377 \x3d state_25398__$1;\n(statearr_25514_27377[(1)] \x3d (21));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (10))){\nvar inst_25384 \x3d (state_25398[(2)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25515_27378 \x3d state_25398__$1;\n(statearr_25515_27378[(2)] \x3d inst_25384);\n\n(statearr_25515_27378[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (18))){\nvar inst_25362 \x3d (state_25398[(15)]);\nvar state_25398__$1 \x3d state_25398;\nvar statearr_25519_27379 \x3d state_25398__$1;\n(statearr_25519_27379[(2)] \x3d inst_25362);\n\n(statearr_25519_27379[(1)] \x3d (19));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25401 \x3d\x3d\x3d (8))){\nvar inst_25340 \x3d (state_25398[(7)]);\nvar inst_25349 \x3d (inst_25340 \x3d\x3d null);\nvar state_25398__$1 \x3d state_25398;\nif(cljs.core.truth_(inst_25349)){\nvar statearr_25520_27380 \x3d state_25398__$1;\n(statearr_25520_27380[(1)] \x3d (11));\n\n} else {\nvar statearr_25521_27381 \x3d state_25398__$1;\n(statearr_25521_27381[(1)] \x3d (12));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$mix_$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$mix_$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_25533 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_25533[(0)] \x3d cljs$core$async$mix_$_state_machine__21869__auto__);\n\n(statearr_25533[(1)] \x3d (1));\n\nreturn statearr_25533;\n});\nvar cljs$core$async$mix_$_state_machine__21869__auto____1 \x3d (function (state_25398){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_25398);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e25535){var ex__21872__auto__ \x3d e25535;\nvar statearr_25536_27388 \x3d state_25398;\n(statearr_25536_27388[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_25398[(4)]))){\nvar statearr_25540_27389 \x3d state_25398;\n(statearr_25540_27389[(1)] \x3d cljs.core.first((state_25398[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27390 \x3d state_25398;\nstate_25398 \x3d G__27390;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$mix_$_state_machine__21869__auto__ \x3d function(state_25398){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$mix_$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$mix_$_state_machine__21869__auto____1.call(this,state_25398);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$mix_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$mix_$_state_machine__21869__auto____0;\ncljs$core$async$mix_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$mix_$_state_machine__21869__auto____1;\nreturn cljs$core$async$mix_$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_25547 \x3d f__23319__auto__();\n(statearr_25547[(6)] \x3d c__23318__auto___27337);\n\nreturn statearr_25547;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn m;\n});\n/**\n * Adds ch as an input to the mix\n */\ncljs.core.async.admix \x3d (function cljs$core$async$admix(mix,ch){\nreturn cljs.core.async.admix_STAR_(mix,ch);\n});\n/**\n * Removes ch as an input to the mix\n */\ncljs.core.async.unmix \x3d (function cljs$core$async$unmix(mix,ch){\nreturn cljs.core.async.unmix_STAR_(mix,ch);\n});\n/**\n * removes all inputs from the mix\n */\ncljs.core.async.unmix_all \x3d (function cljs$core$async$unmix_all(mix){\nreturn cljs.core.async.unmix_all_STAR_(mix);\n});\n/**\n * Atomically sets the state(s) of one or more channels in a mix. The\n * state map is a map of channels -\x3e channel-state-map. A\n * channel-state-map is a map of attrs -\x3e boolean, where attr is one or\n * more of :mute, :pause or :solo. Any states supplied are merged with\n * the current state.\n * \n * Note that channels can be added to a mix via toggle, which can be\n * used to add channels in a particular (e.g. paused) state.\n */\ncljs.core.async.toggle \x3d (function cljs$core$async$toggle(mix,state_map){\nreturn cljs.core.async.toggle_STAR_(mix,state_map);\n});\n/**\n * Sets the solo mode of the mix. mode must be one of :mute or :pause\n */\ncljs.core.async.solo_mode \x3d (function cljs$core$async$solo_mode(mix,mode){\nreturn cljs.core.async.solo_mode_STAR_(mix,mode);\n});\n\n/**\n * @interface\n */\ncljs.core.async.Pub \x3d function(){};\n\nvar cljs$core$async$Pub$sub_STAR_$dyn_27394 \x3d (function (p,v,ch,close_QMARK_){\nvar x__5350__auto__ \x3d (((p \x3d\x3d null))?null:p);\nvar m__5351__auto__ \x3d (cljs.core.async.sub_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$4(p,v,ch,close_QMARK_) : m__5351__auto__.call(null, p,v,ch,close_QMARK_));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.sub_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$4(p,v,ch,close_QMARK_) : m__5349__auto__.call(null, p,v,ch,close_QMARK_));\n} else {\nthrow cljs.core.missing_protocol(\x22Pub.sub*\x22,p);\n}\n}\n});\ncljs.core.async.sub_STAR_ \x3d (function cljs$core$async$sub_STAR_(p,v,ch,close_QMARK_){\nif((((!((p \x3d\x3d null)))) \x26\x26 ((!((p.cljs$core$async$Pub$sub_STAR_$arity$4 \x3d\x3d null)))))){\nreturn p.cljs$core$async$Pub$sub_STAR_$arity$4(p,v,ch,close_QMARK_);\n} else {\nreturn cljs$core$async$Pub$sub_STAR_$dyn_27394(p,v,ch,close_QMARK_);\n}\n});\n\nvar cljs$core$async$Pub$unsub_STAR_$dyn_27395 \x3d (function (p,v,ch){\nvar x__5350__auto__ \x3d (((p \x3d\x3d null))?null:p);\nvar m__5351__auto__ \x3d (cljs.core.async.unsub_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(p,v,ch) : m__5351__auto__.call(null, p,v,ch));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.unsub_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(p,v,ch) : m__5349__auto__.call(null, p,v,ch));\n} else {\nthrow cljs.core.missing_protocol(\x22Pub.unsub*\x22,p);\n}\n}\n});\ncljs.core.async.unsub_STAR_ \x3d (function cljs$core$async$unsub_STAR_(p,v,ch){\nif((((!((p \x3d\x3d null)))) \x26\x26 ((!((p.cljs$core$async$Pub$unsub_STAR_$arity$3 \x3d\x3d null)))))){\nreturn p.cljs$core$async$Pub$unsub_STAR_$arity$3(p,v,ch);\n} else {\nreturn cljs$core$async$Pub$unsub_STAR_$dyn_27395(p,v,ch);\n}\n});\n\nvar cljs$core$async$Pub$unsub_all_STAR_$dyn_27396 \x3d (function() {\nvar G__27397 \x3d null;\nvar G__27397__1 \x3d (function (p){\nvar x__5350__auto__ \x3d (((p \x3d\x3d null))?null:p);\nvar m__5351__auto__ \x3d (cljs.core.async.unsub_all_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(p) : m__5351__auto__.call(null, p));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.unsub_all_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(p) : m__5349__auto__.call(null, p));\n} else {\nthrow cljs.core.missing_protocol(\x22Pub.unsub-all*\x22,p);\n}\n}\n});\nvar G__27397__2 \x3d (function (p,v){\nvar x__5350__auto__ \x3d (((p \x3d\x3d null))?null:p);\nvar m__5351__auto__ \x3d (cljs.core.async.unsub_all_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(p,v) : m__5351__auto__.call(null, p,v));\n} else {\nvar m__5349__auto__ \x3d (cljs.core.async.unsub_all_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(p,v) : m__5349__auto__.call(null, p,v));\n} else {\nthrow cljs.core.missing_protocol(\x22Pub.unsub-all*\x22,p);\n}\n}\n});\nG__27397 \x3d function(p,v){\nswitch(arguments.length){\ncase 1:\nreturn G__27397__1.call(this,p);\ncase 2:\nreturn G__27397__2.call(this,p,v);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__27397.cljs$core$IFn$_invoke$arity$1 \x3d G__27397__1;\nG__27397.cljs$core$IFn$_invoke$arity$2 \x3d G__27397__2;\nreturn G__27397;\n})()\n;\ncljs.core.async.unsub_all_STAR_ \x3d (function cljs$core$async$unsub_all_STAR_(var_args){\nvar G__25580 \x3d arguments.length;\nswitch (G__25580) {\ncase 1:\nreturn cljs.core.async.unsub_all_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.unsub_all_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.unsub_all_STAR_.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nif((((!((p \x3d\x3d null)))) \x26\x26 ((!((p.cljs$core$async$Pub$unsub_all_STAR_$arity$1 \x3d\x3d null)))))){\nreturn p.cljs$core$async$Pub$unsub_all_STAR_$arity$1(p);\n} else {\nreturn cljs$core$async$Pub$unsub_all_STAR_$dyn_27396(p);\n}\n}));\n\n(cljs.core.async.unsub_all_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,v){\nif((((!((p \x3d\x3d null)))) \x26\x26 ((!((p.cljs$core$async$Pub$unsub_all_STAR_$arity$2 \x3d\x3d null)))))){\nreturn p.cljs$core$async$Pub$unsub_all_STAR_$arity$2(p,v);\n} else {\nreturn cljs$core$async$Pub$unsub_all_STAR_$dyn_27396(p,v);\n}\n}));\n\n(cljs.core.async.unsub_all_STAR_.cljs$lang$maxFixedArity \x3d 2);\n\n\n\n/**\n* @constructor\n * @implements {cljs.core.async.Pub}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.async.Mux}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async25598 \x3d (function (ch,topic_fn,buf_fn,mults,ensure_mult,meta25599){\nthis.ch \x3d ch;\nthis.topic_fn \x3d topic_fn;\nthis.buf_fn \x3d buf_fn;\nthis.mults \x3d mults;\nthis.ensure_mult \x3d ensure_mult;\nthis.meta25599 \x3d meta25599;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_25600,meta25599__$1){\nvar self__ \x3d this;\nvar _25600__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async25598(self__.ch,self__.topic_fn,self__.buf_fn,self__.mults,self__.ensure_mult,meta25599__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_25600){\nvar self__ \x3d this;\nvar _25600__$1 \x3d this;\nreturn self__.meta25599;\n}));\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Mux$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Mux$muxch_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.ch;\n}));\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Pub$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Pub$sub_STAR_$arity$4 \x3d (function (p,topic,ch__$1,close_QMARK_){\nvar self__ \x3d this;\nvar p__$1 \x3d this;\nvar m \x3d (self__.ensure_mult.cljs$core$IFn$_invoke$arity$1 ? self__.ensure_mult.cljs$core$IFn$_invoke$arity$1(topic) : self__.ensure_mult.call(null, topic));\nreturn cljs.core.async.tap.cljs$core$IFn$_invoke$arity$3(m,ch__$1,close_QMARK_);\n}));\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Pub$unsub_STAR_$arity$3 \x3d (function (p,topic,ch__$1){\nvar self__ \x3d this;\nvar p__$1 \x3d this;\nvar temp__5804__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.mults),topic);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar m \x3d temp__5804__auto__;\nreturn cljs.core.async.untap(m,ch__$1);\n} else {\nreturn null;\n}\n}));\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Pub$unsub_all_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reset_BANG_(self__.mults,cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(cljs.core.async.t_cljs$core$async25598.prototype.cljs$core$async$Pub$unsub_all_STAR_$arity$2 \x3d (function (_,topic){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.mults,cljs.core.dissoc,topic);\n}));\n\n(cljs.core.async.t_cljs$core$async25598.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22ch\x22,\x22ch\x22,1085813622,null),new cljs.core.Symbol(null,\x22topic-fn\x22,\x22topic-fn\x22,-862449736,null),new cljs.core.Symbol(null,\x22buf-fn\x22,\x22buf-fn\x22,-1200281591,null),new cljs.core.Symbol(null,\x22mults\x22,\x22mults\x22,-461114485,null),new cljs.core.Symbol(null,\x22ensure-mult\x22,\x22ensure-mult\x22,1796584816,null),new cljs.core.Symbol(null,\x22meta25599\x22,\x22meta25599\x22,-2023036589,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async25598.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async25598.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async25598\x22);\n\n(cljs.core.async.t_cljs$core$async25598.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async25598\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async25598.\n */\ncljs.core.async.__GT_t_cljs$core$async25598 \x3d (function cljs$core$async$__GT_t_cljs$core$async25598(ch,topic_fn,buf_fn,mults,ensure_mult,meta25599){\nreturn (new cljs.core.async.t_cljs$core$async25598(ch,topic_fn,buf_fn,mults,ensure_mult,meta25599));\n});\n\n\n/**\n * Creates and returns a pub(lication) of the supplied channel,\n * partitioned into topics by the topic-fn. topic-fn will be applied to\n * each value on the channel and the result will determine the \x27topic\x27\n * on which that value will be put. Channels can be subscribed to\n * receive copies of topics using \x27sub\x27, and unsubscribed using\n * \x27unsub\x27. Each topic will be handled by an internal mult on a\n * dedicated channel. By default these internal channels are\n * unbuffered, but a buf-fn can be supplied which, given a topic,\n * creates a buffer with desired properties.\n * \n * Each item is distributed to all subs in parallel and synchronously,\n * i.e. each sub must accept before the next item is distributed. Use\n * buffering/windowing to prevent slow subs from holding up the pub.\n * \n * Items received when there are no matching subs get dropped.\n * \n * Note that if buf-fns are used then each topic is handled\n * asynchronously, i.e. if a channel is subscribed to more than one\n * topic it should not expect them to be interleaved identically with\n * the source.\n */\ncljs.core.async.pub \x3d (function cljs$core$async$pub(var_args){\nvar G__25587 \x3d arguments.length;\nswitch (G__25587) {\ncase 2:\nreturn cljs.core.async.pub.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.pub.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.pub.cljs$core$IFn$_invoke$arity$2 \x3d (function (ch,topic_fn){\nreturn cljs.core.async.pub.cljs$core$IFn$_invoke$arity$3(ch,topic_fn,cljs.core.constantly(null));\n}));\n\n(cljs.core.async.pub.cljs$core$IFn$_invoke$arity$3 \x3d (function (ch,topic_fn,buf_fn){\nvar mults \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar ensure_mult \x3d (function (topic){\nvar or__5002__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(mults),topic);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(mults,(function (p1__25585_SHARP_){\nif(cljs.core.truth_((p1__25585_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__25585_SHARP_.cljs$core$IFn$_invoke$arity$1(topic) : p1__25585_SHARP_.call(null, topic)))){\nreturn p1__25585_SHARP_;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__25585_SHARP_,topic,cljs.core.async.mult(cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((buf_fn.cljs$core$IFn$_invoke$arity$1 ? buf_fn.cljs$core$IFn$_invoke$arity$1(topic) : buf_fn.call(null, topic)))));\n}\n})),topic);\n}\n});\nvar p \x3d (new cljs.core.async.t_cljs$core$async25598(ch,topic_fn,buf_fn,mults,ensure_mult,cljs.core.PersistentArrayMap.EMPTY));\nvar c__23318__auto___27413 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_25698){\nvar state_val_25699 \x3d (state_25698[(1)]);\nif((state_val_25699 \x3d\x3d\x3d (7))){\nvar inst_25694 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25708_27414 \x3d state_25698__$1;\n(statearr_25708_27414[(2)] \x3d inst_25694);\n\n(statearr_25708_27414[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (20))){\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25710_27415 \x3d state_25698__$1;\n(statearr_25710_27415[(2)] \x3d null);\n\n(statearr_25710_27415[(1)] \x3d (21));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (1))){\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25713_27416 \x3d state_25698__$1;\n(statearr_25713_27416[(2)] \x3d null);\n\n(statearr_25713_27416[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (24))){\nvar inst_25671 \x3d (state_25698[(7)]);\nvar inst_25686 \x3d cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(mults,cljs.core.dissoc,inst_25671);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25715_27417 \x3d state_25698__$1;\n(statearr_25715_27417[(2)] \x3d inst_25686);\n\n(statearr_25715_27417[(1)] \x3d (25));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (4))){\nvar inst_25621 \x3d (state_25698[(8)]);\nvar inst_25621__$1 \x3d (state_25698[(2)]);\nvar inst_25622 \x3d (inst_25621__$1 \x3d\x3d null);\nvar state_25698__$1 \x3d (function (){var statearr_25716 \x3d state_25698;\n(statearr_25716[(8)] \x3d inst_25621__$1);\n\nreturn statearr_25716;\n})();\nif(cljs.core.truth_(inst_25622)){\nvar statearr_25717_27418 \x3d state_25698__$1;\n(statearr_25717_27418[(1)] \x3d (5));\n\n} else {\nvar statearr_25718_27419 \x3d state_25698__$1;\n(statearr_25718_27419[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (15))){\nvar inst_25665 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25723_27420 \x3d state_25698__$1;\n(statearr_25723_27420[(2)] \x3d inst_25665);\n\n(statearr_25723_27420[(1)] \x3d (12));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (21))){\nvar inst_25691 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d (function (){var statearr_25726 \x3d state_25698;\n(statearr_25726[(9)] \x3d inst_25691);\n\nreturn statearr_25726;\n})();\nvar statearr_25727_27421 \x3d state_25698__$1;\n(statearr_25727_27421[(2)] \x3d null);\n\n(statearr_25727_27421[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (13))){\nvar inst_25647 \x3d (state_25698[(10)]);\nvar inst_25649 \x3d cljs.core.chunked_seq_QMARK_(inst_25647);\nvar state_25698__$1 \x3d state_25698;\nif(inst_25649){\nvar statearr_25728_27422 \x3d state_25698__$1;\n(statearr_25728_27422[(1)] \x3d (16));\n\n} else {\nvar statearr_25729_27423 \x3d state_25698__$1;\n(statearr_25729_27423[(1)] \x3d (17));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (22))){\nvar inst_25682 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nif(cljs.core.truth_(inst_25682)){\nvar statearr_25733_27424 \x3d state_25698__$1;\n(statearr_25733_27424[(1)] \x3d (23));\n\n} else {\nvar statearr_25734_27425 \x3d state_25698__$1;\n(statearr_25734_27425[(1)] \x3d (24));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (6))){\nvar inst_25678 \x3d (state_25698[(11)]);\nvar inst_25621 \x3d (state_25698[(8)]);\nvar inst_25671 \x3d (state_25698[(7)]);\nvar inst_25671__$1 \x3d (topic_fn.cljs$core$IFn$_invoke$arity$1 ? topic_fn.cljs$core$IFn$_invoke$arity$1(inst_25621) : topic_fn.call(null, inst_25621));\nvar inst_25676 \x3d cljs.core.deref(mults);\nvar inst_25678__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(inst_25676,inst_25671__$1);\nvar state_25698__$1 \x3d (function (){var statearr_25738 \x3d state_25698;\n(statearr_25738[(11)] \x3d inst_25678__$1);\n\n(statearr_25738[(7)] \x3d inst_25671__$1);\n\nreturn statearr_25738;\n})();\nif(cljs.core.truth_(inst_25678__$1)){\nvar statearr_25741_27430 \x3d state_25698__$1;\n(statearr_25741_27430[(1)] \x3d (19));\n\n} else {\nvar statearr_25742_27431 \x3d state_25698__$1;\n(statearr_25742_27431[(1)] \x3d (20));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (25))){\nvar inst_25688 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25743_27432 \x3d state_25698__$1;\n(statearr_25743_27432[(2)] \x3d inst_25688);\n\n(statearr_25743_27432[(1)] \x3d (21));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (17))){\nvar inst_25647 \x3d (state_25698[(10)]);\nvar inst_25656 \x3d cljs.core.first(inst_25647);\nvar inst_25657 \x3d cljs.core.async.muxch_STAR_(inst_25656);\nvar inst_25658 \x3d cljs.core.async.close_BANG_(inst_25657);\nvar inst_25659 \x3d cljs.core.next(inst_25647);\nvar inst_25633 \x3d inst_25659;\nvar inst_25634 \x3d null;\nvar inst_25635 \x3d (0);\nvar inst_25636 \x3d (0);\nvar state_25698__$1 \x3d (function (){var statearr_25747 \x3d state_25698;\n(statearr_25747[(12)] \x3d inst_25634);\n\n(statearr_25747[(13)] \x3d inst_25658);\n\n(statearr_25747[(14)] \x3d inst_25633);\n\n(statearr_25747[(15)] \x3d inst_25635);\n\n(statearr_25747[(16)] \x3d inst_25636);\n\nreturn statearr_25747;\n})();\nvar statearr_25748_27434 \x3d state_25698__$1;\n(statearr_25748_27434[(2)] \x3d null);\n\n(statearr_25748_27434[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (3))){\nvar inst_25696 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_25698__$1,inst_25696);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (12))){\nvar inst_25667 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25750_27435 \x3d state_25698__$1;\n(statearr_25750_27435[(2)] \x3d inst_25667);\n\n(statearr_25750_27435[(1)] \x3d (9));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (2))){\nvar state_25698__$1 \x3d state_25698;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_25698__$1,(4),ch);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (23))){\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25752_27436 \x3d state_25698__$1;\n(statearr_25752_27436[(2)] \x3d null);\n\n(statearr_25752_27436[(1)] \x3d (25));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (19))){\nvar inst_25678 \x3d (state_25698[(11)]);\nvar inst_25621 \x3d (state_25698[(8)]);\nvar inst_25680 \x3d cljs.core.async.muxch_STAR_(inst_25678);\nvar state_25698__$1 \x3d state_25698;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_25698__$1,(22),inst_25680,inst_25621);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (11))){\nvar inst_25647 \x3d (state_25698[(10)]);\nvar inst_25633 \x3d (state_25698[(14)]);\nvar inst_25647__$1 \x3d cljs.core.seq(inst_25633);\nvar state_25698__$1 \x3d (function (){var statearr_25754 \x3d state_25698;\n(statearr_25754[(10)] \x3d inst_25647__$1);\n\nreturn statearr_25754;\n})();\nif(inst_25647__$1){\nvar statearr_25755_27437 \x3d state_25698__$1;\n(statearr_25755_27437[(1)] \x3d (13));\n\n} else {\nvar statearr_25756_27438 \x3d state_25698__$1;\n(statearr_25756_27438[(1)] \x3d (14));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (9))){\nvar inst_25669 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25757_27439 \x3d state_25698__$1;\n(statearr_25757_27439[(2)] \x3d inst_25669);\n\n(statearr_25757_27439[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (5))){\nvar inst_25630 \x3d cljs.core.deref(mults);\nvar inst_25631 \x3d cljs.core.vals(inst_25630);\nvar inst_25632 \x3d cljs.core.seq(inst_25631);\nvar inst_25633 \x3d inst_25632;\nvar inst_25634 \x3d null;\nvar inst_25635 \x3d (0);\nvar inst_25636 \x3d (0);\nvar state_25698__$1 \x3d (function (){var statearr_25765 \x3d state_25698;\n(statearr_25765[(12)] \x3d inst_25634);\n\n(statearr_25765[(14)] \x3d inst_25633);\n\n(statearr_25765[(15)] \x3d inst_25635);\n\n(statearr_25765[(16)] \x3d inst_25636);\n\nreturn statearr_25765;\n})();\nvar statearr_25766_27440 \x3d state_25698__$1;\n(statearr_25766_27440[(2)] \x3d null);\n\n(statearr_25766_27440[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (14))){\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25770_27441 \x3d state_25698__$1;\n(statearr_25770_27441[(2)] \x3d null);\n\n(statearr_25770_27441[(1)] \x3d (15));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (16))){\nvar inst_25647 \x3d (state_25698[(10)]);\nvar inst_25651 \x3d cljs.core.chunk_first(inst_25647);\nvar inst_25652 \x3d cljs.core.chunk_rest(inst_25647);\nvar inst_25653 \x3d cljs.core.count(inst_25651);\nvar inst_25633 \x3d inst_25652;\nvar inst_25634 \x3d inst_25651;\nvar inst_25635 \x3d inst_25653;\nvar inst_25636 \x3d (0);\nvar state_25698__$1 \x3d (function (){var statearr_25783 \x3d state_25698;\n(statearr_25783[(12)] \x3d inst_25634);\n\n(statearr_25783[(14)] \x3d inst_25633);\n\n(statearr_25783[(15)] \x3d inst_25635);\n\n(statearr_25783[(16)] \x3d inst_25636);\n\nreturn statearr_25783;\n})();\nvar statearr_25793_27444 \x3d state_25698__$1;\n(statearr_25793_27444[(2)] \x3d null);\n\n(statearr_25793_27444[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (10))){\nvar inst_25634 \x3d (state_25698[(12)]);\nvar inst_25633 \x3d (state_25698[(14)]);\nvar inst_25635 \x3d (state_25698[(15)]);\nvar inst_25636 \x3d (state_25698[(16)]);\nvar inst_25641 \x3d cljs.core._nth(inst_25634,inst_25636);\nvar inst_25642 \x3d cljs.core.async.muxch_STAR_(inst_25641);\nvar inst_25643 \x3d cljs.core.async.close_BANG_(inst_25642);\nvar inst_25644 \x3d (inst_25636 + (1));\nvar tmp25767 \x3d inst_25634;\nvar tmp25768 \x3d inst_25633;\nvar tmp25769 \x3d inst_25635;\nvar inst_25633__$1 \x3d tmp25768;\nvar inst_25634__$1 \x3d tmp25767;\nvar inst_25635__$1 \x3d tmp25769;\nvar inst_25636__$1 \x3d inst_25644;\nvar state_25698__$1 \x3d (function (){var statearr_25814 \x3d state_25698;\n(statearr_25814[(12)] \x3d inst_25634__$1);\n\n(statearr_25814[(17)] \x3d inst_25643);\n\n(statearr_25814[(14)] \x3d inst_25633__$1);\n\n(statearr_25814[(15)] \x3d inst_25635__$1);\n\n(statearr_25814[(16)] \x3d inst_25636__$1);\n\nreturn statearr_25814;\n})();\nvar statearr_25820_27445 \x3d state_25698__$1;\n(statearr_25820_27445[(2)] \x3d null);\n\n(statearr_25820_27445[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (18))){\nvar inst_25662 \x3d (state_25698[(2)]);\nvar state_25698__$1 \x3d state_25698;\nvar statearr_25826_27446 \x3d state_25698__$1;\n(statearr_25826_27446[(2)] \x3d inst_25662);\n\n(statearr_25826_27446[(1)] \x3d (15));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25699 \x3d\x3d\x3d (8))){\nvar inst_25635 \x3d (state_25698[(15)]);\nvar inst_25636 \x3d (state_25698[(16)]);\nvar inst_25638 \x3d (inst_25636 \x3c inst_25635);\nvar inst_25639 \x3d inst_25638;\nvar state_25698__$1 \x3d state_25698;\nif(cljs.core.truth_(inst_25639)){\nvar statearr_25827_27450 \x3d state_25698__$1;\n(statearr_25827_27450[(1)] \x3d (10));\n\n} else {\nvar statearr_25828_27451 \x3d state_25698__$1;\n(statearr_25828_27451[(1)] \x3d (11));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_25839 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_25839[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_25839[(1)] \x3d (1));\n\nreturn statearr_25839;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_25698){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_25698);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e25841){var ex__21872__auto__ \x3d e25841;\nvar statearr_25842_27452 \x3d state_25698;\n(statearr_25842_27452[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_25698[(4)]))){\nvar statearr_25843_27453 \x3d state_25698;\n(statearr_25843_27453[(1)] \x3d cljs.core.first((state_25698[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27454 \x3d state_25698;\nstate_25698 \x3d G__27454;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_25698){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_25698);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_25844 \x3d f__23319__auto__();\n(statearr_25844[(6)] \x3d c__23318__auto___27413);\n\nreturn statearr_25844;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn p;\n}));\n\n(cljs.core.async.pub.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Subscribes a channel to a topic of a pub.\n * \n * By default the channel will be closed when the source closes,\n * but can be determined by the close? parameter.\n */\ncljs.core.async.sub \x3d (function cljs$core$async$sub(var_args){\nvar G__25849 \x3d arguments.length;\nswitch (G__25849) {\ncase 3:\nreturn cljs.core.async.sub.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core.async.sub.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.sub.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,topic,ch){\nreturn cljs.core.async.sub.cljs$core$IFn$_invoke$arity$4(p,topic,ch,true);\n}));\n\n(cljs.core.async.sub.cljs$core$IFn$_invoke$arity$4 \x3d (function (p,topic,ch,close_QMARK_){\nreturn cljs.core.async.sub_STAR_(p,topic,ch,close_QMARK_);\n}));\n\n(cljs.core.async.sub.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Unsubscribes a channel from a topic of a pub\n */\ncljs.core.async.unsub \x3d (function cljs$core$async$unsub(p,topic,ch){\nreturn cljs.core.async.unsub_STAR_(p,topic,ch);\n});\n/**\n * Unsubscribes all channels from a pub, or a topic of a pub\n */\ncljs.core.async.unsub_all \x3d (function cljs$core$async$unsub_all(var_args){\nvar G__25859 \x3d arguments.length;\nswitch (G__25859) {\ncase 1:\nreturn cljs.core.async.unsub_all.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.unsub_all.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.unsub_all.cljs$core$IFn$_invoke$arity$1 \x3d (function (p){\nreturn cljs.core.async.unsub_all_STAR_(p);\n}));\n\n(cljs.core.async.unsub_all.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,topic){\nreturn cljs.core.async.unsub_all_STAR_(p,topic);\n}));\n\n(cljs.core.async.unsub_all.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Takes a function and a collection of source channels, and returns a\n * channel which contains the values produced by applying f to the set\n * of first items taken from each source channel, followed by applying\n * f to the set of second items from each channel, until any one of the\n * channels is closed, at which point the output channel will be\n * closed. The returned channel will be unbuffered by default, or a\n * buf-or-n can be supplied\n */\ncljs.core.async.map \x3d (function cljs$core$async$map(var_args){\nvar G__25879 \x3d arguments.length;\nswitch (G__25879) {\ncase 2:\nreturn cljs.core.async.map.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.map.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.map.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,chs){\nreturn cljs.core.async.map.cljs$core$IFn$_invoke$arity$3(f,chs,null);\n}));\n\n(cljs.core.async.map.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,chs,buf_or_n){\nvar chs__$1 \x3d cljs.core.vec(chs);\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar cnt \x3d cljs.core.count(chs__$1);\nvar rets \x3d cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(cnt);\nvar dchan \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\nvar dctr \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\nvar done \x3d cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (i){\nreturn (function (ret){\n(rets[i] \x3d ret);\n\nif((cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(dctr,cljs.core.dec) \x3d\x3d\x3d (0))){\nreturn cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(dchan,rets.slice((0)));\n} else {\nreturn null;\n}\n});\n}),cljs.core.range.cljs$core$IFn$_invoke$arity$1(cnt));\nif((cnt \x3d\x3d\x3d (0))){\ncljs.core.async.close_BANG_(out);\n} else {\nvar c__23318__auto___27465 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_25934){\nvar state_val_25935 \x3d (state_25934[(1)]);\nif((state_val_25935 \x3d\x3d\x3d (7))){\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25938_27466 \x3d state_25934__$1;\n(statearr_25938_27466[(2)] \x3d null);\n\n(statearr_25938_27466[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (1))){\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25939_27467 \x3d state_25934__$1;\n(statearr_25939_27467[(2)] \x3d null);\n\n(statearr_25939_27467[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (4))){\nvar inst_25890 \x3d (state_25934[(7)]);\nvar inst_25891 \x3d (state_25934[(8)]);\nvar inst_25893 \x3d (inst_25891 \x3c inst_25890);\nvar state_25934__$1 \x3d state_25934;\nif(cljs.core.truth_(inst_25893)){\nvar statearr_25940_27468 \x3d state_25934__$1;\n(statearr_25940_27468[(1)] \x3d (6));\n\n} else {\nvar statearr_25941_27469 \x3d state_25934__$1;\n(statearr_25941_27469[(1)] \x3d (7));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (15))){\nvar inst_25920 \x3d (state_25934[(9)]);\nvar inst_25925 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,inst_25920);\nvar state_25934__$1 \x3d state_25934;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_25934__$1,(17),out,inst_25925);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (13))){\nvar inst_25920 \x3d (state_25934[(9)]);\nvar inst_25920__$1 \x3d (state_25934[(2)]);\nvar inst_25921 \x3d cljs.core.some(cljs.core.nil_QMARK_,inst_25920__$1);\nvar state_25934__$1 \x3d (function (){var statearr_25944 \x3d state_25934;\n(statearr_25944[(9)] \x3d inst_25920__$1);\n\nreturn statearr_25944;\n})();\nif(cljs.core.truth_(inst_25921)){\nvar statearr_25945_27474 \x3d state_25934__$1;\n(statearr_25945_27474[(1)] \x3d (14));\n\n} else {\nvar statearr_25946_27475 \x3d state_25934__$1;\n(statearr_25946_27475[(1)] \x3d (15));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (6))){\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25948_27476 \x3d state_25934__$1;\n(statearr_25948_27476[(2)] \x3d null);\n\n(statearr_25948_27476[(1)] \x3d (9));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (17))){\nvar inst_25927 \x3d (state_25934[(2)]);\nvar state_25934__$1 \x3d (function (){var statearr_25952 \x3d state_25934;\n(statearr_25952[(10)] \x3d inst_25927);\n\nreturn statearr_25952;\n})();\nvar statearr_25953_27477 \x3d state_25934__$1;\n(statearr_25953_27477[(2)] \x3d null);\n\n(statearr_25953_27477[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (3))){\nvar inst_25932 \x3d (state_25934[(2)]);\nvar state_25934__$1 \x3d state_25934;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_25934__$1,inst_25932);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (12))){\nvar _ \x3d (function (){var statearr_25958 \x3d state_25934;\n(statearr_25958[(4)] \x3d cljs.core.rest((state_25934[(4)])));\n\nreturn statearr_25958;\n})();\nvar state_25934__$1 \x3d state_25934;\nvar ex25950 \x3d (state_25934__$1[(2)]);\nvar statearr_25963_27478 \x3d state_25934__$1;\n(statearr_25963_27478[(5)] \x3d ex25950);\n\n\nif((ex25950 instanceof Object)){\nvar statearr_25968_27479 \x3d state_25934__$1;\n(statearr_25968_27479[(1)] \x3d (11));\n\n(statearr_25968_27479[(5)] \x3d null);\n\n} else {\nthrow ex25950;\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (2))){\nvar inst_25889 \x3d cljs.core.reset_BANG_(dctr,cnt);\nvar inst_25890 \x3d cnt;\nvar inst_25891 \x3d (0);\nvar state_25934__$1 \x3d (function (){var statearr_25977 \x3d state_25934;\n(statearr_25977[(11)] \x3d inst_25889);\n\n(statearr_25977[(7)] \x3d inst_25890);\n\n(statearr_25977[(8)] \x3d inst_25891);\n\nreturn statearr_25977;\n})();\nvar statearr_25981_27481 \x3d state_25934__$1;\n(statearr_25981_27481[(2)] \x3d null);\n\n(statearr_25981_27481[(1)] \x3d (4));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (11))){\nvar inst_25899 \x3d (state_25934[(2)]);\nvar inst_25900 \x3d cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(dctr,cljs.core.dec);\nvar state_25934__$1 \x3d (function (){var statearr_25983 \x3d state_25934;\n(statearr_25983[(12)] \x3d inst_25899);\n\nreturn statearr_25983;\n})();\nvar statearr_25984_27483 \x3d state_25934__$1;\n(statearr_25984_27483[(2)] \x3d inst_25900);\n\n(statearr_25984_27483[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (9))){\nvar inst_25891 \x3d (state_25934[(8)]);\nvar _ \x3d (function (){var statearr_25986 \x3d state_25934;\n(statearr_25986[(4)] \x3d cljs.core.cons((12),(state_25934[(4)])));\n\nreturn statearr_25986;\n})();\nvar inst_25906 \x3d (chs__$1.cljs$core$IFn$_invoke$arity$1 ? chs__$1.cljs$core$IFn$_invoke$arity$1(inst_25891) : chs__$1.call(null, inst_25891));\nvar inst_25907 \x3d (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(inst_25891) : done.call(null, inst_25891));\nvar inst_25908 \x3d cljs.core.async.take_BANG_.cljs$core$IFn$_invoke$arity$2(inst_25906,inst_25907);\nvar ___$1 \x3d (function (){var statearr_25987 \x3d state_25934;\n(statearr_25987[(4)] \x3d cljs.core.rest((state_25934[(4)])));\n\nreturn statearr_25987;\n})();\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25988_27484 \x3d state_25934__$1;\n(statearr_25988_27484[(2)] \x3d inst_25908);\n\n(statearr_25988_27484[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (5))){\nvar inst_25918 \x3d (state_25934[(2)]);\nvar state_25934__$1 \x3d (function (){var statearr_25989 \x3d state_25934;\n(statearr_25989[(13)] \x3d inst_25918);\n\nreturn statearr_25989;\n})();\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_25934__$1,(13),dchan);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (14))){\nvar inst_25923 \x3d cljs.core.async.close_BANG_(out);\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25990_27485 \x3d state_25934__$1;\n(statearr_25990_27485[(2)] \x3d inst_25923);\n\n(statearr_25990_27485[(1)] \x3d (16));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (16))){\nvar inst_25930 \x3d (state_25934[(2)]);\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25991_27486 \x3d state_25934__$1;\n(statearr_25991_27486[(2)] \x3d inst_25930);\n\n(statearr_25991_27486[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (10))){\nvar inst_25891 \x3d (state_25934[(8)]);\nvar inst_25911 \x3d (state_25934[(2)]);\nvar inst_25912 \x3d (inst_25891 + (1));\nvar inst_25891__$1 \x3d inst_25912;\nvar state_25934__$1 \x3d (function (){var statearr_25992 \x3d state_25934;\n(statearr_25992[(14)] \x3d inst_25911);\n\n(statearr_25992[(8)] \x3d inst_25891__$1);\n\nreturn statearr_25992;\n})();\nvar statearr_25993_27487 \x3d state_25934__$1;\n(statearr_25993_27487[(2)] \x3d null);\n\n(statearr_25993_27487[(1)] \x3d (4));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_25935 \x3d\x3d\x3d (8))){\nvar inst_25916 \x3d (state_25934[(2)]);\nvar state_25934__$1 \x3d state_25934;\nvar statearr_25994_27488 \x3d state_25934__$1;\n(statearr_25994_27488[(2)] \x3d inst_25916);\n\n(statearr_25994_27488[(1)] \x3d (5));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_25995 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_25995[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_25995[(1)] \x3d (1));\n\nreturn statearr_25995;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_25934){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_25934);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e25996){var ex__21872__auto__ \x3d e25996;\nvar statearr_25997_27489 \x3d state_25934;\n(statearr_25997_27489[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_25934[(4)]))){\nvar statearr_25998_27490 \x3d state_25934;\n(statearr_25998_27490[(1)] \x3d cljs.core.first((state_25934[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27491 \x3d state_25934;\nstate_25934 \x3d G__27491;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_25934){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_25934);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_25999 \x3d f__23319__auto__();\n(statearr_25999[(6)] \x3d c__23318__auto___27465);\n\nreturn statearr_25999;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n}\n\nreturn out;\n}));\n\n(cljs.core.async.map.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Takes a collection of source channels and returns a channel which\n * contains all values taken from them. The returned channel will be\n * unbuffered by default, or a buf-or-n can be supplied. The channel\n * will close after all the source channels have closed.\n */\ncljs.core.async.merge \x3d (function cljs$core$async$merge(var_args){\nvar G__26002 \x3d arguments.length;\nswitch (G__26002) {\ncase 1:\nreturn cljs.core.async.merge.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.merge.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.merge.cljs$core$IFn$_invoke$arity$1 \x3d (function (chs){\nreturn cljs.core.async.merge.cljs$core$IFn$_invoke$arity$2(chs,null);\n}));\n\n(cljs.core.async.merge.cljs$core$IFn$_invoke$arity$2 \x3d (function (chs,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar c__23318__auto___27494 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26037){\nvar state_val_26038 \x3d (state_26037[(1)]);\nif((state_val_26038 \x3d\x3d\x3d (7))){\nvar inst_26017 \x3d (state_26037[(7)]);\nvar inst_26016 \x3d (state_26037[(8)]);\nvar inst_26016__$1 \x3d (state_26037[(2)]);\nvar inst_26017__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_26016__$1,(0),null);\nvar inst_26018 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(inst_26016__$1,(1),null);\nvar inst_26019 \x3d (inst_26017__$1 \x3d\x3d null);\nvar state_26037__$1 \x3d (function (){var statearr_26039 \x3d state_26037;\n(statearr_26039[(7)] \x3d inst_26017__$1);\n\n(statearr_26039[(9)] \x3d inst_26018);\n\n(statearr_26039[(8)] \x3d inst_26016__$1);\n\nreturn statearr_26039;\n})();\nif(cljs.core.truth_(inst_26019)){\nvar statearr_26040_27495 \x3d state_26037__$1;\n(statearr_26040_27495[(1)] \x3d (8));\n\n} else {\nvar statearr_26041_27496 \x3d state_26037__$1;\n(statearr_26041_27496[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (1))){\nvar inst_26004 \x3d cljs.core.vec(chs);\nvar inst_26005 \x3d inst_26004;\nvar state_26037__$1 \x3d (function (){var statearr_26042 \x3d state_26037;\n(statearr_26042[(10)] \x3d inst_26005);\n\nreturn statearr_26042;\n})();\nvar statearr_26043_27505 \x3d state_26037__$1;\n(statearr_26043_27505[(2)] \x3d null);\n\n(statearr_26043_27505[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (4))){\nvar inst_26005 \x3d (state_26037[(10)]);\nvar state_26037__$1 \x3d state_26037;\nreturn cljs.core.async.ioc_alts_BANG_(state_26037__$1,(7),inst_26005);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (6))){\nvar inst_26033 \x3d (state_26037[(2)]);\nvar state_26037__$1 \x3d state_26037;\nvar statearr_26044_27506 \x3d state_26037__$1;\n(statearr_26044_27506[(2)] \x3d inst_26033);\n\n(statearr_26044_27506[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (3))){\nvar inst_26035 \x3d (state_26037[(2)]);\nvar state_26037__$1 \x3d state_26037;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26037__$1,inst_26035);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (2))){\nvar inst_26005 \x3d (state_26037[(10)]);\nvar inst_26008 \x3d cljs.core.count(inst_26005);\nvar inst_26009 \x3d (inst_26008 \x3e (0));\nvar state_26037__$1 \x3d state_26037;\nif(cljs.core.truth_(inst_26009)){\nvar statearr_26046_27509 \x3d state_26037__$1;\n(statearr_26046_27509[(1)] \x3d (4));\n\n} else {\nvar statearr_26047_27510 \x3d state_26037__$1;\n(statearr_26047_27510[(1)] \x3d (5));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (11))){\nvar inst_26005 \x3d (state_26037[(10)]);\nvar inst_26026 \x3d (state_26037[(2)]);\nvar tmp26045 \x3d inst_26005;\nvar inst_26005__$1 \x3d tmp26045;\nvar state_26037__$1 \x3d (function (){var statearr_26048 \x3d state_26037;\n(statearr_26048[(10)] \x3d inst_26005__$1);\n\n(statearr_26048[(11)] \x3d inst_26026);\n\nreturn statearr_26048;\n})();\nvar statearr_26049_27511 \x3d state_26037__$1;\n(statearr_26049_27511[(2)] \x3d null);\n\n(statearr_26049_27511[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (9))){\nvar inst_26017 \x3d (state_26037[(7)]);\nvar state_26037__$1 \x3d state_26037;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26037__$1,(11),out,inst_26017);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (5))){\nvar inst_26031 \x3d cljs.core.async.close_BANG_(out);\nvar state_26037__$1 \x3d state_26037;\nvar statearr_26056_27512 \x3d state_26037__$1;\n(statearr_26056_27512[(2)] \x3d inst_26031);\n\n(statearr_26056_27512[(1)] \x3d (6));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (10))){\nvar inst_26029 \x3d (state_26037[(2)]);\nvar state_26037__$1 \x3d state_26037;\nvar statearr_26057_27513 \x3d state_26037__$1;\n(statearr_26057_27513[(2)] \x3d inst_26029);\n\n(statearr_26057_27513[(1)] \x3d (6));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26038 \x3d\x3d\x3d (8))){\nvar inst_26017 \x3d (state_26037[(7)]);\nvar inst_26018 \x3d (state_26037[(9)]);\nvar inst_26005 \x3d (state_26037[(10)]);\nvar inst_26016 \x3d (state_26037[(8)]);\nvar inst_26021 \x3d (function (){var cs \x3d inst_26005;\nvar vec__26012 \x3d inst_26016;\nvar v \x3d inst_26017;\nvar c \x3d inst_26018;\nreturn (function (p1__26000_SHARP_){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(c,p1__26000_SHARP_);\n});\n})();\nvar inst_26022 \x3d cljs.core.filterv(inst_26021,inst_26005);\nvar inst_26005__$1 \x3d inst_26022;\nvar state_26037__$1 \x3d (function (){var statearr_26062 \x3d state_26037;\n(statearr_26062[(10)] \x3d inst_26005__$1);\n\nreturn statearr_26062;\n})();\nvar statearr_26063_27514 \x3d state_26037__$1;\n(statearr_26063_27514[(2)] \x3d null);\n\n(statearr_26063_27514[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26068 \x3d [null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_26068[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_26068[(1)] \x3d (1));\n\nreturn statearr_26068;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_26037){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26037);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26069){var ex__21872__auto__ \x3d e26069;\nvar statearr_26070_27515 \x3d state_26037;\n(statearr_26070_27515[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26037[(4)]))){\nvar statearr_26071_27516 \x3d state_26037;\n(statearr_26071_27516[(1)] \x3d cljs.core.first((state_26037[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27519 \x3d state_26037;\nstate_26037 \x3d G__27519;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_26037){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_26037);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26072 \x3d f__23319__auto__();\n(statearr_26072[(6)] \x3d c__23318__auto___27494);\n\nreturn statearr_26072;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn out;\n}));\n\n(cljs.core.async.merge.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Returns a channel containing the single (collection) result of the\n * items taken from the channel conjoined to the supplied\n * collection. ch must close before into produces a result.\n */\ncljs.core.async.into \x3d (function cljs$core$async$into(coll,ch){\nreturn cljs.core.async.reduce(cljs.core.conj,coll,ch);\n});\n/**\n * Returns a channel that will return, at most, n items from ch. After n items\n * have been returned, or ch has been closed, the return chanel will close.\n * \n * The output channel is unbuffered by default, unless buf-or-n is given.\n */\ncljs.core.async.take \x3d (function cljs$core$async$take(var_args){\nvar G__26083 \x3d arguments.length;\nswitch (G__26083) {\ncase 2:\nreturn cljs.core.async.take.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.take.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.take.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,ch){\nreturn cljs.core.async.take.cljs$core$IFn$_invoke$arity$3(n,ch,null);\n}));\n\n(cljs.core.async.take.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,ch,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar c__23318__auto___27521 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26107){\nvar state_val_26108 \x3d (state_26107[(1)]);\nif((state_val_26108 \x3d\x3d\x3d (7))){\nvar inst_26089 \x3d (state_26107[(7)]);\nvar inst_26089__$1 \x3d (state_26107[(2)]);\nvar inst_26090 \x3d (inst_26089__$1 \x3d\x3d null);\nvar inst_26091 \x3d cljs.core.not(inst_26090);\nvar state_26107__$1 \x3d (function (){var statearr_26109 \x3d state_26107;\n(statearr_26109[(7)] \x3d inst_26089__$1);\n\nreturn statearr_26109;\n})();\nif(inst_26091){\nvar statearr_26110_27523 \x3d state_26107__$1;\n(statearr_26110_27523[(1)] \x3d (8));\n\n} else {\nvar statearr_26111_27524 \x3d state_26107__$1;\n(statearr_26111_27524[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (1))){\nvar inst_26084 \x3d (0);\nvar state_26107__$1 \x3d (function (){var statearr_26112 \x3d state_26107;\n(statearr_26112[(8)] \x3d inst_26084);\n\nreturn statearr_26112;\n})();\nvar statearr_26113_27528 \x3d state_26107__$1;\n(statearr_26113_27528[(2)] \x3d null);\n\n(statearr_26113_27528[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (4))){\nvar state_26107__$1 \x3d state_26107;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_26107__$1,(7),ch);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (6))){\nvar inst_26102 \x3d (state_26107[(2)]);\nvar state_26107__$1 \x3d state_26107;\nvar statearr_26115_27530 \x3d state_26107__$1;\n(statearr_26115_27530[(2)] \x3d inst_26102);\n\n(statearr_26115_27530[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (3))){\nvar inst_26104 \x3d (state_26107[(2)]);\nvar inst_26105 \x3d cljs.core.async.close_BANG_(out);\nvar state_26107__$1 \x3d (function (){var statearr_26116 \x3d state_26107;\n(statearr_26116[(9)] \x3d inst_26104);\n\nreturn statearr_26116;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26107__$1,inst_26105);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (2))){\nvar inst_26084 \x3d (state_26107[(8)]);\nvar inst_26086 \x3d (inst_26084 \x3c n);\nvar state_26107__$1 \x3d state_26107;\nif(cljs.core.truth_(inst_26086)){\nvar statearr_26117_27531 \x3d state_26107__$1;\n(statearr_26117_27531[(1)] \x3d (4));\n\n} else {\nvar statearr_26121_27532 \x3d state_26107__$1;\n(statearr_26121_27532[(1)] \x3d (5));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (11))){\nvar inst_26084 \x3d (state_26107[(8)]);\nvar inst_26094 \x3d (state_26107[(2)]);\nvar inst_26095 \x3d (inst_26084 + (1));\nvar inst_26084__$1 \x3d inst_26095;\nvar state_26107__$1 \x3d (function (){var statearr_26123 \x3d state_26107;\n(statearr_26123[(10)] \x3d inst_26094);\n\n(statearr_26123[(8)] \x3d inst_26084__$1);\n\nreturn statearr_26123;\n})();\nvar statearr_26124_27533 \x3d state_26107__$1;\n(statearr_26124_27533[(2)] \x3d null);\n\n(statearr_26124_27533[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (9))){\nvar state_26107__$1 \x3d state_26107;\nvar statearr_26125_27534 \x3d state_26107__$1;\n(statearr_26125_27534[(2)] \x3d null);\n\n(statearr_26125_27534[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (5))){\nvar state_26107__$1 \x3d state_26107;\nvar statearr_26126_27535 \x3d state_26107__$1;\n(statearr_26126_27535[(2)] \x3d null);\n\n(statearr_26126_27535[(1)] \x3d (6));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (10))){\nvar inst_26099 \x3d (state_26107[(2)]);\nvar state_26107__$1 \x3d state_26107;\nvar statearr_26128_27536 \x3d state_26107__$1;\n(statearr_26128_27536[(2)] \x3d inst_26099);\n\n(statearr_26128_27536[(1)] \x3d (6));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26108 \x3d\x3d\x3d (8))){\nvar inst_26089 \x3d (state_26107[(7)]);\nvar state_26107__$1 \x3d state_26107;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26107__$1,(11),out,inst_26089);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26130 \x3d [null,null,null,null,null,null,null,null,null,null,null];\n(statearr_26130[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_26130[(1)] \x3d (1));\n\nreturn statearr_26130;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_26107){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26107);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26132){var ex__21872__auto__ \x3d e26132;\nvar statearr_26135_27537 \x3d state_26107;\n(statearr_26135_27537[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26107[(4)]))){\nvar statearr_26136_27538 \x3d state_26107;\n(statearr_26136_27538[(1)] \x3d cljs.core.first((state_26107[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27539 \x3d state_26107;\nstate_26107 \x3d G__27539;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_26107){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_26107);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26141 \x3d f__23319__auto__();\n(statearr_26141[(6)] \x3d c__23318__auto___27521);\n\nreturn statearr_26141;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn out;\n}));\n\n(cljs.core.async.take.cljs$lang$maxFixedArity \x3d 3);\n\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Handler}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async26159 \x3d (function (f,ch,meta26148,_,fn1,meta26160){\nthis.f \x3d f;\nthis.ch \x3d ch;\nthis.meta26148 \x3d meta26148;\nthis._ \x3d _;\nthis.fn1 \x3d fn1;\nthis.meta26160 \x3d meta26160;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async26159.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26161,meta26160__$1){\nvar self__ \x3d this;\nvar _26161__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async26159(self__.f,self__.ch,self__.meta26148,self__._,self__.fn1,meta26160__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async26159.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26161){\nvar self__ \x3d this;\nvar _26161__$1 \x3d this;\nreturn self__.meta26160;\n}));\n\n(cljs.core.async.t_cljs$core$async26159.prototype.cljs$core$async$impl$protocols$Handler$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26159.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn cljs.core.async.impl.protocols.active_QMARK_(self__.fn1);\n}));\n\n(cljs.core.async.t_cljs$core$async26159.prototype.cljs$core$async$impl$protocols$Handler$blockable_QMARK_$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nreturn true;\n}));\n\n(cljs.core.async.t_cljs$core$async26159.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 \x3d (function (___$1){\nvar self__ \x3d this;\nvar ___$2 \x3d this;\nvar f1 \x3d cljs.core.async.impl.protocols.commit(self__.fn1);\nreturn (function (p1__26143_SHARP_){\nvar G__26179 \x3d (((p1__26143_SHARP_ \x3d\x3d null))?null:(self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(p1__26143_SHARP_) : self__.f.call(null, p1__26143_SHARP_)));\nreturn (f1.cljs$core$IFn$_invoke$arity$1 ? f1.cljs$core$IFn$_invoke$arity$1(G__26179) : f1.call(null, G__26179));\n});\n}));\n\n(cljs.core.async.t_cljs$core$async26159.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22ch\x22,\x22ch\x22,1085813622,null),new cljs.core.Symbol(null,\x22meta26148\x22,\x22meta26148\x22,-1210579185,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22_\x22,\x22_\x22,-1201019570,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(\x22cljs.core.async\x22,\x22t_cljs$core$async26147\x22,\x22cljs.core.async/t_cljs$core$async26147\x22,1667065064,null)], null)),new cljs.core.Symbol(null,\x22fn1\x22,\x22fn1\x22,895834444,null),new cljs.core.Symbol(null,\x22meta26160\x22,\x22meta26160\x22,-1481193039,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async26159.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async26159.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async26159\x22);\n\n(cljs.core.async.t_cljs$core$async26159.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async26159\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async26159.\n */\ncljs.core.async.__GT_t_cljs$core$async26159 \x3d (function cljs$core$async$__GT_t_cljs$core$async26159(f,ch,meta26148,_,fn1,meta26160){\nreturn (new cljs.core.async.t_cljs$core$async26159(f,ch,meta26148,_,fn1,meta26160));\n});\n\n\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Channel}\n * @implements {cljs.core.async.impl.protocols.WritePort}\n * @implements {cljs.core.async.impl.protocols.ReadPort}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async26147 \x3d (function (f,ch,meta26148){\nthis.f \x3d f;\nthis.ch \x3d ch;\nthis.meta26148 \x3d meta26148;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26149,meta26148__$1){\nvar self__ \x3d this;\nvar _26149__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async26147(self__.f,self__.ch,meta26148__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26149){\nvar self__ \x3d this;\nvar _26149__$1 \x3d this;\nreturn self__.meta26148;\n}));\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$Channel$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.close_BANG_(self__.ch);\n}));\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$Channel$closed_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.closed_QMARK_(self__.ch);\n}));\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$ReadPort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 \x3d (function (_,fn1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar ret \x3d cljs.core.async.impl.protocols.take_BANG_(self__.ch,(new cljs.core.async.t_cljs$core$async26159(self__.f,self__.ch,self__.meta26148,___$1,fn1,cljs.core.PersistentArrayMap.EMPTY)));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d ret;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (!((cljs.core.deref(ret) \x3d\x3d null)));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn cljs.core.async.impl.channels.box((function (){var G__26208 \x3d cljs.core.deref(ret);\nreturn (self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(G__26208) : self__.f.call(null, G__26208));\n})());\n} else {\nreturn ret;\n}\n}));\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$WritePort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26147.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 \x3d (function (_,val,fn1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.put_BANG_(self__.ch,val,fn1);\n}));\n\n(cljs.core.async.t_cljs$core$async26147.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22ch\x22,\x22ch\x22,1085813622,null),new cljs.core.Symbol(null,\x22meta26148\x22,\x22meta26148\x22,-1210579185,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async26147.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async26147.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async26147\x22);\n\n(cljs.core.async.t_cljs$core$async26147.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async26147\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async26147.\n */\ncljs.core.async.__GT_t_cljs$core$async26147 \x3d (function cljs$core$async$__GT_t_cljs$core$async26147(f,ch,meta26148){\nreturn (new cljs.core.async.t_cljs$core$async26147(f,ch,meta26148));\n});\n\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.map_LT_ \x3d (function cljs$core$async$map_LT_(f,ch){\nreturn (new cljs.core.async.t_cljs$core$async26147(f,ch,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Channel}\n * @implements {cljs.core.async.impl.protocols.WritePort}\n * @implements {cljs.core.async.impl.protocols.ReadPort}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async26244 \x3d (function (f,ch,meta26245){\nthis.f \x3d f;\nthis.ch \x3d ch;\nthis.meta26245 \x3d meta26245;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26246,meta26245__$1){\nvar self__ \x3d this;\nvar _26246__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async26244(self__.f,self__.ch,meta26245__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26246){\nvar self__ \x3d this;\nvar _26246__$1 \x3d this;\nreturn self__.meta26245;\n}));\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$async$impl$protocols$Channel$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.close_BANG_(self__.ch);\n}));\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$async$impl$protocols$ReadPort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 \x3d (function (_,fn1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.take_BANG_(self__.ch,fn1);\n}));\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$async$impl$protocols$WritePort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26244.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 \x3d (function (_,val,fn1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.put_BANG_(self__.ch,(self__.f.cljs$core$IFn$_invoke$arity$1 ? self__.f.cljs$core$IFn$_invoke$arity$1(val) : self__.f.call(null, val)),fn1);\n}));\n\n(cljs.core.async.t_cljs$core$async26244.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),new cljs.core.Symbol(null,\x22ch\x22,\x22ch\x22,1085813622,null),new cljs.core.Symbol(null,\x22meta26245\x22,\x22meta26245\x22,1783667490,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async26244.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async26244.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async26244\x22);\n\n(cljs.core.async.t_cljs$core$async26244.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async26244\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async26244.\n */\ncljs.core.async.__GT_t_cljs$core$async26244 \x3d (function cljs$core$async$__GT_t_cljs$core$async26244(f,ch,meta26245){\nreturn (new cljs.core.async.t_cljs$core$async26244(f,ch,meta26245));\n});\n\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.map_GT_ \x3d (function cljs$core$async$map_GT_(f,ch){\nreturn (new cljs.core.async.t_cljs$core$async26244(f,ch,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.async.impl.protocols.Channel}\n * @implements {cljs.core.async.impl.protocols.WritePort}\n * @implements {cljs.core.async.impl.protocols.ReadPort}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.core.async.t_cljs$core$async26326 \x3d (function (p,ch,meta26327){\nthis.p \x3d p;\nthis.ch \x3d ch;\nthis.meta26327 \x3d meta26327;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26328,meta26327__$1){\nvar self__ \x3d this;\nvar _26328__$1 \x3d this;\nreturn (new cljs.core.async.t_cljs$core$async26326(self__.p,self__.ch,meta26327__$1));\n}));\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26328){\nvar self__ \x3d this;\nvar _26328__$1 \x3d this;\nreturn self__.meta26327;\n}));\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$Channel$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.close_BANG_(self__.ch);\n}));\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$Channel$closed_QMARK_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.closed_QMARK_(self__.ch);\n}));\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$ReadPort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 \x3d (function (_,fn1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.async.impl.protocols.take_BANG_(self__.ch,fn1);\n}));\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$WritePort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.async.t_cljs$core$async26326.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 \x3d (function (_,val,fn1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_((self__.p.cljs$core$IFn$_invoke$arity$1 ? self__.p.cljs$core$IFn$_invoke$arity$1(val) : self__.p.call(null, val)))){\nreturn cljs.core.async.impl.protocols.put_BANG_(self__.ch,val,fn1);\n} else {\nreturn cljs.core.async.impl.channels.box(cljs.core.not(cljs.core.async.impl.protocols.closed_QMARK_(self__.ch)));\n}\n}));\n\n(cljs.core.async.t_cljs$core$async26326.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22p\x22,\x22p\x22,1791580836,null),new cljs.core.Symbol(null,\x22ch\x22,\x22ch\x22,1085813622,null),new cljs.core.Symbol(null,\x22meta26327\x22,\x22meta26327\x22,1734903850,null)], null);\n}));\n\n(cljs.core.async.t_cljs$core$async26326.cljs$lang$type \x3d true);\n\n(cljs.core.async.t_cljs$core$async26326.cljs$lang$ctorStr \x3d \x22cljs.core.async/t_cljs$core$async26326\x22);\n\n(cljs.core.async.t_cljs$core$async26326.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.core.async/t_cljs$core$async26326\x22);\n}));\n\n/**\n * Positional factory function for cljs.core.async/t_cljs$core$async26326.\n */\ncljs.core.async.__GT_t_cljs$core$async26326 \x3d (function cljs$core$async$__GT_t_cljs$core$async26326(p,ch,meta26327){\nreturn (new cljs.core.async.t_cljs$core$async26326(p,ch,meta26327));\n});\n\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.filter_GT_ \x3d (function cljs$core$async$filter_GT_(p,ch){\nreturn (new cljs.core.async.t_cljs$core$async26326(p,ch,cljs.core.PersistentArrayMap.EMPTY));\n});\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.remove_GT_ \x3d (function cljs$core$async$remove_GT_(p,ch){\nreturn cljs.core.async.filter_GT_(cljs.core.complement(p),ch);\n});\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.filter_LT_ \x3d (function cljs$core$async$filter_LT_(var_args){\nvar G__26353 \x3d arguments.length;\nswitch (G__26353) {\ncase 2:\nreturn cljs.core.async.filter_LT_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.filter_LT_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.filter_LT_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,ch){\nreturn cljs.core.async.filter_LT_.cljs$core$IFn$_invoke$arity$3(p,ch,null);\n}));\n\n(cljs.core.async.filter_LT_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,ch,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar c__23318__auto___27565 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26380){\nvar state_val_26381 \x3d (state_26380[(1)]);\nif((state_val_26381 \x3d\x3d\x3d (7))){\nvar inst_26376 \x3d (state_26380[(2)]);\nvar state_26380__$1 \x3d state_26380;\nvar statearr_26385_27566 \x3d state_26380__$1;\n(statearr_26385_27566[(2)] \x3d inst_26376);\n\n(statearr_26385_27566[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (1))){\nvar state_26380__$1 \x3d state_26380;\nvar statearr_26386_27567 \x3d state_26380__$1;\n(statearr_26386_27567[(2)] \x3d null);\n\n(statearr_26386_27567[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (4))){\nvar inst_26362 \x3d (state_26380[(7)]);\nvar inst_26362__$1 \x3d (state_26380[(2)]);\nvar inst_26363 \x3d (inst_26362__$1 \x3d\x3d null);\nvar state_26380__$1 \x3d (function (){var statearr_26392 \x3d state_26380;\n(statearr_26392[(7)] \x3d inst_26362__$1);\n\nreturn statearr_26392;\n})();\nif(cljs.core.truth_(inst_26363)){\nvar statearr_26393_27568 \x3d state_26380__$1;\n(statearr_26393_27568[(1)] \x3d (5));\n\n} else {\nvar statearr_26394_27569 \x3d state_26380__$1;\n(statearr_26394_27569[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (6))){\nvar inst_26362 \x3d (state_26380[(7)]);\nvar inst_26367 \x3d (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(inst_26362) : p.call(null, inst_26362));\nvar state_26380__$1 \x3d state_26380;\nif(cljs.core.truth_(inst_26367)){\nvar statearr_26396_27570 \x3d state_26380__$1;\n(statearr_26396_27570[(1)] \x3d (8));\n\n} else {\nvar statearr_26399_27571 \x3d state_26380__$1;\n(statearr_26399_27571[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (3))){\nvar inst_26378 \x3d (state_26380[(2)]);\nvar state_26380__$1 \x3d state_26380;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26380__$1,inst_26378);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (2))){\nvar state_26380__$1 \x3d state_26380;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_26380__$1,(4),ch);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (11))){\nvar inst_26370 \x3d (state_26380[(2)]);\nvar state_26380__$1 \x3d state_26380;\nvar statearr_26402_27572 \x3d state_26380__$1;\n(statearr_26402_27572[(2)] \x3d inst_26370);\n\n(statearr_26402_27572[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (9))){\nvar state_26380__$1 \x3d state_26380;\nvar statearr_26403_27573 \x3d state_26380__$1;\n(statearr_26403_27573[(2)] \x3d null);\n\n(statearr_26403_27573[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (5))){\nvar inst_26365 \x3d cljs.core.async.close_BANG_(out);\nvar state_26380__$1 \x3d state_26380;\nvar statearr_26404_27574 \x3d state_26380__$1;\n(statearr_26404_27574[(2)] \x3d inst_26365);\n\n(statearr_26404_27574[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (10))){\nvar inst_26373 \x3d (state_26380[(2)]);\nvar state_26380__$1 \x3d (function (){var statearr_26406 \x3d state_26380;\n(statearr_26406[(8)] \x3d inst_26373);\n\nreturn statearr_26406;\n})();\nvar statearr_26408_27575 \x3d state_26380__$1;\n(statearr_26408_27575[(2)] \x3d null);\n\n(statearr_26408_27575[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26381 \x3d\x3d\x3d (8))){\nvar inst_26362 \x3d (state_26380[(7)]);\nvar state_26380__$1 \x3d state_26380;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26380__$1,(11),out,inst_26362);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26411 \x3d [null,null,null,null,null,null,null,null,null];\n(statearr_26411[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_26411[(1)] \x3d (1));\n\nreturn statearr_26411;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_26380){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26380);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26415){var ex__21872__auto__ \x3d e26415;\nvar statearr_26416_27576 \x3d state_26380;\n(statearr_26416_27576[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26380[(4)]))){\nvar statearr_26417_27577 \x3d state_26380;\n(statearr_26417_27577[(1)] \x3d cljs.core.first((state_26380[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27578 \x3d state_26380;\nstate_26380 \x3d G__27578;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_26380){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_26380);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26419 \x3d f__23319__auto__();\n(statearr_26419[(6)] \x3d c__23318__auto___27565);\n\nreturn statearr_26419;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn out;\n}));\n\n(cljs.core.async.filter_LT_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.remove_LT_ \x3d (function cljs$core$async$remove_LT_(var_args){\nvar G__26432 \x3d arguments.length;\nswitch (G__26432) {\ncase 2:\nreturn cljs.core.async.remove_LT_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.remove_LT_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.remove_LT_.cljs$core$IFn$_invoke$arity$2 \x3d (function (p,ch){\nreturn cljs.core.async.remove_LT_.cljs$core$IFn$_invoke$arity$3(p,ch,null);\n}));\n\n(cljs.core.async.remove_LT_.cljs$core$IFn$_invoke$arity$3 \x3d (function (p,ch,buf_or_n){\nreturn cljs.core.async.filter_LT_.cljs$core$IFn$_invoke$arity$3(cljs.core.complement(p),ch,buf_or_n);\n}));\n\n(cljs.core.async.remove_LT_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.core.async.mapcat_STAR_ \x3d (function cljs$core$async$mapcat_STAR_(f,in$,out){\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26526){\nvar state_val_26527 \x3d (state_26526[(1)]);\nif((state_val_26527 \x3d\x3d\x3d (7))){\nvar inst_26522 \x3d (state_26526[(2)]);\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26528_27593 \x3d state_26526__$1;\n(statearr_26528_27593[(2)] \x3d inst_26522);\n\n(statearr_26528_27593[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (20))){\nvar inst_26492 \x3d (state_26526[(7)]);\nvar inst_26503 \x3d (state_26526[(2)]);\nvar inst_26504 \x3d cljs.core.next(inst_26492);\nvar inst_26472 \x3d inst_26504;\nvar inst_26473 \x3d null;\nvar inst_26474 \x3d (0);\nvar inst_26475 \x3d (0);\nvar state_26526__$1 \x3d (function (){var statearr_26539 \x3d state_26526;\n(statearr_26539[(8)] \x3d inst_26503);\n\n(statearr_26539[(9)] \x3d inst_26473);\n\n(statearr_26539[(10)] \x3d inst_26472);\n\n(statearr_26539[(11)] \x3d inst_26475);\n\n(statearr_26539[(12)] \x3d inst_26474);\n\nreturn statearr_26539;\n})();\nvar statearr_26552_27595 \x3d state_26526__$1;\n(statearr_26552_27595[(2)] \x3d null);\n\n(statearr_26552_27595[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (1))){\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26559_27596 \x3d state_26526__$1;\n(statearr_26559_27596[(2)] \x3d null);\n\n(statearr_26559_27596[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (4))){\nvar inst_26454 \x3d (state_26526[(13)]);\nvar inst_26454__$1 \x3d (state_26526[(2)]);\nvar inst_26459 \x3d (inst_26454__$1 \x3d\x3d null);\nvar state_26526__$1 \x3d (function (){var statearr_26560 \x3d state_26526;\n(statearr_26560[(13)] \x3d inst_26454__$1);\n\nreturn statearr_26560;\n})();\nif(cljs.core.truth_(inst_26459)){\nvar statearr_26561_27597 \x3d state_26526__$1;\n(statearr_26561_27597[(1)] \x3d (5));\n\n} else {\nvar statearr_26566_27598 \x3d state_26526__$1;\n(statearr_26566_27598[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (15))){\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26585_27599 \x3d state_26526__$1;\n(statearr_26585_27599[(2)] \x3d null);\n\n(statearr_26585_27599[(1)] \x3d (16));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (21))){\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26601_27600 \x3d state_26526__$1;\n(statearr_26601_27600[(2)] \x3d null);\n\n(statearr_26601_27600[(1)] \x3d (23));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (13))){\nvar inst_26473 \x3d (state_26526[(9)]);\nvar inst_26472 \x3d (state_26526[(10)]);\nvar inst_26475 \x3d (state_26526[(11)]);\nvar inst_26474 \x3d (state_26526[(12)]);\nvar inst_26483 \x3d (state_26526[(2)]);\nvar inst_26484 \x3d (inst_26475 + (1));\nvar tmp26576 \x3d inst_26473;\nvar tmp26577 \x3d inst_26472;\nvar tmp26578 \x3d inst_26474;\nvar inst_26472__$1 \x3d tmp26577;\nvar inst_26473__$1 \x3d tmp26576;\nvar inst_26474__$1 \x3d tmp26578;\nvar inst_26475__$1 \x3d inst_26484;\nvar state_26526__$1 \x3d (function (){var statearr_26608 \x3d state_26526;\n(statearr_26608[(9)] \x3d inst_26473__$1);\n\n(statearr_26608[(10)] \x3d inst_26472__$1);\n\n(statearr_26608[(14)] \x3d inst_26483);\n\n(statearr_26608[(11)] \x3d inst_26475__$1);\n\n(statearr_26608[(12)] \x3d inst_26474__$1);\n\nreturn statearr_26608;\n})();\nvar statearr_26611_27602 \x3d state_26526__$1;\n(statearr_26611_27602[(2)] \x3d null);\n\n(statearr_26611_27602[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (22))){\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26620_27603 \x3d state_26526__$1;\n(statearr_26620_27603[(2)] \x3d null);\n\n(statearr_26620_27603[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (6))){\nvar inst_26454 \x3d (state_26526[(13)]);\nvar inst_26470 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(inst_26454) : f.call(null, inst_26454));\nvar inst_26471 \x3d cljs.core.seq(inst_26470);\nvar inst_26472 \x3d inst_26471;\nvar inst_26473 \x3d null;\nvar inst_26474 \x3d (0);\nvar inst_26475 \x3d (0);\nvar state_26526__$1 \x3d (function (){var statearr_26627 \x3d state_26526;\n(statearr_26627[(9)] \x3d inst_26473);\n\n(statearr_26627[(10)] \x3d inst_26472);\n\n(statearr_26627[(11)] \x3d inst_26475);\n\n(statearr_26627[(12)] \x3d inst_26474);\n\nreturn statearr_26627;\n})();\nvar statearr_26628_27604 \x3d state_26526__$1;\n(statearr_26628_27604[(2)] \x3d null);\n\n(statearr_26628_27604[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (17))){\nvar inst_26492 \x3d (state_26526[(7)]);\nvar inst_26496 \x3d cljs.core.chunk_first(inst_26492);\nvar inst_26497 \x3d cljs.core.chunk_rest(inst_26492);\nvar inst_26498 \x3d cljs.core.count(inst_26496);\nvar inst_26472 \x3d inst_26497;\nvar inst_26473 \x3d inst_26496;\nvar inst_26474 \x3d inst_26498;\nvar inst_26475 \x3d (0);\nvar state_26526__$1 \x3d (function (){var statearr_26630 \x3d state_26526;\n(statearr_26630[(9)] \x3d inst_26473);\n\n(statearr_26630[(10)] \x3d inst_26472);\n\n(statearr_26630[(11)] \x3d inst_26475);\n\n(statearr_26630[(12)] \x3d inst_26474);\n\nreturn statearr_26630;\n})();\nvar statearr_26644_27605 \x3d state_26526__$1;\n(statearr_26644_27605[(2)] \x3d null);\n\n(statearr_26644_27605[(1)] \x3d (8));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (3))){\nvar inst_26524 \x3d (state_26526[(2)]);\nvar state_26526__$1 \x3d state_26526;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26526__$1,inst_26524);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (12))){\nvar inst_26512 \x3d (state_26526[(2)]);\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26645_27606 \x3d state_26526__$1;\n(statearr_26645_27606[(2)] \x3d inst_26512);\n\n(statearr_26645_27606[(1)] \x3d (9));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (2))){\nvar state_26526__$1 \x3d state_26526;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_26526__$1,(4),in$);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (23))){\nvar inst_26520 \x3d (state_26526[(2)]);\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26646_27607 \x3d state_26526__$1;\n(statearr_26646_27607[(2)] \x3d inst_26520);\n\n(statearr_26646_27607[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (19))){\nvar inst_26507 \x3d (state_26526[(2)]);\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26647_27608 \x3d state_26526__$1;\n(statearr_26647_27608[(2)] \x3d inst_26507);\n\n(statearr_26647_27608[(1)] \x3d (16));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (11))){\nvar inst_26492 \x3d (state_26526[(7)]);\nvar inst_26472 \x3d (state_26526[(10)]);\nvar inst_26492__$1 \x3d cljs.core.seq(inst_26472);\nvar state_26526__$1 \x3d (function (){var statearr_26649 \x3d state_26526;\n(statearr_26649[(7)] \x3d inst_26492__$1);\n\nreturn statearr_26649;\n})();\nif(inst_26492__$1){\nvar statearr_26650_27609 \x3d state_26526__$1;\n(statearr_26650_27609[(1)] \x3d (14));\n\n} else {\nvar statearr_26651_27610 \x3d state_26526__$1;\n(statearr_26651_27610[(1)] \x3d (15));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (9))){\nvar inst_26514 \x3d (state_26526[(2)]);\nvar inst_26515 \x3d cljs.core.async.impl.protocols.closed_QMARK_(out);\nvar state_26526__$1 \x3d (function (){var statearr_26652 \x3d state_26526;\n(statearr_26652[(15)] \x3d inst_26514);\n\nreturn statearr_26652;\n})();\nif(cljs.core.truth_(inst_26515)){\nvar statearr_26653_27611 \x3d state_26526__$1;\n(statearr_26653_27611[(1)] \x3d (21));\n\n} else {\nvar statearr_26654_27612 \x3d state_26526__$1;\n(statearr_26654_27612[(1)] \x3d (22));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (5))){\nvar inst_26461 \x3d cljs.core.async.close_BANG_(out);\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26656_27613 \x3d state_26526__$1;\n(statearr_26656_27613[(2)] \x3d inst_26461);\n\n(statearr_26656_27613[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (14))){\nvar inst_26492 \x3d (state_26526[(7)]);\nvar inst_26494 \x3d cljs.core.chunked_seq_QMARK_(inst_26492);\nvar state_26526__$1 \x3d state_26526;\nif(inst_26494){\nvar statearr_26657_27614 \x3d state_26526__$1;\n(statearr_26657_27614[(1)] \x3d (17));\n\n} else {\nvar statearr_26658_27615 \x3d state_26526__$1;\n(statearr_26658_27615[(1)] \x3d (18));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (16))){\nvar inst_26510 \x3d (state_26526[(2)]);\nvar state_26526__$1 \x3d state_26526;\nvar statearr_26662_27616 \x3d state_26526__$1;\n(statearr_26662_27616[(2)] \x3d inst_26510);\n\n(statearr_26662_27616[(1)] \x3d (12));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (10))){\nvar inst_26473 \x3d (state_26526[(9)]);\nvar inst_26475 \x3d (state_26526[(11)]);\nvar inst_26481 \x3d cljs.core._nth(inst_26473,inst_26475);\nvar state_26526__$1 \x3d state_26526;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26526__$1,(13),out,inst_26481);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (18))){\nvar inst_26492 \x3d (state_26526[(7)]);\nvar inst_26501 \x3d cljs.core.first(inst_26492);\nvar state_26526__$1 \x3d state_26526;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26526__$1,(20),out,inst_26501);\n} else {\nif((state_val_26527 \x3d\x3d\x3d (8))){\nvar inst_26475 \x3d (state_26526[(11)]);\nvar inst_26474 \x3d (state_26526[(12)]);\nvar inst_26478 \x3d (inst_26475 \x3c inst_26474);\nvar inst_26479 \x3d inst_26478;\nvar state_26526__$1 \x3d state_26526;\nif(cljs.core.truth_(inst_26479)){\nvar statearr_26671_27617 \x3d state_26526__$1;\n(statearr_26671_27617[(1)] \x3d (10));\n\n} else {\nvar statearr_26672_27618 \x3d state_26526__$1;\n(statearr_26672_27618[(1)] \x3d (11));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$mapcat_STAR__$_state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$mapcat_STAR__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26673 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_26673[(0)] \x3d cljs$core$async$mapcat_STAR__$_state_machine__21869__auto__);\n\n(statearr_26673[(1)] \x3d (1));\n\nreturn statearr_26673;\n});\nvar cljs$core$async$mapcat_STAR__$_state_machine__21869__auto____1 \x3d (function (state_26526){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26526);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26674){var ex__21872__auto__ \x3d e26674;\nvar statearr_26675_27619 \x3d state_26526;\n(statearr_26675_27619[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26526[(4)]))){\nvar statearr_26676_27620 \x3d state_26526;\n(statearr_26676_27620[(1)] \x3d cljs.core.first((state_26526[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27621 \x3d state_26526;\nstate_26526 \x3d G__27621;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$mapcat_STAR__$_state_machine__21869__auto__ \x3d function(state_26526){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$mapcat_STAR__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$mapcat_STAR__$_state_machine__21869__auto____1.call(this,state_26526);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$mapcat_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$mapcat_STAR__$_state_machine__21869__auto____0;\ncljs$core$async$mapcat_STAR__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$mapcat_STAR__$_state_machine__21869__auto____1;\nreturn cljs$core$async$mapcat_STAR__$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26682 \x3d f__23319__auto__();\n(statearr_26682[(6)] \x3d c__23318__auto__);\n\nreturn statearr_26682;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n});\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.mapcat_LT_ \x3d (function cljs$core$async$mapcat_LT_(var_args){\nvar G__26686 \x3d arguments.length;\nswitch (G__26686) {\ncase 2:\nreturn cljs.core.async.mapcat_LT_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.mapcat_LT_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.mapcat_LT_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,in$){\nreturn cljs.core.async.mapcat_LT_.cljs$core$IFn$_invoke$arity$3(f,in$,null);\n}));\n\n(cljs.core.async.mapcat_LT_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,in$,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\ncljs.core.async.mapcat_STAR_(f,in$,out);\n\nreturn out;\n}));\n\n(cljs.core.async.mapcat_LT_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.mapcat_GT_ \x3d (function cljs$core$async$mapcat_GT_(var_args){\nvar G__26691 \x3d arguments.length;\nswitch (G__26691) {\ncase 2:\nreturn cljs.core.async.mapcat_GT_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.mapcat_GT_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.mapcat_GT_.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,out){\nreturn cljs.core.async.mapcat_GT_.cljs$core$IFn$_invoke$arity$3(f,out,null);\n}));\n\n(cljs.core.async.mapcat_GT_.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,out,buf_or_n){\nvar in$ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\ncljs.core.async.mapcat_STAR_(f,in$,out);\n\nreturn in$;\n}));\n\n(cljs.core.async.mapcat_GT_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.unique \x3d (function cljs$core$async$unique(var_args){\nvar G__26696 \x3d arguments.length;\nswitch (G__26696) {\ncase 1:\nreturn cljs.core.async.unique.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.async.unique.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.unique.cljs$core$IFn$_invoke$arity$1 \x3d (function (ch){\nreturn cljs.core.async.unique.cljs$core$IFn$_invoke$arity$2(ch,null);\n}));\n\n(cljs.core.async.unique.cljs$core$IFn$_invoke$arity$2 \x3d (function (ch,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar c__23318__auto___27625 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26726){\nvar state_val_26727 \x3d (state_26726[(1)]);\nif((state_val_26727 \x3d\x3d\x3d (7))){\nvar inst_26715 \x3d (state_26726[(2)]);\nvar state_26726__$1 \x3d state_26726;\nvar statearr_26731_27626 \x3d state_26726__$1;\n(statearr_26731_27626[(2)] \x3d inst_26715);\n\n(statearr_26731_27626[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (1))){\nvar inst_26697 \x3d null;\nvar state_26726__$1 \x3d (function (){var statearr_26732 \x3d state_26726;\n(statearr_26732[(7)] \x3d inst_26697);\n\nreturn statearr_26732;\n})();\nvar statearr_26733_27627 \x3d state_26726__$1;\n(statearr_26733_27627[(2)] \x3d null);\n\n(statearr_26733_27627[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (4))){\nvar inst_26700 \x3d (state_26726[(8)]);\nvar inst_26700__$1 \x3d (state_26726[(2)]);\nvar inst_26701 \x3d (inst_26700__$1 \x3d\x3d null);\nvar inst_26702 \x3d cljs.core.not(inst_26701);\nvar state_26726__$1 \x3d (function (){var statearr_26740 \x3d state_26726;\n(statearr_26740[(8)] \x3d inst_26700__$1);\n\nreturn statearr_26740;\n})();\nif(inst_26702){\nvar statearr_26741_27631 \x3d state_26726__$1;\n(statearr_26741_27631[(1)] \x3d (5));\n\n} else {\nvar statearr_26742_27638 \x3d state_26726__$1;\n(statearr_26742_27638[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (6))){\nvar state_26726__$1 \x3d state_26726;\nvar statearr_26743_27639 \x3d state_26726__$1;\n(statearr_26743_27639[(2)] \x3d null);\n\n(statearr_26743_27639[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (3))){\nvar inst_26717 \x3d (state_26726[(2)]);\nvar inst_26724 \x3d cljs.core.async.close_BANG_(out);\nvar state_26726__$1 \x3d (function (){var statearr_26744 \x3d state_26726;\n(statearr_26744[(9)] \x3d inst_26717);\n\nreturn statearr_26744;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26726__$1,inst_26724);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (2))){\nvar state_26726__$1 \x3d state_26726;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_26726__$1,(4),ch);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (11))){\nvar inst_26700 \x3d (state_26726[(8)]);\nvar inst_26709 \x3d (state_26726[(2)]);\nvar inst_26697 \x3d inst_26700;\nvar state_26726__$1 \x3d (function (){var statearr_26745 \x3d state_26726;\n(statearr_26745[(10)] \x3d inst_26709);\n\n(statearr_26745[(7)] \x3d inst_26697);\n\nreturn statearr_26745;\n})();\nvar statearr_26746_27640 \x3d state_26726__$1;\n(statearr_26746_27640[(2)] \x3d null);\n\n(statearr_26746_27640[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (9))){\nvar inst_26700 \x3d (state_26726[(8)]);\nvar state_26726__$1 \x3d state_26726;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26726__$1,(11),out,inst_26700);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (5))){\nvar inst_26700 \x3d (state_26726[(8)]);\nvar inst_26697 \x3d (state_26726[(7)]);\nvar inst_26704 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(inst_26700,inst_26697);\nvar state_26726__$1 \x3d state_26726;\nif(inst_26704){\nvar statearr_26748_27645 \x3d state_26726__$1;\n(statearr_26748_27645[(1)] \x3d (8));\n\n} else {\nvar statearr_26749_27646 \x3d state_26726__$1;\n(statearr_26749_27646[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (10))){\nvar inst_26712 \x3d (state_26726[(2)]);\nvar state_26726__$1 \x3d state_26726;\nvar statearr_26750_27647 \x3d state_26726__$1;\n(statearr_26750_27647[(2)] \x3d inst_26712);\n\n(statearr_26750_27647[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26727 \x3d\x3d\x3d (8))){\nvar inst_26697 \x3d (state_26726[(7)]);\nvar tmp26747 \x3d inst_26697;\nvar inst_26697__$1 \x3d tmp26747;\nvar state_26726__$1 \x3d (function (){var statearr_26751 \x3d state_26726;\n(statearr_26751[(7)] \x3d inst_26697__$1);\n\nreturn statearr_26751;\n})();\nvar statearr_26752_27648 \x3d state_26726__$1;\n(statearr_26752_27648[(2)] \x3d null);\n\n(statearr_26752_27648[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26753 \x3d [null,null,null,null,null,null,null,null,null,null,null];\n(statearr_26753[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_26753[(1)] \x3d (1));\n\nreturn statearr_26753;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_26726){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26726);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26754){var ex__21872__auto__ \x3d e26754;\nvar statearr_26755_27649 \x3d state_26726;\n(statearr_26755_27649[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26726[(4)]))){\nvar statearr_26756_27650 \x3d state_26726;\n(statearr_26756_27650[(1)] \x3d cljs.core.first((state_26726[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27651 \x3d state_26726;\nstate_26726 \x3d G__27651;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_26726){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_26726);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26758 \x3d f__23319__auto__();\n(statearr_26758[(6)] \x3d c__23318__auto___27625);\n\nreturn statearr_26758;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn out;\n}));\n\n(cljs.core.async.unique.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.partition \x3d (function cljs$core$async$partition(var_args){\nvar G__26763 \x3d arguments.length;\nswitch (G__26763) {\ncase 2:\nreturn cljs.core.async.partition.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.partition.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.partition.cljs$core$IFn$_invoke$arity$2 \x3d (function (n,ch){\nreturn cljs.core.async.partition.cljs$core$IFn$_invoke$arity$3(n,ch,null);\n}));\n\n(cljs.core.async.partition.cljs$core$IFn$_invoke$arity$3 \x3d (function (n,ch,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar c__23318__auto___27658 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26804){\nvar state_val_26805 \x3d (state_26804[(1)]);\nif((state_val_26805 \x3d\x3d\x3d (7))){\nvar inst_26800 \x3d (state_26804[(2)]);\nvar state_26804__$1 \x3d state_26804;\nvar statearr_26808_27659 \x3d state_26804__$1;\n(statearr_26808_27659[(2)] \x3d inst_26800);\n\n(statearr_26808_27659[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (1))){\nvar inst_26767 \x3d (new Array(n));\nvar inst_26768 \x3d inst_26767;\nvar inst_26769 \x3d (0);\nvar state_26804__$1 \x3d (function (){var statearr_26810 \x3d state_26804;\n(statearr_26810[(7)] \x3d inst_26769);\n\n(statearr_26810[(8)] \x3d inst_26768);\n\nreturn statearr_26810;\n})();\nvar statearr_26811_27660 \x3d state_26804__$1;\n(statearr_26811_27660[(2)] \x3d null);\n\n(statearr_26811_27660[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (4))){\nvar inst_26772 \x3d (state_26804[(9)]);\nvar inst_26772__$1 \x3d (state_26804[(2)]);\nvar inst_26773 \x3d (inst_26772__$1 \x3d\x3d null);\nvar inst_26774 \x3d cljs.core.not(inst_26773);\nvar state_26804__$1 \x3d (function (){var statearr_26812 \x3d state_26804;\n(statearr_26812[(9)] \x3d inst_26772__$1);\n\nreturn statearr_26812;\n})();\nif(inst_26774){\nvar statearr_26813_27661 \x3d state_26804__$1;\n(statearr_26813_27661[(1)] \x3d (5));\n\n} else {\nvar statearr_26814_27662 \x3d state_26804__$1;\n(statearr_26814_27662[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (15))){\nvar inst_26794 \x3d (state_26804[(2)]);\nvar state_26804__$1 \x3d state_26804;\nvar statearr_26815_27663 \x3d state_26804__$1;\n(statearr_26815_27663[(2)] \x3d inst_26794);\n\n(statearr_26815_27663[(1)] \x3d (14));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (13))){\nvar state_26804__$1 \x3d state_26804;\nvar statearr_26819_27665 \x3d state_26804__$1;\n(statearr_26819_27665[(2)] \x3d null);\n\n(statearr_26819_27665[(1)] \x3d (14));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (6))){\nvar inst_26769 \x3d (state_26804[(7)]);\nvar inst_26790 \x3d (inst_26769 \x3e (0));\nvar state_26804__$1 \x3d state_26804;\nif(cljs.core.truth_(inst_26790)){\nvar statearr_26820_27666 \x3d state_26804__$1;\n(statearr_26820_27666[(1)] \x3d (12));\n\n} else {\nvar statearr_26821_27667 \x3d state_26804__$1;\n(statearr_26821_27667[(1)] \x3d (13));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (3))){\nvar inst_26802 \x3d (state_26804[(2)]);\nvar state_26804__$1 \x3d state_26804;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26804__$1,inst_26802);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (12))){\nvar inst_26768 \x3d (state_26804[(8)]);\nvar inst_26792 \x3d cljs.core.vec(inst_26768);\nvar state_26804__$1 \x3d state_26804;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26804__$1,(15),out,inst_26792);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (2))){\nvar state_26804__$1 \x3d state_26804;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_26804__$1,(4),ch);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (11))){\nvar inst_26784 \x3d (state_26804[(2)]);\nvar inst_26785 \x3d (new Array(n));\nvar inst_26768 \x3d inst_26785;\nvar inst_26769 \x3d (0);\nvar state_26804__$1 \x3d (function (){var statearr_26822 \x3d state_26804;\n(statearr_26822[(7)] \x3d inst_26769);\n\n(statearr_26822[(8)] \x3d inst_26768);\n\n(statearr_26822[(10)] \x3d inst_26784);\n\nreturn statearr_26822;\n})();\nvar statearr_26826_27674 \x3d state_26804__$1;\n(statearr_26826_27674[(2)] \x3d null);\n\n(statearr_26826_27674[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (9))){\nvar inst_26768 \x3d (state_26804[(8)]);\nvar inst_26782 \x3d cljs.core.vec(inst_26768);\nvar state_26804__$1 \x3d state_26804;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26804__$1,(11),out,inst_26782);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (5))){\nvar inst_26769 \x3d (state_26804[(7)]);\nvar inst_26768 \x3d (state_26804[(8)]);\nvar inst_26772 \x3d (state_26804[(9)]);\nvar inst_26777 \x3d (state_26804[(11)]);\nvar inst_26776 \x3d (inst_26768[inst_26769] \x3d inst_26772);\nvar inst_26777__$1 \x3d (inst_26769 + (1));\nvar inst_26778 \x3d (inst_26777__$1 \x3c n);\nvar state_26804__$1 \x3d (function (){var statearr_26827 \x3d state_26804;\n(statearr_26827[(12)] \x3d inst_26776);\n\n(statearr_26827[(11)] \x3d inst_26777__$1);\n\nreturn statearr_26827;\n})();\nif(cljs.core.truth_(inst_26778)){\nvar statearr_26831_27679 \x3d state_26804__$1;\n(statearr_26831_27679[(1)] \x3d (8));\n\n} else {\nvar statearr_26832_27680 \x3d state_26804__$1;\n(statearr_26832_27680[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (14))){\nvar inst_26797 \x3d (state_26804[(2)]);\nvar inst_26798 \x3d cljs.core.async.close_BANG_(out);\nvar state_26804__$1 \x3d (function (){var statearr_26834 \x3d state_26804;\n(statearr_26834[(13)] \x3d inst_26797);\n\nreturn statearr_26834;\n})();\nvar statearr_26835_27681 \x3d state_26804__$1;\n(statearr_26835_27681[(2)] \x3d inst_26798);\n\n(statearr_26835_27681[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (10))){\nvar inst_26788 \x3d (state_26804[(2)]);\nvar state_26804__$1 \x3d state_26804;\nvar statearr_26836_27683 \x3d state_26804__$1;\n(statearr_26836_27683[(2)] \x3d inst_26788);\n\n(statearr_26836_27683[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26805 \x3d\x3d\x3d (8))){\nvar inst_26768 \x3d (state_26804[(8)]);\nvar inst_26777 \x3d (state_26804[(11)]);\nvar tmp26833 \x3d inst_26768;\nvar inst_26768__$1 \x3d tmp26833;\nvar inst_26769 \x3d inst_26777;\nvar state_26804__$1 \x3d (function (){var statearr_26837 \x3d state_26804;\n(statearr_26837[(7)] \x3d inst_26769);\n\n(statearr_26837[(8)] \x3d inst_26768__$1);\n\nreturn statearr_26837;\n})();\nvar statearr_26838_27684 \x3d state_26804__$1;\n(statearr_26838_27684[(2)] \x3d null);\n\n(statearr_26838_27684[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26839 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_26839[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_26839[(1)] \x3d (1));\n\nreturn statearr_26839;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_26804){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26804);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26840){var ex__21872__auto__ \x3d e26840;\nvar statearr_26841_27685 \x3d state_26804;\n(statearr_26841_27685[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26804[(4)]))){\nvar statearr_26842_27686 \x3d state_26804;\n(statearr_26842_27686[(1)] \x3d cljs.core.first((state_26804[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27687 \x3d state_26804;\nstate_26804 \x3d G__27687;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_26804){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_26804);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26843 \x3d f__23319__auto__();\n(statearr_26843[(6)] \x3d c__23318__auto___27658);\n\nreturn statearr_26843;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn out;\n}));\n\n(cljs.core.async.partition.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Deprecated - this function will be removed. Use transducer instead\n */\ncljs.core.async.partition_by \x3d (function cljs$core$async$partition_by(var_args){\nvar G__26847 \x3d arguments.length;\nswitch (G__26847) {\ncase 2:\nreturn cljs.core.async.partition_by.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core.async.partition_by.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.core.async.partition_by.cljs$core$IFn$_invoke$arity$2 \x3d (function (f,ch){\nreturn cljs.core.async.partition_by.cljs$core$IFn$_invoke$arity$3(f,ch,null);\n}));\n\n(cljs.core.async.partition_by.cljs$core$IFn$_invoke$arity$3 \x3d (function (f,ch,buf_or_n){\nvar out \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1(buf_or_n);\nvar c__23318__auto___27697 \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_26893){\nvar state_val_26894 \x3d (state_26893[(1)]);\nif((state_val_26894 \x3d\x3d\x3d (7))){\nvar inst_26889 \x3d (state_26893[(2)]);\nvar state_26893__$1 \x3d state_26893;\nvar statearr_26895_27698 \x3d state_26893__$1;\n(statearr_26895_27698[(2)] \x3d inst_26889);\n\n(statearr_26895_27698[(1)] \x3d (3));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (1))){\nvar inst_26849 \x3d [];\nvar inst_26850 \x3d inst_26849;\nvar inst_26851 \x3d new cljs.core.Keyword(\x22cljs.core.async\x22,\x22nothing\x22,\x22cljs.core.async/nothing\x22,-69252123);\nvar state_26893__$1 \x3d (function (){var statearr_26896 \x3d state_26893;\n(statearr_26896[(7)] \x3d inst_26850);\n\n(statearr_26896[(8)] \x3d inst_26851);\n\nreturn statearr_26896;\n})();\nvar statearr_26897_27699 \x3d state_26893__$1;\n(statearr_26897_27699[(2)] \x3d null);\n\n(statearr_26897_27699[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (4))){\nvar inst_26854 \x3d (state_26893[(9)]);\nvar inst_26854__$1 \x3d (state_26893[(2)]);\nvar inst_26855 \x3d (inst_26854__$1 \x3d\x3d null);\nvar inst_26856 \x3d cljs.core.not(inst_26855);\nvar state_26893__$1 \x3d (function (){var statearr_26898 \x3d state_26893;\n(statearr_26898[(9)] \x3d inst_26854__$1);\n\nreturn statearr_26898;\n})();\nif(inst_26856){\nvar statearr_26899_27700 \x3d state_26893__$1;\n(statearr_26899_27700[(1)] \x3d (5));\n\n} else {\nvar statearr_26900_27701 \x3d state_26893__$1;\n(statearr_26900_27701[(1)] \x3d (6));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (15))){\nvar inst_26850 \x3d (state_26893[(7)]);\nvar inst_26881 \x3d cljs.core.vec(inst_26850);\nvar state_26893__$1 \x3d state_26893;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26893__$1,(18),out,inst_26881);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (13))){\nvar inst_26876 \x3d (state_26893[(2)]);\nvar state_26893__$1 \x3d state_26893;\nvar statearr_26901_27702 \x3d state_26893__$1;\n(statearr_26901_27702[(2)] \x3d inst_26876);\n\n(statearr_26901_27702[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (6))){\nvar inst_26850 \x3d (state_26893[(7)]);\nvar inst_26878 \x3d inst_26850.length;\nvar inst_26879 \x3d (inst_26878 \x3e (0));\nvar state_26893__$1 \x3d state_26893;\nif(cljs.core.truth_(inst_26879)){\nvar statearr_26902_27703 \x3d state_26893__$1;\n(statearr_26902_27703[(1)] \x3d (15));\n\n} else {\nvar statearr_26903_27704 \x3d state_26893__$1;\n(statearr_26903_27704[(1)] \x3d (16));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (17))){\nvar inst_26886 \x3d (state_26893[(2)]);\nvar inst_26887 \x3d cljs.core.async.close_BANG_(out);\nvar state_26893__$1 \x3d (function (){var statearr_26904 \x3d state_26893;\n(statearr_26904[(10)] \x3d inst_26886);\n\nreturn statearr_26904;\n})();\nvar statearr_26905_27705 \x3d state_26893__$1;\n(statearr_26905_27705[(2)] \x3d inst_26887);\n\n(statearr_26905_27705[(1)] \x3d (7));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (3))){\nvar inst_26891 \x3d (state_26893[(2)]);\nvar state_26893__$1 \x3d state_26893;\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_26893__$1,inst_26891);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (12))){\nvar inst_26850 \x3d (state_26893[(7)]);\nvar inst_26869 \x3d cljs.core.vec(inst_26850);\nvar state_26893__$1 \x3d state_26893;\nreturn cljs.core.async.impl.ioc_helpers.put_BANG_(state_26893__$1,(14),out,inst_26869);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (2))){\nvar state_26893__$1 \x3d state_26893;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_26893__$1,(4),ch);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (11))){\nvar inst_26850 \x3d (state_26893[(7)]);\nvar inst_26854 \x3d (state_26893[(9)]);\nvar inst_26858 \x3d (state_26893[(11)]);\nvar inst_26866 \x3d inst_26850.push(inst_26854);\nvar tmp26909 \x3d inst_26850;\nvar inst_26850__$1 \x3d tmp26909;\nvar inst_26851 \x3d inst_26858;\nvar state_26893__$1 \x3d (function (){var statearr_26910 \x3d state_26893;\n(statearr_26910[(7)] \x3d inst_26850__$1);\n\n(statearr_26910[(8)] \x3d inst_26851);\n\n(statearr_26910[(12)] \x3d inst_26866);\n\nreturn statearr_26910;\n})();\nvar statearr_26911_27706 \x3d state_26893__$1;\n(statearr_26911_27706[(2)] \x3d null);\n\n(statearr_26911_27706[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (9))){\nvar inst_26851 \x3d (state_26893[(8)]);\nvar inst_26862 \x3d cljs.core.keyword_identical_QMARK_(inst_26851,new cljs.core.Keyword(\x22cljs.core.async\x22,\x22nothing\x22,\x22cljs.core.async/nothing\x22,-69252123));\nvar state_26893__$1 \x3d state_26893;\nvar statearr_26916_27707 \x3d state_26893__$1;\n(statearr_26916_27707[(2)] \x3d inst_26862);\n\n(statearr_26916_27707[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (5))){\nvar inst_26859 \x3d (state_26893[(13)]);\nvar inst_26854 \x3d (state_26893[(9)]);\nvar inst_26858 \x3d (state_26893[(11)]);\nvar inst_26851 \x3d (state_26893[(8)]);\nvar inst_26858__$1 \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(inst_26854) : f.call(null, inst_26854));\nvar inst_26859__$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(inst_26858__$1,inst_26851);\nvar state_26893__$1 \x3d (function (){var statearr_26917 \x3d state_26893;\n(statearr_26917[(13)] \x3d inst_26859__$1);\n\n(statearr_26917[(11)] \x3d inst_26858__$1);\n\nreturn statearr_26917;\n})();\nif(inst_26859__$1){\nvar statearr_26918_27712 \x3d state_26893__$1;\n(statearr_26918_27712[(1)] \x3d (8));\n\n} else {\nvar statearr_26919_27713 \x3d state_26893__$1;\n(statearr_26919_27713[(1)] \x3d (9));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (14))){\nvar inst_26854 \x3d (state_26893[(9)]);\nvar inst_26858 \x3d (state_26893[(11)]);\nvar inst_26871 \x3d (state_26893[(2)]);\nvar inst_26872 \x3d [];\nvar inst_26873 \x3d inst_26872.push(inst_26854);\nvar inst_26850 \x3d inst_26872;\nvar inst_26851 \x3d inst_26858;\nvar state_26893__$1 \x3d (function (){var statearr_26920 \x3d state_26893;\n(statearr_26920[(14)] \x3d inst_26873);\n\n(statearr_26920[(7)] \x3d inst_26850);\n\n(statearr_26920[(8)] \x3d inst_26851);\n\n(statearr_26920[(15)] \x3d inst_26871);\n\nreturn statearr_26920;\n})();\nvar statearr_26921_27714 \x3d state_26893__$1;\n(statearr_26921_27714[(2)] \x3d null);\n\n(statearr_26921_27714[(1)] \x3d (2));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (16))){\nvar state_26893__$1 \x3d state_26893;\nvar statearr_26922_27716 \x3d state_26893__$1;\n(statearr_26922_27716[(2)] \x3d null);\n\n(statearr_26922_27716[(1)] \x3d (17));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (10))){\nvar inst_26864 \x3d (state_26893[(2)]);\nvar state_26893__$1 \x3d state_26893;\nif(cljs.core.truth_(inst_26864)){\nvar statearr_26923_27721 \x3d state_26893__$1;\n(statearr_26923_27721[(1)] \x3d (11));\n\n} else {\nvar statearr_26924_27722 \x3d state_26893__$1;\n(statearr_26924_27722[(1)] \x3d (12));\n\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (18))){\nvar inst_26883 \x3d (state_26893[(2)]);\nvar state_26893__$1 \x3d state_26893;\nvar statearr_26925_27723 \x3d state_26893__$1;\n(statearr_26925_27723[(2)] \x3d inst_26883);\n\n(statearr_26925_27723[(1)] \x3d (17));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nif((state_val_26894 \x3d\x3d\x3d (8))){\nvar inst_26859 \x3d (state_26893[(13)]);\nvar state_26893__$1 \x3d state_26893;\nvar statearr_26926_27724 \x3d state_26893__$1;\n(statearr_26926_27724[(2)] \x3d inst_26859);\n\n(statearr_26926_27724[(1)] \x3d (10));\n\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n} else {\nreturn null;\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n});\nreturn (function() {\nvar cljs$core$async$state_machine__21869__auto__ \x3d null;\nvar cljs$core$async$state_machine__21869__auto____0 \x3d (function (){\nvar statearr_26928 \x3d [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];\n(statearr_26928[(0)] \x3d cljs$core$async$state_machine__21869__auto__);\n\n(statearr_26928[(1)] \x3d (1));\n\nreturn statearr_26928;\n});\nvar cljs$core$async$state_machine__21869__auto____1 \x3d (function (state_26893){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_26893);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e26937){var ex__21872__auto__ \x3d e26937;\nvar statearr_26941_27725 \x3d state_26893;\n(statearr_26941_27725[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_26893[(4)]))){\nvar statearr_26947_27726 \x3d state_26893;\n(statearr_26947_27726[(1)] \x3d cljs.core.first((state_26893[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__27727 \x3d state_26893;\nstate_26893 \x3d G__27727;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\ncljs$core$async$state_machine__21869__auto__ \x3d function(state_26893){\nswitch(arguments.length){\ncase 0:\nreturn cljs$core$async$state_machine__21869__auto____0.call(this);\ncase 1:\nreturn cljs$core$async$state_machine__21869__auto____1.call(this,state_26893);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d cljs$core$async$state_machine__21869__auto____0;\ncljs$core$async$state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d cljs$core$async$state_machine__21869__auto____1;\nreturn cljs$core$async$state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_26964 \x3d f__23319__auto__();\n(statearr_26964[(6)] \x3d c__23318__auto___27697);\n\nreturn statearr_26964;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\n\nreturn out;\n}));\n\n(cljs.core.async.partition_by.cljs$lang$maxFixedArity \x3d 3);\n\n");
SHADOW_ENV.evalLoad("clojure.data.js", true, "goog.provide(\x27clojure.data\x27);\n/**\n * Internal helper for diff.\n */\nclojure.data.atom_diff \x3d (function clojure$data$atom_diff(a,b){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,b,null], null);\n}\n});\n/**\n * Convert an associative-by-numeric-index collection into\n * an equivalent vector, with nil for any missing keys\n */\nclojure.data.vectorize \x3d (function clojure$data$vectorize(m){\nif(cljs.core.seq(m)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,p__20030){\nvar vec__20032 \x3d p__20030;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20032,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20032,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(result,k,v);\n}),cljs.core.vec(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.keys(m)),null)),m);\n} else {\nreturn null;\n}\n});\n/**\n * Diff associative things a and b, comparing only the key k.\n */\nclojure.data.diff_associative_key \x3d (function clojure$data$diff_associative_key(a,b,k){\nvar va \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,k);\nvar vb \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,k);\nvar vec__20039 \x3d clojure.data.diff(va,vb);\nvar a_STAR_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20039,(0),null);\nvar b_STAR_ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20039,(1),null);\nvar ab \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20039,(2),null);\nvar in_a \x3d cljs.core.contains_QMARK_(a,k);\nvar in_b \x3d cljs.core.contains_QMARK_(b,k);\nvar same \x3d ((in_a) \x26\x26 (((in_b) \x26\x26 ((((!((ab \x3d\x3d null)))) || ((((va \x3d\x3d null)) \x26\x26 ((vb \x3d\x3d null)))))))));\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [((((in_a) \x26\x26 ((((!((a_STAR_ \x3d\x3d null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,a_STAR_]):null),((((in_b) \x26\x26 ((((!((b_STAR_ \x3d\x3d null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,b_STAR_]):null),((same)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ab]):null)], null);\n});\n/**\n * Diff associative things a and b, comparing only keys in ks (if supplied).\n */\nclojure.data.diff_associative \x3d (function clojure$data$diff_associative(var_args){\nvar G__20059 \x3d arguments.length;\nswitch (G__20059) {\ncase 2:\nreturn clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2 \x3d (function (a,b){\nreturn clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(a,b,clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(a),cljs.core.keys(b)));\n}));\n\n(clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3 \x3d (function (a,b,ks){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (diff1,diff2){\nreturn cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.merge,diff1,diff2));\n}),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,null], null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$3(clojure.data.diff_associative_key,a,b),ks));\n}));\n\n(clojure.data.diff_associative.cljs$lang$maxFixedArity \x3d 3);\n\nclojure.data.diff_sequential \x3d (function clojure$data$diff_sequential(a,b){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.data.vectorize,clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(((cljs.core.vector_QMARK_(a))?a:cljs.core.vec(a)),((cljs.core.vector_QMARK_(b))?b:cljs.core.vec(b)),cljs.core.range.cljs$core$IFn$_invoke$arity$1((function (){var x__5087__auto__ \x3d cljs.core.count(a);\nvar y__5088__auto__ \x3d cljs.core.count(b);\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})()))));\n});\nclojure.data.diff_set \x3d (function clojure$data$diff_set(a,b){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(a,b)),cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(b,a)),cljs.core.not_empty(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(a,b))], null);\n});\n\n/**\n * Implementation detail. Subject to change.\n * @interface\n */\nclojure.data.EqualityPartition \x3d function(){};\n\nvar clojure$data$EqualityPartition$equality_partition$dyn_20245 \x3d (function (x){\nvar x__5350__auto__ \x3d (((x \x3d\x3d null))?null:x);\nvar m__5351__auto__ \x3d (clojure.data.equality_partition[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));\n} else {\nvar m__5349__auto__ \x3d (clojure.data.equality_partition[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));\n} else {\nthrow cljs.core.missing_protocol(\x22EqualityPartition.equality-partition\x22,x);\n}\n}\n});\n/**\n * Implementation detail. Subject to change.\n */\nclojure.data.equality_partition \x3d (function clojure$data$equality_partition(x){\nif((((!((x \x3d\x3d null)))) \x26\x26 ((!((x.clojure$data$EqualityPartition$equality_partition$arity$1 \x3d\x3d null)))))){\nreturn x.clojure$data$EqualityPartition$equality_partition$arity$1(x);\n} else {\nreturn clojure$data$EqualityPartition$equality_partition$dyn_20245(x);\n}\n});\n\n\n/**\n * Implementation detail. Subject to change.\n * @interface\n */\nclojure.data.Diff \x3d function(){};\n\nvar clojure$data$Diff$diff_similar$dyn_20264 \x3d (function (a,b){\nvar x__5350__auto__ \x3d (((a \x3d\x3d null))?null:a);\nvar m__5351__auto__ \x3d (clojure.data.diff_similar[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__5351__auto__.call(null, a,b));\n} else {\nvar m__5349__auto__ \x3d (clojure.data.diff_similar[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__5349__auto__.call(null, a,b));\n} else {\nthrow cljs.core.missing_protocol(\x22Diff.diff-similar\x22,a);\n}\n}\n});\n/**\n * Implementation detail. Subject to change.\n */\nclojure.data.diff_similar \x3d (function clojure$data$diff_similar(a,b){\nif((((!((a \x3d\x3d null)))) \x26\x26 ((!((a.clojure$data$Diff$diff_similar$arity$2 \x3d\x3d null)))))){\nreturn a.clojure$data$Diff$diff_similar$arity$2(a,b);\n} else {\nreturn clojure$data$Diff$diff_similar$dyn_20264(a,b);\n}\n});\n\n(clojure.data.EqualityPartition[\x22null\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22null\x22] \x3d (function (x){\nreturn new cljs.core.Keyword(null,\x22atom\x22,\x22atom\x22,-397043653);\n}));\n\n(clojure.data.EqualityPartition[\x22string\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22string\x22] \x3d (function (x){\nreturn new cljs.core.Keyword(null,\x22atom\x22,\x22atom\x22,-397043653);\n}));\n\n(clojure.data.EqualityPartition[\x22number\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22number\x22] \x3d (function (x){\nreturn new cljs.core.Keyword(null,\x22atom\x22,\x22atom\x22,-397043653);\n}));\n\n(clojure.data.EqualityPartition[\x22array\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22array\x22] \x3d (function (x){\nreturn new cljs.core.Keyword(null,\x22sequential\x22,\x22sequential\x22,-1082983960);\n}));\n\n(clojure.data.EqualityPartition[\x22function\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22function\x22] \x3d (function (x){\nreturn new cljs.core.Keyword(null,\x22atom\x22,\x22atom\x22,-397043653);\n}));\n\n(clojure.data.EqualityPartition[\x22boolean\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22boolean\x22] \x3d (function (x){\nreturn new cljs.core.Keyword(null,\x22atom\x22,\x22atom\x22,-397043653);\n}));\n\n(clojure.data.EqualityPartition[\x22_\x22] \x3d true);\n\n(clojure.data.equality_partition[\x22_\x22] \x3d (function (x){\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMap$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x))){\nreturn new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461);\n} else {\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISet$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x))){\nreturn new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554);\n} else {\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition0$ \x26 (16777216))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$ISequential$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x))){\nreturn new cljs.core.Keyword(null,\x22sequential\x22,\x22sequential\x22,-1082983960);\n} else {\nreturn new cljs.core.Keyword(null,\x22atom\x22,\x22atom\x22,-397043653);\n\n}\n}\n}\n}));\n(clojure.data.Diff[\x22null\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22null\x22] \x3d (function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\n(clojure.data.Diff[\x22string\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22string\x22] \x3d (function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\n(clojure.data.Diff[\x22number\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22number\x22] \x3d (function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\n(clojure.data.Diff[\x22array\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22array\x22] \x3d (function (a,b){\nreturn clojure.data.diff_sequential(a,b);\n}));\n\n(clojure.data.Diff[\x22function\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22function\x22] \x3d (function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\n(clojure.data.Diff[\x22boolean\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22boolean\x22] \x3d (function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\n(clojure.data.Diff[\x22_\x22] \x3d true);\n\n(clojure.data.diff_similar[\x22_\x22] \x3d (function (a,b){\nvar fexpr__20176 \x3d (function (){var G__20177 \x3d clojure.data.equality_partition(a);\nvar G__20177__$1 \x3d (((G__20177 instanceof cljs.core.Keyword))?G__20177.fqn:null);\nswitch (G__20177__$1) {\ncase \x22atom\x22:\nreturn clojure.data.atom_diff;\n\nbreak;\ncase \x22set\x22:\nreturn clojure.data.diff_set;\n\nbreak;\ncase \x22sequential\x22:\nreturn clojure.data.diff_sequential;\n\nbreak;\ncase \x22map\x22:\nreturn clojure.data.diff_associative;\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__20177__$1)].join(\x27\x27)));\n\n}\n})();\nreturn (fexpr__20176.cljs$core$IFn$_invoke$arity$2 ? fexpr__20176.cljs$core$IFn$_invoke$arity$2(a,b) : fexpr__20176.call(null, a,b));\n}));\n/**\n * Recursively compares a and b, returning a tuple of\n * [things-only-in-a things-only-in-b things-in-both].\n * Comparison rules:\n * \n * * For equal a and b, return [nil nil a].\n * * Maps are subdiffed where keys match and values differ.\n * * Sets are never subdiffed.\n * * All sequential things are treated as associative collections\n * by their indexes, with results returned as vectors.\n * * Everything else (including strings!) is treated as\n * an atom and compared for equality.\n */\nclojure.data.diff \x3d (function clojure$data$diff(a,b){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(clojure.data.equality_partition(a),clojure.data.equality_partition(b))){\nreturn clojure.data.diff_similar(a,b);\n} else {\nreturn clojure.data.atom_diff(a,b);\n}\n}\n});\n");
SHADOW_ENV.evalLoad("shadow.util.js", true, "goog.provide(\x27shadow.util\x27);\nshadow.util.console_friendly \x3d (function shadow$util$console_friendly(a){\nif((a \x3d\x3d null)){\nreturn \x22nil\x22;\n} else {\nif((a instanceof cljs.core.Keyword)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);\n} else {\nif(typeof a \x3d\x3d\x3d \x27string\x27){\nreturn a;\n} else {\nif(typeof a \x3d\x3d\x3d \x27number\x27){\nreturn a;\n} else {\nif((((!((a \x3d\x3d null))))?(((((a.cljs$lang$protocol_mask$partition0$ \x26 (2147483648))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d a.cljs$core$IPrintWithWriter$))))?true:(((!a.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IPrintWithWriter,a):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IPrintWithWriter,a))){\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a], 0));\n} else {\nreturn a;\n\n}\n}\n}\n}\n}\n});\nshadow.util.console_QMARK_ \x3d (typeof console !\x3d\x3d \x27undefined\x27);\nshadow.util.log \x3d (function shadow$util$log(var_args){\nvar G__19796 \x3d arguments.length;\nswitch (G__19796) {\ncase 1:\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nvar args_arr__5751__auto__ \x3d [];\nvar len__5726__auto___19847 \x3d arguments.length;\nvar i__5727__auto___19848 \x3d (0);\nwhile(true){\nif((i__5727__auto___19848 \x3c len__5726__auto___19847)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19848]));\n\nvar G__19851 \x3d (i__5727__auto___19848 + (1));\ni__5727__auto___19848 \x3d G__19851;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ \x3d ((((6) \x3c args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((6)),(0),null)):null);\nreturn shadow.util.log.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),argseq__5752__auto__);\n\n}\n});\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$1 \x3d (function (a1){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1));\n} else {\nreturn null;\n}\n}));\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$2 \x3d (function (a1,a2){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1),shadow.util.console_friendly(a2));\n} else {\nreturn null;\n}\n}));\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$3 \x3d (function (a1,a2,a3){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1),shadow.util.console_friendly(a2),shadow.util.console_friendly(a3));\n} else {\nreturn null;\n}\n}));\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$4 \x3d (function (a1,a2,a3,a4){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1),shadow.util.console_friendly(a2),shadow.util.console_friendly(a3),shadow.util.console_friendly(a4));\n} else {\nreturn null;\n}\n}));\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$5 \x3d (function (a1,a2,a3,a4,a5){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1),shadow.util.console_friendly(a2),shadow.util.console_friendly(a3),shadow.util.console_friendly(a4),shadow.util.console_friendly(a5));\n} else {\nreturn null;\n}\n}));\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$6 \x3d (function (a1,a2,a3,a4,a5,a6){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1),shadow.util.console_friendly(a2),shadow.util.console_friendly(a3),shadow.util.console_friendly(a4),shadow.util.console_friendly(a5),shadow.util.console_friendly(a6));\n} else {\nreturn null;\n}\n}));\n\n(shadow.util.log.cljs$core$IFn$_invoke$arity$variadic \x3d (function (a1,a2,a3,a4,a5,a6,more){\nif(shadow.util.console_QMARK_){\nreturn console.log(shadow.util.console_friendly(a1),shadow.util.console_friendly(a2),shadow.util.console_friendly(a3),shadow.util.console_friendly(a4),shadow.util.console_friendly(a5),shadow.util.console_friendly(a6),\x22more:\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([more], 0)));\n} else {\nreturn null;\n}\n}));\n\n/** @this {Function} */\n(shadow.util.log.cljs$lang$applyTo \x3d (function (seq19789){\nvar G__19790 \x3d cljs.core.first(seq19789);\nvar seq19789__$1 \x3d cljs.core.next(seq19789);\nvar G__19791 \x3d cljs.core.first(seq19789__$1);\nvar seq19789__$2 \x3d cljs.core.next(seq19789__$1);\nvar G__19792 \x3d cljs.core.first(seq19789__$2);\nvar seq19789__$3 \x3d cljs.core.next(seq19789__$2);\nvar G__19793 \x3d cljs.core.first(seq19789__$3);\nvar seq19789__$4 \x3d cljs.core.next(seq19789__$3);\nvar G__19794 \x3d cljs.core.first(seq19789__$4);\nvar seq19789__$5 \x3d cljs.core.next(seq19789__$4);\nvar G__19795 \x3d cljs.core.first(seq19789__$5);\nvar seq19789__$6 \x3d cljs.core.next(seq19789__$5);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19790,G__19791,G__19792,G__19793,G__19794,G__19795,seq19789__$6);\n}));\n\n(shadow.util.log.cljs$lang$maxFixedArity \x3d (6));\n\nshadow.util.remove_from_vector \x3d (function shadow$util$remove_from_vector(coll,key){\nreturn cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (v,p__19819){\nvar vec__19820 \x3d p__19819;\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19820,(0),null);\nvar item \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19820,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(idx,key)){\nreturn v;\n} else {\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,item);\n}\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,coll)));\n});\nshadow.util.remove_item_from_coll \x3d (function shadow$util$remove_item_from_coll(coll,key,value){\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (16384))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IVector$))))?true:(((!coll.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IVector,coll):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IVector,coll))){\nreturn shadow.util.remove_from_vector(coll,key);\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (1024))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$IMap$))))?true:(((!coll.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IMap,coll):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,coll))){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(coll,key);\n} else {\nif((((!((coll \x3d\x3d null))))?(((((coll.cljs$lang$protocol_mask$partition0$ \x26 (4096))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d coll.cljs$core$ISet$))))?true:(((!coll.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISet,coll):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,coll))){\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(coll,value);\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22unknown coll type\x22,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22coll\x22,\x22coll\x22,1647737163),coll,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key,new cljs.core.Keyword(null,\x22value\x22,\x22value\x22,305978217),value], null));\n\n}\n}\n}\n});\n");
SHADOW_ENV.evalLoad("shadow.object.js", true, "goog.provide(\x27shadow.object\x27);\nshadow.object.console_friendly \x3d shadow.util.console_friendly;\nshadow.object.log \x3d shadow.util.log;\nshadow.object.debug \x3d shadow.util.log;\nshadow.object.info \x3d shadow.util.log;\nshadow.object.warn \x3d shadow.util.log;\nshadow.object.error \x3d shadow.util.log;\nshadow.object.obj_id \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\nshadow.object.next_id \x3d (function shadow$object$next_id(){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(shadow.object.obj_id,cljs.core.inc);\n});\nshadow.object.object_defs \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nshadow.object.behavior_fns \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nshadow.object.instances \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nshadow.object.instance_parent \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nshadow.object.instance_children \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nshadow.object.events \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nshadow.object.define_event \x3d (function shadow$object$define_event(event_name,desc,args){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.events,cljs.core.assoc,event_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),event_name,new cljs.core.Keyword(null,\x22description\x22,\x22description\x22,-1428560544),desc,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n});\nshadow.object.unmunge \x3d (function shadow$object$unmunge(s){\nreturn clojure.string.replace(clojure.string.replace(s,/_DOT_/,\x22.\x22),/_/,\x22-\x22);\n});\nshadow.object.define_event(new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434),\x22object initialization\x22,cljs.core.PersistentVector.EMPTY);\nshadow.object.define_event(new cljs.core.Keyword(null,\x22destroy\x22,\x22destroy\x22,-843660405),\x22object descruction\x22,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22cause\x22,\x22cause\x22,231901252),\x22cause of destruction, :parent means the parent was destroyed, :direct is default\x22], null)], null));\nshadow.object.define_event(new cljs.core.Keyword(\x22dom\x22,\x22init\x22,\x22dom/init\x22,-1875647652),\x22called after the dom was created but has not entered the document yet\x22,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922),\x22the dom that was created\x22], null)], null));\nshadow.object.define_event(new cljs.core.Keyword(\x22dom\x22,\x22entered\x22,\x22dom/entered\x22,506699596),\x22should be called whenever a dom node is added to the document, since that\\n is not in control of this library its up to you to call this\\n use (so/notify-tree! your-obj :dom/entered) to notify the node and every child you created\x22,cljs.core.PersistentVector.EMPTY);\nshadow.object.define_event(new cljs.core.Keyword(null,\x22bind-children-update\x22,\x22bind-children-update\x22,-1610690160),\x22need to rethink this\x22,cljs.core.PersistentVector.EMPTY);\n\n/**\n * @interface\n */\nshadow.object.IObject \x3d function(){};\n\nvar shadow$object$IObject$_id$dyn_27904 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.object._id[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.object._id[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IObject.-id\x22,this$);\n}\n}\n});\nshadow.object._id \x3d (function shadow$object$_id(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$object$IObject$_id$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$object$IObject$_id$arity$1(this$);\n} else {\nreturn shadow$object$IObject$_id$dyn_27904(this$);\n}\n});\n\nvar shadow$object$IObject$_type$dyn_27908 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.object._type[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.object._type[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IObject.-type\x22,this$);\n}\n}\n});\nshadow.object._type \x3d (function shadow$object$_type(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$object$IObject$_type$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$object$IObject$_type$arity$1(this$);\n} else {\nreturn shadow$object$IObject$_type$dyn_27908(this$);\n}\n});\n\nvar shadow$object$IObject$_data$dyn_27909 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.object._data[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.object._data[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22IObject.-data\x22,this$);\n}\n}\n});\nshadow.object._data \x3d (function shadow$object$_data(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$object$IObject$_data$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$object$IObject$_data$arity$1(this$);\n} else {\nreturn shadow$object$IObject$_data$dyn_27909(this$);\n}\n});\n\nvar shadow$object$IObject$_update$dyn_27911 \x3d (function (this$,update_fn){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.object._update[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,update_fn) : m__5351__auto__.call(null, this$,update_fn));\n} else {\nvar m__5349__auto__ \x3d (shadow.object._update[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,update_fn) : m__5349__auto__.call(null, this$,update_fn));\n} else {\nthrow cljs.core.missing_protocol(\x22IObject.-update\x22,this$);\n}\n}\n});\n/**\n * update and notify watches\n */\nshadow.object._update \x3d (function shadow$object$_update(this$,update_fn){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$object$IObject$_update$arity$2 \x3d\x3d null)))))){\nreturn this$.shadow$object$IObject$_update$arity$2(this$,update_fn);\n} else {\nreturn shadow$object$IObject$_update$dyn_27911(this$,update_fn);\n}\n});\n\nvar shadow$object$IObject$_destroy_BANG_$dyn_27912 \x3d (function (this$,cause){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.object._destroy_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,cause) : m__5351__auto__.call(null, this$,cause));\n} else {\nvar m__5349__auto__ \x3d (shadow.object._destroy_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,cause) : m__5349__auto__.call(null, this$,cause));\n} else {\nthrow cljs.core.missing_protocol(\x22IObject.-destroy!\x22,this$);\n}\n}\n});\nshadow.object._destroy_BANG_ \x3d (function shadow$object$_destroy_BANG_(this$,cause){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$object$IObject$_destroy_BANG_$arity$2 \x3d\x3d null)))))){\nreturn this$.shadow$object$IObject$_destroy_BANG_$arity$2(this$,cause);\n} else {\nreturn shadow$object$IObject$_destroy_BANG_$dyn_27912(this$,cause);\n}\n});\n\nshadow.object.get_type \x3d (function shadow$object$get_type(this$){\nreturn shadow.object._type(this$);\n});\nshadow.object.get_type_attr \x3d (function shadow$object$get_type_attr(var_args){\nvar G__27095 \x3d arguments.length;\nswitch (G__27095) {\ncase 2:\nreturn shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2 \x3d (function (oref,key){\nif((oref \x3d\x3d null)){\nreturn null;\n} else {\nvar type_id \x3d (((oref instanceof cljs.core.Keyword))?oref:shadow.object._type(oref));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.object_defs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type_id,key], null));\n}\n}));\n\n(shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$3 \x3d (function (oref,key,default$){\nif((oref \x3d\x3d null)){\nreturn default$;\n} else {\nvar type_id \x3d (((oref instanceof cljs.core.Keyword))?oref:shadow.object._type(oref));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(shadow.object.object_defs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type_id,key], null),default$);\n}\n}));\n\n(shadow.object.get_type_attr.cljs$lang$maxFixedArity \x3d 3);\n\nshadow.object.get_dom \x3d (function shadow$object$get_dom(oref){\nreturn new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311).cljs$core$IFn$_invoke$arity$1(oref);\n});\ngoog.exportSymbol(\x27shadow.object.get_dom\x27, shadow.object.get_dom);\nshadow.object.get_by_id \x3d (function shadow$object$get_by_id(id){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instances),id);\n});\ngoog.exportSymbol(\x27shadow.object.get_by_id\x27, shadow.object.get_by_id);\nshadow.object.get_from_dom \x3d (function shadow$object$get_from_dom(dom){\nvar oid \x3d shadow.dom.data(dom,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334));\nif(cljs.core.truth_(oid)){\nreturn shadow.object.get_by_id(parseInt(oid,(10)));\n} else {\nreturn null;\n}\n});\ngoog.exportSymbol(\x27shadow.object.get_from_dom\x27, shadow.object.get_from_dom);\nshadow.object.is_object_QMARK_ \x3d (function shadow$object$is_object_QMARK_(obj_or_dom){\nvar or__5002__auto__ \x3d (((!((obj_or_dom \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d obj_or_dom.shadow$object$IObject$))))?true:(((!obj_or_dom.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn shadow.object.get_from_dom(obj_or_dom);\n}\n});\nshadow.object.equal_QMARK_ \x3d (function shadow$object$equal_QMARK_(obj,obj_or_dom){\nif((((!((obj \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d obj.shadow$object$IObject$))))?true:(((!obj.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj))){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22can only test objects\x22,\x22\\n\x22,\x22(satisfies? IObject obj)\x22].join(\x27\x27)));\n}\n\nif((((!((obj_or_dom \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d obj_or_dom.shadow$object$IObject$))))?true:(((!obj_or_dom.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom))){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.object._id(obj),shadow.object._id(obj_or_dom));\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.object._id(obj),(function (){var temp__5804__auto__ \x3d shadow.dom.data(obj_or_dom,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar oid \x3d temp__5804__auto__;\nreturn parseInt(oid,(10));\n} else {\nreturn null;\n}\n})());\n}\n});\nshadow.object.get_parent \x3d (function shadow$object$get_parent(oref){\nvar temp__5804__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instance_parent),shadow.object._id(oref));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar parent_id \x3d temp__5804__auto__;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instances),parent_id);\n} else {\nreturn null;\n}\n});\ngoog.exportSymbol(\x27shadow.object.get_parent\x27, shadow.object.get_parent);\nshadow.object.get_parent_of_type \x3d (function shadow$object$get_parent_of_type(oref,parent_type){\nvar parent \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(oref);\nwhile(true){\nif(cljs.core.truth_(parent)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.object._type(parent),parent_type)){\nreturn parent;\n} else {\nvar G__27922 \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(parent);\nparent \x3d G__27922;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});\ngoog.exportSymbol(\x27shadow.object.get_parent_of_type\x27, shadow.object.get_parent_of_type);\nshadow.object.get_children \x3d (function shadow$object$get_children(parent){\nvar parent_id \x3d shadow.object._id(parent);\nvar child_ids \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(shadow.object.instance_children),parent_id,cljs.core.PersistentVector.EMPTY);\nvar instances \x3d cljs.core.deref(shadow.object.instances);\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__27160_SHARP_){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(instances,p1__27160_SHARP_);\n}),child_ids));\n});\ngoog.exportSymbol(\x27shadow.object.get_children\x27, shadow.object.get_children);\nshadow.object.tree_seq \x3d (function shadow$object$tree_seq(var_args){\nvar G__27172 \x3d arguments.length;\nswitch (G__27172) {\ncase 1:\nreturn shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\ngoog.exportSymbol(\x27shadow.object.tree_seq\x27, shadow.object.tree_seq);\n\n(shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$1 \x3d (function (root){\nreturn shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$2(root,(function (node){\nreturn true;\n}));\n}));\n\n(shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$2 \x3d (function (root,branch_QMARK_){\nreturn cljs.core.tree_seq(branch_QMARK_,shadow.object.get_children,root);\n}));\n\n(shadow.object.tree_seq.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.object.get_children_of_type \x3d (function shadow$object$get_children_of_type(oref,type){\nvar type_kw \x3d (((type instanceof cljs.core.Keyword))?type:shadow.object._type(type));\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__27183_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type_kw,shadow.object._type(p1__27183_SHARP_));\n}),shadow.object.get_children(oref));\n});\n/**\n * basically (get-children (:parent this))\n */\nshadow.object.get_siblings \x3d (function shadow$object$get_siblings(p__27194){\nvar map__27196 \x3d p__27194;\nvar map__27196__$1 \x3d cljs.core.__destructure_map(map__27196);\nvar oref \x3d map__27196__$1;\nvar parent \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27196__$1,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779));\nif(cljs.core.truth_(parent)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22object has no parent, thus has no siblings\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22oref\x22,\x22oref\x22,-1547494840),oref], null));\n}\n\nreturn shadow.object.get_children(parent);\n});\n/**\n * returns set of all siblings of a common type\n */\nshadow.object.get_siblings_of_type \x3d (function shadow$object$get_siblings_of_type(var_args){\nvar G__27205 \x3d arguments.length;\nswitch (G__27205) {\ncase 1:\nreturn shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$1 \x3d (function (oref){\nreturn shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$2(oref,oref);\n}));\n\n(shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$2 \x3d (function (oref,type){\nvar type_kw \x3d (((type instanceof cljs.core.Keyword))?type:shadow.object._type(type));\nreturn cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__27200_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type_kw,shadow.object._type(p1__27200_SHARP_));\n}),shadow.object.get_siblings(oref));\n}));\n\n(shadow.object.get_siblings_of_type.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.object.get_collection_item \x3d (function shadow$object$get_collection_item(oref){\nvar item_key \x3d new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-item-key\x22,\x22shadow.object/coll-item-key\x22,1888444366).cljs$core$IFn$_invoke$arity$1(oref);\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(oref,item_key);\n});\n/**\n * find the object that contains this dom node\n */\nshadow.object.find_containing_object \x3d (function shadow$object$find_containing_object(dom){\nwhile(true){\nvar temp__5802__auto__ \x3d shadow.object.get_from_dom(dom);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar obj \x3d temp__5802__auto__;\nreturn obj;\n} else {\nvar temp__5804__auto__ \x3d dom.parentElement;\nif(cljs.core.truth_(temp__5804__auto__)){\nvar parent \x3d temp__5804__auto__;\nvar G__27926 \x3d parent;\ndom \x3d G__27926;\ncontinue;\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.object.notify_BANG_ \x3d (function shadow$object$notify_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27927 \x3d arguments.length;\nvar i__5727__auto___27928 \x3d (0);\nwhile(true){\nif((i__5727__auto___27928 \x3c len__5726__auto___27927)){\nargs__5732__auto__.push((arguments[i__5727__auto___27928]));\n\nvar G__27929 \x3d (i__5727__auto___27928 + (1));\ni__5727__auto___27928 \x3d G__27929;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (oref,ev,args){\nvar temp__5804__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633),ev], null));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar reactions_to_trigger \x3d temp__5804__auto__;\nvar seq__27231 \x3d cljs.core.seq(reactions_to_trigger);\nvar chunk__27232 \x3d null;\nvar count__27233 \x3d (0);\nvar i__27234 \x3d (0);\nwhile(true){\nif((i__27234 \x3c count__27233)){\nvar rfn \x3d chunk__27232.cljs$core$IIndexed$_nth$arity$2(null, i__27234);\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2(rfn,cljs.core.cons(oref,args));\n\n\nvar G__27931 \x3d seq__27231;\nvar G__27932 \x3d chunk__27232;\nvar G__27933 \x3d count__27233;\nvar G__27934 \x3d (i__27234 + (1));\nseq__27231 \x3d G__27931;\nchunk__27232 \x3d G__27932;\ncount__27233 \x3d G__27933;\ni__27234 \x3d G__27934;\ncontinue;\n} else {\nvar temp__5804__auto____$1 \x3d cljs.core.seq(seq__27231);\nif(temp__5804__auto____$1){\nvar seq__27231__$1 \x3d temp__5804__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(seq__27231__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__27231__$1);\nvar G__27935 \x3d cljs.core.chunk_rest(seq__27231__$1);\nvar G__27936 \x3d c__5525__auto__;\nvar G__27937 \x3d cljs.core.count(c__5525__auto__);\nvar G__27938 \x3d (0);\nseq__27231 \x3d G__27935;\nchunk__27232 \x3d G__27936;\ncount__27233 \x3d G__27937;\ni__27234 \x3d G__27938;\ncontinue;\n} else {\nvar rfn \x3d cljs.core.first(seq__27231__$1);\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2(rfn,cljs.core.cons(oref,args));\n\n\nvar G__27939 \x3d cljs.core.next(seq__27231__$1);\nvar G__27940 \x3d null;\nvar G__27941 \x3d (0);\nvar G__27942 \x3d (0);\nseq__27231 \x3d G__27939;\nchunk__27232 \x3d G__27940;\ncount__27233 \x3d G__27941;\ni__27234 \x3d G__27942;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.object.notify_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(shadow.object.notify_BANG_.cljs$lang$applyTo \x3d (function (seq27224){\nvar G__27225 \x3d cljs.core.first(seq27224);\nvar seq27224__$1 \x3d cljs.core.next(seq27224);\nvar G__27226 \x3d cljs.core.first(seq27224__$1);\nvar seq27224__$2 \x3d cljs.core.next(seq27224__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27225,G__27226,seq27224__$2);\n}));\n\nshadow.object.do_notify_tree \x3d (function shadow$object$do_notify_tree(current_obj,ev,notify_fn){\nvar seq__27251_27943 \x3d cljs.core.seq(shadow.object.get_children(current_obj));\nvar chunk__27252_27944 \x3d null;\nvar count__27253_27945 \x3d (0);\nvar i__27254_27946 \x3d (0);\nwhile(true){\nif((i__27254_27946 \x3c count__27253_27945)){\nvar child_27947 \x3d chunk__27252_27944.cljs$core$IIndexed$_nth$arity$2(null, i__27254_27946);\n(shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3 ? shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3(child_27947,ev,notify_fn) : shadow.object.do_notify_tree.call(null, child_27947,ev,notify_fn));\n\n\nvar G__27948 \x3d seq__27251_27943;\nvar G__27949 \x3d chunk__27252_27944;\nvar G__27950 \x3d count__27253_27945;\nvar G__27951 \x3d (i__27254_27946 + (1));\nseq__27251_27943 \x3d G__27948;\nchunk__27252_27944 \x3d G__27949;\ncount__27253_27945 \x3d G__27950;\ni__27254_27946 \x3d G__27951;\ncontinue;\n} else {\nvar temp__5804__auto___27952 \x3d cljs.core.seq(seq__27251_27943);\nif(temp__5804__auto___27952){\nvar seq__27251_27953__$1 \x3d temp__5804__auto___27952;\nif(cljs.core.chunked_seq_QMARK_(seq__27251_27953__$1)){\nvar c__5525__auto___27954 \x3d cljs.core.chunk_first(seq__27251_27953__$1);\nvar G__27955 \x3d cljs.core.chunk_rest(seq__27251_27953__$1);\nvar G__27956 \x3d c__5525__auto___27954;\nvar G__27957 \x3d cljs.core.count(c__5525__auto___27954);\nvar G__27958 \x3d (0);\nseq__27251_27943 \x3d G__27955;\nchunk__27252_27944 \x3d G__27956;\ncount__27253_27945 \x3d G__27957;\ni__27254_27946 \x3d G__27958;\ncontinue;\n} else {\nvar child_27959 \x3d cljs.core.first(seq__27251_27953__$1);\n(shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3 ? shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3(child_27959,ev,notify_fn) : shadow.object.do_notify_tree.call(null, child_27959,ev,notify_fn));\n\n\nvar G__27960 \x3d cljs.core.next(seq__27251_27953__$1);\nvar G__27961 \x3d null;\nvar G__27962 \x3d (0);\nvar G__27963 \x3d (0);\nseq__27251_27943 \x3d G__27960;\nchunk__27252_27944 \x3d G__27961;\ncount__27253_27945 \x3d G__27962;\ni__27254_27946 \x3d G__27963;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn (notify_fn.cljs$core$IFn$_invoke$arity$1 ? notify_fn.cljs$core$IFn$_invoke$arity$1(current_obj) : notify_fn.call(null, current_obj));\n});\nshadow.object.notify_tree_BANG_ \x3d (function shadow$object$notify_tree_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27964 \x3d arguments.length;\nvar i__5727__auto___27965 \x3d (0);\nwhile(true){\nif((i__5727__auto___27965 \x3c len__5726__auto___27964)){\nargs__5732__auto__.push((arguments[i__5727__auto___27965]));\n\nvar G__27966 \x3d (i__5727__auto___27965 + (1));\ni__5727__auto___27965 \x3d G__27966;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn shadow.object.notify_tree_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(shadow.object.notify_tree_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (oref,ev,args){\nvar notify_fn \x3d (function (obj){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(shadow.object.notify_BANG_,obj,ev,args);\n});\nreturn shadow.object.do_notify_tree(oref,ev,notify_fn);\n}));\n\n(shadow.object.notify_tree_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(shadow.object.notify_tree_BANG_.cljs$lang$applyTo \x3d (function (seq27271){\nvar G__27273 \x3d cljs.core.first(seq27271);\nvar seq27271__$1 \x3d cljs.core.next(seq27271);\nvar G__27274 \x3d cljs.core.first(seq27271__$1);\nvar seq27271__$2 \x3d cljs.core.next(seq27271__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27273,G__27274,seq27271__$2);\n}));\n\nshadow.object.notify_down_BANG_ \x3d shadow.object.notify_tree_BANG_;\nshadow.object.notify_up_BANG_ \x3d (function shadow$object$notify_up_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27972 \x3d arguments.length;\nvar i__5727__auto___27973 \x3d (0);\nwhile(true){\nif((i__5727__auto___27973 \x3c len__5726__auto___27972)){\nargs__5732__auto__.push((arguments[i__5727__auto___27973]));\n\nvar G__27974 \x3d (i__5727__auto___27973 + (1));\ni__5727__auto___27973 \x3d G__27974;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn shadow.object.notify_up_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(shadow.object.notify_up_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (oref,ev,args){\nvar current \x3d shadow.object.get_parent(oref);\nwhile(true){\nif(cljs.core.truth_(current)){\ncljs.core.apply.cljs$core$IFn$_invoke$arity$4(shadow.object.notify_BANG_,current,ev,args);\n\nvar G__27975 \x3d shadow.object.get_parent(current);\ncurrent \x3d G__27975;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(shadow.object.notify_up_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(shadow.object.notify_up_BANG_.cljs$lang$applyTo \x3d (function (seq27288){\nvar G__27289 \x3d cljs.core.first(seq27288);\nvar seq27288__$1 \x3d cljs.core.next(seq27288);\nvar G__27290 \x3d cljs.core.first(seq27288__$1);\nvar seq27288__$2 \x3d cljs.core.next(seq27288__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27289,G__27290,seq27288__$2);\n}));\n\nshadow.object.update_BANG_ \x3d (function shadow$object$update_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27979 \x3d arguments.length;\nvar i__5727__auto___27980 \x3d (0);\nwhile(true){\nif((i__5727__auto___27980 \x3c len__5726__auto___27979)){\nargs__5732__auto__.push((arguments[i__5727__auto___27980]));\n\nvar G__27981 \x3d (i__5727__auto___27980 + (1));\ni__5727__auto___27980 \x3d G__27981;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (oref,update_fn,args){\nif(cljs.core.fn_QMARK_(update_fn)){\n} else {\nthrow [\x22update! expects a fn as second arg, not \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([update_fn], 0))].join(\x27\x27);\n}\n\nvar id \x3d shadow.object._id(oref);\nvar data \x3d shadow.object._data(oref);\nvar work_fn \x3d (function (data__$1){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(update_fn,data__$1,args);\n});\nreturn shadow.object._update(oref,work_fn);\n}));\n\n(shadow.object.update_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(shadow.object.update_BANG_.cljs$lang$applyTo \x3d (function (seq27313){\nvar G__27314 \x3d cljs.core.first(seq27313);\nvar seq27313__$1 \x3d cljs.core.next(seq27313);\nvar G__27315 \x3d cljs.core.first(seq27313__$1);\nvar seq27313__$2 \x3d cljs.core.next(seq27313__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27314,G__27315,seq27313__$2);\n}));\n\nshadow.object.return_value \x3d (function shadow$object$return_value(oref,return_value){\nreturn shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.object\x22,\x22return-value\x22,\x22shadow.object/return-value\x22,1397593360),return_value], 0));\n});\nshadow.object.set_parent_BANG_ \x3d (function shadow$object$set_parent_BANG_(child,parent){\nvar child_id \x3d shadow.object._id(child);\nvar parent_id \x3d shadow.object._id(parent);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.instance_parent,cljs.core.assoc,child_id,parent_id);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(shadow.object.instance_children,(function (x){\nvar current \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(x,parent_id,cljs.core.PersistentHashSet.EMPTY);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,parent_id,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(current,child_id));\n}));\n\nreturn true;\n});\nshadow.object.dom_destroy \x3d (function shadow$object$dom_destroy(this$,cause){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cause,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779))){\nreturn shadow.dom.remove(new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311).cljs$core$IFn$_invoke$arity$1(this$));\n} else {\nvar temp__5802__auto__ \x3d shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2(this$,new cljs.core.Keyword(\x22dom\x22,\x22remove\x22,\x22dom/remove\x22,-131527420));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar custom_remove \x3d temp__5802__auto__;\nvar G__27333 \x3d this$;\nvar G__27334 \x3d new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311).cljs$core$IFn$_invoke$arity$1(this$);\nreturn (custom_remove.cljs$core$IFn$_invoke$arity$2 ? custom_remove.cljs$core$IFn$_invoke$arity$2(G__27333,G__27334) : custom_remove.call(null, G__27333,G__27334));\n} else {\nreturn shadow.dom.remove(new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311).cljs$core$IFn$_invoke$arity$1(this$));\n}\n}\n});\nshadow.object.destroy_BANG_ \x3d (function shadow$object$destroy_BANG_(var_args){\nvar G__27336 \x3d arguments.length;\nswitch (G__27336) {\ncase 1:\nreturn shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1 \x3d (function (oref){\nreturn shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.Keyword(null,\x22direct\x22,\x22direct\x22,-1775717856));\n}));\n\n(shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (oref,cause){\nreturn shadow.object._destroy_BANG_(oref,cause);\n}));\n\n(shadow.object.destroy_BANG_.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.object.bind_dom_events \x3d (function shadow$object$bind_dom_events(oref,dom,dom_events){\nif((cljs.core.rem(cljs.core.count(dom_events),(2)) \x3d\x3d\x3d (0))){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22object defined invalid event\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22object-type\x22,\x22object-type\x22,-1889869015),shadow.object._type(oref),new cljs.core.Keyword(\x22dom\x22,\x22events\x22,\x22dom/events\x22,1793437527),dom_events], null));\n}\n\nvar seq__27347 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),dom_events));\nvar chunk__27349 \x3d null;\nvar count__27350 \x3d (0);\nvar i__27351 \x3d (0);\nwhile(true){\nif((i__27351 \x3c count__27350)){\nvar vec__27391 \x3d chunk__27349.cljs$core$IIndexed$_nth$arity$2(null, i__27351);\nvar ev \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27391,(0),null);\nvar handler \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27391,(1),null);\nvar ev_def \x3d vec__27391;\nif((handler \x3d\x3d null)){\nthrow [\x22ev with nil handler \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ev], 0))].join(\x27\x27);\n} else {\n}\n\nvar handler_27995__$1 \x3d (((handler instanceof cljs.core.Keyword))?((function (seq__27347,chunk__27349,count__27350,i__27351,vec__27391,ev,handler,ev_def){\nreturn (function (this$,e,el){\nreturn shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(this$,handler,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,el], 0));\n});})(seq__27347,chunk__27349,count__27350,i__27351,vec__27391,ev,handler,ev_def))\n:handler);\nshadow.dom.on.cljs$core$IFn$_invoke$arity$3(dom,ev,((function (seq__27347,chunk__27349,count__27350,i__27351,handler_27995__$1,vec__27391,ev,handler,ev_def){\nreturn (function shadow$object$bind_dom_events_$_dom_event_handler(e,el){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22A\x22,el.tagName)){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n} else {\n}\n\nreturn (handler_27995__$1.cljs$core$IFn$_invoke$arity$3 ? handler_27995__$1.cljs$core$IFn$_invoke$arity$3(oref,e,el) : handler_27995__$1.call(null, oref,e,el));\n});})(seq__27347,chunk__27349,count__27350,i__27351,handler_27995__$1,vec__27391,ev,handler,ev_def))\n);\n\n\nvar G__27998 \x3d seq__27347;\nvar G__27999 \x3d chunk__27349;\nvar G__28000 \x3d count__27350;\nvar G__28001 \x3d (i__27351 + (1));\nseq__27347 \x3d G__27998;\nchunk__27349 \x3d G__27999;\ncount__27350 \x3d G__28000;\ni__27351 \x3d G__28001;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__27347);\nif(temp__5804__auto__){\nvar seq__27347__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__27347__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__27347__$1);\nvar G__28002 \x3d cljs.core.chunk_rest(seq__27347__$1);\nvar G__28003 \x3d c__5525__auto__;\nvar G__28004 \x3d cljs.core.count(c__5525__auto__);\nvar G__28005 \x3d (0);\nseq__27347 \x3d G__28002;\nchunk__27349 \x3d G__28003;\ncount__27350 \x3d G__28004;\ni__27351 \x3d G__28005;\ncontinue;\n} else {\nvar vec__27399 \x3d cljs.core.first(seq__27347__$1);\nvar ev \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27399,(0),null);\nvar handler \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27399,(1),null);\nvar ev_def \x3d vec__27399;\nif((handler \x3d\x3d null)){\nthrow [\x22ev with nil handler \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ev], 0))].join(\x27\x27);\n} else {\n}\n\nvar handler_28006__$1 \x3d (((handler instanceof cljs.core.Keyword))?((function (seq__27347,chunk__27349,count__27350,i__27351,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__auto__){\nreturn (function (this$,e,el){\nreturn shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(this$,handler,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,el], 0));\n});})(seq__27347,chunk__27349,count__27350,i__27351,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__auto__))\n:handler);\nshadow.dom.on.cljs$core$IFn$_invoke$arity$3(dom,ev,((function (seq__27347,chunk__27349,count__27350,i__27351,handler_28006__$1,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__auto__){\nreturn (function shadow$object$bind_dom_events_$_dom_event_handler(e,el){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22A\x22,el.tagName)){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n} else {\n}\n\nreturn (handler_28006__$1.cljs$core$IFn$_invoke$arity$3 ? handler_28006__$1.cljs$core$IFn$_invoke$arity$3(oref,e,el) : handler_28006__$1.call(null, oref,e,el));\n});})(seq__27347,chunk__27349,count__27350,i__27351,handler_28006__$1,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__auto__))\n);\n\n\nvar G__28009 \x3d cljs.core.next(seq__27347__$1);\nvar G__28010 \x3d null;\nvar G__28011 \x3d (0);\nvar G__28012 \x3d (0);\nseq__27347 \x3d G__28009;\nchunk__27349 \x3d G__28010;\ncount__27350 \x3d G__28011;\ni__27351 \x3d G__28012;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.object.reaction_merge \x3d (function shadow$object$reaction_merge(result,p__27409){\nvar vec__27410 \x3d p__27409;\nvar event \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27410,(0),null);\nvar handler \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27410,(1),null);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d event;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn handler;\n} else {\nreturn and__5000__auto__;\n}\n})())){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid reaction\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22event\x22,\x22event\x22,301435442),event,new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612),handler], null));\n}\n\nvar current \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(result,event,cljs.core.List.EMPTY);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(result,event,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(current,handler));\n});\nshadow.object.merge_reactions \x3d (function shadow$object$merge_reactions(result,behavior){\nif(cljs.core.sequential_QMARK_(behavior)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22behaviors must be vectors\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22behavior\x22,\x22behavior\x22,1202392908),behavior], null));\n}\n\nif(cljs.core.even_QMARK_(cljs.core.count(behavior))){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid behavior\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22behavior\x22,\x22behavior\x22,1202392908),behavior], null));\n}\n\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(shadow.object.reaction_merge,result,cljs.core.reverse(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),behavior)));\n});\nshadow.object.merge_behaviors \x3d (function shadow$object$merge_behaviors(result,behavior){\nif(cljs.core.sequential_QMARK_(behavior)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(result,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633)], null),shadow.object.merge_reactions,behavior);\n} else {\nif(cljs.core.map_QMARK_(behavior)){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(result,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633)], null),shadow.object.merge_reactions,new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944).cljs$core$IFn$_invoke$arity$2(behavior,cljs.core.PersistentVector.EMPTY)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22watch\x22,\x22watch\x22,380988277)], null),(function (watches){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(watches,new cljs.core.Keyword(null,\x22watch\x22,\x22watch\x22,380988277).cljs$core$IFn$_invoke$arity$2(behavior,cljs.core.PersistentVector.EMPTY));\n})),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22dom\x22,\x22events\x22,\x22dom/events\x22,1793437527)], null),(function (default$){\nreturn cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword(\x22dom\x22,\x22events\x22,\x22dom/events\x22,1793437527).cljs$core$IFn$_invoke$arity$2(behavior,cljs.core.PersistentVector.EMPTY)));\n}));\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22behavior not understood\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22behavior\x22,\x22behavior\x22,1202392908),behavior], null));\n\n}\n}\n});\nshadow.object.define \x3d (function shadow$object$define(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___28026 \x3d arguments.length;\nvar i__5727__auto___28027 \x3d (0);\nwhile(true){\nif((i__5727__auto___28027 \x3c len__5726__auto___28026)){\nargs__5732__auto__.push((arguments[i__5727__auto___28027]));\n\nvar G__28028 \x3d (i__5727__auto___28027 + (1));\ni__5727__auto___28027 \x3d G__28028;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn shadow.object.define.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(shadow.object.define.cljs$core$IFn$_invoke$arity$variadic \x3d (function (id,args){\nif((id instanceof cljs.core.Keyword)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22object id needs to be a keyword\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n}\n\nif(cljs.core.even_QMARK_(cljs.core.count(args))){\n} else {\nthrow [\x22invalid object definition \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(id),\x22 args: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args], 0))].join(\x27\x27);\n}\n\nif(cljs.core.contains_QMARK_(cljs.core.deref(shadow.object.object_defs),id)){\nconsole.warn([\x22object already defined \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(id)].join(\x27\x27));\n} else {\n}\n\ntry{var odef \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,args);\nvar reactions \x3d shadow.object.merge_reactions(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944).cljs$core$IFn$_invoke$arity$2(odef,cljs.core.PersistentVector.EMPTY));\nvar odef__$1 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(odef,new cljs.core.Keyword(\x22shadow.object\x22,\x22id\x22,\x22shadow.object/id\x22,-647954841),id,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633),reactions], 0));\nvar odef__$2 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(shadow.object.merge_behaviors,odef__$1,cljs.core.reverse(new cljs.core.Keyword(null,\x22behaviors\x22,\x22behaviors\x22,120724909).cljs$core$IFn$_invoke$arity$2(odef__$1,cljs.core.PersistentVector.EMPTY)));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.object_defs,cljs.core.assoc,id,odef__$2);\n\nreturn odef__$2;\n}catch (e27457){if((e27457 instanceof Object)){\nvar e \x3d e27457;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22failed to define object\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),id,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n} else {\nthrow e27457;\n\n}\n}}));\n\n(shadow.object.define.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(shadow.object.define.cljs$lang$applyTo \x3d (function (seq27442){\nvar G__27443 \x3d cljs.core.first(seq27442);\nvar seq27442__$1 \x3d cljs.core.next(seq27442);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27443,seq27442__$1);\n}));\n\nshadow.object.merge_defaults \x3d (function shadow$object$merge_defaults(data,type){\nvar defaults \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.object_defs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type,new cljs.core.Keyword(null,\x22defaults\x22,\x22defaults\x22,976027214)], null));\nif((defaults \x3d\x3d null)){\nreturn data;\n} else {\nif(cljs.core.map_QMARK_(defaults)){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([defaults,data], 0));\n} else {\nif(cljs.core.fn_QMARK_(defaults)){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(defaults.cljs$core$IFn$_invoke$arity$0 ? defaults.cljs$core$IFn$_invoke$arity$0() : defaults.call(null, )),data], 0));\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid object defaults\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22defaults\x22,\x22defaults\x22,976027214),defaults,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type], null));\n\n}\n}\n}\n});\nshadow.object.make_dom \x3d (function shadow$object$make_dom(var_args){\nvar G__27482 \x3d arguments.length;\nswitch (G__27482) {\ncase 3:\nreturn shadow.object.make_dom.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.object.make_dom.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.make_dom.cljs$core$IFn$_invoke$arity$3 \x3d (function (oref,dom_key,events_key){\nreturn shadow.object.make_dom.cljs$core$IFn$_invoke$arity$4(oref,dom_key,events_key,null);\n}));\n\n(shadow.object.make_dom.cljs$core$IFn$_invoke$arity$4 \x3d (function (oref,dom_key,events_key,value){\nvar dom_fn \x3d (((dom_key instanceof cljs.core.Keyword))?shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2(oref,dom_key):dom_key);\nvar events \x3d (((events_key instanceof cljs.core.Keyword))?shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$3(oref,events_key,cljs.core.PersistentVector.EMPTY):events_key);\nvar dom \x3d (function (){var G__27492 \x3d (dom_fn.cljs$core$IFn$_invoke$arity$2 ? dom_fn.cljs$core$IFn$_invoke$arity$2(oref,value) : dom_fn.call(null, oref,value));\nreturn (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__27492) : shadow.dom.build.call(null, G__27492));\n})();\nshadow.object.bind_dom_events(oref,dom,events);\n\nreturn dom;\n}));\n\n(shadow.object.make_dom.cljs$lang$maxFixedArity \x3d 4);\n\nshadow.object.alive_QMARK_ \x3d (function shadow$object$alive_QMARK_(obj){\nreturn cljs.core.contains_QMARK_(cljs.core.deref(shadow.object.instances),shadow.object._id(obj));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nshadow.object.Watch \x3d (function (key,handler,__meta,__extmap,__hash){\nthis.key \x3d key;\nthis.handler \x3d handler;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(shadow.object.Watch.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(shadow.object.Watch.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k27502,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__27518 \x3d k27502;\nvar G__27518__$1 \x3d (((G__27518 instanceof cljs.core.Keyword))?G__27518.fqn:null);\nswitch (G__27518__$1) {\ncase \x22key\x22:\nreturn self__.key;\n\nbreak;\ncase \x22handler\x22:\nreturn self__.handler;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k27502,else__5303__auto__);\n\n}\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__27522){\nvar vec__27525 \x3d p__27522;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27525,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27525,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#shadow.object.Watch{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),self__.key],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612),self__.handler],null))], null),self__.__extmap));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__27501){\nvar self__ \x3d this;\nvar G__27501__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__27501__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(shadow.object.Watch.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new shadow.object.Watch(self__.key,self__.handler,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-17677043 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this27503,other27504){\nvar self__ \x3d this;\nvar this27503__$1 \x3d this;\nreturn (((!((other27504 \x3d\x3d null)))) \x26\x26 ((((this27503__$1.constructor \x3d\x3d\x3d other27504.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27503__$1.key,other27504.key)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27503__$1.handler,other27504.handler)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27503__$1.__extmap,other27504.__extmap)))))))));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),null,new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new shadow.object.Watch(self__.key,self__.handler,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k27502){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__27560 \x3d k27502;\nvar G__27560__$1 \x3d (((G__27560 instanceof cljs.core.Keyword))?G__27560.fqn:null);\nswitch (G__27560__$1) {\ncase \x22key\x22:\ncase \x22handler\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k27502);\n\n}\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__27501){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__27562 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__27563 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__27562.cljs$core$IFn$_invoke$arity$2 ? pred__27562.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),expr__27563) : pred__27562.call(null, new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),expr__27563)))){\nreturn (new shadow.object.Watch(G__27501,self__.handler,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__27562.cljs$core$IFn$_invoke$arity$2 ? pred__27562.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612),expr__27563) : pred__27562.call(null, new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612),expr__27563)))){\nreturn (new shadow.object.Watch(self__.key,G__27501,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.object.Watch(self__.key,self__.handler,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__27501),null));\n}\n}\n}));\n\n(shadow.object.Watch.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),self__.key,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612),self__.handler,null))], null),self__.__extmap));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__27501){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new shadow.object.Watch(self__.key,self__.handler,G__27501,self__.__extmap,self__.__hash));\n}));\n\n(shadow.object.Watch.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(shadow.object.Watch.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22key\x22,\x22key\x22,124488940,null),new cljs.core.Symbol(null,\x22handler\x22,\x22handler\x22,1444934915,null)], null);\n}));\n\n(shadow.object.Watch.cljs$lang$type \x3d true);\n\n(shadow.object.Watch.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22shadow.object/Watch\x22,null,(1),null));\n}));\n\n(shadow.object.Watch.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22shadow.object/Watch\x22);\n}));\n\n/**\n * Positional factory function for shadow.object/Watch.\n */\nshadow.object.__GT_Watch \x3d (function shadow$object$__GT_Watch(key,handler){\nreturn (new shadow.object.Watch(key,handler,null,null,null));\n});\n\n/**\n * Factory function for shadow.object/Watch, taking a map of keywords to field values.\n */\nshadow.object.map__GT_Watch \x3d (function shadow$object$map__GT_Watch(G__27508){\nvar extmap__5342__auto__ \x3d (function (){var G__27594 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__27508,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612)], 0));\nif(cljs.core.record_QMARK_(G__27508)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__27594);\n} else {\nreturn G__27594;\n}\n})();\nreturn (new shadow.object.Watch(new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(G__27508),new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612).cljs$core$IFn$_invoke$arity$1(G__27508),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IWatchable}\n * @implements {cljs.core.IEquiv}\n * @implements {shadow.object.IObject}\n * @implements {cljs.core.async.impl.protocols.ReadPort}\n * @implements {cljs.core.IDeref}\n * @implements {shadow.dom.IElement}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {shadow.dom.SVGElement}\n * @implements {cljs.core.ILookup}\n*/\nshadow.object.ObjectRef \x3d (function (id,type,data,watches,result_chan){\nthis.id \x3d id;\nthis.type \x3d type;\nthis.data \x3d data;\nthis.watches \x3d watches;\nthis.result_chan \x3d result_chan;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2149613824;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 2;\n});\n(shadow.object.ObjectRef.prototype.cljs$core$async$impl$protocols$ReadPort$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.object.ObjectRef.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 \x3d (function (this$,handler){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.async.impl.protocols.take_BANG_(self__.result_chan,handler);\n}));\n\n(shadow.object.ObjectRef.prototype.toString \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0));\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this$,k){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),k)){\nreturn shadow.object.get_parent(this$__$1);\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(self__.data,k);\n}\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this$,k,d){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),k)){\nreturn shadow.object.get_parent(this$__$1);\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.data,k,d);\n}\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this$,writer,opts){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#\x3cObjectRef {:id \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.id),\x22, :type \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.type),\x22}\x3e\x22].join(\x27\x27));\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$dom$SVGElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.object.ObjectRef.prototype.shadow$dom$SVGElement$_to_svg$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311).cljs$core$IFn$_invoke$arity$1(self__.data);\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (((other instanceof shadow.object.ObjectRef)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this$__$1.shadow$object$IObject$_id$arity$1(null, ),shadow.object._id(other))));\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$dom$IElement$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.object.ObjectRef.prototype.shadow$dom$IElement$_to_dom$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311).cljs$core$IFn$_invoke$arity$1(self__.data);\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$IWatchable$_notify_watches$arity$3 \x3d (function (this$,oldval,newval){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nthrow (new Error(\x22who be calling?\x22));\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$IWatchable$_add_watch$arity$3 \x3d (function (this$,key,f){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.watches \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(self__.watches,(new shadow.object.Watch(key,f,null,null,null))));\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$IWatchable$_remove_watch$arity$2 \x3d (function (this$,key){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn (self__.watches \x3d cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__27601_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587).cljs$core$IFn$_invoke$arity$1(p1__27601_SHARP_));\n}),self__.watches));\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$object$IObject$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.object.ObjectRef.prototype.shadow$object$IObject$_id$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.id;\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$object$IObject$_type$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.type;\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$object$IObject$_data$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.data;\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$object$IObject$_update$arity$2 \x3d (function (this$,update_fn){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar old \x3d self__.data;\nvar new$ \x3d (update_fn.cljs$core$IFn$_invoke$arity$1 ? update_fn.cljs$core$IFn$_invoke$arity$1(self__.data) : update_fn.call(null, self__.data));\n(self__.data \x3d new$);\n\nvar seq__27652 \x3d cljs.core.seq(self__.watches);\nvar chunk__27653 \x3d null;\nvar count__27654 \x3d (0);\nvar i__27655 \x3d (0);\nwhile(true){\nif((i__27655 \x3c count__27654)){\nvar map__27672 \x3d chunk__27653.cljs$core$IIndexed$_nth$arity$2(null, i__27655);\nvar map__27672__$1 \x3d cljs.core.__destructure_map(map__27672);\nvar watch \x3d map__27672__$1;\nvar key \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27672__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587));\nvar handler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27672__$1,new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612));\nif(shadow.object.alive_QMARK_(this$__$1)){\n(handler.cljs$core$IFn$_invoke$arity$4 ? handler.cljs$core$IFn$_invoke$arity$4(key,this$__$1,old,new$) : handler.call(null, key,this$__$1,old,new$));\n} else {\n}\n\n\nvar G__28056 \x3d seq__27652;\nvar G__28057 \x3d chunk__27653;\nvar G__28058 \x3d count__27654;\nvar G__28059 \x3d (i__27655 + (1));\nseq__27652 \x3d G__28056;\nchunk__27653 \x3d G__28057;\ncount__27654 \x3d G__28058;\ni__27655 \x3d G__28059;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__27652);\nif(temp__5804__auto__){\nvar seq__27652__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__27652__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__27652__$1);\nvar G__28060 \x3d cljs.core.chunk_rest(seq__27652__$1);\nvar G__28061 \x3d c__5525__auto__;\nvar G__28062 \x3d cljs.core.count(c__5525__auto__);\nvar G__28063 \x3d (0);\nseq__27652 \x3d G__28060;\nchunk__27653 \x3d G__28061;\ncount__27654 \x3d G__28062;\ni__27655 \x3d G__28063;\ncontinue;\n} else {\nvar map__27682 \x3d cljs.core.first(seq__27652__$1);\nvar map__27682__$1 \x3d cljs.core.__destructure_map(map__27682);\nvar watch \x3d map__27682__$1;\nvar key \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27682__$1,new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587));\nvar handler \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27682__$1,new cljs.core.Keyword(null,\x22handler\x22,\x22handler\x22,-195596612));\nif(shadow.object.alive_QMARK_(this$__$1)){\n(handler.cljs$core$IFn$_invoke$arity$4 ? handler.cljs$core$IFn$_invoke$arity$4(key,this$__$1,old,new$) : handler.call(null, key,this$__$1,old,new$));\n} else {\n}\n\n\nvar G__28065 \x3d cljs.core.next(seq__27652__$1);\nvar G__28066 \x3d null;\nvar G__28067 \x3d (0);\nvar G__28068 \x3d (0);\nseq__27652 \x3d G__28065;\nchunk__27653 \x3d G__28066;\ncount__27654 \x3d G__28067;\ni__27655 \x3d G__28068;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(shadow.object.ObjectRef.prototype.shadow$object$IObject$_destroy_BANG_$arity$2 \x3d (function (this$,cause){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar parent_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instance_parent),self__.id);\nvar seq__27688_28069 \x3d cljs.core.seq(shadow.object.get_children(this$__$1));\nvar chunk__27689_28070 \x3d null;\nvar count__27690_28071 \x3d (0);\nvar i__27691_28072 \x3d (0);\nwhile(true){\nif((i__27691_28072 \x3c count__27690_28071)){\nvar child_28073 \x3d chunk__27689_28070.cljs$core$IIndexed$_nth$arity$2(null, i__27691_28072);\nshadow.object._destroy_BANG_(child_28073,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779));\n\n\nvar G__28075 \x3d seq__27688_28069;\nvar G__28076 \x3d chunk__27689_28070;\nvar G__28077 \x3d count__27690_28071;\nvar G__28078 \x3d (i__27691_28072 + (1));\nseq__27688_28069 \x3d G__28075;\nchunk__27689_28070 \x3d G__28076;\ncount__27690_28071 \x3d G__28077;\ni__27691_28072 \x3d G__28078;\ncontinue;\n} else {\nvar temp__5804__auto___28080 \x3d cljs.core.seq(seq__27688_28069);\nif(temp__5804__auto___28080){\nvar seq__27688_28081__$1 \x3d temp__5804__auto___28080;\nif(cljs.core.chunked_seq_QMARK_(seq__27688_28081__$1)){\nvar c__5525__auto___28082 \x3d cljs.core.chunk_first(seq__27688_28081__$1);\nvar G__28083 \x3d cljs.core.chunk_rest(seq__27688_28081__$1);\nvar G__28084 \x3d c__5525__auto___28082;\nvar G__28085 \x3d cljs.core.count(c__5525__auto___28082);\nvar G__28086 \x3d (0);\nseq__27688_28069 \x3d G__28083;\nchunk__27689_28070 \x3d G__28084;\ncount__27690_28071 \x3d G__28085;\ni__27691_28072 \x3d G__28086;\ncontinue;\n} else {\nvar child_28087 \x3d cljs.core.first(seq__27688_28081__$1);\nshadow.object._destroy_BANG_(child_28087,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779));\n\n\nvar G__28088 \x3d cljs.core.next(seq__27688_28081__$1);\nvar G__28089 \x3d null;\nvar G__28090 \x3d (0);\nvar G__28091 \x3d (0);\nseq__27688_28069 \x3d G__28088;\nchunk__27689_28070 \x3d G__28089;\ncount__27690_28071 \x3d G__28090;\ni__27691_28072 \x3d G__28091;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nshadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(this$__$1,new cljs.core.Keyword(null,\x22destroy\x22,\x22destroy\x22,-843660405),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cause], 0));\n\nshadow.object.dom_destroy(this$__$1,cause);\n\nvar return_value_28094 \x3d new cljs.core.Keyword(\x22shadow.object\x22,\x22return-value\x22,\x22shadow.object/return-value\x22,1397593360).cljs$core$IFn$_invoke$arity$1(this$__$1);\nif((return_value_28094 \x3d\x3d null)){\n} else {\ncljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(self__.result_chan,return_value_28094);\n}\n\ncljs.core.async.close_BANG_(self__.result_chan);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.object.instances,cljs.core.dissoc,self__.id);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.object.instance_parent,cljs.core.dissoc,self__.id);\n\nif(cljs.core.truth_(parent_id)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(shadow.object.instance_children,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [parent_id], null),cljs.core.disj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.id], 0));\n} else {\nreturn null;\n}\n}));\n\n(shadow.object.ObjectRef.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn self__.data;\n}));\n\n(shadow.object.ObjectRef.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22watches\x22,\x22watches\x22,1367433992,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null)),new cljs.core.Symbol(null,\x22result-chan\x22,\x22result-chan\x22,3070926,null)], null);\n}));\n\n(shadow.object.ObjectRef.cljs$lang$type \x3d true);\n\n(shadow.object.ObjectRef.cljs$lang$ctorStr \x3d \x22shadow.object/ObjectRef\x22);\n\n(shadow.object.ObjectRef.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.object/ObjectRef\x22);\n}));\n\n/**\n * Positional factory function for shadow.object/ObjectRef.\n */\nshadow.object.__GT_ObjectRef \x3d (function shadow$object$__GT_ObjectRef(id,type,data,watches,result_chan){\nreturn (new shadow.object.ObjectRef(id,type,data,watches,result_chan));\n});\n\nshadow.object.add_reaction_BANG_ \x3d (function shadow$object$add_reaction_BANG_(var_args){\nvar G__27729 \x3d arguments.length;\nswitch (G__27729) {\ncase 3:\nreturn shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$3 \x3d (function (oref,ev,handler_fn){\nreturn shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [ev,handler_fn], null));\n}));\n\n(shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$2 \x3d (function (oref,list){\nreturn shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.update_in,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633)], null),shadow.object.merge_reactions,list], 0));\n}));\n\n(shadow.object.add_reaction_BANG_.cljs$lang$maxFixedArity \x3d 3);\n\nshadow.object.bind_change \x3d (function shadow$object$bind_change(var_args){\nvar G__27740 \x3d arguments.length;\nswitch (G__27740) {\ncase 3:\nreturn shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.object.bind_change.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3 \x3d (function (oref,attr,callback){\nreturn shadow.object.bind_change.cljs$core$IFn$_invoke$arity$4(oref,attr,callback,cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22bind-change\x22));\n}));\n\n(shadow.object.bind_change.cljs$core$IFn$_invoke$arity$4 \x3d (function (oref,attr,callback,watch_key){\nif((((!((oref \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d oref.shadow$object$IObject$))))?true:(((!oref.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,oref):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,oref))){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22binding currently only supports shadow objects, other atoms might leak, may add later\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22oref\x22,\x22oref\x22,-1547494840),oref,new cljs.core.Keyword(null,\x22attr\x22,\x22attr\x22,-604132353),attr], null));\n}\n\nvar attr__$1 \x3d ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null));\nreturn cljs.core.add_watch(oref,watch_key,(function shadow$object$bind_change_watch(_,___$1,old,new$){\nvar ov \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(old,attr__$1);\nvar nv \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new$,attr__$1);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ov,nv)){\nreturn null;\n} else {\nreturn (callback.cljs$core$IFn$_invoke$arity$2 ? callback.cljs$core$IFn$_invoke$arity$2(ov,nv) : callback.call(null, ov,nv));\n}\n}));\n}));\n\n(shadow.object.bind_change.cljs$lang$maxFixedArity \x3d 4);\n\nshadow.object.dom_enter \x3d (function shadow$object$dom_enter(parent,child){\nshadow.dom.append.cljs$core$IFn$_invoke$arity$2(parent,child);\n\nif(cljs.core.truth_(shadow.dom.contains_QMARK_.cljs$core$IFn$_invoke$arity$1(parent))){\nreturn shadow.object.notify_tree_BANG_(child,new cljs.core.Keyword(\x22dom\x22,\x22entered\x22,\x22dom/entered\x22,506699596));\n} else {\nreturn null;\n}\n});\nshadow.object.create \x3d (function shadow$object$create(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___28108 \x3d arguments.length;\nvar i__5727__auto___28109 \x3d (0);\nwhile(true){\nif((i__5727__auto___28109 \x3c len__5726__auto___28108)){\nargs__5732__auto__.push((arguments[i__5727__auto___28109]));\n\nvar G__28110 \x3d (i__5727__auto___28109 + (1));\ni__5727__auto___28109 \x3d G__28110;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn shadow.object.create.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(shadow.object.create.cljs$core$IFn$_invoke$arity$variadic \x3d (function (type,args,node_children){\nif(cljs.core.contains_QMARK_(cljs.core.deref(shadow.object.object_defs),type)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22cannot create unknown child type: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(type)].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),type,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n}\n\nif(cljs.core.map_QMARK_(args)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22so/create second arg must be a map\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),args], null));\n}\n\nvar oid \x3d shadow.object.next_id();\nvar parent \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(args);\nvar result_chan \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\nvar odef \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.object_defs),type);\nvar obj \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(shadow.object.merge_defaults(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(args,new cljs.core.Keyword(\x22shadow.object\x22,\x22object-id\x22,\x22shadow.object/object-id\x22,-685993804),oid,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633),cljs.core.get.cljs$core$IFn$_invoke$arity$3(odef,new cljs.core.Keyword(\x22shadow.object\x22,\x22reactions\x22,\x22shadow.object/reactions\x22,1966199633),cljs.core.PersistentArrayMap.EMPTY)], 0)),type),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922)], 0));\nvar oref \x3d (new shadow.object.ObjectRef(oid,type,obj,cljs.core.PersistentVector.EMPTY,result_chan));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.instances,cljs.core.assoc,oid,oref);\n\nif(cljs.core.truth_(parent)){\nshadow.object.set_parent_BANG_(oref,parent);\n} else {\n}\n\nshadow.object.notify_BANG_(oref,new cljs.core.Keyword(null,\x22init\x22,\x22init\x22,-1875481434));\n\nvar dom_events_28111 \x3d new cljs.core.Keyword(\x22dom\x22,\x22events\x22,\x22dom/events\x22,1793437527).cljs$core$IFn$_invoke$arity$2(odef,cljs.core.PersistentVector.EMPTY);\nvar temp__5802__auto___28112 \x3d new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922).cljs$core$IFn$_invoke$arity$1(args);\nif(cljs.core.truth_(temp__5802__auto___28112)){\nvar dom_28113 \x3d temp__5802__auto___28112;\nshadow.dom.set_data(dom_28113,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid);\n\nshadow.object.bind_dom_events(oref,dom_28113,dom_events_28111);\n\nshadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311),dom_28113], 0));\n\nshadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,new cljs.core.Keyword(\x22dom\x22,\x22init\x22,\x22dom/init\x22,-1875647652),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([dom_28113], 0));\n} else {\nvar temp__5804__auto___28121 \x3d new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922).cljs$core$IFn$_invoke$arity$1(odef);\nif(cljs.core.truth_(temp__5804__auto___28121)){\nvar dom_fn_28122 \x3d temp__5804__auto___28121;\nvar dom_28123 \x3d (function (){var G__27762 \x3d (dom_fn_28122.cljs$core$IFn$_invoke$arity$2 ? dom_fn_28122.cljs$core$IFn$_invoke$arity$2(oref,node_children) : dom_fn_28122.call(null, oref,node_children));\nreturn (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__27762) : shadow.dom.build.call(null, G__27762));\n})();\nshadow.dom.set_data(dom_28123,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid);\n\nshadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.object\x22,\x22dom\x22,\x22shadow.object/dom\x22,-1238263311),dom_28123], 0));\n\nshadow.object.bind_dom_events(oref,dom_28123,dom_events_28111);\n\nshadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,new cljs.core.Keyword(\x22dom\x22,\x22init\x22,\x22dom/init\x22,-1875647652),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([dom_28123], 0));\n} else {\n}\n}\n\nvar temp__5804__auto___28124 \x3d new cljs.core.Keyword(null,\x22watch\x22,\x22watch\x22,380988277).cljs$core$IFn$_invoke$arity$1(odef);\nif(cljs.core.truth_(temp__5804__auto___28124)){\nvar watches_28125 \x3d temp__5804__auto___28124;\nvar seq__27763_28126 \x3d cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),watches_28125));\nvar chunk__27764_28127 \x3d null;\nvar count__27765_28128 \x3d (0);\nvar i__27766_28129 \x3d (0);\nwhile(true){\nif((i__27766_28129 \x3c count__27765_28128)){\nvar vec__27773_28131 \x3d chunk__27764_28127.cljs$core$IIndexed$_nth$arity$2(null, i__27766_28129);\nvar attr_28132 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27773_28131,(0),null);\nvar handler_28133 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27773_28131,(1),null);\nshadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr_28132,((function (seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27773_28131,attr_28132,handler_28133,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref){\nreturn (function (old,new$){\nreturn (handler_28133.cljs$core$IFn$_invoke$arity$3 ? handler_28133.cljs$core$IFn$_invoke$arity$3(oref,old,new$) : handler_28133.call(null, oref,old,new$));\n});})(seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27773_28131,attr_28132,handler_28133,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref))\n);\n\n\nvar G__28134 \x3d seq__27763_28126;\nvar G__28135 \x3d chunk__27764_28127;\nvar G__28136 \x3d count__27765_28128;\nvar G__28137 \x3d (i__27766_28129 + (1));\nseq__27763_28126 \x3d G__28134;\nchunk__27764_28127 \x3d G__28135;\ncount__27765_28128 \x3d G__28136;\ni__27766_28129 \x3d G__28137;\ncontinue;\n} else {\nvar temp__5804__auto___28138__$1 \x3d cljs.core.seq(seq__27763_28126);\nif(temp__5804__auto___28138__$1){\nvar seq__27763_28139__$1 \x3d temp__5804__auto___28138__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__27763_28139__$1)){\nvar c__5525__auto___28140 \x3d cljs.core.chunk_first(seq__27763_28139__$1);\nvar G__28141 \x3d cljs.core.chunk_rest(seq__27763_28139__$1);\nvar G__28142 \x3d c__5525__auto___28140;\nvar G__28143 \x3d cljs.core.count(c__5525__auto___28140);\nvar G__28144 \x3d (0);\nseq__27763_28126 \x3d G__28141;\nchunk__27764_28127 \x3d G__28142;\ncount__27765_28128 \x3d G__28143;\ni__27766_28129 \x3d G__28144;\ncontinue;\n} else {\nvar vec__27776_28145 \x3d cljs.core.first(seq__27763_28139__$1);\nvar attr_28146 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27776_28145,(0),null);\nvar handler_28147 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27776_28145,(1),null);\nshadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr_28146,((function (seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27776_28145,attr_28146,handler_28147,seq__27763_28139__$1,temp__5804__auto___28138__$1,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref){\nreturn (function (old,new$){\nreturn (handler_28147.cljs$core$IFn$_invoke$arity$3 ? handler_28147.cljs$core$IFn$_invoke$arity$3(oref,old,new$) : handler_28147.call(null, oref,old,new$));\n});})(seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27776_28145,attr_28146,handler_28147,seq__27763_28139__$1,temp__5804__auto___28138__$1,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref))\n);\n\n\nvar G__28150 \x3d cljs.core.next(seq__27763_28139__$1);\nvar G__28151 \x3d null;\nvar G__28152 \x3d (0);\nvar G__28153 \x3d (0);\nseq__27763_28126 \x3d G__28150;\nchunk__27764_28127 \x3d G__28151;\ncount__27765_28128 \x3d G__28152;\ni__27766_28129 \x3d G__28153;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nreturn oref;\n}));\n\n(shadow.object.create.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(shadow.object.create.cljs$lang$applyTo \x3d (function (seq27751){\nvar G__27752 \x3d cljs.core.first(seq27751);\nvar seq27751__$1 \x3d cljs.core.next(seq27751);\nvar G__27753 \x3d cljs.core.first(seq27751__$1);\nvar seq27751__$2 \x3d cljs.core.next(seq27751__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27752,G__27753,seq27751__$2);\n}));\n\n/**\n * [oref attr node-gen] produces a node via (node-gen new-value)\n * watches obj for changes and replaces the generated node on change (node-gen defaults to str)\n * \n * only use if the node has no attached behavior like clicks, use bind with an extra object for those\n */\nshadow.object.bind_simple \x3d (function shadow$object$bind_simple(var_args){\nvar G__27782 \x3d arguments.length;\nswitch (G__27782) {\ncase 2:\nreturn shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$2 \x3d (function (oref,attr){\nreturn shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$3(oref,attr,cljs.core.str);\n}));\n\n(shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$3 \x3d (function (oref,attr,node_gen){\nvar attr__$1 \x3d ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null));\nvar node_get \x3d (function (p1__27780_SHARP_){\nvar G__27786 \x3d (node_gen.cljs$core$IFn$_invoke$arity$1 ? node_gen.cljs$core$IFn$_invoke$arity$1(p1__27780_SHARP_) : node_gen.call(null, p1__27780_SHARP_));\nreturn (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__27786) : shadow.dom.build.call(null, G__27786));\n});\nvar node \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(node_get(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(oref,attr__$1)));\nvar bind_key \x3d cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(\x22bind\x22);\nshadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr__$1,(function (old,new$){\nvar new_node \x3d node_get(new$);\nvar current_node \x3d cljs.core.deref(node);\nshadow.dom.replace_node(current_node,new_node);\n\nreturn cljs.core.reset_BANG_(node,new_node);\n}));\n\nreturn cljs.core.deref(node);\n}));\n\n(shadow.object.bind_simple.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * bind the given attribute a child item\n * the item will be recreated whenever the value changes (old one will be destroyed)\n */\nshadow.object.bind \x3d (function shadow$object$bind(oref,attr,item_type,item_key,item_attrs){\nvar attr__$1 \x3d ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null));\nvar curval \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(oref,attr__$1);\nvar make_child_fn \x3d (function (value){\nreturn shadow.object.create(item_type,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([item_attrs,cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),oref,item_key,value])], 0)));\n});\nvar child \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(make_child_fn(curval));\nshadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr__$1,(function (old,new$){\nvar new_child \x3d make_child_fn(new$);\nvar current_node \x3d cljs.core.deref(child);\nshadow.dom.replace_node(current_node,new_child);\n\nshadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(child));\n\ncljs.core.reset_BANG_(child,new_child);\n\nreturn (shadow.object.notify_down_BANG_.cljs$core$IFn$_invoke$arity$2 ? shadow.object.notify_down_BANG_.cljs$core$IFn$_invoke$arity$2(new_child,new cljs.core.Keyword(\x22dom\x22,\x22entered\x22,\x22dom/entered\x22,506699596)) : shadow.object.notify_down_BANG_.call(null, new_child,new cljs.core.Keyword(\x22dom\x22,\x22entered\x22,\x22dom/entered\x22,506699596)));\n}));\n\nreturn cljs.core.deref(child);\n});\nshadow.object.coll_destroy_children \x3d (function shadow$object$coll_destroy_children(children,c,diff){\nvar seq__27796_28156 \x3d cljs.core.seq(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(children,(c + diff),c));\nvar chunk__27797_28157 \x3d null;\nvar count__27798_28158 \x3d (0);\nvar i__27799_28159 \x3d (0);\nwhile(true){\nif((i__27799_28159 \x3c count__27798_28158)){\nvar obj_28160 \x3d chunk__27797_28157.cljs$core$IIndexed$_nth$arity$2(null, i__27799_28159);\nvar obj_28161__$1 \x3d shadow.object.get_from_dom(obj_28160);\nshadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(obj_28161__$1);\n\n\nvar G__28162 \x3d seq__27796_28156;\nvar G__28163 \x3d chunk__27797_28157;\nvar G__28164 \x3d count__27798_28158;\nvar G__28165 \x3d (i__27799_28159 + (1));\nseq__27796_28156 \x3d G__28162;\nchunk__27797_28157 \x3d G__28163;\ncount__27798_28158 \x3d G__28164;\ni__27799_28159 \x3d G__28165;\ncontinue;\n} else {\nvar temp__5804__auto___28166 \x3d cljs.core.seq(seq__27796_28156);\nif(temp__5804__auto___28166){\nvar seq__27796_28167__$1 \x3d temp__5804__auto___28166;\nif(cljs.core.chunked_seq_QMARK_(seq__27796_28167__$1)){\nvar c__5525__auto___28168 \x3d cljs.core.chunk_first(seq__27796_28167__$1);\nvar G__28169 \x3d cljs.core.chunk_rest(seq__27796_28167__$1);\nvar G__28170 \x3d c__5525__auto___28168;\nvar G__28171 \x3d cljs.core.count(c__5525__auto___28168);\nvar G__28172 \x3d (0);\nseq__27796_28156 \x3d G__28169;\nchunk__27797_28157 \x3d G__28170;\ncount__27798_28158 \x3d G__28171;\ni__27799_28159 \x3d G__28172;\ncontinue;\n} else {\nvar obj_28173 \x3d cljs.core.first(seq__27796_28167__$1);\nvar obj_28174__$1 \x3d shadow.object.get_from_dom(obj_28173);\nshadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(obj_28174__$1);\n\n\nvar G__28175 \x3d cljs.core.next(seq__27796_28167__$1);\nvar G__28176 \x3d null;\nvar G__28177 \x3d (0);\nvar G__28178 \x3d (0);\nseq__27796_28156 \x3d G__28175;\nchunk__27797_28157 \x3d G__28176;\ncount__27798_28158 \x3d G__28177;\ni__27799_28159 \x3d G__28178;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(children,(0),(c + diff));\n});\nshadow.object.bind_children \x3d (function shadow$object$bind_children(var_args){\nvar G__27819 \x3d arguments.length;\nswitch (G__27819) {\ncase 5:\nreturn shadow.object.bind_children.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn shadow.object.bind_children.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.object.bind_children.cljs$core$IFn$_invoke$arity$5 \x3d (function (node,parent,attr,item_type,item_key){\nreturn shadow.object.bind_children.cljs$core$IFn$_invoke$arity$6(node,parent,attr,item_type,item_key,(function (p1__27810_SHARP_){\nreturn cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,p1__27810_SHARP_);\n}));\n}));\n\n(shadow.object.bind_children.cljs$core$IFn$_invoke$arity$6 \x3d (function (node,parent,attr,item_type,item_key,coll_transform){\nvar attr__$1 \x3d ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null));\nvar update_children \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(true);\nvar coll_dom \x3d (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(node) : shadow.dom.build.call(null, node));\nvar make_item_fn \x3d (function (p__27820){\nvar vec__27821 \x3d p__27820;\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27821,(0),null);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27821,(1),null);\nvar obj \x3d shadow.object.create(item_type,cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),parent,new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-path\x22,\x22shadow.object/coll-path\x22,1583850048),attr__$1,new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-key\x22,\x22shadow.object/coll-key\x22,827543616),key,new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-item-key\x22,\x22shadow.object/coll-item-key\x22,1888444366),item_key,item_key,val]));\nshadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(obj,item_key,(function (old,new$){\nvar parent_key \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(attr__$1,new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-key\x22,\x22shadow.object/coll-key\x22,827543616).cljs$core$IFn$_invoke$arity$1(obj));\n(shadow.object.log.cljs$core$IFn$_invoke$arity$6 ? shadow.object.log.cljs$core$IFn$_invoke$arity$6(\x22direct child update\x22,parent,obj,key,parent_key,new$) : shadow.object.log.call(null, \x22direct child update\x22,parent,obj,key,parent_key,new$));\n\ncljs.core.reset_BANG_(update_children,false);\n\nshadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(parent,cljs.core.assoc_in,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([parent_key,new$], 0));\n\nreturn cljs.core.reset_BANG_(update_children,true);\n}));\n\nreturn obj;\n});\nvar seq__27824_28185 \x3d cljs.core.seq((function (){var G__27829 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(parent,attr__$1);\nreturn (coll_transform.cljs$core$IFn$_invoke$arity$1 ? coll_transform.cljs$core$IFn$_invoke$arity$1(G__27829) : coll_transform.call(null, G__27829));\n})());\nvar chunk__27825_28186 \x3d null;\nvar count__27826_28187 \x3d (0);\nvar i__27827_28188 \x3d (0);\nwhile(true){\nif((i__27827_28188 \x3c count__27826_28187)){\nvar item_28189 \x3d chunk__27825_28186.cljs$core$IIndexed$_nth$arity$2(null, i__27827_28188);\nshadow.object.dom_enter(coll_dom,make_item_fn(item_28189));\n\n\nvar G__28190 \x3d seq__27824_28185;\nvar G__28191 \x3d chunk__27825_28186;\nvar G__28192 \x3d count__27826_28187;\nvar G__28193 \x3d (i__27827_28188 + (1));\nseq__27824_28185 \x3d G__28190;\nchunk__27825_28186 \x3d G__28191;\ncount__27826_28187 \x3d G__28192;\ni__27827_28188 \x3d G__28193;\ncontinue;\n} else {\nvar temp__5804__auto___28194 \x3d cljs.core.seq(seq__27824_28185);\nif(temp__5804__auto___28194){\nvar seq__27824_28195__$1 \x3d temp__5804__auto___28194;\nif(cljs.core.chunked_seq_QMARK_(seq__27824_28195__$1)){\nvar c__5525__auto___28196 \x3d cljs.core.chunk_first(seq__27824_28195__$1);\nvar G__28197 \x3d cljs.core.chunk_rest(seq__27824_28195__$1);\nvar G__28198 \x3d c__5525__auto___28196;\nvar G__28199 \x3d cljs.core.count(c__5525__auto___28196);\nvar G__28200 \x3d (0);\nseq__27824_28185 \x3d G__28197;\nchunk__27825_28186 \x3d G__28198;\ncount__27826_28187 \x3d G__28199;\ni__27827_28188 \x3d G__28200;\ncontinue;\n} else {\nvar item_28201 \x3d cljs.core.first(seq__27824_28195__$1);\nshadow.object.dom_enter(coll_dom,make_item_fn(item_28201));\n\n\nvar G__28202 \x3d cljs.core.next(seq__27824_28195__$1);\nvar G__28203 \x3d null;\nvar G__28204 \x3d (0);\nvar G__28205 \x3d (0);\nseq__27824_28185 \x3d G__28202;\nchunk__27825_28186 \x3d G__28203;\ncount__27826_28187 \x3d G__28204;\ni__27827_28188 \x3d G__28205;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nshadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(parent,attr__$1,(function shadow$object$bind_children_watch(old,new$){\nif(cljs.core.truth_(cljs.core.deref(update_children))){\nvar children \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,shadow.dom.children(coll_dom));\nvar new_coll \x3d cljs.core.vec((coll_transform.cljs$core$IFn$_invoke$arity$1 ? coll_transform.cljs$core$IFn$_invoke$arity$1(new$) : coll_transform.call(null, new$)));\nvar count_children \x3d cljs.core.count(children);\nvar count_new \x3d cljs.core.count(new$);\nvar diff \x3d (count_new - count_children);\nvar children__$1 \x3d (((diff \x3c (0)))?shadow.object.coll_destroy_children(children,count_children,diff):children);\nvar count_children__$1 \x3d (function (){var x__5090__auto__ \x3d count_new;\nvar y__5091__auto__ \x3d count_children;\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})();\nvar n__5593__auto___28207 \x3d count_children__$1;\nvar idx_28208 \x3d (0);\nwhile(true){\nif((idx_28208 \x3c n__5593__auto___28207)){\nvar cn_28209 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(children__$1,idx_28208);\nvar cc_28210 \x3d shadow.object.get_from_dom(cn_28209);\nvar ckey_28211 \x3d new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-key\x22,\x22shadow.object/coll-key\x22,827543616).cljs$core$IFn$_invoke$arity$1(cc_28210);\nvar cval_28212 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cc_28210,item_key);\nvar vec__27830_28213 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new_coll,idx_28208);\nvar nkey_28214 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27830_28213,(0),null);\nvar nval_28215 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27830_28213,(1),null);\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ckey_28211,nkey_28214)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cval_28212,nval_28215)))){\n} else {\nvar new_obj_28218 \x3d make_item_fn(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nkey_28214,nval_28215], null));\nshadow.dom.replace_node(cn_28209,new_obj_28218);\n\nshadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(cc_28210);\n\nshadow.object.notify_tree_BANG_(new_obj_28218,new cljs.core.Keyword(\x22dom\x22,\x22entered\x22,\x22dom/entered\x22,506699596));\n}\n\nvar G__28222 \x3d (idx_28208 + (1));\nidx_28208 \x3d G__28222;\ncontinue;\n} else {\n}\nbreak;\n}\n\nif((diff \x3e (0))){\nvar seq__27833_28223 \x3d cljs.core.seq(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(new_coll,count_children__$1,count_new));\nvar chunk__27834_28224 \x3d null;\nvar count__27835_28225 \x3d (0);\nvar i__27836_28226 \x3d (0);\nwhile(true){\nif((i__27836_28226 \x3c count__27835_28225)){\nvar item_28227 \x3d chunk__27834_28224.cljs$core$IIndexed$_nth$arity$2(null, i__27836_28226);\nshadow.object.dom_enter(coll_dom,make_item_fn(item_28227));\n\n\nvar G__28228 \x3d seq__27833_28223;\nvar G__28229 \x3d chunk__27834_28224;\nvar G__28230 \x3d count__27835_28225;\nvar G__28231 \x3d (i__27836_28226 + (1));\nseq__27833_28223 \x3d G__28228;\nchunk__27834_28224 \x3d G__28229;\ncount__27835_28225 \x3d G__28230;\ni__27836_28226 \x3d G__28231;\ncontinue;\n} else {\nvar temp__5804__auto___28232 \x3d cljs.core.seq(seq__27833_28223);\nif(temp__5804__auto___28232){\nvar seq__27833_28233__$1 \x3d temp__5804__auto___28232;\nif(cljs.core.chunked_seq_QMARK_(seq__27833_28233__$1)){\nvar c__5525__auto___28234 \x3d cljs.core.chunk_first(seq__27833_28233__$1);\nvar G__28235 \x3d cljs.core.chunk_rest(seq__27833_28233__$1);\nvar G__28236 \x3d c__5525__auto___28234;\nvar G__28237 \x3d cljs.core.count(c__5525__auto___28234);\nvar G__28238 \x3d (0);\nseq__27833_28223 \x3d G__28235;\nchunk__27834_28224 \x3d G__28236;\ncount__27835_28225 \x3d G__28237;\ni__27836_28226 \x3d G__28238;\ncontinue;\n} else {\nvar item_28239 \x3d cljs.core.first(seq__27833_28233__$1);\nshadow.object.dom_enter(coll_dom,make_item_fn(item_28239));\n\n\nvar G__28240 \x3d cljs.core.next(seq__27833_28233__$1);\nvar G__28241 \x3d null;\nvar G__28242 \x3d (0);\nvar G__28243 \x3d (0);\nseq__27833_28223 \x3d G__28240;\nchunk__27834_28224 \x3d G__28241;\ncount__27835_28225 \x3d G__28242;\ni__27836_28226 \x3d G__28243;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nreturn shadow.object.notify_BANG_(parent,new cljs.core.Keyword(null,\x22bind-children-update\x22,\x22bind-children-update\x22,-1610690160));\n} else {\nreturn null;\n}\n}));\n\nreturn coll_dom;\n}));\n\n(shadow.object.bind_children.cljs$lang$maxFixedArity \x3d 6);\n\nshadow.object.remove_in_parent_BANG_ \x3d (function shadow$object$remove_in_parent_BANG_(oref){\nvar parent \x3d shadow.object.get_parent(oref);\nvar key \x3d new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-key\x22,\x22shadow.object/coll-key\x22,827543616).cljs$core$IFn$_invoke$arity$1(oref);\nvar value \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-item-key\x22,\x22shadow.object/coll-item-key\x22,1888444366).cljs$core$IFn$_invoke$arity$1(oref));\nvar path \x3d new cljs.core.Keyword(\x22shadow.object\x22,\x22coll-path\x22,\x22shadow.object/coll-path\x22,1583850048).cljs$core$IFn$_invoke$arity$1(oref);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d key;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn path;\n} else {\nreturn and__5000__auto__;\n}\n})())){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22remove-in-parent! should only be called from items created via so/bind-children\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22oref\x22,\x22oref\x22,-1547494840),oref], null));\n}\n\nvar coll \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(parent,path);\nvar new_coll \x3d shadow.util.remove_item_from_coll(coll,key,value);\nreturn shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(parent,new cljs.core.Keyword(\x22bind\x22,\x22update\x22,\x22bind/update\x22,1048601733),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path,new_coll], 0));\n});\nshadow.object.inspect_BANG_ \x3d (function shadow$object$inspect_BANG_(oref){\nvar G__27841 \x3d \x22inspect!\x22;\nvar G__27842 \x3d shadow.object._id(oref);\nvar G__27843 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.object._type(oref));\nvar G__27844 \x3d cljs.core.clj__GT_js(cljs.core.deref(shadow.object._data(oref)));\nreturn (shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__27841,G__27842,G__27843,G__27844) : shadow.object.info.call(null, G__27841,G__27842,G__27843,G__27844));\n});\nshadow.object.dump_BANG_ \x3d (function shadow$object$dump_BANG_(){\n(shadow.object.info.cljs$core$IFn$_invoke$arity$1 ? shadow.object.info.cljs$core$IFn$_invoke$arity$1(\x22--------------- LIVE OBJECTS ------------\x22) : shadow.object.info.call(null, \x22--------------- LIVE OBJECTS ------------\x22));\n\nvar seq__27846_28260 \x3d cljs.core.seq(cljs.core.seq(cljs.core.deref(shadow.object.instances)));\nvar chunk__27847_28261 \x3d null;\nvar count__27848_28262 \x3d (0);\nvar i__27849_28263 \x3d (0);\nwhile(true){\nif((i__27849_28263 \x3c count__27848_28262)){\nvar vec__27865_28265 \x3d chunk__27847_28261.cljs$core$IIndexed$_nth$arity$2(null, i__27849_28263);\nvar id_28266 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27865_28265,(0),null);\nvar oref_28267 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27865_28265,(1),null);\nvar G__27869_28268 \x3d \x22dump\x22;\nvar G__27870_28269 \x3d id_28266;\nvar G__27871_28270 \x3d cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.object._type(oref_28267)], 0));\nvar G__27872_28271 \x3d cljs.core.deref(shadow.object._data(oref_28267));\n(shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__27869_28268,G__27870_28269,G__27871_28270,G__27872_28271) : shadow.object.info.call(null, G__27869_28268,G__27870_28269,G__27871_28270,G__27872_28271));\n\n\nvar G__28272 \x3d seq__27846_28260;\nvar G__28273 \x3d chunk__27847_28261;\nvar G__28274 \x3d count__27848_28262;\nvar G__28275 \x3d (i__27849_28263 + (1));\nseq__27846_28260 \x3d G__28272;\nchunk__27847_28261 \x3d G__28273;\ncount__27848_28262 \x3d G__28274;\ni__27849_28263 \x3d G__28275;\ncontinue;\n} else {\nvar temp__5804__auto___28276 \x3d cljs.core.seq(seq__27846_28260);\nif(temp__5804__auto___28276){\nvar seq__27846_28277__$1 \x3d temp__5804__auto___28276;\nif(cljs.core.chunked_seq_QMARK_(seq__27846_28277__$1)){\nvar c__5525__auto___28278 \x3d cljs.core.chunk_first(seq__27846_28277__$1);\nvar G__28279 \x3d cljs.core.chunk_rest(seq__27846_28277__$1);\nvar G__28280 \x3d c__5525__auto___28278;\nvar G__28281 \x3d cljs.core.count(c__5525__auto___28278);\nvar G__28282 \x3d (0);\nseq__27846_28260 \x3d G__28279;\nchunk__27847_28261 \x3d G__28280;\ncount__27848_28262 \x3d G__28281;\ni__27849_28263 \x3d G__28282;\ncontinue;\n} else {\nvar vec__27876_28283 \x3d cljs.core.first(seq__27846_28277__$1);\nvar id_28284 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27876_28283,(0),null);\nvar oref_28285 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27876_28283,(1),null);\nvar G__27879_28287 \x3d \x22dump\x22;\nvar G__27880_28288 \x3d id_28284;\nvar G__27881_28289 \x3d cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.object._type(oref_28285)], 0));\nvar G__27882_28290 \x3d cljs.core.deref(shadow.object._data(oref_28285));\n(shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__27879_28287,G__27880_28288,G__27881_28289,G__27882_28290) : shadow.object.info.call(null, G__27879_28287,G__27880_28288,G__27881_28289,G__27882_28290));\n\n\nvar G__28292 \x3d cljs.core.next(seq__27846_28277__$1);\nvar G__28293 \x3d null;\nvar G__28294 \x3d (0);\nvar G__28295 \x3d (0);\nseq__27846_28260 \x3d G__28292;\nchunk__27847_28261 \x3d G__28293;\ncount__27848_28262 \x3d G__28294;\ni__27849_28263 \x3d G__28295;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn (shadow.object.info.cljs$core$IFn$_invoke$arity$1 ? shadow.object.info.cljs$core$IFn$_invoke$arity$1(\x22--------------- //LIVE OBJECTS ------------\x22) : shadow.object.info.call(null, \x22--------------- //LIVE OBJECTS ------------\x22));\n});\ngoog.exportSymbol(\x27shadow.object.dump_BANG_\x27, shadow.object.dump_BANG_);\n");
SHADOW_ENV.evalLoad("shadow.animate.js", true, "goog.provide(\x27shadow.animate\x27);\n\n/**\n * @interface\n */\nshadow.animate.Animation \x3d function(){};\n\nvar shadow$animate$Animation$_animate_from$dyn_28672 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.animate._animate_from[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate._animate_from[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Animation.-animate-from\x22,this$);\n}\n}\n});\n/**\n * return a map of {attr initial-value}\n */\nshadow.animate._animate_from \x3d (function shadow$animate$_animate_from(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$animate$Animation$_animate_from$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$animate$Animation$_animate_from$arity$1(this$);\n} else {\nreturn shadow$animate$Animation$_animate_from$dyn_28672(this$);\n}\n});\n\nvar shadow$animate$Animation$_animate_to$dyn_28677 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.animate._animate_to[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate._animate_to[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Animation.-animate-to\x22,this$);\n}\n}\n});\n/**\n * return a map of {attr target-value}\n */\nshadow.animate._animate_to \x3d (function shadow$animate$_animate_to(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$animate$Animation$_animate_to$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$animate$Animation$_animate_to$arity$1(this$);\n} else {\nreturn shadow$animate$Animation$_animate_to$dyn_28677(this$);\n}\n});\n\nvar shadow$animate$Animation$_animate_toggles$dyn_28685 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.animate._animate_toggles[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate._animate_toggles[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Animation.-animate-toggles\x22,this$);\n}\n}\n});\n/**\n * return a map of {attr target-value}\n */\nshadow.animate._animate_toggles \x3d (function shadow$animate$_animate_toggles(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$animate$Animation$_animate_toggles$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$animate$Animation$_animate_toggles$arity$1(this$);\n} else {\nreturn shadow$animate$Animation$_animate_toggles$dyn_28685(this$);\n}\n});\n\nvar shadow$animate$Animation$_animate_timings$dyn_28686 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.animate._animate_timings[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate._animate_timings[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Animation.-animate-timings\x22,this$);\n}\n}\n});\n/**\n * return a map of {attr timing-function}\n */\nshadow.animate._animate_timings \x3d (function shadow$animate$_animate_timings(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$animate$Animation$_animate_timings$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$animate$Animation$_animate_timings$arity$1(this$);\n} else {\nreturn shadow$animate$Animation$_animate_timings$dyn_28686(this$);\n}\n});\n\nvar shadow$animate$Animation$_animate_delays$dyn_28695 \x3d (function (this$){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.animate._animate_delays[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate._animate_delays[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__auto__.call(null, this$));\n} else {\nthrow cljs.core.missing_protocol(\x22Animation.-animate-delays\x22,this$);\n}\n}\n});\n/**\n * return a map of {attr transition-delay}\n */\nshadow.animate._animate_delays \x3d (function shadow$animate$_animate_delays(this$){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$animate$Animation$_animate_delays$arity$1 \x3d\x3d null)))))){\nreturn this$.shadow$animate$Animation$_animate_delays$arity$1(this$);\n} else {\nreturn shadow$animate$Animation$_animate_delays$dyn_28695(this$);\n}\n});\n\nshadow.animate.transition_string \x3d (function shadow$animate$transition_string(duration,adef){\nvar timings \x3d shadow.animate._animate_timings(adef);\nvar delays \x3d shadow.animate._animate_delays(adef);\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22, \x22,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__28092){\nvar vec__28095 \x3d p__28092;\nvar attr \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28095,(0),null);\nvar timing \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28095,(1),null);\nreturn [cljs.core.name(attr),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(duration),\x22ms\x22,\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(timing),(function (){var delay \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(delays,attr);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d delay;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (delay \x3e (0));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn [\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(delay),\x22ms\x22].join(\x27\x27);\n} else {\nreturn null;\n}\n})()].join(\x27\x27);\n}),timings));\n});\n\n/**\n * @interface\n */\nshadow.animate.IAnimator \x3d function(){};\n\nvar shadow$animate$IAnimator$get_duration$dyn_28697 \x3d (function (animator){\nvar x__5350__auto__ \x3d (((animator \x3d\x3d null))?null:animator);\nvar m__5351__auto__ \x3d (shadow.animate.get_duration[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5351__auto__.call(null, animator));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate.get_duration[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5349__auto__.call(null, animator));\n} else {\nthrow cljs.core.missing_protocol(\x22IAnimator.get-duration\x22,animator);\n}\n}\n});\nshadow.animate.get_duration \x3d (function shadow$animate$get_duration(animator){\nif((((!((animator \x3d\x3d null)))) \x26\x26 ((!((animator.shadow$animate$IAnimator$get_duration$arity$1 \x3d\x3d null)))))){\nreturn animator.shadow$animate$IAnimator$get_duration$arity$1(animator);\n} else {\nreturn shadow$animate$IAnimator$get_duration$dyn_28697(animator);\n}\n});\n\nvar shadow$animate$IAnimator$init_BANG_$dyn_28699 \x3d (function (animator){\nvar x__5350__auto__ \x3d (((animator \x3d\x3d null))?null:animator);\nvar m__5351__auto__ \x3d (shadow.animate.init_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5351__auto__.call(null, animator));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate.init_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5349__auto__.call(null, animator));\n} else {\nthrow cljs.core.missing_protocol(\x22IAnimator.init!\x22,animator);\n}\n}\n});\n/**\n * apply the initial values\n */\nshadow.animate.init_BANG_ \x3d (function shadow$animate$init_BANG_(animator){\nif((((!((animator \x3d\x3d null)))) \x26\x26 ((!((animator.shadow$animate$IAnimator$init_BANG_$arity$1 \x3d\x3d null)))))){\nreturn animator.shadow$animate$IAnimator$init_BANG_$arity$1(animator);\n} else {\nreturn shadow$animate$IAnimator$init_BANG_$dyn_28699(animator);\n}\n});\n\nvar shadow$animate$IAnimator$start_BANG_$dyn_28700 \x3d (function (animator){\nvar x__5350__auto__ \x3d (((animator \x3d\x3d null))?null:animator);\nvar m__5351__auto__ \x3d (shadow.animate.start_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5351__auto__.call(null, animator));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate.start_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5349__auto__.call(null, animator));\n} else {\nthrow cljs.core.missing_protocol(\x22IAnimator.start!\x22,animator);\n}\n}\n});\n/**\n * start the animation, must return a channel that closes once the animation is done\n */\nshadow.animate.start_BANG_ \x3d (function shadow$animate$start_BANG_(animator){\nif((((!((animator \x3d\x3d null)))) \x26\x26 ((!((animator.shadow$animate$IAnimator$start_BANG_$arity$1 \x3d\x3d null)))))){\nreturn animator.shadow$animate$IAnimator$start_BANG_$arity$1(animator);\n} else {\nreturn shadow$animate$IAnimator$start_BANG_$dyn_28700(animator);\n}\n});\n\nvar shadow$animate$IAnimator$finish_BANG_$dyn_28701 \x3d (function (animator){\nvar x__5350__auto__ \x3d (((animator \x3d\x3d null))?null:animator);\nvar m__5351__auto__ \x3d (shadow.animate.finish_BANG_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5351__auto__.call(null, animator));\n} else {\nvar m__5349__auto__ \x3d (shadow.animate.finish_BANG_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(animator) : m__5349__auto__.call(null, animator));\n} else {\nthrow cljs.core.missing_protocol(\x22IAnimator.finish!\x22,animator);\n}\n}\n});\n/**\n * cleanup\n */\nshadow.animate.finish_BANG_ \x3d (function shadow$animate$finish_BANG_(animator){\nif((((!((animator \x3d\x3d null)))) \x26\x26 ((!((animator.shadow$animate$IAnimator$finish_BANG_$arity$1 \x3d\x3d null)))))){\nreturn animator.shadow$animate$IAnimator$finish_BANG_$arity$1(animator);\n} else {\nreturn shadow$animate$IAnimator$finish_BANG_$dyn_28701(animator);\n}\n});\n\n\n/**\n* @constructor\n * @implements {shadow.animate.IAnimator}\n*/\nshadow.animate.Animator \x3d (function (duration,items){\nthis.duration \x3d duration;\nthis.items \x3d items;\n});\n(shadow.animate.Animator.prototype.shadow$animate$IAnimator$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.Animator.prototype.shadow$animate$IAnimator$get_duration$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.duration;\n}));\n\n(shadow.animate.Animator.prototype.shadow$animate$IAnimator$init_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar n__5593__auto__ \x3d self__.items.length;\nvar i__19762__auto__ \x3d (0);\nwhile(true){\nif((i__19762__auto__ \x3c n__5593__auto__)){\nvar map__28183_28703 \x3d (self__.items[i__19762__auto__]);\nvar map__28183_28704__$1 \x3d cljs.core.__destructure_map(map__28183_28703);\nvar el_28705 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28183_28704__$1,new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118));\nvar from_28706 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28183_28704__$1,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044));\ngoog.style.setStyle(el_28705,from_28706);\n\nvar G__28707 \x3d (i__19762__auto__ + (1));\ni__19762__auto__ \x3d G__28707;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(shadow.animate.Animator.prototype.shadow$animate$IAnimator$start_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar n__5593__auto__ \x3d self__.items.length;\nvar i__19762__auto__ \x3d (0);\nwhile(true){\nif((i__19762__auto__ \x3c n__5593__auto__)){\nvar map__28206_28708 \x3d (self__.items[i__19762__auto__]);\nvar map__28206_28709__$1 \x3d cljs.core.__destructure_map(map__28206_28708);\nvar el_28710 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28206_28709__$1,new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118));\nvar to_28711 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28206_28709__$1,new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007));\nvar transition_28712 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28206_28709__$1,new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007));\n(to_28711[\x22transition\x22] \x3d transition_28712);\n\ngoog.style.setStyle(el_28710,to_28711);\n\nvar G__28713 \x3d (i__19762__auto__ + (1));\ni__19762__auto__ \x3d G__28713;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(shadow.animate.Animator.prototype.shadow$animate$IAnimator$finish_BANG_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar n__5593__auto__ \x3d self__.items.length;\nvar i__19762__auto__ \x3d (0);\nwhile(true){\nif((i__19762__auto__ \x3c n__5593__auto__)){\nvar map__28219_28714 \x3d (self__.items[i__19762__auto__]);\nvar map__28219_28715__$1 \x3d cljs.core.__destructure_map(map__28219_28714);\nvar el_28716 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28219_28715__$1,new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118));\nvar toggles_28717 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28219_28715__$1,new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479));\n(toggles_28717[\x22transition\x22] \x3d null);\n\ngoog.style.setStyle(el_28716,toggles_28717);\n\nvar G__28719 \x3d (i__19762__auto__ + (1));\ni__19762__auto__ \x3d G__28719;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}));\n\n(shadow.animate.Animator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22duration\x22,\x22duration\x22,-1210334701,null),new cljs.core.Symbol(null,\x22items\x22,\x22items\x22,-1622480831,null)], null);\n}));\n\n(shadow.animate.Animator.cljs$lang$type \x3d true);\n\n(shadow.animate.Animator.cljs$lang$ctorStr \x3d \x22shadow.animate/Animator\x22);\n\n(shadow.animate.Animator.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/Animator\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/Animator.\n */\nshadow.animate.__GT_Animator \x3d (function shadow$animate$__GT_Animator(duration,items){\nreturn (new shadow.animate.Animator(duration,items));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nshadow.animate.AnimationStep \x3d (function (el,from,to,toggles,transition,__meta,__extmap,__hash){\nthis.el \x3d el;\nthis.from \x3d from;\nthis.to \x3d to;\nthis.toggles \x3d toggles;\nthis.transition \x3d transition;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(shadow.animate.AnimationStep.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k28251,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__28298 \x3d k28251;\nvar G__28298__$1 \x3d (((G__28298 instanceof cljs.core.Keyword))?G__28298.fqn:null);\nswitch (G__28298__$1) {\ncase \x22el\x22:\nreturn self__.el;\n\nbreak;\ncase \x22from\x22:\nreturn self__.from;\n\nbreak;\ncase \x22to\x22:\nreturn self__.to;\n\nbreak;\ncase \x22toggles\x22:\nreturn self__.toggles;\n\nbreak;\ncase \x22transition\x22:\nreturn self__.transition;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28251,else__5303__auto__);\n\n}\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__28312){\nvar vec__28314 \x3d p__28312;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28314,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28314,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#shadow.animate.AnimationStep{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),self__.el],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),self__.from],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),self__.to],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),self__.toggles],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007),self__.transition],null))], null),self__.__extmap));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28250){\nvar self__ \x3d this;\nvar G__28250__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28250__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,self__.to,self__.toggles,self__.transition,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (630436239 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28253,other28254){\nvar self__ \x3d this;\nvar this28253__$1 \x3d this;\nreturn (((!((other28254 \x3d\x3d null)))) \x26\x26 ((((this28253__$1.constructor \x3d\x3d\x3d other28254.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28253__$1.el,other28254.el)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28253__$1.from,other28254.from)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28253__$1.to,other28254.to)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28253__$1.toggles,other28254.toggles)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28253__$1.transition,other28254.transition)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28253__$1.__extmap,other28254.__extmap)))))))))))))));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),null,new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007),null,new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),null,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),null,new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,self__.to,self__.toggles,self__.transition,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k28251){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__28355 \x3d k28251;\nvar G__28355__$1 \x3d (((G__28355 instanceof cljs.core.Keyword))?G__28355.fqn:null);\nswitch (G__28355__$1) {\ncase \x22el\x22:\ncase \x22from\x22:\ncase \x22to\x22:\ncase \x22toggles\x22:\ncase \x22transition\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28251);\n\n}\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__28250){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__28369 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28370 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__28369.cljs$core$IFn$_invoke$arity$2 ? pred__28369.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),expr__28370) : pred__28369.call(null, new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),expr__28370)))){\nreturn (new shadow.animate.AnimationStep(G__28250,self__.from,self__.to,self__.toggles,self__.transition,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28369.cljs$core$IFn$_invoke$arity$2 ? pred__28369.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),expr__28370) : pred__28369.call(null, new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),expr__28370)))){\nreturn (new shadow.animate.AnimationStep(self__.el,G__28250,self__.to,self__.toggles,self__.transition,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28369.cljs$core$IFn$_invoke$arity$2 ? pred__28369.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),expr__28370) : pred__28369.call(null, new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),expr__28370)))){\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,G__28250,self__.toggles,self__.transition,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28369.cljs$core$IFn$_invoke$arity$2 ? pred__28369.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),expr__28370) : pred__28369.call(null, new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),expr__28370)))){\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,self__.to,G__28250,self__.transition,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__28369.cljs$core$IFn$_invoke$arity$2 ? pred__28369.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007),expr__28370) : pred__28369.call(null, new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007),expr__28370)))){\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,self__.to,self__.toggles,G__28250,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,self__.to,self__.toggles,self__.transition,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__28250),null));\n}\n}\n}\n}\n}\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),self__.el,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),self__.from,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),self__.to,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),self__.toggles,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007),self__.transition,null))], null),self__.__extmap));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__28250){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new shadow.animate.AnimationStep(self__.el,self__.from,self__.to,self__.toggles,self__.transition,G__28250,self__.__extmap,self__.__hash));\n}));\n\n(shadow.animate.AnimationStep.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(shadow.animate.AnimationStep.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22el\x22,\x22el\x22,22330409,null),new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.Symbol(null,\x22toggles\x22,\x22toggles\x22,-1576526290,null),new cljs.core.Symbol(null,\x22transition\x22,\x22transition\x22,-1888743762,null)], null);\n}));\n\n(shadow.animate.AnimationStep.cljs$lang$type \x3d true);\n\n(shadow.animate.AnimationStep.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22shadow.animate/AnimationStep\x22,null,(1),null));\n}));\n\n(shadow.animate.AnimationStep.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22shadow.animate/AnimationStep\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/AnimationStep.\n */\nshadow.animate.__GT_AnimationStep \x3d (function shadow$animate$__GT_AnimationStep(el,from,to,toggles,transition){\nreturn (new shadow.animate.AnimationStep(el,from,to,toggles,transition,null,null,null));\n});\n\n/**\n * Factory function for shadow.animate/AnimationStep, taking a map of keywords to field values.\n */\nshadow.animate.map__GT_AnimationStep \x3d (function shadow$animate$map__GT_AnimationStep(G__28264){\nvar extmap__5342__auto__ \x3d (function (){var G__28385 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__28264,new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479),new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007)], 0));\nif(cljs.core.record_QMARK_(G__28264)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28385);\n} else {\nreturn G__28385;\n}\n})();\nreturn (new shadow.animate.AnimationStep(new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118).cljs$core$IFn$_invoke$arity$1(G__28264),new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044).cljs$core$IFn$_invoke$arity$1(G__28264),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007).cljs$core$IFn$_invoke$arity$1(G__28264),new cljs.core.Keyword(null,\x22toggles\x22,\x22toggles\x22,1077909479).cljs$core$IFn$_invoke$arity$1(G__28264),new cljs.core.Keyword(null,\x22transition\x22,\x22transition\x22,765692007).cljs$core$IFn$_invoke$arity$1(G__28264),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\nshadow.animate.setup \x3d (function shadow$animate$setup(duration,elements){\nvar items \x3d cljs.core.into_array.cljs$core$IFn$_invoke$arity$1((function (){var iter__5480__auto__ \x3d (function shadow$animate$setup_$_iter__28390(s__28391){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__28391__$1 \x3d s__28391;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__28391__$1);\nif(temp__5804__auto__){\nvar s__28391__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__28391__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__28391__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__28393 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__28392 \x3d (0);\nwhile(true){\nif((i__28392 \x3c size__5479__auto__)){\nvar vec__28395 \x3d cljs.core._nth(c__5478__auto__,i__28392);\nvar el \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28395,(0),null);\nvar adef \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28395,(1),null);\ncljs.core.chunk_append(b__28393,(function (){\nif((((!((adef \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d adef.shadow$animate$Animation$))))?true:(((!adef.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.animate.Animation,adef):false)):cljs.core.native_satisfies_QMARK_(shadow.animate.Animation,adef))){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid animation\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),el,new cljs.core.Keyword(null,\x22animation\x22,\x22animation\x22,-1248293244),adef], null));\n}\n\nvar from \x3d shadow.animate._animate_from(adef);\nvar to \x3d shadow.animate._animate_to(adef);\nvar toggles \x3d shadow.animate._animate_toggles(adef);\nreturn (new shadow.animate.AnimationStep(shadow.dom.dom_node(el),cljs.core.clj__GT_js(from),cljs.core.clj__GT_js(to),cljs.core.clj__GT_js(toggles),shadow.animate.transition_string(duration,adef),null,null,null));\n})()\n);\n\nvar G__28741 \x3d (i__28392 + (1));\ni__28392 \x3d G__28741;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__28393),shadow$animate$setup_$_iter__28390(cljs.core.chunk_rest(s__28391__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__28393),null);\n}\n} else {\nvar vec__28403 \x3d cljs.core.first(s__28391__$2);\nvar el \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28403,(0),null);\nvar adef \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28403,(1),null);\nreturn cljs.core.cons((function (){\nif((((!((adef \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d adef.shadow$animate$Animation$))))?true:(((!adef.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.animate.Animation,adef):false)):cljs.core.native_satisfies_QMARK_(shadow.animate.Animation,adef))){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid animation\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22el\x22,\x22el\x22,-1618201118),el,new cljs.core.Keyword(null,\x22animation\x22,\x22animation\x22,-1248293244),adef], null));\n}\n\nvar from \x3d shadow.animate._animate_from(adef);\nvar to \x3d shadow.animate._animate_to(adef);\nvar toggles \x3d shadow.animate._animate_toggles(adef);\nreturn (new shadow.animate.AnimationStep(shadow.dom.dom_node(el),cljs.core.clj__GT_js(from),cljs.core.clj__GT_js(to),cljs.core.clj__GT_js(toggles),shadow.animate.transition_string(duration,adef),null,null,null));\n})()\n,shadow$animate$setup_$_iter__28390(cljs.core.rest(s__28391__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(elements);\n})());\nreturn (new shadow.animate.Animator(duration,items));\n});\nshadow.animate.continue_BANG_ \x3d (function shadow$animate$continue_BANG_(animator){\nshadow.animate.start_BANG_(animator);\n\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_28436){\nvar state_val_28437 \x3d (state_28436[(1)]);\nif((state_val_28437 \x3d\x3d\x3d (1))){\nvar inst_28428 \x3d shadow.animate.get_duration(animator);\nvar inst_28429 \x3d cljs.core.async.timeout(inst_28428);\nvar state_28436__$1 \x3d state_28436;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_28436__$1,(2),inst_28429);\n} else {\nif((state_val_28437 \x3d\x3d\x3d (2))){\nvar inst_28431 \x3d (state_28436[(2)]);\nvar inst_28432 \x3d shadow.animate.finish_BANG_(animator);\nvar state_28436__$1 \x3d (function (){var statearr_28448 \x3d state_28436;\n(statearr_28448[(7)] \x3d inst_28432);\n\n(statearr_28448[(8)] \x3d inst_28431);\n\nreturn statearr_28448;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_28436__$1,new cljs.core.Keyword(null,\x22done\x22,\x22done\x22,-889844188));\n} else {\nreturn null;\n}\n}\n});\nreturn (function() {\nvar shadow$animate$continue_BANG__$_state_machine__21869__auto__ \x3d null;\nvar shadow$animate$continue_BANG__$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_28451 \x3d [null,null,null,null,null,null,null,null,null];\n(statearr_28451[(0)] \x3d shadow$animate$continue_BANG__$_state_machine__21869__auto__);\n\n(statearr_28451[(1)] \x3d (1));\n\nreturn statearr_28451;\n});\nvar shadow$animate$continue_BANG__$_state_machine__21869__auto____1 \x3d (function (state_28436){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_28436);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e28454){var ex__21872__auto__ \x3d e28454;\nvar statearr_28457_28743 \x3d state_28436;\n(statearr_28457_28743[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_28436[(4)]))){\nvar statearr_28460_28744 \x3d state_28436;\n(statearr_28460_28744[(1)] \x3d cljs.core.first((state_28436[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__28745 \x3d state_28436;\nstate_28436 \x3d G__28745;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\nshadow$animate$continue_BANG__$_state_machine__21869__auto__ \x3d function(state_28436){\nswitch(arguments.length){\ncase 0:\nreturn shadow$animate$continue_BANG__$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn shadow$animate$continue_BANG__$_state_machine__21869__auto____1.call(this,state_28436);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nshadow$animate$continue_BANG__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d shadow$animate$continue_BANG__$_state_machine__21869__auto____0;\nshadow$animate$continue_BANG__$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d shadow$animate$continue_BANG__$_state_machine__21869__auto____1;\nreturn shadow$animate$continue_BANG__$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_28468 \x3d f__23319__auto__();\n(statearr_28468[(6)] \x3d c__23318__auto__);\n\nreturn statearr_28468;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n});\nshadow.animate.start \x3d (function shadow$animate$start(duration,elements){\nvar animator \x3d shadow.animate.setup(duration,elements);\nanimator.shadow$animate$IAnimator$init_BANG_$arity$1(null, );\n\nreturn shadow.animate.continue_BANG_(animator);\n});\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28489 \x3d (function (attr,from,to,timing,delay,meta28490){\nthis.attr \x3d attr;\nthis.from \x3d from;\nthis.to \x3d to;\nthis.timing \x3d timing;\nthis.delay \x3d delay;\nthis.meta28490 \x3d meta28490;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28489.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28491,meta28490__$1){\nvar self__ \x3d this;\nvar _28491__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28489(self__.attr,self__.from,self__.to,self__.timing,self__.delay,meta28490__$1));\n}));\n\n(shadow.animate.t_shadow$animate28489.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28491){\nvar self__ \x3d this;\nvar _28491__$1 \x3d this;\nreturn self__.meta28490;\n}));\n\n(shadow.animate.t_shadow$animate28489.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28489.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,self__.from]);\n}));\n\n(shadow.animate.t_shadow$animate28489.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,self__.to]);\n}));\n\n(shadow.animate.t_shadow$animate28489.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28489.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,self__.timing]);\n}));\n\n(shadow.animate.t_shadow$animate28489.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,self__.delay]);\n}));\n\n(shadow.animate.t_shadow$animate28489.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22attr\x22,\x22attr\x22,1036399174,null),new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.Symbol(null,\x22timing\x22,\x22timing\x22,-208693668,null),new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),new cljs.core.Symbol(null,\x22meta28490\x22,\x22meta28490\x22,1094013877,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28489.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28489.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28489\x22);\n\n(shadow.animate.t_shadow$animate28489.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28489\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28489.\n */\nshadow.animate.__GT_t_shadow$animate28489 \x3d (function shadow$animate$__GT_t_shadow$animate28489(attr,from,to,timing,delay,meta28490){\nreturn (new shadow.animate.t_shadow$animate28489(attr,from,to,timing,delay,meta28490));\n});\n\n\n/**\n * transition the given attr from -\x3e to using timing function and delay\n * timing defaults to ease, delay to 0\n */\nshadow.animate.transition \x3d (function shadow$animate$transition(var_args){\nvar G__28480 \x3d arguments.length;\nswitch (G__28480) {\ncase 3:\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.animate.transition.cljs$core$IFn$_invoke$arity$3 \x3d (function (attr,from,to){\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$5(attr,from,to,\x22ease\x22,(0));\n}));\n\n(shadow.animate.transition.cljs$core$IFn$_invoke$arity$4 \x3d (function (attr,from,to,timing){\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$5(attr,from,to,timing,(0));\n}));\n\n(shadow.animate.transition.cljs$core$IFn$_invoke$arity$5 \x3d (function (attr,from,to,timing,delay){\nreturn (new shadow.animate.t_shadow$animate28489(attr,from,to,timing,delay,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(shadow.animate.transition.cljs$lang$maxFixedArity \x3d 5);\n\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28499 \x3d (function (attr,from,to,meta28500){\nthis.attr \x3d attr;\nthis.from \x3d from;\nthis.to \x3d to;\nthis.meta28500 \x3d meta28500;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28499.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28501,meta28500__$1){\nvar self__ \x3d this;\nvar _28501__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28499(self__.attr,self__.from,self__.to,meta28500__$1));\n}));\n\n(shadow.animate.t_shadow$animate28499.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28501){\nvar self__ \x3d this;\nvar _28501__$1 \x3d this;\nreturn self__.meta28500;\n}));\n\n(shadow.animate.t_shadow$animate28499.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28499.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28499.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,self__.from]);\n}));\n\n(shadow.animate.t_shadow$animate28499.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,self__.to]);\n}));\n\n(shadow.animate.t_shadow$animate28499.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28499.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28499.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22attr\x22,\x22attr\x22,1036399174,null),new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.Symbol(null,\x22meta28500\x22,\x22meta28500\x22,1271158273,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28499.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28499.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28499\x22);\n\n(shadow.animate.t_shadow$animate28499.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28499\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28499.\n */\nshadow.animate.__GT_t_shadow$animate28499 \x3d (function shadow$animate$__GT_t_shadow$animate28499(attr,from,to,meta28500){\nreturn (new shadow.animate.t_shadow$animate28499(attr,from,to,meta28500));\n});\n\n\nshadow.animate.toggle \x3d (function shadow$animate$toggle(attr,from,to){\nreturn (new shadow.animate.t_shadow$animate28499(attr,from,to,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28517 \x3d (function (attrs,meta28518){\nthis.attrs \x3d attrs;\nthis.meta28518 \x3d meta28518;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28517.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28519,meta28518__$1){\nvar self__ \x3d this;\nvar _28519__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28517(self__.attrs,meta28518__$1));\n}));\n\n(shadow.animate.t_shadow$animate28517.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28519){\nvar self__ \x3d this;\nvar _28519__$1 \x3d this;\nreturn self__.meta28518;\n}));\n\n(shadow.animate.t_shadow$animate28517.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28517.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28517.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.attrs;\n}));\n\n(shadow.animate.t_shadow$animate28517.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28517.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28517.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28517.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22attrs\x22,\x22attrs\x22,-450137186,null),new cljs.core.Symbol(null,\x22meta28518\x22,\x22meta28518\x22,810835886,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28517.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28517.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28517\x22);\n\n(shadow.animate.t_shadow$animate28517.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28517\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28517.\n */\nshadow.animate.__GT_t_shadow$animate28517 \x3d (function shadow$animate$__GT_t_shadow$animate28517(attrs,meta28518){\nreturn (new shadow.animate.t_shadow$animate28517(attrs,meta28518));\n});\n\n\n/**\n * set attr to value when the animation starts\n */\nshadow.animate.set_attr \x3d (function shadow$animate$set_attr(var_args){\nvar G__28516 \x3d arguments.length;\nswitch (G__28516) {\ncase 1:\nreturn shadow.animate.set_attr.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.animate.set_attr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.animate.set_attr.cljs$core$IFn$_invoke$arity$1 \x3d (function (attrs){\nreturn (new shadow.animate.t_shadow$animate28517(attrs,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(shadow.animate.set_attr.cljs$core$IFn$_invoke$arity$2 \x3d (function (attr,value){\nreturn shadow.animate.set_attr.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.createAsIfByAssoc([attr,value]));\n}));\n\n(shadow.animate.set_attr.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28530 \x3d (function (attr,meta28531){\nthis.attr \x3d attr;\nthis.meta28531 \x3d meta28531;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28530.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28532,meta28531__$1){\nvar self__ \x3d this;\nvar _28532__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28530(self__.attr,meta28531__$1));\n}));\n\n(shadow.animate.t_shadow$animate28530.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28532){\nvar self__ \x3d this;\nvar _28532__$1 \x3d this;\nreturn self__.meta28531;\n}));\n\n(shadow.animate.t_shadow$animate28530.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28530.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28530.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28530.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([self__.attr,null]);\n}));\n\n(shadow.animate.t_shadow$animate28530.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28530.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28530.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22attr\x22,\x22attr\x22,1036399174,null),new cljs.core.Symbol(null,\x22meta28531\x22,\x22meta28531\x22,-1792328145,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28530.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28530.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28530\x22);\n\n(shadow.animate.t_shadow$animate28530.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28530\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28530.\n */\nshadow.animate.__GT_t_shadow$animate28530 \x3d (function shadow$animate$__GT_t_shadow$animate28530(attr,meta28531){\nreturn (new shadow.animate.t_shadow$animate28530(attr,meta28531));\n});\n\n\n/**\n * use to remove a given attribute style when the animation is finished\n * usually only needed to remove attributes we no longer need since they are probably\n * inherited and we only used for previous transitions\n */\nshadow.animate.delete_attr \x3d (function shadow$animate$delete_attr(attr){\nreturn (new shadow.animate.t_shadow$animate28530(attr,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28556 \x3d (function (transitions,to,from,toggles,timings,delays,temp__5802__auto__,meta28557){\nthis.transitions \x3d transitions;\nthis.to \x3d to;\nthis.from \x3d from;\nthis.toggles \x3d toggles;\nthis.timings \x3d timings;\nthis.delays \x3d delays;\nthis.temp__5802__auto__ \x3d temp__5802__auto__;\nthis.meta28557 \x3d meta28557;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28556.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28558,meta28557__$1){\nvar self__ \x3d this;\nvar _28558__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28556(self__.transitions,self__.to,self__.from,self__.toggles,self__.timings,self__.delays,self__.temp__5802__auto__,meta28557__$1));\n}));\n\n(shadow.animate.t_shadow$animate28556.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28558){\nvar self__ \x3d this;\nvar _28558__$1 \x3d this;\nreturn self__.meta28557;\n}));\n\n(shadow.animate.t_shadow$animate28556.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28556.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.from;\n}));\n\n(shadow.animate.t_shadow$animate28556.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.to;\n}));\n\n(shadow.animate.t_shadow$animate28556.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.toggles;\n}));\n\n(shadow.animate.t_shadow$animate28556.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.timings;\n}));\n\n(shadow.animate.t_shadow$animate28556.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.delays;\n}));\n\n(shadow.animate.t_shadow$animate28556.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22transitions\x22,\x22transitions\x22,-405684594,null),new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.Symbol(null,\x22toggles\x22,\x22toggles\x22,-1576526290,null),new cljs.core.Symbol(null,\x22timings\x22,\x22timings\x22,-569636600,null),new cljs.core.Symbol(null,\x22delays\x22,\x22delays\x22,-873843187,null),new cljs.core.Symbol(null,\x22temp__5802__auto__\x22,\x22temp__5802__auto__\x22,-1659442335,null),new cljs.core.Symbol(null,\x22meta28557\x22,\x22meta28557\x22,201068210,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28556.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28556.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28556\x22);\n\n(shadow.animate.t_shadow$animate28556.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28556\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28556.\n */\nshadow.animate.__GT_t_shadow$animate28556 \x3d (function shadow$animate$__GT_t_shadow$animate28556(transitions,to,from,toggles,timings,delays,temp__5802__auto__,meta28557){\nreturn (new shadow.animate.t_shadow$animate28556(transitions,to,from,toggles,timings,delays,temp__5802__auto__,meta28557));\n});\n\n\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28560 \x3d (function (transitions,to,from,toggles,timings,delays,temp__5802__auto__,meta28561){\nthis.transitions \x3d transitions;\nthis.to \x3d to;\nthis.from \x3d from;\nthis.toggles \x3d toggles;\nthis.timings \x3d timings;\nthis.delays \x3d delays;\nthis.temp__5802__auto__ \x3d temp__5802__auto__;\nthis.meta28561 \x3d meta28561;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28560.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28562,meta28561__$1){\nvar self__ \x3d this;\nvar _28562__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28560(self__.transitions,self__.to,self__.from,self__.toggles,self__.timings,self__.delays,self__.temp__5802__auto__,meta28561__$1));\n}));\n\n(shadow.animate.t_shadow$animate28560.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28562){\nvar self__ \x3d this;\nvar _28562__$1 \x3d this;\nreturn self__.meta28561;\n}));\n\n(shadow.animate.t_shadow$animate28560.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28560.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.from;\n}));\n\n(shadow.animate.t_shadow$animate28560.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.to;\n}));\n\n(shadow.animate.t_shadow$animate28560.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.toggles;\n}));\n\n(shadow.animate.t_shadow$animate28560.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.timings;\n}));\n\n(shadow.animate.t_shadow$animate28560.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.delays;\n}));\n\n(shadow.animate.t_shadow$animate28560.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22transitions\x22,\x22transitions\x22,-405684594,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22toggles\x22,\x22toggles\x22,-1576526290,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22timings\x22,\x22timings\x22,-569636600,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\x22delays\x22,\x22delays\x22,-873843187,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22any\x22,\x22any\x22,-948528346,null)], null)),new cljs.core.Symbol(null,\x22temp__5802__auto__\x22,\x22temp__5802__auto__\x22,-1659442335,null),new cljs.core.Symbol(null,\x22meta28561\x22,\x22meta28561\x22,-825663977,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28560.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28560.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28560\x22);\n\n(shadow.animate.t_shadow$animate28560.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28560\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28560.\n */\nshadow.animate.__GT_t_shadow$animate28560 \x3d (function shadow$animate$__GT_t_shadow$animate28560(transitions,to,from,toggles,timings,delays,temp__5802__auto__,meta28561){\nreturn (new shadow.animate.t_shadow$animate28560(transitions,to,from,toggles,timings,delays,temp__5802__auto__,meta28561));\n});\n\n\nshadow.animate.combine \x3d (function shadow$animate$combine(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___28758 \x3d arguments.length;\nvar i__5727__auto___28759 \x3d (0);\nwhile(true){\nif((i__5727__auto___28759 \x3c len__5726__auto___28758)){\nargs__5732__auto__.push((arguments[i__5727__auto___28759]));\n\nvar G__28761 \x3d (i__5727__auto___28759 + (1));\ni__5727__auto___28759 \x3d G__28761;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn shadow.animate.combine.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(shadow.animate.combine.cljs$core$IFn$_invoke$arity$variadic \x3d (function (transitions){\nvar to \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar from \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar toggles \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar timings \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar delays \x3d cljs.core.PersistentArrayMap.EMPTY;\nvar transitions__$1 \x3d transitions;\nwhile(true){\nvar temp__5802__auto__ \x3d cljs.core.first(transitions__$1);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar adef \x3d temp__5802__auto__;\nvar G__28762 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([to,shadow.animate._animate_to(adef)], 0));\nvar G__28763 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([from,shadow.animate._animate_from(adef)], 0));\nvar G__28764 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([toggles,shadow.animate._animate_toggles(adef)], 0));\nvar G__28765 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([timings,shadow.animate._animate_timings(adef)], 0));\nvar G__28766 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([delays,shadow.animate._animate_delays(adef)], 0));\nvar G__28767 \x3d cljs.core.rest(transitions__$1);\nto \x3d G__28762;\nfrom \x3d G__28763;\ntoggles \x3d G__28764;\ntimings \x3d G__28765;\ndelays \x3d G__28766;\ntransitions__$1 \x3d G__28767;\ncontinue;\n} else {\nreturn (new shadow.animate.t_shadow$animate28560(transitions__$1,to,from,toggles,timings,delays,temp__5802__auto__,cljs.core.PersistentArrayMap.EMPTY));\n}\nbreak;\n}\n}));\n\n(shadow.animate.combine.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(shadow.animate.combine.cljs$lang$applyTo \x3d (function (seq28553){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq28553));\n}));\n\nshadow.animate.fade_in \x3d (function shadow$animate$fade_in(var_args){\nvar G__28608 \x3d arguments.length;\nswitch (G__28608) {\ncase 0:\nreturn shadow.animate.fade_in.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn shadow.animate.fade_in.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.animate.fade_in.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn shadow.animate.fade_in.cljs$core$IFn$_invoke$arity$1(\x22ease-in\x22);\n}));\n\n(shadow.animate.fade_in.cljs$core$IFn$_invoke$arity$1 \x3d (function (timing_function){\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22opacity\x22,\x22opacity\x22,397153780),\x220\x22,\x221\x22,timing_function);\n}));\n\n(shadow.animate.fade_in.cljs$lang$maxFixedArity \x3d 1);\n\nshadow.animate.fade_out \x3d (function shadow$animate$fade_out(var_args){\nvar G__28611 \x3d arguments.length;\nswitch (G__28611) {\ncase 0:\nreturn shadow.animate.fade_out.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn shadow.animate.fade_out.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.animate.fade_out.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn shadow.animate.fade_in.cljs$core$IFn$_invoke$arity$1(\x22ease-out\x22);\n}));\n\n(shadow.animate.fade_out.cljs$core$IFn$_invoke$arity$1 \x3d (function (timing_function){\nreturn shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22opacity\x22,\x22opacity\x22,397153780),\x221\x22,\x220\x22,timing_function);\n}));\n\n(shadow.animate.fade_out.cljs$lang$maxFixedArity \x3d 1);\n\nshadow.animate.vendor_prefix \x3d goog.dom.vendor.getVendorPrefix();\nshadow.animate.vendor_transform \x3d cljs.core.keyword.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.animate.vendor_prefix),\x22-transform\x22].join(\x27\x27));\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28616 \x3d (function (from,to,timing,delay,meta28617){\nthis.from \x3d from;\nthis.to \x3d to;\nthis.timing \x3d timing;\nthis.delay \x3d delay;\nthis.meta28617 \x3d meta28617;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28616.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28618,meta28617__$1){\nvar self__ \x3d this;\nvar _28618__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28616(self__.from,self__.to,self__.timing,self__.delay,meta28617__$1));\n}));\n\n(shadow.animate.t_shadow$animate28616.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28618){\nvar self__ \x3d this;\nvar _28618__$1 \x3d this;\nreturn self__.meta28617;\n}));\n\n(shadow.animate.t_shadow$animate28616.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28616.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),[\x22translateY(\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.from),\x22)\x22].join(\x27\x27)], null);\n}));\n\n(shadow.animate.t_shadow$animate28616.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),[\x22translateY(\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.to),\x22)\x22].join(\x27\x27)], null);\n}));\n\n(shadow.animate.t_shadow$animate28616.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([shadow.animate.vendor_transform,self__.timing]);\n}));\n\n(shadow.animate.t_shadow$animate28616.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28616.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([shadow.animate.vendor_transform,self__.delay]);\n}));\n\n(shadow.animate.t_shadow$animate28616.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.Symbol(null,\x22timing\x22,\x22timing\x22,-208693668,null),new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),new cljs.core.Symbol(null,\x22meta28617\x22,\x22meta28617\x22,1016379573,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28616.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28616.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28616\x22);\n\n(shadow.animate.t_shadow$animate28616.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28616\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28616.\n */\nshadow.animate.__GT_t_shadow$animate28616 \x3d (function shadow$animate$__GT_t_shadow$animate28616(from,to,timing,delay,meta28617){\nreturn (new shadow.animate.t_shadow$animate28616(from,to,timing,delay,meta28617));\n});\n\n\nshadow.animate.translate_y \x3d (function shadow$animate$translate_y(var_args){\nvar G__28614 \x3d arguments.length;\nswitch (G__28614) {\ncase 3:\nreturn shadow.animate.translate_y.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.animate.translate_y.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.animate.translate_y.cljs$core$IFn$_invoke$arity$3 \x3d (function (from,to,timing){\nreturn shadow.animate.translate_y.cljs$core$IFn$_invoke$arity$4(from,to,timing,(0));\n}));\n\n(shadow.animate.translate_y.cljs$core$IFn$_invoke$arity$4 \x3d (function (from,to,timing,delay){\nreturn (new shadow.animate.t_shadow$animate28616(from,to,timing,delay,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(shadow.animate.translate_y.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n* @constructor\n * @implements {shadow.animate.Animation}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\nshadow.animate.t_shadow$animate28642 \x3d (function (from,to,timing,delay,meta28643){\nthis.from \x3d from;\nthis.to \x3d to;\nthis.timing \x3d timing;\nthis.delay \x3d delay;\nthis.meta28643 \x3d meta28643;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.animate.t_shadow$animate28642.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_28644,meta28643__$1){\nvar self__ \x3d this;\nvar _28644__$1 \x3d this;\nreturn (new shadow.animate.t_shadow$animate28642(self__.from,self__.to,self__.timing,self__.delay,meta28643__$1));\n}));\n\n(shadow.animate.t_shadow$animate28642.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_28644){\nvar self__ \x3d this;\nvar _28644__$1 \x3d this;\nreturn self__.meta28643;\n}));\n\n(shadow.animate.t_shadow$animate28642.prototype.shadow$animate$Animation$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.animate.t_shadow$animate28642.prototype.shadow$animate$Animation$_animate_from$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),[\x22translateX(\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.from),\x22)\x22].join(\x27\x27)], null);\n}));\n\n(shadow.animate.t_shadow$animate28642.prototype.shadow$animate$Animation$_animate_to$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),[\x22translateX(\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.to),\x22)\x22].join(\x27\x27)], null);\n}));\n\n(shadow.animate.t_shadow$animate28642.prototype.shadow$animate$Animation$_animate_timings$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([shadow.animate.vendor_transform,self__.timing]);\n}));\n\n(shadow.animate.t_shadow$animate28642.prototype.shadow$animate$Animation$_animate_toggles$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.EMPTY;\n}));\n\n(shadow.animate.t_shadow$animate28642.prototype.shadow$animate$Animation$_animate_delays$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.PersistentArrayMap.createAsIfByAssoc([shadow.animate.vendor_transform,self__.delay]);\n}));\n\n(shadow.animate.t_shadow$animate28642.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22from\x22,\x22from\x22,-839142725,null),new cljs.core.Symbol(null,\x22to\x22,\x22to\x22,1832630534,null),new cljs.core.Symbol(null,\x22timing\x22,\x22timing\x22,-208693668,null),new cljs.core.Symbol(null,\x22delay\x22,\x22delay\x22,1066306308,null),new cljs.core.Symbol(null,\x22meta28643\x22,\x22meta28643\x22,-1816703744,null)], null);\n}));\n\n(shadow.animate.t_shadow$animate28642.cljs$lang$type \x3d true);\n\n(shadow.animate.t_shadow$animate28642.cljs$lang$ctorStr \x3d \x22shadow.animate/t_shadow$animate28642\x22);\n\n(shadow.animate.t_shadow$animate28642.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.animate/t_shadow$animate28642\x22);\n}));\n\n/**\n * Positional factory function for shadow.animate/t_shadow$animate28642.\n */\nshadow.animate.__GT_t_shadow$animate28642 \x3d (function shadow$animate$__GT_t_shadow$animate28642(from,to,timing,delay,meta28643){\nreturn (new shadow.animate.t_shadow$animate28642(from,to,timing,delay,meta28643));\n});\n\n\nshadow.animate.translate_x \x3d (function shadow$animate$translate_x(var_args){\nvar G__28641 \x3d arguments.length;\nswitch (G__28641) {\ncase 3:\nreturn shadow.animate.translate_x.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.animate.translate_x.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.animate.translate_x.cljs$core$IFn$_invoke$arity$3 \x3d (function (from,to,timing){\nreturn shadow.animate.translate_x.cljs$core$IFn$_invoke$arity$4(from,to,timing,(0));\n}));\n\n(shadow.animate.translate_x.cljs$core$IFn$_invoke$arity$4 \x3d (function (from,to,timing,delay){\nreturn (new shadow.animate.t_shadow$animate28642(from,to,timing,delay,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(shadow.animate.translate_x.cljs$lang$maxFixedArity \x3d 4);\n\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.util.js", true, "goog.provide(\x22com.cognitect.transit.util\x22);\ngoog.require(\x22goog.object\x22);\ngoog.scope(function() {\n var util \x3d com.cognitect.transit.util;\n var gobject \x3d goog.object;\n if (typeof Object.keys !\x3d \x22undefined\x22) {\n util.objectKeys \x3d function(obj) {\n return Object.keys(obj);\n };\n } else {\n util.objectKeys \x3d function(obj) {\n return gobject.getKeys(obj);\n };\n }\n if (typeof Array.isArray !\x3d \x22undefined\x22) {\n util.isArray \x3d function(obj) {\n return Array.isArray(obj);\n };\n } else {\n util.isArray \x3d function(obj) {\n return goog.typeOf(obj) \x3d\x3d\x3d \x22array\x22;\n };\n }\n util.chars \x3d \x22ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\x3d\x22;\n util.randInt \x3d function(ub) {\n return Math.round(Math.random() * ub);\n };\n util.randHex \x3d function() {\n return util.randInt(15).toString(16);\n };\n util.randomUUID \x3d function() {\n var rhex \x3d (8 | 3 \x26 util.randInt(14)).toString(16);\n var ret \x3d util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + \x22-\x22 + util.randHex() + util.randHex() + util.randHex() + util.randHex() + \x22-\x22 + \x224\x22 + util.randHex() + util.randHex() + util.randHex() + \x22-\x22 + rhex + util.randHex() + util.randHex() + util.randHex() + \x22-\x22 + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + util.randHex() + \n util.randHex() + util.randHex() + util.randHex();\n return ret;\n };\n util.btoa \x3d function(input) {\n if (typeof btoa !\x3d \x22undefined\x22) {\n return btoa(input);\n } else {\n var str \x3d String(input);\n var block;\n var charCode;\n var idx \x3d 0;\n var map \x3d util.chars;\n var output \x3d \x22\x22;\n for (; str.charAt(idx | 0) || (map \x3d \x22\\x3d\x22, idx % 1); output \x3d output + map.charAt(63 \x26 block \x3e\x3e 8 - idx % 1 * 8)) {\n charCode \x3d str.charCodeAt(idx \x3d idx + 3 / 4);\n if (charCode \x3e 255) {\n throw new Error(\x22\x27btoa\x27 failed: The string to be encoded contains characters outside of the Latin1 range.\x22);\n }\n block \x3d block \x3c\x3c 8 | charCode;\n }\n return output;\n }\n };\n util.atob \x3d function(input) {\n if (typeof atob !\x3d \x22undefined\x22) {\n return atob(input);\n } else {\n var str \x3d String(input).replace(/\x3d+$/, \x22\x22);\n if (str.length % 4 \x3d\x3d 1) {\n throw new Error(\x22\x27atob\x27 failed: The string to be decoded is not correctly encoded.\x22);\n }\n var bc \x3d 0;\n var bs;\n var buffer;\n var idx \x3d 0;\n var output \x3d \x22\x22;\n for (; buffer \x3d str.charAt(idx++); ~buffer \x26\x26 (bs \x3d bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output \x3d output + String.fromCharCode(255 \x26 bs \x3e\x3e (-2 * bc \x26 6)) : 0) {\n buffer \x3d util.chars.indexOf(buffer);\n }\n return output;\n }\n };\n util.Uint8ToBase64 \x3d function(u8Arr) {\n var CHUNK_SIZE \x3d 32768;\n var index \x3d 0;\n var length \x3d u8Arr.length;\n var result \x3d \x22\x22;\n var slice \x3d null;\n for (; index \x3c length;) {\n slice \x3d u8Arr.subarray(index, Math.min(index + CHUNK_SIZE, length));\n result \x3d result + String.fromCharCode.apply(null, slice);\n index \x3d index + CHUNK_SIZE;\n }\n return util.btoa(result);\n };\n util.Base64ToUint8 \x3d function(base64) {\n var binary_string \x3d util.atob(base64);\n var len \x3d binary_string.length;\n var bytes \x3d new Uint8Array(len);\n var i \x3d 0;\n for (; i \x3c len; i++) {\n var ascii \x3d binary_string.charCodeAt(i);\n bytes[i] \x3d ascii;\n }\n return bytes;\n };\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.delimiters.js", true, "goog.provide(\x22com.cognitect.transit.delimiters\x22);\ngoog.scope(function() {\n var delimiters \x3d com.cognitect.transit.delimiters;\n delimiters.ESC \x3d \x22~\x22;\n delimiters.TAG \x3d \x22#\x22;\n delimiters.SUB \x3d \x22^\x22;\n delimiters.RES \x3d \x22`\x22;\n delimiters.ESC_TAG \x3d \x22~#\x22;\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.caching.js", true, "goog.provide(\x22com.cognitect.transit.caching\x22);\ngoog.require(\x22com.cognitect.transit.delimiters\x22);\ngoog.scope(function() {\n var caching \x3d com.cognitect.transit.caching;\n var d \x3d com.cognitect.transit.delimiters;\n caching.MIN_SIZE_CACHEABLE \x3d 3;\n caching.BASE_CHAR_IDX \x3d 48;\n caching.CACHE_CODE_DIGITS \x3d 44;\n caching.MAX_CACHE_ENTRIES \x3d caching.CACHE_CODE_DIGITS * caching.CACHE_CODE_DIGITS;\n caching.MAX_CACHE_SIZE \x3d 4096;\n caching.isCacheable \x3d function(string, asMapKey) {\n if (string.length \x3e caching.MIN_SIZE_CACHEABLE) {\n if (asMapKey) {\n return true;\n } else {\n var c0 \x3d string.charAt(0);\n var c1 \x3d string.charAt(1);\n if (c0 \x3d\x3d\x3d d.ESC) {\n return c1 \x3d\x3d\x3d \x22:\x22 || c1 \x3d\x3d\x3d \x22$\x22 || c1 \x3d\x3d\x3d \x22#\x22;\n } else {\n return false;\n }\n }\n } else {\n return false;\n }\n };\n caching.idxToCode \x3d function(idx) {\n var hi \x3d Math.floor(idx / caching.CACHE_CODE_DIGITS);\n var lo \x3d idx % caching.CACHE_CODE_DIGITS;\n var loc \x3d String.fromCharCode(lo + caching.BASE_CHAR_IDX);\n if (hi \x3d\x3d\x3d 0) {\n return d.SUB + loc;\n } else {\n return d.SUB + String.fromCharCode(hi + caching.BASE_CHAR_IDX) + loc;\n }\n };\n caching.WriteCache \x3d function() {\n this.idx \x3d 0;\n this.gen \x3d 0;\n this.cacheSize \x3d 0;\n this.cache \x3d {};\n };\n caching.WriteCache.prototype.write \x3d function(string, asMapKey) {\n if (caching.isCacheable(string, asMapKey)) {\n if (this.cacheSize \x3d\x3d\x3d caching.MAX_CACHE_SIZE) {\n this.clear();\n this.gen \x3d 0;\n this.cache \x3d {};\n } else if (this.idx \x3d\x3d\x3d caching.MAX_CACHE_ENTRIES) {\n this.clear();\n }\n var entry \x3d this.cache[string];\n if (entry \x3d\x3d null) {\n this.cache[string] \x3d [caching.idxToCode(this.idx), this.gen];\n this.idx++;\n return string;\n } else if (entry[1] !\x3d this.gen) {\n entry[1] \x3d this.gen;\n entry[0] \x3d caching.idxToCode(this.idx);\n this.idx++;\n return string;\n } else {\n return entry[0];\n }\n } else {\n return string;\n }\n };\n caching.WriteCache.prototype.clear \x3d function Transit$WriteCache() {\n this.idx \x3d 0;\n this.gen++;\n };\n caching.writeCache \x3d function() {\n return new caching.WriteCache();\n };\n caching.isCacheCode \x3d function(string) {\n return string.charAt(0) \x3d\x3d\x3d d.SUB \x26\x26 string.charAt(1) !\x3d\x3d \x22 \x22;\n };\n caching.codeToIdx \x3d function(code) {\n if (code.length \x3d\x3d\x3d 2) {\n return code.charCodeAt(1) - caching.BASE_CHAR_IDX;\n } else {\n var hi \x3d (code.charCodeAt(1) - caching.BASE_CHAR_IDX) * caching.CACHE_CODE_DIGITS;\n var lo \x3d code.charCodeAt(2) - caching.BASE_CHAR_IDX;\n return hi + lo;\n }\n };\n caching.ReadCache \x3d function Transit$ReadCache() {\n this.idx \x3d 0;\n this.cache \x3d [];\n };\n caching.ReadCache.prototype.write \x3d function(obj, asMapKey) {\n if (this.idx \x3d\x3d caching.MAX_CACHE_ENTRIES) {\n this.idx \x3d 0;\n }\n this.cache[this.idx] \x3d obj;\n this.idx++;\n return obj;\n };\n caching.ReadCache.prototype.read \x3d function(string, asMapKey) {\n return this.cache[caching.codeToIdx(string)];\n };\n caching.ReadCache.prototype.clear \x3d function() {\n this.idx \x3d 0;\n };\n caching.readCache \x3d function() {\n return new caching.ReadCache();\n };\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.eq.js", true, "goog.provide(\x22com.cognitect.transit.eq\x22);\ngoog.require(\x22com.cognitect.transit.util\x22);\ngoog.scope(function() {\n var eq \x3d com.cognitect.transit.eq;\n var util \x3d com.cognitect.transit.util;\n eq.hashCodeProperty \x3d \x22transit$hashCode$\x22;\n eq.hashCodeCounter \x3d 1;\n eq.equals \x3d function(x, y) {\n if (x \x3d\x3d null) {\n return y \x3d\x3d null;\n } else if (x \x3d\x3d\x3d y) {\n return true;\n } else if (typeof x \x3d\x3d\x3d \x22object\x22) {\n if (util.isArray(x)) {\n if (util.isArray(y)) {\n if (x.length \x3d\x3d\x3d y.length) {\n var i \x3d 0;\n for (; i \x3c x.length; i++) {\n if (!eq.equals(x[i], y[i])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n } else if (x.com$cognitect$transit$equals) {\n return x.com$cognitect$transit$equals(y);\n } else if (y !\x3d null \x26\x26 typeof y \x3d\x3d\x3d \x22object\x22) {\n if (y.com$cognitect$transit$equals) {\n return y.com$cognitect$transit$equals(x);\n } else {\n var xklen \x3d 0;\n var yklen \x3d util.objectKeys(y).length;\n var p;\n for (p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n xklen++;\n if (!y.hasOwnProperty(p)) {\n return false;\n } else {\n if (!eq.equals(x[p], y[p])) {\n return false;\n }\n }\n }\n return xklen \x3d\x3d\x3d yklen;\n }\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n eq.hashCombine \x3d function(seed, hash) {\n return seed ^ hash + 2654435769 + (seed \x3c\x3c 6) + (seed \x3e\x3e 2);\n };\n eq.stringCodeCache \x3d {};\n eq.stringCodeCacheSize \x3d 0;\n eq.STR_CACHE_MAX \x3d 256;\n eq.hashString \x3d function(str) {\n var cached \x3d eq.stringCodeCache[str];\n if (cached !\x3d null) {\n return cached;\n }\n var code \x3d 0;\n var i \x3d 0;\n for (; i \x3c str.length; ++i) {\n code \x3d 31 * code + str.charCodeAt(i);\n code \x3d code % 4294967296;\n }\n eq.stringCodeCacheSize++;\n if (eq.stringCodeCacheSize \x3e\x3d eq.STR_CACHE_MAX) {\n eq.stringCodeCache \x3d {};\n eq.stringCodeCacheSize \x3d 1;\n }\n eq.stringCodeCache[str] \x3d code;\n return code;\n };\n eq.hashMapLike \x3d function(m) {\n var code \x3d 0;\n if (m.forEach !\x3d null) {\n m.forEach(function(val, key, m) {\n code \x3d (code + (eq.hashCode(key) ^ eq.hashCode(val))) % 4503599627370496;\n });\n } else {\n var keys \x3d util.objectKeys(m);\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n var key \x3d keys[i];\n var val \x3d m[key];\n code \x3d (code + (eq.hashCode(key) ^ eq.hashCode(val))) % 4503599627370496;\n }\n }\n return code;\n };\n eq.hashArrayLike \x3d function(arr) {\n var code \x3d 0;\n if (util.isArray(arr)) {\n var i \x3d 0;\n for (; i \x3c arr.length; i++) {\n code \x3d eq.hashCombine(code, eq.hashCode(arr[i]));\n }\n } else if (arr.forEach) {\n arr.forEach(function(x, i) {\n code \x3d eq.hashCombine(code, eq.hashCode(x));\n });\n }\n return code;\n };\n eq.hashCode \x3d function(x) {\n if (x \x3d\x3d null) {\n return 0;\n } else {\n switch(typeof x) {\n case \x22number\x22:\n return x;\n break;\n case \x22boolean\x22:\n return x \x3d\x3d\x3d true ? 1 : 0;\n break;\n case \x22string\x22:\n return eq.hashString(x);\n break;\n case \x22function\x22:\n var code \x3d x[eq.hashCodeProperty];\n if (code) {\n return code;\n } else {\n code \x3d eq.hashCodeCounter;\n if (typeof Object.defineProperty !\x3d \x22undefined\x22) {\n Object.defineProperty(x, eq.hashCodeProperty, {value:code, enumerable:false});\n } else {\n x[eq.hashCodeProperty] \x3d code;\n }\n eq.hashCodeCounter++;\n return code;\n }\n break;\n default:\n if (x instanceof Date) {\n return x.valueOf();\n } else if (util.isArray(x)) {\n return eq.hashArrayLike(x);\n }\n if (x.com$cognitect$transit$hashCode) {\n return x.com$cognitect$transit$hashCode();\n } else {\n return eq.hashMapLike(x);\n }\n break;\n }\n }\n };\n eq.extendToEQ \x3d function(obj, opts) {\n obj.com$cognitect$transit$hashCode \x3d opts[\x22hashCode\x22];\n obj.com$cognitect$transit$equals \x3d opts[\x22equals\x22];\n return obj;\n };\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.types.js", true, "goog.provide(\x22com.cognitect.transit.types\x22);\ngoog.require(\x22com.cognitect.transit.util\x22);\ngoog.require(\x22com.cognitect.transit.eq\x22);\ngoog.require(\x22goog.math.Long\x22);\ngoog.scope(function() {\n var types \x3d com.cognitect.transit.types;\n var util \x3d com.cognitect.transit.util;\n var eq \x3d com.cognitect.transit.eq;\n var Long \x3d goog.math.Long;\n if (typeof Symbol !\x3d \x22undefined\x22) {\n types.ITERATOR \x3d Symbol.iterator;\n } else {\n types.ITERATOR \x3d \x22@@iterator\x22;\n }\n types.TaggedValue \x3d function Transit$TaggedValue(tag, rep) {\n this.tag \x3d tag;\n this.rep \x3d rep;\n this.hashCode \x3d -1;\n };\n types.TaggedValue.prototype.toString \x3d function() {\n return \x22[TaggedValue: \x22 + this.tag + \x22, \x22 + this.rep + \x22]\x22;\n };\n types.TaggedValue.prototype.equiv \x3d function(other) {\n return eq.equals(this, other);\n };\n types.TaggedValue.prototype[\x22equiv\x22] \x3d types.TaggedValue.prototype.equiv;\n types.TaggedValue.prototype.com$cognitect$transit$equals \x3d function(other) {\n if (other instanceof types.TaggedValue) {\n return this.tag \x3d\x3d\x3d other.tag \x26\x26 eq.equals(this.rep, other.rep);\n } else {\n return false;\n }\n };\n types.TaggedValue.prototype.com$cognitect$transit$hashCode \x3d function() {\n if (this.hashCode \x3d\x3d\x3d -1) {\n this.hashCode \x3d eq.hashCombine(eq.hashCode(this.tag), eq.hashCode(this.rep));\n }\n return this.hashCode;\n };\n types.taggedValue \x3d function(tag, rep) {\n return new types.TaggedValue(tag, rep);\n };\n types.isTaggedValue \x3d function(x) {\n return x instanceof types.TaggedValue;\n };\n types.nullValue \x3d function() {\n return null;\n };\n types.boolValue \x3d function(s) {\n return s \x3d\x3d\x3d \x22t\x22;\n };\n types.MAX_INT \x3d Long.fromString(\x229007199254740991\x22);\n types.MIN_INT \x3d Long.fromString(\x22-9007199254740991\x22);\n types.intValue \x3d function(s) {\n if (typeof s \x3d\x3d\x3d \x22number\x22) {\n return s;\n } else if (s instanceof Long) {\n return s;\n } else {\n var n \x3d Long.fromString(s, 10);\n if (n.greaterThan(types.MAX_INT) || n.lessThan(types.MIN_INT)) {\n return n;\n } else {\n return n.toNumber();\n }\n }\n };\n Long.prototype.equiv \x3d function(other) {\n return eq.equals(this, other);\n };\n Long.prototype[\x22equiv\x22] \x3d Long.prototype.equiv;\n Long.prototype.com$cognitect$transit$equals \x3d function(other) {\n return other instanceof Long \x26\x26 this.equals(other);\n };\n Long.prototype.com$cognitect$transit$hashCode \x3d function() {\n return this.toInt();\n };\n types.isInteger \x3d function(x) {\n if (x instanceof Long) {\n return true;\n } else {\n return typeof x \x3d\x3d\x3d \x22number\x22 \x26\x26 !isNaN(x) \x26\x26 !(x \x3d\x3d\x3d Infinity) \x26\x26 parseFloat(x) \x3d\x3d\x3d parseInt(x, 10);\n }\n };\n types.floatValue \x3d function(s) {\n return parseFloat(s);\n };\n types.bigInteger \x3d function(s) {\n return types.taggedValue(\x22n\x22, s);\n };\n types.isBigInteger \x3d function(x) {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22n\x22;\n };\n types.bigDecimalValue \x3d function(s) {\n return types.taggedValue(\x22f\x22, s);\n };\n types.isBigDecimal \x3d function(x) {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22f\x22;\n };\n types.charValue \x3d function(s) {\n return s;\n };\n types.Keyword \x3d function Transit$Keyword(name) {\n this._name \x3d name;\n this.hashCode \x3d -1;\n };\n types.Keyword.prototype.toString \x3d function() {\n return \x22:\x22 + this._name;\n };\n types.Keyword.prototype[\x22namespace\x22] \x3d function() {\n var idx \x3d this._name.indexOf(\x22/\x22);\n if (idx !\x3d -1) {\n return this._name.substring(0, idx);\n } else {\n return null;\n }\n };\n types.Keyword.prototype[\x22name\x22] \x3d function() {\n var idx \x3d this._name.indexOf(\x22/\x22);\n if (idx !\x3d -1) {\n return this._name.substring(idx + 1, this._name.length);\n } else {\n return this._name;\n }\n };\n types.Keyword.prototype.equiv \x3d function(other) {\n return eq.equals(this, other);\n };\n types.Keyword.prototype[\x22equiv\x22] \x3d types.Keyword.prototype.equiv;\n types.Keyword.prototype.com$cognitect$transit$equals \x3d function(other) {\n return other instanceof types.Keyword \x26\x26 this._name \x3d\x3d other._name;\n };\n types.Keyword.prototype.com$cognitect$transit$hashCode \x3d function() {\n if (this.hashCode \x3d\x3d\x3d -1) {\n this.hashCode \x3d eq.hashCode(this._name);\n }\n return this.hashCode;\n };\n types.keyword \x3d function(s) {\n return new types.Keyword(s);\n };\n types.isKeyword \x3d function(x) {\n return x instanceof types.Keyword;\n };\n types.Symbol \x3d function Transit$Symbol(name) {\n this._name \x3d name;\n this.hashCode \x3d -1;\n };\n types.Symbol.prototype[\x22namespace\x22] \x3d function() {\n var idx \x3d this._name.indexOf(\x22/\x22);\n if (idx !\x3d -1) {\n return this._name.substring(0, idx);\n } else {\n return null;\n }\n };\n types.Symbol.prototype[\x22name\x22] \x3d function() {\n var idx \x3d this._name.indexOf(\x22/\x22);\n if (idx !\x3d -1) {\n return this._name.substring(idx + 1, this._name.length);\n } else {\n return this._name;\n }\n };\n types.Symbol.prototype.toString \x3d function() {\n return this._name;\n };\n types.Symbol.prototype.equiv \x3d function(other) {\n return eq.equals(this, other);\n };\n types.Symbol.prototype[\x22equiv\x22] \x3d types.Symbol.prototype.equiv;\n types.Symbol.prototype.com$cognitect$transit$equals \x3d function(other) {\n return other instanceof types.Symbol \x26\x26 this._name \x3d\x3d other._name;\n };\n types.Symbol.prototype.com$cognitect$transit$hashCode \x3d function() {\n if (this.hashCode \x3d\x3d\x3d -1) {\n this.hashCode \x3d eq.hashCode(this._name);\n }\n return this.hashCode;\n };\n types.symbol \x3d function(s) {\n return new types.Symbol(s);\n };\n types.isSymbol \x3d function(x) {\n return x instanceof types.Symbol;\n };\n types.hexFor \x3d function(aLong, sidx, eidx) {\n var ret \x3d \x22\x22;\n eidx \x3d eidx || sidx + 1;\n var i \x3d sidx;\n var shift \x3d (7 - i) * 8;\n var mask \x3d Long.fromInt(255).shiftLeft(shift);\n for (; i \x3c eidx; i++, shift \x3d shift - 8, mask \x3d mask.shiftRightUnsigned(8)) {\n var s \x3d aLong.and(mask).shiftRightUnsigned(shift).toString(16);\n if (s.length \x3d\x3d 1) {\n s \x3d \x220\x22 + s;\n }\n ret \x3d ret + s;\n }\n return ret;\n };\n types.UUID \x3d function Transit$UUID(high, low) {\n this.high \x3d high;\n this.low \x3d low;\n this.hashCode \x3d -1;\n };\n types.UUID.prototype.getLeastSignificantBits \x3d function() {\n return this.low;\n };\n types.UUID.prototype.getMostSignificantBits \x3d function() {\n return this.high;\n };\n types.UUID.prototype.toString \x3d function() {\n var s \x3d \x22\x22;\n var hi64 \x3d this.high;\n var lo64 \x3d this.low;\n s \x3d s + (types.hexFor(hi64, 0, 4) + \x22-\x22);\n s \x3d s + (types.hexFor(hi64, 4, 6) + \x22-\x22);\n s \x3d s + (types.hexFor(hi64, 6, 8) + \x22-\x22);\n s \x3d s + (types.hexFor(lo64, 0, 2) + \x22-\x22);\n s \x3d s + types.hexFor(lo64, 2, 8);\n return s;\n };\n types.UUID.prototype.equiv \x3d function(other) {\n return eq.equals(this, other);\n };\n types.UUID.prototype[\x22equiv\x22] \x3d types.UUID.prototype.equiv;\n types.UUID.prototype.com$cognitect$transit$equals \x3d function(other) {\n return other instanceof types.UUID \x26\x26 this.high.equals(other.high) \x26\x26 this.low.equals(other.low);\n };\n types.UUID.prototype.com$cognitect$transit$hashCode \x3d function() {\n if (this.hashCode \x3d\x3d\x3d -1) {\n this.hashCode \x3d eq.hashCode(this.toString());\n }\n return this.hashCode;\n };\n types.UUIDfromString \x3d function uuidFromString(s) {\n s \x3d s.replace(/-/g, \x22\x22);\n var hi64 \x3d null;\n var lo64 \x3d null;\n var hi32 \x3d 0;\n var lo32 \x3d 0;\n var off \x3d 24;\n var i \x3d 0;\n hi32 \x3d 0, i \x3d 0, off \x3d 24;\n for (; i \x3c 8; i \x3d i + 2, off \x3d off - 8) {\n hi32 \x3d hi32 | parseInt(s.substring(i, i + 2), 16) \x3c\x3c off;\n }\n lo32 \x3d 0, i \x3d 8, off \x3d 24;\n for (; i \x3c 16; i \x3d i + 2, off \x3d off - 8) {\n lo32 \x3d lo32 | parseInt(s.substring(i, i + 2), 16) \x3c\x3c off;\n }\n hi64 \x3d Long.fromBits(lo32, hi32);\n hi32 \x3d 0, i \x3d 16, off \x3d 24;\n for (; i \x3c 24; i \x3d i + 2, off \x3d off - 8) {\n hi32 \x3d hi32 | parseInt(s.substring(i, i + 2), 16) \x3c\x3c off;\n }\n lo32 \x3d 0, i \x3d 24, off \x3d 24;\n for (; i \x3c 32; i \x3d i + 2, off \x3d off - 8) {\n lo32 \x3d lo32 | parseInt(s.substring(i, i + 2), 16) \x3c\x3c off;\n }\n lo64 \x3d Long.fromBits(lo32, hi32);\n return new types.UUID(hi64, lo64);\n };\n types.uuid \x3d function(s) {\n return types.UUIDfromString(s);\n };\n types.isUUID \x3d function(x) {\n return x instanceof types.UUID;\n };\n types.date \x3d function(s) {\n s \x3d typeof s \x3d\x3d\x3d \x22number\x22 ? s : parseInt(s, 10);\n return new Date(s);\n };\n types.verboseDate \x3d function(s) {\n return new Date(s);\n };\n Date.prototype.com$cognitect$transit$equals \x3d function(other) {\n if (other instanceof Date) {\n return this.valueOf() \x3d\x3d\x3d other.valueOf();\n } else {\n return false;\n }\n };\n Date.prototype.com$cognitect$transit$hashCode \x3d function() {\n return this.valueOf();\n };\n types.binary \x3d function(str, decoder) {\n if ((!decoder || decoder.preferBuffers !\x3d\x3d false) \x26\x26 typeof goog.global.Buffer !\x3d \x22undefined\x22) {\n return new goog.global.Buffer(str, \x22base64\x22);\n } else if (typeof Uint8Array !\x3d \x22undefined\x22) {\n return util.Base64ToUint8(str);\n } else {\n return types.taggedValue(\x22b\x22, str);\n }\n };\n types.isBinary \x3d function(x) {\n if (typeof goog.global.Buffer !\x3d \x22undefined\x22 \x26\x26 x instanceof goog.global.Buffer) {\n return true;\n } else if (typeof Uint8Array !\x3d \x22undefined\x22 \x26\x26 x instanceof Uint8Array) {\n return true;\n } else {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22b\x22;\n }\n };\n types.uri \x3d function(s) {\n return types.taggedValue(\x22r\x22, s);\n };\n types.isURI \x3d function(x) {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22r\x22;\n };\n types.KEYS \x3d 0;\n types.VALUES \x3d 1;\n types.ENTRIES \x3d 2;\n types.TransitArrayMapIterator \x3d function Transit$ArrayMapIterator(entries, type) {\n this.entries \x3d entries;\n this.type \x3d type || types.KEYS;\n this.idx \x3d 0;\n };\n types.TransitArrayMapIterator.prototype.next \x3d function() {\n if (this.idx \x3c this.entries.length) {\n var value \x3d null;\n if (this.type \x3d\x3d\x3d types.KEYS) {\n value \x3d this.entries[this.idx];\n } else if (this.type \x3d\x3d\x3d types.VALUES) {\n value \x3d this.entries[this.idx + 1];\n } else {\n value \x3d [this.entries[this.idx], this.entries[this.idx + 1]];\n }\n var ret \x3d {\x22value\x22:value, \x22done\x22:false};\n this.idx +\x3d 2;\n return ret;\n } else {\n return {\x22value\x22:null, \x22done\x22:true};\n }\n };\n types.TransitArrayMapIterator.prototype[\x22next\x22] \x3d types.TransitArrayMapIterator.prototype.next;\n types.TransitArrayMapIterator.prototype[types.ITERATOR] \x3d function() {\n return this;\n };\n types.TransitMapIterator \x3d function Transit$MapIterator(map, type) {\n this.map \x3d map;\n this.type \x3d type || types.KEYS;\n this.keys \x3d this.map.getKeys();\n this.idx \x3d 0;\n this.bucket \x3d null;\n this.bucketIdx \x3d 0;\n };\n types.TransitMapIterator.prototype.next \x3d function() {\n if (this.idx \x3c this.map.size) {\n if (this.bucket \x3d\x3d null || !(this.bucketIdx \x3c this.bucket.length)) {\n this.bucket \x3d this.map.map[this.keys[this.idx]];\n this.bucketIdx \x3d 0;\n }\n var value \x3d null;\n if (this.type \x3d\x3d\x3d types.KEYS) {\n value \x3d this.bucket[this.bucketIdx];\n } else if (this.type \x3d\x3d\x3d types.VALUES) {\n value \x3d this.bucket[this.bucketIdx + 1];\n } else {\n value \x3d [this.bucket[this.bucketIdx], this.bucket[this.bucketIdx + 1]];\n }\n var ret \x3d {\x22value\x22:value, \x22done\x22:false};\n this.idx++;\n this.bucketIdx +\x3d 2;\n return ret;\n } else {\n return {\x22value\x22:null, \x22done\x22:true};\n }\n };\n types.TransitMapIterator.prototype[\x22next\x22] \x3d types.TransitMapIterator.prototype.next;\n types.TransitMapIterator.prototype[types.ITERATOR] \x3d function() {\n return this;\n };\n types.mapEquals \x3d function(me, you) {\n if (me instanceof types.TransitMap \x26\x26 types.isMap(you)) {\n if (me.size !\x3d\x3d you.size) {\n return false;\n }\n var code;\n for (code in me.map) {\n var bucket \x3d me.map[code];\n var j \x3d 0;\n for (; j \x3c bucket.length; j \x3d j + 2) {\n if (!eq.equals(bucket[j + 1], you.get(bucket[j]))) {\n return false;\n }\n }\n }\n return true;\n } else if (me instanceof types.TransitArrayMap \x26\x26 types.isMap(you)) {\n if (me.size !\x3d\x3d you.size) {\n return false;\n }\n var entries \x3d me._entries;\n j \x3d 0;\n for (; j \x3c entries.length; j \x3d j + 2) {\n if (!eq.equals(entries[j + 1], you.get(entries[j]))) {\n return false;\n }\n }\n return true;\n } else if (you !\x3d null \x26\x26 typeof you \x3d\x3d\x3d \x22object\x22) {\n var ks \x3d util.objectKeys(you);\n var kslen \x3d ks.length;\n if (me.size \x3d\x3d\x3d kslen) {\n var i \x3d 0;\n for (; i \x3c kslen; i++) {\n var k \x3d ks[i];\n if (!me.has(k) || !eq.equals(you[k], me.get(k))) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n types.SMALL_ARRAY_MAP_THRESHOLD \x3d 8;\n types.ARRAY_MAP_THRESHOLD \x3d 32;\n types.ARRAY_MAP_ACCESS_THRESHOLD \x3d 32;\n types.print \x3d function(x) {\n if (x \x3d\x3d null) {\n return \x22null\x22;\n }\n if (goog.typeOf(x) \x3d\x3d\x3d \x22array\x22) {\n return \x22[\x22 + x.toString() + \x22]\x22;\n } else if (goog.typeOf(x) \x3d\x3d\x3d \x22string\x22) {\n return \x27\x22\x27 + x + \x27\x22\x27;\n } else {\n return x.toString();\n }\n };\n types.printMap \x3d function(map) {\n var idx \x3d 0;\n var str \x3d \x22TransitMap {\x22;\n map.forEach(function(v, k) {\n str \x3d str + (types.print(k) + \x22 \\x3d\\x3e \x22 + types.print(v));\n if (idx \x3c map.size - 1) {\n str \x3d str + \x22, \x22;\n }\n idx++;\n });\n return str + \x22}\x22;\n };\n types.printSet \x3d function(set) {\n var idx \x3d 0;\n var str \x3d \x22TransitSet {\x22;\n set.forEach(function(v) {\n str \x3d str + types.print(v);\n if (idx \x3c set.size - 1) {\n str \x3d str + \x22, \x22;\n }\n idx++;\n });\n return str + \x22}\x22;\n };\n types.TransitArrayMap \x3d function Transit$ArrayMap(entries) {\n this._entries \x3d entries;\n this.backingMap \x3d null;\n this.hashCode \x3d -1;\n this.size \x3d entries.length / 2;\n this.accesses \x3d 0;\n };\n types.TransitArrayMap.prototype.toString \x3d function() {\n return types.printMap(this);\n };\n types.TransitArrayMap.prototype[\x22inspect\x22] \x3d function() {\n return this.toString();\n };\n types.TransitArrayMap.prototype.convert \x3d function() {\n if (this.backingMap) {\n throw Error(\x22Invalid operation, already converted\x22);\n }\n if (this.size \x3c types.SMALL_ARRAY_MAP_THRESHOLD) {\n return false;\n }\n this.accesses++;\n if (this.accesses \x3e types.ARRAY_MAP_ACCESS_THRESHOLD) {\n this.backingMap \x3d types.map(this._entries, false, true);\n this._entries \x3d [];\n return true;\n } else {\n return false;\n }\n };\n types.TransitArrayMap.prototype.clear \x3d function() {\n this.hashCode \x3d -1;\n if (this.backingMap) {\n this.backingMap.clear();\n this.size \x3d 0;\n } else {\n this._entries \x3d [];\n this.size \x3d 0;\n }\n };\n types.TransitArrayMap.prototype[\x22clear\x22] \x3d types.TransitArrayMap.prototype.clear;\n types.TransitArrayMap.prototype.keys \x3d function() {\n if (this.backingMap) {\n return this.backingMap.keys();\n } else {\n return new types.TransitArrayMapIterator(this._entries, types.KEYS);\n }\n };\n types.TransitArrayMap.prototype[\x22keys\x22] \x3d types.TransitArrayMap.prototype.keys;\n types.TransitArrayMap.prototype.keySet \x3d function() {\n if (this.backingMap) {\n return this.backingMap.keySet();\n } else {\n var ret \x3d [];\n var i \x3d 0;\n var j \x3d 0;\n for (; j \x3c this._entries.length; i++, j \x3d j + 2) {\n ret[i] \x3d this._entries[j];\n }\n return ret;\n }\n };\n types.TransitArrayMap.prototype[\x22keySet\x22] \x3d types.TransitArrayMap.prototype.keySet;\n types.TransitArrayMap.prototype.entries \x3d function() {\n if (this.backingMap) {\n return this.backingMap.entries();\n } else {\n return new types.TransitArrayMapIterator(this._entries, types.ENTRIES);\n }\n };\n types.TransitArrayMap.prototype[\x22entries\x22] \x3d types.TransitArrayMap.prototype.entries;\n types.TransitArrayMap.prototype.values \x3d function() {\n if (this.backingMap) {\n return this.backingMap.values();\n } else {\n return new types.TransitArrayMapIterator(this._entries, types.VALUES);\n }\n };\n types.TransitArrayMap.prototype[\x22values\x22] \x3d types.TransitArrayMap.prototype.values;\n types.TransitArrayMap.prototype.forEach \x3d function(f) {\n if (this.backingMap) {\n this.backingMap.forEach(f);\n } else {\n var i \x3d 0;\n for (; i \x3c this._entries.length; i \x3d i + 2) {\n f(this._entries[i + 1], this._entries[i]);\n }\n }\n };\n types.TransitArrayMap.prototype[\x22forEach\x22] \x3d types.TransitArrayMap.prototype.forEach;\n types.TransitArrayMap.prototype.get \x3d function(k, notFound) {\n if (this.backingMap) {\n return this.backingMap.get(k);\n } else {\n if (this.convert()) {\n return this.get(k);\n } else {\n var i \x3d 0;\n for (; i \x3c this._entries.length; i \x3d i + 2) {\n if (eq.equals(this._entries[i], k)) {\n return this._entries[i + 1];\n }\n }\n return notFound;\n }\n }\n };\n types.TransitArrayMap.prototype[\x22get\x22] \x3d types.TransitArrayMap.prototype.get;\n types.TransitArrayMap.prototype.has \x3d function(k) {\n if (this.backingMap) {\n return this.backingMap.has(k);\n } else {\n if (this.convert()) {\n return this.has(k);\n } else {\n var i \x3d 0;\n for (; i \x3c this._entries.length; i \x3d i + 2) {\n if (eq.equals(this._entries[i], k)) {\n return true;\n }\n }\n return false;\n }\n }\n };\n types.TransitArrayMap.prototype[\x22has\x22] \x3d types.TransitArrayMap.prototype.has;\n types.TransitArrayMap.prototype.set \x3d function(k, v) {\n this.hashCode \x3d -1;\n if (this.backingMap) {\n this.backingMap.set(k, v);\n this.size \x3d this.backingMap.size;\n } else {\n var i \x3d 0;\n for (; i \x3c this._entries.length; i \x3d i + 2) {\n if (eq.equals(this._entries[i], k)) {\n this._entries[i + 1] \x3d v;\n return;\n }\n }\n this._entries.push(k);\n this._entries.push(v);\n this.size++;\n if (this.size \x3e types.ARRAY_MAP_THRESHOLD) {\n this.backingMap \x3d types.map(this._entries, false, true);\n this._entries \x3d null;\n }\n }\n };\n types.TransitArrayMap.prototype[\x22set\x22] \x3d types.TransitArrayMap.prototype.set;\n types.TransitArrayMap.prototype[\x22delete\x22] \x3d function(k) {\n this.hashCode \x3d -1;\n if (this.backingMap) {\n var ret \x3d this.backingMap.delete(k);\n this.size \x3d this.backingMap.size;\n return ret;\n } else {\n var i \x3d 0;\n for (; i \x3c this._entries.length; i \x3d i + 2) {\n if (eq.equals(this._entries[i], k)) {\n ret \x3d this._entries[i + 1];\n this._entries.splice(i, 2);\n this.size--;\n return ret;\n }\n }\n }\n };\n types.TransitArrayMap.prototype.clone \x3d function() {\n var clone \x3d types.map();\n this.forEach(function(v, k) {\n clone.set(k, v);\n });\n return clone;\n };\n types.TransitArrayMap.prototype[\x22clone\x22] \x3d types.TransitArrayMap.prototype.clone;\n types.TransitArrayMap.prototype[types.ITERATOR] \x3d function() {\n return this.entries();\n };\n types.TransitArrayMap.prototype.com$cognitect$transit$hashCode \x3d function() {\n if (this.backingMap) {\n return this.backingMap.com$cognitect$transit$hashCode();\n } else {\n if (this.hashCode \x3d\x3d\x3d -1) {\n this.hashCode \x3d eq.hashMapLike(this);\n }\n return this.hashCode;\n }\n };\n types.TransitArrayMap.prototype.com$cognitect$transit$equals \x3d function(other) {\n if (this.backingMap) {\n return types.mapEquals(this.backingMap, other);\n } else {\n return types.mapEquals(this, other);\n }\n };\n types.TransitMap \x3d function Transit$Map(keys, map, size) {\n this.map \x3d map || {};\n this._keys \x3d keys || [];\n this.size \x3d size || 0;\n this.hashCode \x3d -1;\n };\n types.TransitMap.prototype.toString \x3d function() {\n return types.printMap(this);\n };\n types.TransitMap.prototype[\x22inspect\x22] \x3d function() {\n return this.toString();\n };\n types.TransitMap.prototype.clear \x3d function() {\n this.hashCode \x3d -1;\n this.map \x3d {};\n this._keys \x3d [];\n this.size \x3d 0;\n };\n types.TransitMap.prototype[\x22clear\x22] \x3d types.TransitMap.prototype.clear;\n types.TransitMap.prototype.getKeys \x3d function() {\n if (this._keys !\x3d null) {\n return this._keys;\n } else {\n return util.objectKeys(this.map);\n }\n };\n types.TransitMap.prototype[\x22delete\x22] \x3d function(k) {\n this.hashCode \x3d -1;\n this._keys \x3d null;\n var code \x3d eq.hashCode(k);\n var bucket \x3d this.map[code];\n var i \x3d 0;\n for (; i \x3c bucket.length; i \x3d i + 2) {\n if (eq.equals(k, bucket[i])) {\n var ret \x3d bucket[i + 1];\n bucket.splice(i, 2);\n if (bucket.length \x3d\x3d\x3d 0) {\n delete this.map[code];\n }\n this.size--;\n return ret;\n }\n }\n };\n types.TransitMap.prototype.entries \x3d function() {\n return new types.TransitMapIterator(this, types.ENTRIES);\n };\n types.TransitMap.prototype[\x22entries\x22] \x3d types.TransitMap.prototype.entries;\n types.TransitMap.prototype.forEach \x3d function(callback) {\n var ks \x3d this.getKeys();\n var i \x3d 0;\n for (; i \x3c ks.length; i++) {\n var bucket \x3d this.map[ks[i]];\n var j \x3d 0;\n for (; j \x3c bucket.length; j \x3d j + 2) {\n callback(bucket[j + 1], bucket[j], this);\n }\n }\n };\n types.TransitMap.prototype[\x22forEach\x22] \x3d types.TransitMap.prototype.forEach;\n types.TransitMap.prototype.get \x3d function(k, notFound) {\n var code \x3d eq.hashCode(k);\n var bucket \x3d this.map[code];\n if (bucket !\x3d null) {\n var i \x3d 0;\n for (; i \x3c bucket.length; i \x3d i + 2) {\n if (eq.equals(k, bucket[i])) {\n return bucket[i + 1];\n }\n }\n } else {\n return notFound;\n }\n };\n types.TransitMap.prototype[\x22get\x22] \x3d types.TransitMap.prototype.get;\n types.TransitMap.prototype.has \x3d function(k) {\n var code \x3d eq.hashCode(k);\n var bucket \x3d this.map[code];\n if (bucket !\x3d null) {\n var i \x3d 0;\n for (; i \x3c bucket.length; i \x3d i + 2) {\n if (eq.equals(k, bucket[i])) {\n return true;\n }\n }\n return false;\n } else {\n return false;\n }\n };\n types.TransitMap.prototype[\x22has\x22] \x3d types.TransitMap.prototype.has;\n types.TransitMap.prototype.keys \x3d function() {\n return new types.TransitMapIterator(this, types.KEYS);\n };\n types.TransitMap.prototype[\x22keys\x22] \x3d types.TransitMap.prototype.keys;\n types.TransitMap.prototype.keySet \x3d function() {\n var keys \x3d this.getKeys();\n var ret \x3d [];\n var i \x3d 0;\n for (; i \x3c keys.length; i++) {\n var bucket \x3d this.map[keys[i]];\n var j \x3d 0;\n for (; j \x3c bucket.length; j \x3d j + 2) {\n ret.push(bucket[j]);\n }\n }\n return ret;\n };\n types.TransitMap.prototype[\x22keySet\x22] \x3d types.TransitMap.prototype.keySet;\n types.TransitMap.prototype.set \x3d function(k, v) {\n this.hashCode \x3d -1;\n var code \x3d eq.hashCode(k);\n var bucket \x3d this.map[code];\n if (bucket \x3d\x3d null) {\n if (this._keys) {\n this._keys.push(code);\n }\n this.map[code] \x3d [k, v];\n this.size++;\n } else {\n var newEntry \x3d true;\n var i \x3d 0;\n for (; i \x3c bucket.length; i \x3d i + 2) {\n if (eq.equals(v, bucket[i])) {\n newEntry \x3d false;\n bucket[i] \x3d v;\n break;\n }\n }\n if (newEntry) {\n bucket.push(k);\n bucket.push(v);\n this.size++;\n }\n }\n };\n types.TransitMap.prototype[\x22set\x22] \x3d types.TransitMap.prototype.set;\n types.TransitMap.prototype.values \x3d function() {\n return new types.TransitMapIterator(this, types.VALUES);\n };\n types.TransitMap.prototype[\x22values\x22] \x3d types.TransitMap.prototype.values;\n types.TransitMap.prototype.clone \x3d function() {\n var clone \x3d types.map();\n this.forEach(function(v, k) {\n clone.set(k, v);\n });\n return clone;\n };\n types.TransitMap.prototype[\x22clone\x22] \x3d types.TransitMap.prototype.clone;\n types.TransitMap.prototype[types.ITERATOR] \x3d function() {\n return this.entries();\n };\n types.TransitMap.prototype.com$cognitect$transit$hashCode \x3d function() {\n if (this.hashCode \x3d\x3d\x3d -1) {\n this.hashCode \x3d eq.hashMapLike(this);\n }\n return this.hashCode;\n };\n types.TransitMap.prototype.com$cognitect$transit$equals \x3d function(other) {\n return types.mapEquals(this, other);\n };\n types.map \x3d function(arr, checkDups, hashMap) {\n arr \x3d arr || [];\n checkDups \x3d checkDups \x3d\x3d\x3d false ? checkDups : true;\n hashMap \x3d hashMap \x3d\x3d\x3d true ? hashMap : false;\n if (!hashMap \x26\x26 arr.length \x3c\x3d types.ARRAY_MAP_THRESHOLD * 2) {\n if (checkDups) {\n var t \x3d arr;\n arr \x3d [];\n var i \x3d 0;\n for (; i \x3c t.length; i \x3d i + 2) {\n var seen \x3d false;\n var j \x3d 0;\n for (; j \x3c arr.length; j \x3d j + 2) {\n if (eq.equals(arr[j], t[i])) {\n arr[j + 1] \x3d t[i + 1];\n seen \x3d true;\n break;\n }\n }\n if (!seen) {\n arr.push(t[i]);\n arr.push(t[i + 1]);\n }\n }\n }\n return new types.TransitArrayMap(arr);\n } else {\n var map \x3d {};\n var keys \x3d [];\n var size \x3d 0;\n i \x3d 0;\n for (; i \x3c arr.length; i \x3d i + 2) {\n var code \x3d eq.hashCode(arr[i]);\n var bucket \x3d map[code];\n if (bucket \x3d\x3d null) {\n keys.push(code);\n map[code] \x3d [arr[i], arr[i + 1]];\n size++;\n } else {\n var newEntry \x3d true;\n j \x3d 0;\n for (; j \x3c bucket.length; j \x3d j + 2) {\n if (eq.equals(bucket[j], arr[i])) {\n bucket[j + 1] \x3d arr[i + 1];\n newEntry \x3d false;\n break;\n }\n }\n if (newEntry) {\n bucket.push(arr[i]);\n bucket.push(arr[i + 1]);\n size++;\n }\n }\n }\n return new types.TransitMap(keys, map, size);\n }\n };\n types.isArrayMap \x3d function(x) {\n return x instanceof types.TransitArrayMap;\n };\n types.isMap \x3d function(x) {\n return x instanceof types.TransitArrayMap || x instanceof types.TransitMap;\n };\n types.TransitSet \x3d function Transit$Set(map) {\n this.map \x3d map;\n this.size \x3d map.size;\n };\n types.TransitSet.prototype.toString \x3d function() {\n return types.printSet(this);\n };\n types.TransitSet.prototype[\x22inspect\x22] \x3d function() {\n return this.toString();\n };\n types.TransitSet.prototype.add \x3d function(value) {\n this.map.set(value, value);\n this.size \x3d this.map.size;\n };\n types.TransitSet.prototype[\x22add\x22] \x3d types.TransitSet.prototype.add;\n types.TransitSet.prototype.clear \x3d function() {\n this.map \x3d new types.TransitMap();\n this.size \x3d 0;\n };\n types.TransitSet.prototype[\x22clear\x22] \x3d types.TransitSet.prototype.clear;\n types.TransitSet.prototype[\x22delete\x22] \x3d function(value) {\n var ret \x3d this.map.delete(value);\n this.size \x3d this.map.size;\n return ret;\n };\n types.TransitSet.prototype.entries \x3d function() {\n return this.map.entries();\n };\n types.TransitSet.prototype[\x22entries\x22] \x3d types.TransitSet.prototype.entries;\n types.TransitSet.prototype.forEach \x3d function(iterator, thisArg) {\n var self \x3d this;\n this.map.forEach(function(v, k, m) {\n iterator(k, self);\n });\n };\n types.TransitSet.prototype[\x22forEach\x22] \x3d types.TransitSet.prototype.forEach;\n types.TransitSet.prototype.has \x3d function(value) {\n return this.map.has(value);\n };\n types.TransitSet.prototype[\x22has\x22] \x3d types.TransitSet.prototype.has;\n types.TransitSet.prototype.keys \x3d function() {\n return this.map.keys();\n };\n types.TransitSet.prototype[\x22keys\x22] \x3d types.TransitSet.prototype.keys;\n types.TransitSet.prototype.keySet \x3d function() {\n return this.map.keySet();\n };\n types.TransitSet.prototype[\x22keySet\x22] \x3d types.TransitSet.prototype.keySet;\n types.TransitSet.prototype.values \x3d function() {\n return this.map.values();\n };\n types.TransitSet.prototype[\x22values\x22] \x3d types.TransitSet.prototype.values;\n types.TransitSet.prototype.clone \x3d function() {\n var clone \x3d types.set();\n this.forEach(function(k) {\n clone.add(k);\n });\n return clone;\n };\n types.TransitSet.prototype[\x22clone\x22] \x3d types.TransitSet.prototype.clone;\n types.TransitSet.prototype[types.ITERATOR] \x3d function() {\n return this.values();\n };\n types.TransitSet.prototype.com$cognitect$transit$equals \x3d function(other) {\n if (other instanceof types.TransitSet) {\n if (this.size \x3d\x3d\x3d other.size) {\n return eq.equals(this.map, other.map);\n }\n } else {\n return false;\n }\n };\n types.TransitSet.prototype.com$cognitect$transit$hashCode \x3d function(other) {\n return eq.hashCode(this.map);\n };\n types.set \x3d function(arr) {\n arr \x3d arr || [];\n var map \x3d {};\n var keys \x3d [];\n var size \x3d 0;\n var i \x3d 0;\n for (; i \x3c arr.length; i++) {\n var code \x3d eq.hashCode(arr[i]);\n var vals \x3d map[code];\n if (vals \x3d\x3d null) {\n keys.push(code);\n map[code] \x3d [arr[i], arr[i]];\n size++;\n } else {\n var newEntry \x3d true;\n var j \x3d 0;\n for (; j \x3c vals.length; j \x3d j + 2) {\n if (eq.equals(vals[j], arr[i])) {\n newEntry \x3d false;\n break;\n }\n }\n if (newEntry) {\n vals.push(arr[i]);\n vals.push(arr[i]);\n size++;\n }\n }\n }\n return new types.TransitSet(new types.TransitMap(keys, map, size));\n };\n types.isSet \x3d function(x) {\n return x instanceof types.TransitSet;\n };\n types.quoted \x3d function(obj) {\n return types.taggedValue(\x22\x27\x22, obj);\n };\n types.isQuoted \x3d function(x) {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22\x27\x22;\n };\n types.list \x3d function(xs) {\n return types.taggedValue(\x22list\x22, xs);\n };\n types.isList \x3d function(x) {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22list\x22;\n };\n types.link \x3d function(rep) {\n return types.taggedValue(\x22link\x22, rep);\n };\n types.isLink \x3d function(x) {\n return x instanceof types.TaggedValue \x26\x26 x.tag \x3d\x3d\x3d \x22link\x22;\n };\n types.specialDouble \x3d function(v) {\n switch(v) {\n case \x22-INF\x22:\n return -Infinity;\n case \x22INF\x22:\n return Infinity;\n case \x22NaN\x22:\n return NaN;\n default:\n throw new Error(\x22Invalid special double value \x22 + v);\n break;\n }\n };\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.impl.decoder.js", true, "goog.provide(\x22com.cognitect.transit.impl.decoder\x22);\ngoog.require(\x22com.cognitect.transit.util\x22);\ngoog.require(\x22com.cognitect.transit.delimiters\x22);\ngoog.require(\x22com.cognitect.transit.caching\x22);\ngoog.require(\x22com.cognitect.transit.types\x22);\ngoog.scope(function() {\n var decoder \x3d com.cognitect.transit.impl.decoder;\n var util \x3d com.cognitect.transit.util;\n var d \x3d com.cognitect.transit.delimiters;\n var caching \x3d com.cognitect.transit.caching;\n var types \x3d com.cognitect.transit.types;\n decoder.Tag \x3d function Transit$Tag(s) {\n this.str \x3d s;\n };\n decoder.tag \x3d function(s) {\n return new decoder.Tag(s);\n };\n decoder.isTag \x3d function(x) {\n return x \x26\x26 x instanceof decoder.Tag;\n };\n decoder.isGroundHandler \x3d function(handler) {\n switch(handler) {\n case \x22_\x22:\n case \x22s\x22:\n case \x22?\x22:\n case \x22i\x22:\n case \x22d\x22:\n case \x22b\x22:\n case \x22\x27\x22:\n case \x22array\x22:\n case \x22map\x22:\n return true;\n }\n return false;\n };\n decoder.Decoder \x3d function Transit$Decoder(options) {\n this.options \x3d options || {};\n this.handlers \x3d {};\n var h;\n for (h in this.defaults.handlers) {\n this.handlers[h] \x3d this.defaults.handlers[h];\n }\n for (h in this.options[\x22handlers\x22]) {\n if (decoder.isGroundHandler(h)) {\n throw new Error(\x27Cannot override handler for ground type \x22\x27 + h + \x27\x22\x27);\n }\n this.handlers[h] \x3d this.options[\x22handlers\x22][h];\n }\n this.preferStrings \x3d this.options[\x22preferStrings\x22] !\x3d null ? this.options[\x22preferStrings\x22] : this.defaults.preferStrings;\n this.preferBuffers \x3d this.options[\x22preferBuffers\x22] !\x3d null ? this.options[\x22preferBuffers\x22] : this.defaults.preferBuffers;\n this.defaultHandler \x3d this.options[\x22defaultHandler\x22] || this.defaults.defaultHandler;\n this.mapBuilder \x3d this.options[\x22mapBuilder\x22];\n this.arrayBuilder \x3d this.options[\x22arrayBuilder\x22];\n };\n decoder.Decoder.prototype.defaults \x3d {handlers:{\x22_\x22:function(v, d) {\n return types.nullValue();\n }, \x22?\x22:function(v, d) {\n return types.boolValue(v);\n }, \x22b\x22:function(v, d) {\n return types.binary(v, d);\n }, \x22i\x22:function(v, d) {\n return types.intValue(v);\n }, \x22n\x22:function(v, d) {\n return types.bigInteger(v);\n }, \x22d\x22:function(v, d) {\n return types.floatValue(v);\n }, \x22f\x22:function(v, d) {\n return types.bigDecimalValue(v);\n }, \x22c\x22:function(v, d) {\n return types.charValue(v);\n }, \x22:\x22:function(v, d) {\n return types.keyword(v);\n }, \x22$\x22:function(v, d) {\n return types.symbol(v);\n }, \x22r\x22:function(v, d) {\n return types.uri(v);\n }, \x22z\x22:function(v, d) {\n return types.specialDouble(v);\n }, \x22\x27\x22:function(v, d) {\n return v;\n }, \x22m\x22:function(v, d) {\n return types.date(v);\n }, \x22t\x22:function(v, d) {\n return types.verboseDate(v);\n }, \x22u\x22:function(v, d) {\n return types.uuid(v);\n }, \x22set\x22:function(v, d) {\n return types.set(v);\n }, \x22list\x22:function(v, d) {\n return types.list(v);\n }, \x22link\x22:function(v, d) {\n return types.link(v);\n }, \x22cmap\x22:function(v, d) {\n return types.map(v, false);\n }}, defaultHandler:function(c, val) {\n return types.taggedValue(c, val);\n }, preferStrings:true, preferBuffers:true};\n decoder.Decoder.prototype.decode \x3d function(node, cache, asMapKey, tagValue) {\n if (node \x3d\x3d null) {\n return null;\n }\n var t \x3d typeof node;\n switch(t) {\n case \x22string\x22:\n return this.decodeString(node, cache, asMapKey, tagValue);\n break;\n case \x22object\x22:\n if (util.isArray(node)) {\n if (node[0] \x3d\x3d\x3d \x22^ \x22) {\n return this.decodeArrayHash(node, cache, asMapKey, tagValue);\n } else {\n return this.decodeArray(node, cache, asMapKey, tagValue);\n }\n } else {\n return this.decodeHash(node, cache, asMapKey, tagValue);\n }\n break;\n }\n return node;\n };\n decoder.Decoder.prototype[\x22decode\x22] \x3d decoder.Decoder.prototype.decode;\n decoder.Decoder.prototype.decodeString \x3d function(string, cache, asMapKey, tagValue) {\n if (caching.isCacheable(string, asMapKey)) {\n var val \x3d this.parseString(string, cache, false);\n if (cache) {\n cache.write(val, asMapKey);\n }\n return val;\n } else if (caching.isCacheCode(string)) {\n return cache.read(string, asMapKey);\n } else {\n return this.parseString(string, cache, asMapKey);\n }\n };\n decoder.Decoder.prototype.decodeHash \x3d function(hash, cache, asMapKey, tagValue) {\n var ks \x3d util.objectKeys(hash);\n var key \x3d ks[0];\n var tag \x3d ks.length \x3d\x3d 1 ? this.decode(key, cache, false, false) : null;\n if (decoder.isTag(tag)) {\n var val \x3d hash[key];\n var handler \x3d this.handlers[tag.str];\n if (handler !\x3d null) {\n return handler(this.decode(val, cache, false, true), this);\n } else {\n return types.taggedValue(tag.str, this.decode(val, cache, false, false));\n }\n } else if (this.mapBuilder) {\n if (ks.length \x3c types.SMALL_ARRAY_MAP_THRESHOLD * 2 \x26\x26 this.mapBuilder.fromArray) {\n var nodep \x3d [];\n var i \x3d 0;\n for (; i \x3c ks.length; i++) {\n var strKey \x3d ks[i];\n nodep.push(this.decode(strKey, cache, true, false));\n nodep.push(this.decode(hash[strKey], cache, false, false));\n }\n return this.mapBuilder.fromArray(nodep, hash);\n } else {\n var ret \x3d this.mapBuilder.init(hash);\n i \x3d 0;\n for (; i \x3c ks.length; i++) {\n strKey \x3d ks[i];\n ret \x3d this.mapBuilder.add(ret, this.decode(strKey, cache, true, false), this.decode(hash[strKey], cache, false, false), hash);\n }\n return this.mapBuilder.finalize(ret, hash);\n }\n } else {\n nodep \x3d [];\n i \x3d 0;\n for (; i \x3c ks.length; i++) {\n strKey \x3d ks[i];\n nodep.push(this.decode(strKey, cache, true, false));\n nodep.push(this.decode(hash[strKey], cache, false, false));\n }\n return types.map(nodep, false);\n }\n };\n decoder.Decoder.prototype.decodeArrayHash \x3d function(node, cache, asMapKey, tagValue) {\n if (this.mapBuilder) {\n if (node.length \x3c types.SMALL_ARRAY_MAP_THRESHOLD * 2 + 1 \x26\x26 this.mapBuilder.fromArray) {\n var nodep \x3d [];\n var i \x3d 1;\n for (; i \x3c node.length; i \x3d i + 2) {\n nodep.push(this.decode(node[i], cache, true, false));\n nodep.push(this.decode(node[i + 1], cache, false, false));\n }\n return this.mapBuilder.fromArray(nodep, node);\n } else {\n var ret \x3d this.mapBuilder.init(node);\n i \x3d 1;\n for (; i \x3c node.length; i \x3d i + 2) {\n ret \x3d this.mapBuilder.add(ret, this.decode(node[i], cache, true, false), this.decode(node[i + 1], cache, false, false), node);\n }\n return this.mapBuilder.finalize(ret, node);\n }\n } else {\n nodep \x3d [];\n i \x3d 1;\n for (; i \x3c node.length; i \x3d i + 2) {\n nodep.push(this.decode(node[i], cache, true, false));\n nodep.push(this.decode(node[i + 1], cache, false, false));\n }\n return types.map(nodep, false);\n }\n };\n decoder.Decoder.prototype.decodeArray \x3d function(node, cache, asMapKey, tagValue) {\n if (tagValue) {\n var ret \x3d [];\n var i \x3d 0;\n for (; i \x3c node.length; i++) {\n ret.push(this.decode(node[i], cache, asMapKey, false));\n }\n return ret;\n } else {\n var cacheIdx \x3d cache \x26\x26 cache.idx;\n if (node.length \x3d\x3d\x3d 2 \x26\x26 typeof node[0] \x3d\x3d\x3d \x22string\x22) {\n var tag \x3d this.decode(node[0], cache, false, false);\n if (decoder.isTag(tag)) {\n var val \x3d node[1];\n var handler \x3d this.handlers[tag.str];\n if (handler !\x3d null) {\n ret \x3d handler(this.decode(val, cache, asMapKey, true), this);\n return ret;\n } else {\n return types.taggedValue(tag.str, this.decode(val, cache, asMapKey, false));\n }\n }\n }\n if (cache \x26\x26 cacheIdx !\x3d cache.idx) {\n cache.idx \x3d cacheIdx;\n }\n if (this.arrayBuilder) {\n if (node.length \x3c\x3d 32 \x26\x26 this.arrayBuilder.fromArray) {\n var arr \x3d [];\n i \x3d 0;\n for (; i \x3c node.length; i++) {\n arr.push(this.decode(node[i], cache, asMapKey, false));\n }\n return this.arrayBuilder.fromArray(arr, node);\n } else {\n ret \x3d this.arrayBuilder.init(node);\n i \x3d 0;\n for (; i \x3c node.length; i++) {\n ret \x3d this.arrayBuilder.add(ret, this.decode(node[i], cache, asMapKey, false), node);\n }\n return this.arrayBuilder.finalize(ret, node);\n }\n } else {\n ret \x3d [];\n i \x3d 0;\n for (; i \x3c node.length; i++) {\n ret.push(this.decode(node[i], cache, asMapKey, false));\n }\n return ret;\n }\n }\n };\n decoder.Decoder.prototype.parseString \x3d function(string, cache, asMapKey) {\n if (string.charAt(0) \x3d\x3d\x3d d.ESC) {\n var c \x3d string.charAt(1);\n if (c \x3d\x3d\x3d d.ESC || c \x3d\x3d\x3d d.SUB || c \x3d\x3d\x3d d.RES) {\n return string.substring(1);\n } else if (c \x3d\x3d\x3d d.TAG) {\n return decoder.tag(string.substring(2));\n } else {\n var handler \x3d this.handlers[c];\n if (handler \x3d\x3d null) {\n return this.defaultHandler(c, string.substring(2));\n } else {\n return handler(string.substring(2), this);\n }\n }\n } else {\n return string;\n }\n };\n decoder.decoder \x3d function(options) {\n return new decoder.Decoder(options);\n };\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.impl.reader.js", true, "goog.provide(\x22com.cognitect.transit.impl.reader\x22);\ngoog.require(\x22com.cognitect.transit.impl.decoder\x22);\ngoog.require(\x22com.cognitect.transit.caching\x22);\ngoog.scope(function() {\n var reader \x3d com.cognitect.transit.impl.reader;\n var decoder \x3d com.cognitect.transit.impl.decoder;\n var caching \x3d com.cognitect.transit.caching;\n reader.JSONUnmarshaller \x3d function Transit$JSONUnmarshaller(opts) {\n this.decoder \x3d new decoder.Decoder(opts);\n };\n reader.JSONUnmarshaller.prototype.unmarshal \x3d function(str, cache) {\n return this.decoder.decode(JSON.parse(str), cache);\n };\n reader.Reader \x3d function Transit$Reader(unmarshaller, options) {\n this.unmarshaller \x3d unmarshaller;\n this.options \x3d options || {};\n this.cache \x3d this.options[\x22cache\x22] ? this.options[\x22cache\x22] : new caching.ReadCache();\n };\n reader.Reader.prototype.read \x3d function(str) {\n var ret \x3d this.unmarshaller.unmarshal(str, this.cache);\n this.cache.clear();\n return ret;\n };\n reader.Reader.prototype[\x22read\x22] \x3d reader.Reader.prototype.read;\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.handlers.js", true, "goog.provide(\x22com.cognitect.transit.handlers\x22);\ngoog.require(\x22com.cognitect.transit.util\x22);\ngoog.require(\x22com.cognitect.transit.types\x22);\ngoog.require(\x22goog.math.Long\x22);\ngoog.scope(function() {\n var handlers \x3d com.cognitect.transit.handlers;\n var util \x3d com.cognitect.transit.util;\n var types \x3d com.cognitect.transit.types;\n var Long \x3d goog.math.Long;\n handlers.ctorGuid \x3d 0;\n handlers.ctorGuidProperty \x3d \x22transit$guid$\x22 + util.randomUUID();\n handlers.typeTag \x3d function(ctor) {\n if (ctor \x3d\x3d null) {\n return \x22null\x22;\n } else if (ctor \x3d\x3d\x3d String) {\n return \x22string\x22;\n } else if (ctor \x3d\x3d\x3d Boolean) {\n return \x22boolean\x22;\n } else if (ctor \x3d\x3d\x3d Number) {\n return \x22number\x22;\n } else if (ctor \x3d\x3d\x3d Array) {\n return \x22array\x22;\n } else if (ctor \x3d\x3d\x3d Object) {\n return \x22map\x22;\n } else {\n var tag \x3d ctor[handlers.ctorGuidProperty];\n if (tag \x3d\x3d null) {\n if (typeof Object.defineProperty !\x3d \x22undefined\x22) {\n tag \x3d ++handlers.ctorGuid;\n Object.defineProperty(ctor, handlers.ctorGuidProperty, {value:tag, enumerable:false});\n } else {\n ctor[handlers.ctorGuidProperty] \x3d tag \x3d ++handlers.ctorGuid;\n }\n }\n return tag;\n }\n };\n handlers.constructor \x3d function(x) {\n if (x \x3d\x3d null) {\n return null;\n } else {\n return x.constructor;\n }\n };\n handlers.padZeros \x3d function(n, m) {\n var s \x3d n.toString();\n var i \x3d s.length;\n for (; i \x3c m; i++) {\n s \x3d \x220\x22 + s;\n }\n return s;\n };\n handlers.stringableKeys \x3d function(m) {\n var stringable \x3d false;\n var ks \x3d util.objectKeys(m);\n var i \x3d 0;\n for (; i \x3c ks.length; i++) {\n }\n return true;\n };\n handlers.NilHandler \x3d function Transit$NilHandler() {\n };\n handlers.NilHandler.prototype.tag \x3d function(v) {\n return \x22_\x22;\n };\n handlers.NilHandler.prototype.rep \x3d function(v) {\n return null;\n };\n handlers.NilHandler.prototype.stringRep \x3d function(v) {\n return \x22null\x22;\n };\n handlers.StringHandler \x3d function Transit$StringHandler() {\n };\n handlers.StringHandler.prototype.tag \x3d function(v) {\n return \x22s\x22;\n };\n handlers.StringHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.StringHandler.prototype.stringRep \x3d function(v) {\n return v;\n };\n handlers.NumberHandler \x3d function Transit$NumberHandler() {\n };\n handlers.NumberHandler.prototype.tag \x3d function(v) {\n return \x22i\x22;\n };\n handlers.NumberHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.NumberHandler.prototype.stringRep \x3d function(v) {\n return v.toString();\n };\n handlers.IntegerHandler \x3d function Transit$IntegerHandler() {\n };\n handlers.IntegerHandler.prototype.tag \x3d function(v) {\n return \x22i\x22;\n };\n handlers.IntegerHandler.prototype.rep \x3d function(v) {\n return v.toString();\n };\n handlers.IntegerHandler.prototype.stringRep \x3d function(v) {\n return v.toString();\n };\n handlers.BooleanHandler \x3d function Transit$BooleanHandler() {\n };\n handlers.BooleanHandler.prototype.tag \x3d function(v) {\n return \x22?\x22;\n };\n handlers.BooleanHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.BooleanHandler.prototype.stringRep \x3d function(v) {\n return v.toString();\n };\n handlers.ArrayHandler \x3d function Transit$ArrayHandler() {\n };\n handlers.ArrayHandler.prototype.tag \x3d function(v) {\n return \x22array\x22;\n };\n handlers.ArrayHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.ArrayHandler.prototype.stringRep \x3d function(v) {\n return null;\n };\n handlers.MapHandler \x3d function Transit$MapHandler() {\n };\n handlers.MapHandler.prototype.tag \x3d function(v) {\n return \x22map\x22;\n };\n handlers.MapHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.MapHandler.prototype.stringRep \x3d function(v) {\n return null;\n };\n handlers.VerboseDateHandler \x3d function Transit$VerboseDateHandler() {\n };\n handlers.VerboseDateHandler.prototype.tag \x3d function(v) {\n return \x22t\x22;\n };\n handlers.VerboseDateHandler.prototype.rep \x3d function(v) {\n return v.getUTCFullYear() + \x22-\x22 + handlers.padZeros(v.getUTCMonth() + 1, 2) + \x22-\x22 + handlers.padZeros(v.getUTCDate(), 2) + \x22T\x22 + handlers.padZeros(v.getUTCHours(), 2) + \x22:\x22 + handlers.padZeros(v.getUTCMinutes(), 2) + \x22:\x22 + handlers.padZeros(v.getUTCSeconds(), 2) + \x22.\x22 + handlers.padZeros(v.getUTCMilliseconds(), 3) + \x22Z\x22;\n };\n handlers.VerboseDateHandler.prototype.stringRep \x3d function(v, h) {\n return h.rep(v);\n };\n handlers.DateHandler \x3d function Transit$DateHandler() {\n };\n handlers.DateHandler.prototype.tag \x3d function(v) {\n return \x22m\x22;\n };\n handlers.DateHandler.prototype.rep \x3d function(v) {\n return v.valueOf();\n };\n handlers.DateHandler.prototype.stringRep \x3d function(v) {\n return v.valueOf().toString();\n };\n handlers.DateHandler.prototype.getVerboseHandler \x3d function(v) {\n return new handlers.VerboseDateHandler();\n };\n handlers.UUIDHandler \x3d function Transit$UUIDHandler() {\n };\n handlers.UUIDHandler.prototype.tag \x3d function(v) {\n return \x22u\x22;\n };\n handlers.UUIDHandler.prototype.rep \x3d function(v) {\n return v.toString();\n };\n handlers.UUIDHandler.prototype.stringRep \x3d function(v) {\n return v.toString();\n };\n handlers.KeywordHandler \x3d function Transit$KeywordHandler() {\n };\n handlers.KeywordHandler.prototype.tag \x3d function(v) {\n return \x22:\x22;\n };\n handlers.KeywordHandler.prototype.rep \x3d function(v) {\n return v._name;\n };\n handlers.KeywordHandler.prototype.stringRep \x3d function(v, h) {\n return h.rep(v);\n };\n handlers.SymbolHandler \x3d function Transit$SymbolHandler() {\n };\n handlers.SymbolHandler.prototype.tag \x3d function(v) {\n return \x22$\x22;\n };\n handlers.SymbolHandler.prototype.rep \x3d function(v) {\n return v._name;\n };\n handlers.SymbolHandler.prototype.stringRep \x3d function(v, h) {\n return h.rep(v);\n };\n handlers.TaggedHandler \x3d function Transit$TaggedHandler() {\n };\n handlers.TaggedHandler.prototype.tag \x3d function(v) {\n return v.tag;\n };\n handlers.TaggedHandler.prototype.rep \x3d function(v) {\n return v.rep;\n };\n handlers.TaggedHandler.prototype.stringRep \x3d function(v, h) {\n return null;\n };\n handlers.TransitSetHandler \x3d function Transit$TransitSetHandler() {\n };\n handlers.TransitSetHandler.prototype.tag \x3d function(v) {\n return \x22set\x22;\n };\n handlers.TransitSetHandler.prototype.rep \x3d function(v) {\n var arr \x3d [];\n v.forEach(function(key, set) {\n arr.push(key);\n });\n return types.taggedValue(\x22array\x22, arr);\n };\n handlers.TransitSetHandler.prototype.stringRep \x3d function(v, h) {\n return null;\n };\n handlers.TransitArrayMapHandler \x3d function Transit$ArrayMapHandler() {\n };\n handlers.TransitArrayMapHandler.prototype.tag \x3d function(v) {\n return \x22map\x22;\n };\n handlers.TransitArrayMapHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.TransitArrayMapHandler.prototype.stringRep \x3d function(v, h) {\n return null;\n };\n handlers.TransitMapHandler \x3d function Transit$MapHandler() {\n };\n handlers.TransitMapHandler.prototype.tag \x3d function(v) {\n return \x22map\x22;\n };\n handlers.TransitMapHandler.prototype.rep \x3d function(v) {\n return v;\n };\n handlers.TransitMapHandler.prototype.stringRep \x3d function(v, h) {\n return null;\n };\n handlers.BufferHandler \x3d function Transit$BufferHandler() {\n };\n handlers.BufferHandler.prototype.tag \x3d function(v) {\n return \x22b\x22;\n };\n handlers.BufferHandler.prototype.rep \x3d function(v) {\n return v.toString(\x22base64\x22);\n };\n handlers.BufferHandler.prototype.stringRep \x3d function(v, h) {\n return null;\n };\n handlers.Uint8ArrayHandler \x3d function Transit$Uint8ArrayHandler() {\n };\n handlers.Uint8ArrayHandler.prototype.tag \x3d function(v) {\n return \x22b\x22;\n };\n handlers.Uint8ArrayHandler.prototype.rep \x3d function(v) {\n return util.Uint8ToBase64(v);\n };\n handlers.Uint8ArrayHandler.prototype.stringRep \x3d function(v, h) {\n return null;\n };\n handlers.defaultHandlers \x3d function(hs) {\n hs.set(null, new handlers.NilHandler());\n hs.set(String, new handlers.StringHandler());\n hs.set(Number, new handlers.NumberHandler());\n hs.set(Long, new handlers.IntegerHandler());\n hs.set(Boolean, new handlers.BooleanHandler());\n hs.set(Array, new handlers.ArrayHandler());\n hs.set(Object, new handlers.MapHandler());\n hs.set(Date, new handlers.DateHandler());\n hs.set(types.UUID, new handlers.UUIDHandler());\n hs.set(types.Keyword, new handlers.KeywordHandler());\n hs.set(types.Symbol, new handlers.SymbolHandler());\n hs.set(types.TaggedValue, new handlers.TaggedHandler());\n hs.set(types.TransitSet, new handlers.TransitSetHandler());\n hs.set(types.TransitArrayMap, new handlers.TransitArrayMapHandler());\n hs.set(types.TransitMap, new handlers.TransitMapHandler());\n if (typeof goog.global.Buffer !\x3d \x22undefined\x22) {\n hs.set(goog.global.Buffer, new handlers.BufferHandler());\n }\n if (typeof Uint8Array !\x3d \x22undefined\x22) {\n hs.set(Uint8Array, new handlers.Uint8ArrayHandler());\n }\n return hs;\n };\n handlers.Handlers \x3d function Transit$Handlers() {\n this.handlers \x3d {};\n handlers.defaultHandlers(this);\n };\n handlers.Handlers.prototype.get \x3d function(ctor) {\n var h \x3d null;\n if (typeof ctor \x3d\x3d\x3d \x22string\x22) {\n h \x3d this.handlers[ctor];\n } else {\n h \x3d this.handlers[handlers.typeTag(ctor)];\n }\n if (h !\x3d null) {\n return h;\n } else {\n return this.handlers[\x22default\x22];\n }\n };\n handlers.Handlers.prototype[\x22get\x22] \x3d handlers.Handlers.prototype.get;\n handlers.validTag \x3d function(tag) {\n switch(tag) {\n case \x22null\x22:\n case \x22string\x22:\n case \x22boolean\x22:\n case \x22number\x22:\n case \x22array\x22:\n case \x22map\x22:\n return false;\n break;\n }\n return true;\n };\n handlers.Handlers.prototype.set \x3d function(ctor, handler) {\n if (typeof ctor \x3d\x3d\x3d \x22string\x22 \x26\x26 handlers.validTag(ctor)) {\n this.handlers[ctor] \x3d handler;\n } else {\n this.handlers[handlers.typeTag(ctor)] \x3d handler;\n }\n };\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.impl.writer.js", true, "goog.provide(\x22com.cognitect.transit.impl.writer\x22);\ngoog.require(\x22com.cognitect.transit.util\x22);\ngoog.require(\x22com.cognitect.transit.caching\x22);\ngoog.require(\x22com.cognitect.transit.handlers\x22);\ngoog.require(\x22com.cognitect.transit.types\x22);\ngoog.require(\x22com.cognitect.transit.delimiters\x22);\ngoog.require(\x22goog.math.Long\x22);\ngoog.scope(function() {\n var writer \x3d com.cognitect.transit.impl.writer;\n var util \x3d com.cognitect.transit.util;\n var caching \x3d com.cognitect.transit.caching;\n var handlers \x3d com.cognitect.transit.handlers;\n var types \x3d com.cognitect.transit.types;\n var d \x3d com.cognitect.transit.delimiters;\n var Long \x3d goog.math.Long;\n writer.escape \x3d function(string) {\n if (string.length \x3e 0) {\n var c \x3d string.charAt(0);\n if (c \x3d\x3d\x3d d.ESC || c \x3d\x3d\x3d d.SUB || c \x3d\x3d\x3d d.RES) {\n return d.ESC + string;\n } else {\n return string;\n }\n } else {\n return string;\n }\n };\n writer.JSONMarshaller \x3d function Transit$JSONMarshaller(opts) {\n this.opts \x3d opts || {};\n this.preferStrings \x3d this.opts[\x22preferStrings\x22] !\x3d null ? this.opts[\x22preferStrings\x22] : true;\n this.objectBuilder \x3d this.opts[\x22objectBuilder\x22] || null;\n this.transform \x3d this.opts[\x22transform\x22] || null;\n this.handlers \x3d new handlers.Handlers();\n var optsHandlers \x3d this.opts[\x22handlers\x22];\n if (optsHandlers) {\n if (util.isArray(optsHandlers) || !optsHandlers.forEach) {\n throw new Error(\x27transit writer \x22handlers\x22 option must be a map\x27);\n }\n var self \x3d this;\n optsHandlers.forEach(function(v, k) {\n if (k !\x3d\x3d undefined) {\n self.handlers.set(k, v);\n } else {\n throw new Error(\x22Cannot create handler for JavaScript undefined\x22);\n }\n });\n }\n this.handlerForForeign \x3d this.opts[\x22handlerForForeign\x22];\n this.unpack \x3d this.opts[\x22unpack\x22] || function(x) {\n if (types.isArrayMap(x) \x26\x26 x.backingMap \x3d\x3d\x3d null) {\n return x._entries;\n } else {\n return false;\n }\n };\n this.verbose \x3d this.opts \x26\x26 this.opts[\x22verbose\x22] || false;\n };\n writer.JSONMarshaller.prototype.handler \x3d function(obj) {\n var h \x3d this.handlers.get(handlers.constructor(obj));\n if (h !\x3d null) {\n return h;\n } else {\n var tag \x3d obj \x26\x26 obj[\x22transitTag\x22];\n if (tag) {\n return this.handlers.get(tag);\n } else {\n return null;\n }\n }\n };\n writer.JSONMarshaller.prototype.registerHandler \x3d function(ctor, handler) {\n this.handlers.set(ctor, handler);\n };\n writer.JSONMarshaller.prototype.emitNil \x3d function(asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \x22_\x22, \x22\x22, asMapKey, cache);\n } else {\n return null;\n }\n };\n writer.JSONMarshaller.prototype.emitString \x3d function(prefix, tag, s, asMapKey, cache) {\n var string \x3d prefix + tag + s;\n if (cache) {\n return cache.write(string, asMapKey);\n } else {\n return string;\n }\n };\n writer.JSONMarshaller.prototype.emitBoolean \x3d function(b, asMapKey, cache) {\n if (asMapKey) {\n var s \x3d b.toString();\n return this.emitString(d.ESC, \x22?\x22, s[0], asMapKey, cache);\n } else {\n return b;\n }\n };\n writer.JSONMarshaller.prototype.emitInteger \x3d function(i, asMapKey, cache) {\n if (i \x3d\x3d\x3d Infinity) {\n return this.emitString(d.ESC, \x22z\x22, \x22INF\x22, asMapKey, cache);\n } else if (i \x3d\x3d\x3d -Infinity) {\n return this.emitString(d.ESC, \x22z\x22, \x22-INF\x22, asMapKey, cache);\n } else if (isNaN(i)) {\n return this.emitString(d.ESC, \x22z\x22, \x22NaN\x22, asMapKey, cache);\n } else if (asMapKey || typeof i \x3d\x3d\x3d \x22string\x22 || i instanceof Long) {\n return this.emitString(d.ESC, \x22i\x22, i.toString(), asMapKey, cache);\n } else {\n return i;\n }\n };\n writer.JSONMarshaller.prototype.emitDouble \x3d function(d, asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \x22d\x22, d, asMapKey, cache);\n } else {\n return d;\n }\n };\n writer.JSONMarshaller.prototype.emitBinary \x3d function(b, asMapKey, cache) {\n return this.emitString(d.ESC, \x22b\x22, b, asMapKey, cache);\n };\n writer.JSONMarshaller.prototype.emitQuoted \x3d function(em, obj, cache) {\n if (em.verbose) {\n var ret \x3d {};\n var k \x3d this.emitString(d.ESC_TAG, \x22\x27\x22, \x22\x22, true, cache);\n ret[k] \x3d writer.marshal(this, obj, false, cache);\n return ret;\n } else {\n return [this.emitString(d.ESC_TAG, \x22\x27\x22, \x22\x22, true, cache), writer.marshal(this, obj, false, cache)];\n }\n };\n writer.emitObjects \x3d function(em, iterable, cache) {\n var ret \x3d [];\n if (util.isArray(iterable)) {\n var i \x3d 0;\n for (; i \x3c iterable.length; i++) {\n ret.push(writer.marshal(em, iterable[i], false, cache));\n }\n } else {\n iterable.forEach(function(v, i) {\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n };\n writer.emitArray \x3d function(em, iterable, skip, cache) {\n return writer.emitObjects(em, iterable, cache);\n };\n writer.isStringableKey \x3d function(em, k) {\n if (typeof k !\x3d\x3d \x22string\x22) {\n var h \x3d em.handler(k);\n return h \x26\x26 h.tag(k).length \x3d\x3d\x3d 1;\n } else {\n return true;\n }\n };\n writer.stringableKeys \x3d function(em, obj) {\n var arr \x3d em.unpack(obj);\n var stringableKeys \x3d true;\n if (arr) {\n var i \x3d 0;\n for (; i \x3c arr.length; i \x3d i + 2) {\n stringableKeys \x3d writer.isStringableKey(em, arr[i]);\n if (!stringableKeys) {\n break;\n }\n }\n return stringableKeys;\n } else if (obj.keys) {\n var iter \x3d obj.keys();\n var step \x3d null;\n if (iter.next) {\n step \x3d iter.next();\n for (; !step.done;) {\n stringableKeys \x3d writer.isStringableKey(em, step.value);\n if (!stringableKeys) {\n break;\n }\n step \x3d iter.next();\n }\n return stringableKeys;\n }\n }\n if (obj.forEach) {\n obj.forEach(function(v, k) {\n stringableKeys \x3d stringableKeys \x26\x26 writer.isStringableKey(em, k);\n });\n return stringableKeys;\n } else {\n throw new Error(\x22Cannot walk keys of object type \x22 + handlers.constructor(obj).name);\n }\n };\n writer.isForeignObject \x3d function(x) {\n if (x.constructor[\x22transit$isObject\x22]) {\n return true;\n }\n var ret \x3d x.constructor.toString();\n ret \x3d ret.substr(\x22function \x22.length);\n ret \x3d ret.substr(0, ret.indexOf(\x22(\x22));\n var isObject \x3d ret \x3d\x3d \x22Object\x22;\n if (typeof Object.defineProperty !\x3d \x22undefined\x22) {\n Object.defineProperty(x.constructor, \x22transit$isObject\x22, {value:isObject, enumerable:false});\n } else {\n x.constructor[\x22transit$isObject\x22] \x3d isObject;\n }\n return isObject;\n };\n writer.emitMap \x3d function(em, obj, skip, cache) {\n var arr \x3d null;\n var rep \x3d null;\n var tag \x3d null;\n var ks \x3d null;\n var i \x3d 0;\n if (obj.constructor \x3d\x3d\x3d Object || obj.forEach !\x3d null || em.handlerForForeign \x26\x26 writer.isForeignObject(obj)) {\n if (em.verbose) {\n if (obj.forEach !\x3d null) {\n if (writer.stringableKeys(em, obj)) {\n var ret \x3d {};\n obj.forEach(function(v, k) {\n ret[writer.marshal(em, k, true, false)] \x3d writer.marshal(em, v, false, cache);\n });\n return ret;\n } else {\n arr \x3d em.unpack(obj);\n rep \x3d [];\n tag \x3d em.emitString(d.ESC_TAG, \x22cmap\x22, \x22\x22, true, cache);\n if (arr) {\n for (; i \x3c arr.length; i \x3d i + 2) {\n rep.push(writer.marshal(em, arr[i], false, false));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n rep.push(writer.marshal(em, k, false, false));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n ret \x3d {};\n ret[tag] \x3d rep;\n return ret;\n }\n } else {\n ks \x3d util.objectKeys(obj);\n ret \x3d {};\n for (; i \x3c ks.length; i++) {\n ret[writer.marshal(em, ks[i], true, false)] \x3d writer.marshal(em, obj[ks[i]], false, cache);\n }\n return ret;\n }\n } else {\n if (obj.forEach !\x3d null) {\n if (writer.stringableKeys(em, obj)) {\n arr \x3d em.unpack(obj);\n ret \x3d [\x22^ \x22];\n if (arr) {\n for (; i \x3c arr.length; i \x3d i + 2) {\n ret.push(writer.marshal(em, arr[i], true, cache));\n ret.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n ret.push(writer.marshal(em, k, true, cache));\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n } else {\n arr \x3d em.unpack(obj);\n rep \x3d [];\n tag \x3d em.emitString(d.ESC_TAG, \x22cmap\x22, \x22\x22, true, cache);\n if (arr) {\n for (; i \x3c arr.length; i \x3d i + 2) {\n rep.push(writer.marshal(em, arr[i], false, cache));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n rep.push(writer.marshal(em, k, false, cache));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n return [tag, rep];\n }\n } else {\n ret \x3d [\x22^ \x22];\n ks \x3d util.objectKeys(obj);\n for (; i \x3c ks.length; i++) {\n ret.push(writer.marshal(em, ks[i], true, cache));\n ret.push(writer.marshal(em, obj[ks[i]], false, cache));\n }\n return ret;\n }\n }\n } else if (em.objectBuilder !\x3d null) {\n return em.objectBuilder(obj, function(k) {\n return writer.marshal(em, k, true, cache);\n }, function(v) {\n return writer.marshal(em, v, false, cache);\n });\n } else {\n var name \x3d handlers.constructor(obj).name;\n var err \x3d new Error(\x22Cannot write \x22 + name);\n err.data \x3d {obj:obj, type:name};\n throw err;\n }\n };\n writer.emitTaggedMap \x3d function(em, tag, rep, skip, cache) {\n if (em.verbose) {\n var ret \x3d {};\n ret[em.emitString(d.ESC_TAG, tag, \x22\x22, true, cache)] \x3d writer.marshal(em, rep, false, cache);\n return ret;\n } else {\n return [em.emitString(d.ESC_TAG, tag, \x22\x22, true, cache), writer.marshal(em, rep, false, cache)];\n }\n };\n writer.emitEncoded \x3d function(em, h, tag, rep, obj, asMapKey, cache) {\n if (tag.length \x3d\x3d\x3d 1) {\n if (typeof rep \x3d\x3d\x3d \x22string\x22) {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else if (asMapKey || em.preferStrings) {\n var vh \x3d em.verbose \x26\x26 h.getVerboseHandler();\n if (vh) {\n tag \x3d vh.tag(obj);\n rep \x3d vh.stringRep(obj, vh);\n } else {\n rep \x3d h.stringRep(obj, h);\n }\n if (rep !\x3d\x3d null) {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else {\n var err \x3d new Error(\x27Tag \x22\x27 + tag + \x27\x22 cannot be encoded as string\x27);\n err.data \x3d {tag:tag, rep:rep, obj:obj};\n throw err;\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n };\n writer.marshal \x3d function(em, obj, asMapKey, cache) {\n if (em.transform !\x3d\x3d null) {\n obj \x3d em.transform(obj);\n }\n var h \x3d em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\n var tag \x3d h ? h.tag(obj) : null;\n var rep \x3d h ? h.rep(obj) : null;\n if (h !\x3d null \x26\x26 tag !\x3d null) {\n switch(tag) {\n case \x22_\x22:\n return em.emitNil(asMapKey, cache);\n break;\n case \x22s\x22:\n return em.emitString(\x22\x22, \x22\x22, writer.escape(rep), asMapKey, cache);\n break;\n case \x22?\x22:\n return em.emitBoolean(rep, asMapKey, cache);\n break;\n case \x22i\x22:\n return em.emitInteger(rep, asMapKey, cache);\n break;\n case \x22d\x22:\n return em.emitDouble(rep, asMapKey, cache);\n break;\n case \x22b\x22:\n return em.emitBinary(rep, asMapKey, cache);\n break;\n case \x22\x27\x22:\n return em.emitQuoted(em, rep, cache);\n break;\n case \x22array\x22:\n return writer.emitArray(em, rep, asMapKey, cache);\n break;\n case \x22map\x22:\n return writer.emitMap(em, rep, asMapKey, cache);\n break;\n default:\n return writer.emitEncoded(em, h, tag, rep, obj, asMapKey, cache);\n break;\n }\n } else {\n var name \x3d handlers.constructor(obj).name;\n var err \x3d new Error(\x22Cannot write \x22 + name);\n err.data \x3d {obj:obj, type:name};\n throw err;\n }\n };\n writer.maybeQuoted \x3d function(em, obj) {\n var h \x3d em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\n if (h !\x3d null) {\n if (h.tag(obj).length \x3d\x3d\x3d 1) {\n return types.quoted(obj);\n } else {\n return obj;\n }\n } else {\n var name \x3d handlers.constructor(obj).name;\n var err \x3d new Error(\x22Cannot write \x22 + name);\n err.data \x3d {obj:obj, type:name};\n throw err;\n }\n };\n writer.marshalTop \x3d function(em, obj, asMapKey, cache) {\n return JSON.stringify(writer.marshal(em, writer.maybeQuoted(em, obj), asMapKey, cache));\n };\n writer.Writer \x3d function Transit$Writer(marshaller, options) {\n this._marshaller \x3d marshaller;\n this.options \x3d options || {};\n if (this.options[\x22cache\x22] \x3d\x3d\x3d false) {\n this.cache \x3d null;\n } else {\n this.cache \x3d this.options[\x22cache\x22] ? this.options[\x22cache\x22] : new caching.WriteCache();\n }\n };\n writer.Writer.prototype.marshaller \x3d function() {\n return this._marshaller;\n };\n writer.Writer.prototype[\x22marshaller\x22] \x3d writer.Writer.prototype.marshaller;\n writer.Writer.prototype.write \x3d function(obj, opts) {\n var ret \x3d null;\n var ropts \x3d opts || {};\n var asMapKey \x3d ropts[\x22asMapKey\x22] || false;\n var cache \x3d this._marshaller.verbose ? false : this.cache;\n if (ropts[\x22marshalTop\x22] \x3d\x3d\x3d false) {\n ret \x3d writer.marshal(this._marshaller, obj, asMapKey, cache);\n } else {\n ret \x3d writer.marshalTop(this._marshaller, obj, asMapKey, cache);\n }\n if (this.cache !\x3d null) {\n this.cache.clear();\n }\n return ret;\n };\n writer.Writer.prototype[\x22write\x22] \x3d writer.Writer.prototype.write;\n writer.Writer.prototype.register \x3d function(type, handler) {\n this._marshaller.registerHandler(type, handler);\n };\n writer.Writer.prototype[\x22register\x22] \x3d writer.Writer.prototype.register;\n});\n");
SHADOW_ENV.evalLoad("com.cognitect.transit.js", true, "goog.provide(\x22com.cognitect.transit\x22);\ngoog.require(\x22com.cognitect.transit.util\x22);\ngoog.require(\x22com.cognitect.transit.impl.reader\x22);\ngoog.require(\x22com.cognitect.transit.impl.writer\x22);\ngoog.require(\x22com.cognitect.transit.types\x22);\ngoog.require(\x22com.cognitect.transit.eq\x22);\ngoog.require(\x22com.cognitect.transit.impl.decoder\x22);\ngoog.require(\x22com.cognitect.transit.caching\x22);\nvar TRANSIT_DEV \x3d true;\nvar TRANSIT_NODE_TARGET \x3d false;\nvar TRANSIT_BROWSER_TARGET \x3d false;\nvar TRANSIT_BROWSER_AMD_TARGET \x3d false;\ngoog.scope(function() {\n var transit \x3d com.cognitect.transit;\n var util \x3d com.cognitect.transit.util;\n var reader \x3d com.cognitect.transit.impl.reader;\n var writer \x3d com.cognitect.transit.impl.writer;\n var decoder \x3d com.cognitect.transit.impl.decoder;\n var types \x3d com.cognitect.transit.types;\n var eq \x3d com.cognitect.transit.eq;\n var caching \x3d com.cognitect.transit.caching;\n transit.MapLike;\n transit.SetLike;\n transit.reader \x3d function(type, opts) {\n if (type \x3d\x3d\x3d \x22json\x22 || type \x3d\x3d\x3d \x22json-verbose\x22 || type \x3d\x3d null) {\n type \x3d \x22json\x22;\n var unmarshaller \x3d new reader.JSONUnmarshaller(opts);\n return new reader.Reader(unmarshaller, opts);\n } else {\n throw new Error(\x22Cannot create reader of type \x22 + type);\n }\n };\n transit.writer \x3d function(type, opts) {\n if (type \x3d\x3d\x3d \x22json\x22 || type \x3d\x3d\x3d \x22json-verbose\x22 || type \x3d\x3d null) {\n if (type \x3d\x3d\x3d \x22json-verbose\x22) {\n if (opts \x3d\x3d null) {\n opts \x3d {};\n }\n opts[\x22verbose\x22] \x3d true;\n }\n var marshaller \x3d new writer.JSONMarshaller(opts);\n return new writer.Writer(marshaller, opts);\n } else {\n var err \x3d new Error(\x27Type must be \x22json\x22\x27);\n err.data \x3d {type:type};\n throw err;\n }\n };\n transit.makeWriteHandler \x3d function(obj) {\n var Handler \x3d function() {\n };\n Handler.prototype.tag \x3d obj[\x22tag\x22];\n Handler.prototype.rep \x3d obj[\x22rep\x22];\n Handler.prototype.stringRep \x3d obj[\x22stringRep\x22];\n Handler.prototype.getVerboseHandler \x3d obj[\x22getVerboseHandler\x22];\n return new Handler();\n };\n transit.makeBuilder \x3d function(obj) {\n var Builder \x3d function() {\n };\n Builder.prototype.init \x3d obj[\x22init\x22];\n Builder.prototype.add \x3d obj[\x22add\x22];\n Builder.prototype.finalize \x3d obj[\x22finalize\x22];\n Builder.prototype.fromArray \x3d obj[\x22fromArray\x22];\n return new Builder();\n };\n transit.date \x3d types.date;\n transit.integer \x3d types.intValue;\n transit.isInteger \x3d types.isInteger;\n transit.uuid \x3d types.uuid;\n transit.isUUID \x3d types.isUUID;\n transit.bigInt \x3d types.bigInteger;\n transit.isBigInt \x3d types.isBigInteger;\n transit.bigDec \x3d types.bigDecimalValue;\n transit.isBigDec \x3d types.isBigDecimal;\n transit.keyword \x3d types.keyword;\n transit.isKeyword \x3d types.isKeyword;\n transit.symbol \x3d types.symbol;\n transit.isSymbol \x3d types.isSymbol;\n transit.binary \x3d types.binary;\n transit.isBinary \x3d types.isBinary;\n transit.uri \x3d types.uri;\n transit.isURI \x3d types.isURI;\n transit.map \x3d types.map;\n transit.isMap \x3d types.isMap;\n transit.set \x3d types.set;\n transit.isSet \x3d types.isSet;\n transit.list \x3d types.list;\n transit.isList \x3d types.isList;\n transit.quoted \x3d types.quoted;\n transit.isQuoted \x3d types.isQuoted;\n transit.tagged \x3d types.taggedValue;\n transit.isTaggedValue \x3d types.isTaggedValue;\n transit.link \x3d types.link;\n transit.isLink \x3d types.isLink;\n transit.hash \x3d eq.hashCode;\n transit.hashMapLike \x3d eq.hashMapLike;\n transit.hashArrayLike \x3d eq.hashArrayLike;\n transit.equals \x3d eq.equals;\n transit.extendToEQ \x3d eq.extendToEQ;\n transit.mapToObject \x3d function(m) {\n var ret \x3d {};\n m.forEach(function(v, k) {\n if (typeof k !\x3d\x3d \x22string\x22) {\n throw Error(\x22Cannot convert map with non-string keys\x22);\n } else {\n ret[k] \x3d v;\n }\n });\n return ret;\n };\n transit.objectToMap \x3d function(obj) {\n var ret \x3d transit.map();\n var p;\n for (p in obj) {\n if (obj.hasOwnProperty(p)) {\n ret.set(p, obj[p]);\n }\n }\n return ret;\n };\n transit.decoder \x3d decoder.decoder;\n transit.readCache \x3d caching.readCache;\n transit.writeCache \x3d caching.writeCache;\n transit.UUIDfromString \x3d types.UUIDfromString;\n transit.randomUUID \x3d util.randomUUID;\n transit.stringableKeys \x3d writer.stringableKeys;\n if (TRANSIT_BROWSER_TARGET) {\n goog.exportSymbol(\x22transit.reader\x22, transit.reader);\n goog.exportSymbol(\x22transit.writer\x22, transit.writer);\n goog.exportSymbol(\x22transit.makeBuilder\x22, transit.makeBuilder);\n goog.exportSymbol(\x22transit.makeWriteHandler\x22, transit.makeWriteHandler);\n goog.exportSymbol(\x22transit.date\x22, types.date);\n goog.exportSymbol(\x22transit.integer\x22, types.intValue);\n goog.exportSymbol(\x22transit.isInteger\x22, types.isInteger);\n goog.exportSymbol(\x22transit.uuid\x22, types.uuid);\n goog.exportSymbol(\x22transit.isUUID\x22, types.isUUID);\n goog.exportSymbol(\x22transit.bigInt\x22, types.bigInteger);\n goog.exportSymbol(\x22transit.isBigInt\x22, types.isBigInteger);\n goog.exportSymbol(\x22transit.bigDec\x22, types.bigDecimalValue);\n goog.exportSymbol(\x22transit.isBigDec\x22, types.isBigDecimal);\n goog.exportSymbol(\x22transit.keyword\x22, types.keyword);\n goog.exportSymbol(\x22transit.isKeyword\x22, types.isKeyword);\n goog.exportSymbol(\x22transit.symbol\x22, types.symbol);\n goog.exportSymbol(\x22transit.isSymbol\x22, types.isSymbol);\n goog.exportSymbol(\x22transit.binary\x22, types.binary);\n goog.exportSymbol(\x22transit.isBinary\x22, types.isBinary);\n goog.exportSymbol(\x22transit.uri\x22, types.uri);\n goog.exportSymbol(\x22transit.isURI\x22, types.isURI);\n goog.exportSymbol(\x22transit.map\x22, types.map);\n goog.exportSymbol(\x22transit.isMap\x22, types.isMap);\n goog.exportSymbol(\x22transit.set\x22, types.set);\n goog.exportSymbol(\x22transit.isSet\x22, types.isSet);\n goog.exportSymbol(\x22transit.list\x22, types.list);\n goog.exportSymbol(\x22transit.isList\x22, types.isList);\n goog.exportSymbol(\x22transit.quoted\x22, types.quoted);\n goog.exportSymbol(\x22transit.isQuoted\x22, types.isQuoted);\n goog.exportSymbol(\x22transit.tagged\x22, types.taggedValue);\n goog.exportSymbol(\x22transit.isTaggedValue\x22, types.isTaggedValue);\n goog.exportSymbol(\x22transit.link\x22, types.link);\n goog.exportSymbol(\x22transit.isLink\x22, types.isLink);\n goog.exportSymbol(\x22transit.hash\x22, eq.hashCode);\n goog.exportSymbol(\x22transit.hashMapLike\x22, eq.hashMapLike);\n goog.exportSymbol(\x22transit.hashArrayLike\x22, eq.hashArrayLike);\n goog.exportSymbol(\x22transit.equals\x22, eq.equals);\n goog.exportSymbol(\x22transit.extendToEQ\x22, eq.extendToEQ);\n goog.exportSymbol(\x22transit.mapToObject\x22, transit.mapToObject);\n goog.exportSymbol(\x22transit.objectToMap\x22, transit.objectToMap);\n goog.exportSymbol(\x22transit.decoder\x22, decoder.decoder);\n goog.exportSymbol(\x22transit.UUIDfromString\x22, types.UUIDfromString);\n goog.exportSymbol(\x22transit.randomUUID\x22, util.randomUUID);\n goog.exportSymbol(\x22transit.stringableKeys\x22, writer.stringableKeys);\n goog.exportSymbol(\x22transit.readCache\x22, caching.readCache);\n goog.exportSymbol(\x22transit.writeCache\x22, caching.writeCache);\n }\n if (TRANSIT_NODE_TARGET) {\n module.exports \x3d {reader:transit.reader, writer:transit.writer, makeBuilder:transit.makeBuilder, makeWriteHandler:transit.makeWriteHandler, date:types.date, integer:types.intValue, isInteger:types.isInteger, uuid:types.uuid, isUUID:types.isUUID, bigInt:types.bigInteger, isBigInt:types.isBigInteger, bigDec:types.bigDecimalValue, isBigDec:types.isBigDecimal, keyword:types.keyword, isKeyword:types.isKeyword, symbol:types.symbol, isSymbol:types.isSymbol, binary:types.binary, isBinary:types.isBinary, \n uri:types.uri, isURI:types.isURI, map:types.map, isMap:types.isMap, set:types.set, isSet:types.isSet, list:types.list, isList:types.isList, quoted:types.quoted, isQuoted:types.isQuoted, tagged:types.taggedValue, isTaggedValue:types.isTaggedValue, link:types.link, isLink:types.isLink, hash:eq.hashCode, hashArrayLike:eq.hashArrayLike, hashMapLike:eq.hashMapLike, equals:eq.equals, extendToEQ:eq.extendToEQ, mapToObject:transit.mapToObject, objectToMap:transit.objectToMap, decoder:decoder.decoder, \n UUIDfromString:types.UUIDfromString, randomUUID:util.randomUUID, stringableKeys:writer.stringableKeys, readCache:caching.readCache, writeCache:caching.writeCache};\n }\n});\n");
SHADOW_ENV.evalLoad("cognitect.transit.js", true, "goog.provide(\x27cognitect.transit\x27);\ngoog.scope(function(){\n cognitect.transit.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n cognitect.transit.goog$module$goog$math$Long \x3d goog.module.get(\x27goog.math.Long\x27);\n});\n(cljs.core.UUID.prototype.cljs$core$IEquiv$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nif((other instanceof cljs.core.UUID)){\nreturn (this$__$1.uuid \x3d\x3d\x3d other.uuid);\n} else {\nif((other instanceof com.cognitect.transit.types.UUID)){\nreturn (this$__$1.uuid \x3d\x3d\x3d other.toString());\n} else {\nreturn false;\n\n}\n}\n}));\n(cljs.core.UUID.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.UUID.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nif((((other instanceof cljs.core.UUID)) || ((other instanceof com.cognitect.transit.types.UUID)))){\nreturn cljs.core.compare(this$__$1.toString(),other.toString());\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(this$__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(other)].join(\x27\x27)));\n}\n}));\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IComparable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IComparable$_compare$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nif((((other instanceof cljs.core.UUID)) || ((other instanceof com.cognitect.transit.types.UUID)))){\nreturn cljs.core.compare(this$__$1.toString(),other.toString());\n} else {\nthrow (new Error([\x22Cannot compare \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(this$__$1),\x22 to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(other)].join(\x27\x27)));\n}\n}));\n(cognitect.transit.goog$module$goog$math$Long.prototype.cljs$core$IEquiv$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cognitect.transit.goog$module$goog$math$Long.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nreturn this$__$1.equiv(other);\n}));\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IEquiv$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nif((other instanceof cljs.core.UUID)){\nreturn other.cljs$core$IEquiv$_equiv$arity$2(null, this$__$1);\n} else {\nreturn this$__$1.equiv(other);\n}\n}));\n\n(com.cognitect.transit.types.TaggedValue.prototype.cljs$core$IEquiv$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.TaggedValue.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this$,other){\nvar this$__$1 \x3d this;\nreturn this$__$1.equiv(other);\n}));\n(cognitect.transit.goog$module$goog$math$Long.prototype.cljs$core$IHash$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cognitect.transit.goog$module$goog$math$Long.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn com.cognitect.transit.eq.hashCode(this$__$1);\n}));\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IHash$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn cljs.core.hash(this$__$1.toString());\n}));\n\n(com.cognitect.transit.types.TaggedValue.prototype.cljs$core$IHash$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.TaggedValue.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this$){\nvar this$__$1 \x3d this;\nreturn com.cognitect.transit.eq.hashCode(this$__$1);\n}));\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IUUID$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IPrintWithWriter$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(com.cognitect.transit.types.UUID.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (uuid,writer,_){\nvar uuid__$1 \x3d this;\nreturn cljs.core._write(writer,[\x22#uuid \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(uuid__$1.toString()),\x22\\\x22\x22].join(\x27\x27));\n}));\ncognitect.transit.opts_merge \x3d (function cognitect$transit$opts_merge(a,b){\nvar seq__22114_22594 \x3d cljs.core.seq(cljs.core.js_keys(b));\nvar chunk__22115_22595 \x3d null;\nvar count__22116_22596 \x3d (0);\nvar i__22117_22597 \x3d (0);\nwhile(true){\nif((i__22117_22597 \x3c count__22116_22596)){\nvar k_22598 \x3d chunk__22115_22595.cljs$core$IIndexed$_nth$arity$2(null, i__22117_22597);\nvar v_22599 \x3d cognitect.transit.goog$module$goog$object.get(b,k_22598);\ncognitect.transit.goog$module$goog$object.set(a,k_22598,v_22599);\n\n\nvar G__22600 \x3d seq__22114_22594;\nvar G__22601 \x3d chunk__22115_22595;\nvar G__22602 \x3d count__22116_22596;\nvar G__22603 \x3d (i__22117_22597 + (1));\nseq__22114_22594 \x3d G__22600;\nchunk__22115_22595 \x3d G__22601;\ncount__22116_22596 \x3d G__22602;\ni__22117_22597 \x3d G__22603;\ncontinue;\n} else {\nvar temp__5804__auto___22604 \x3d cljs.core.seq(seq__22114_22594);\nif(temp__5804__auto___22604){\nvar seq__22114_22605__$1 \x3d temp__5804__auto___22604;\nif(cljs.core.chunked_seq_QMARK_(seq__22114_22605__$1)){\nvar c__5525__auto___22607 \x3d cljs.core.chunk_first(seq__22114_22605__$1);\nvar G__22608 \x3d cljs.core.chunk_rest(seq__22114_22605__$1);\nvar G__22609 \x3d c__5525__auto___22607;\nvar G__22610 \x3d cljs.core.count(c__5525__auto___22607);\nvar G__22611 \x3d (0);\nseq__22114_22594 \x3d G__22608;\nchunk__22115_22595 \x3d G__22609;\ncount__22116_22596 \x3d G__22610;\ni__22117_22597 \x3d G__22611;\ncontinue;\n} else {\nvar k_22612 \x3d cljs.core.first(seq__22114_22605__$1);\nvar v_22613 \x3d cognitect.transit.goog$module$goog$object.get(b,k_22612);\ncognitect.transit.goog$module$goog$object.set(a,k_22612,v_22613);\n\n\nvar G__22614 \x3d cljs.core.next(seq__22114_22605__$1);\nvar G__22615 \x3d null;\nvar G__22616 \x3d (0);\nvar G__22617 \x3d (0);\nseq__22114_22594 \x3d G__22614;\nchunk__22115_22595 \x3d G__22615;\ncount__22116_22596 \x3d G__22616;\ni__22117_22597 \x3d G__22617;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn a;\n});\n\n/**\n* @constructor\n*/\ncognitect.transit.MapBuilder \x3d (function (){\n});\n(cognitect.transit.MapBuilder.prototype.init \x3d (function (node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);\n}));\n\n(cognitect.transit.MapBuilder.prototype.add \x3d (function (m,k,v,node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,k,v);\n}));\n\n(cognitect.transit.MapBuilder.prototype.finalize \x3d (function (m,node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.persistent_BANG_(m);\n}));\n\n(cognitect.transit.MapBuilder.prototype.fromArray \x3d (function (arr,node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (cljs.core.PersistentArrayMap.fromArray.cljs$core$IFn$_invoke$arity$3 ? cljs.core.PersistentArrayMap.fromArray.cljs$core$IFn$_invoke$arity$3(arr,true,true) : cljs.core.PersistentArrayMap.fromArray.call(null, arr,true,true));\n}));\n\n(cognitect.transit.MapBuilder.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.MapBuilder.cljs$lang$type \x3d true);\n\n(cognitect.transit.MapBuilder.cljs$lang$ctorStr \x3d \x22cognitect.transit/MapBuilder\x22);\n\n(cognitect.transit.MapBuilder.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/MapBuilder\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/MapBuilder.\n */\ncognitect.transit.__GT_MapBuilder \x3d (function cognitect$transit$__GT_MapBuilder(){\nreturn (new cognitect.transit.MapBuilder());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.VectorBuilder \x3d (function (){\n});\n(cognitect.transit.VectorBuilder.prototype.init \x3d (function (node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\n}));\n\n(cognitect.transit.VectorBuilder.prototype.add \x3d (function (v,x,node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(v,x);\n}));\n\n(cognitect.transit.VectorBuilder.prototype.finalize \x3d (function (v,node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn cljs.core.persistent_BANG_(v);\n}));\n\n(cognitect.transit.VectorBuilder.prototype.fromArray \x3d (function (arr,node){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (cljs.core.PersistentVector.fromArray.cljs$core$IFn$_invoke$arity$2 ? cljs.core.PersistentVector.fromArray.cljs$core$IFn$_invoke$arity$2(arr,true) : cljs.core.PersistentVector.fromArray.call(null, arr,true));\n}));\n\n(cognitect.transit.VectorBuilder.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.VectorBuilder.cljs$lang$type \x3d true);\n\n(cognitect.transit.VectorBuilder.cljs$lang$ctorStr \x3d \x22cognitect.transit/VectorBuilder\x22);\n\n(cognitect.transit.VectorBuilder.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/VectorBuilder\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/VectorBuilder.\n */\ncognitect.transit.__GT_VectorBuilder \x3d (function cognitect$transit$__GT_VectorBuilder(){\nreturn (new cognitect.transit.VectorBuilder());\n});\n\n/**\n * Return a transit reader. type may be either :json or :json-verbose.\n * opts may be a map optionally containing a :handlers entry. The value\n * of :handlers should be map from string tag to a decoder function of one\n * argument which returns the in-memory representation of the semantic transit\n * value. If a :default handler is provided, it will be used when no matching\n * read handler can be found.\n */\ncognitect.transit.reader \x3d (function cognitect$transit$reader(var_args){\nvar G__22161 \x3d arguments.length;\nswitch (G__22161) {\ncase 1:\nreturn cognitect.transit.reader.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cognitect.transit.reader.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cognitect.transit.reader.cljs$core$IFn$_invoke$arity$1 \x3d (function (type){\nreturn cognitect.transit.reader.cljs$core$IFn$_invoke$arity$2(type,null);\n}));\n\n(cognitect.transit.reader.cljs$core$IFn$_invoke$arity$2 \x3d (function (type,opts){\nreturn com.cognitect.transit.reader(cljs.core.name(type),cognitect.transit.opts_merge(({\x22handlers\x22: cljs.core.clj__GT_js(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 6, [\x22$\x22,(function (v){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(v);\n}),\x22:\x22,(function (v){\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(v);\n}),\x22set\x22,(function (v){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,v);\n}),\x22list\x22,(function (v){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,v.reverse());\n}),\x22cmap\x22,(function (v){\nvar i \x3d (0);\nvar ret \x3d cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);\nwhile(true){\nif((i \x3c v.length)){\nvar G__22651 \x3d (i + (2));\nvar G__22652 \x3d cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(ret,(v[i]),(v[(i + (1))]));\ni \x3d G__22651;\nret \x3d G__22652;\ncontinue;\n} else {\nreturn cljs.core.persistent_BANG_(ret);\n}\nbreak;\n}\n}),\x22with-meta\x22,(function (v){\nreturn cljs.core.with_meta((v[(0)]),(v[(1)]));\n})], null),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781).cljs$core$IFn$_invoke$arity$1(opts),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328))], 0))), \x22defaultHandler\x22: new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781).cljs$core$IFn$_invoke$arity$1(opts)), \x22mapBuilder\x22: (new cognitect.transit.MapBuilder()), \x22arrayBuilder\x22: (new cognitect.transit.VectorBuilder()), \x22preferStrings\x22: false, \x22preferBuffers\x22: false}),cljs.core.clj__GT_js(clojure.set.rename_keys(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781)),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22array-builder\x22,\x22array-builder\x22,1275998041),new cljs.core.Keyword(null,\x22arrayBuilder\x22,\x22arrayBuilder\x22,1446317421),new cljs.core.Keyword(null,\x22map-builder\x22,\x22map-builder\x22,-1843343288),new cljs.core.Keyword(null,\x22mapBuilder\x22,\x22mapBuilder\x22,-278083754),new cljs.core.Keyword(null,\x22prefer-strings\x22,\x22prefer-strings\x22,1254507185),new cljs.core.Keyword(null,\x22preferStrings\x22,\x22preferStrings\x22,-1532249482),new cljs.core.Keyword(null,\x22prefer-buffers\x22,\x22prefer-buffers\x22,377042081),new cljs.core.Keyword(null,\x22preferBuffers\x22,\x22preferBuffers\x22,1843176451)], null)))));\n}));\n\n(cognitect.transit.reader.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Read a transit encoded string into ClojureScript values given a\n * transit reader.\n */\ncognitect.transit.read \x3d (function cognitect$transit$read(r,str){\nreturn r.read(str);\n});\n\n/**\n* @constructor\n*/\ncognitect.transit.KeywordHandler \x3d (function (){\n});\n(cognitect.transit.KeywordHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22:\x22;\n}));\n\n(cognitect.transit.KeywordHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn v.fqn;\n}));\n\n(cognitect.transit.KeywordHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn v.fqn;\n}));\n\n(cognitect.transit.KeywordHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.KeywordHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.KeywordHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/KeywordHandler\x22);\n\n(cognitect.transit.KeywordHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/KeywordHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/KeywordHandler.\n */\ncognitect.transit.__GT_KeywordHandler \x3d (function cognitect$transit$__GT_KeywordHandler(){\nreturn (new cognitect.transit.KeywordHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.SymbolHandler \x3d (function (){\n});\n(cognitect.transit.SymbolHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22$\x22;\n}));\n\n(cognitect.transit.SymbolHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn v.str;\n}));\n\n(cognitect.transit.SymbolHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn v.str;\n}));\n\n(cognitect.transit.SymbolHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.SymbolHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.SymbolHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/SymbolHandler\x22);\n\n(cognitect.transit.SymbolHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/SymbolHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/SymbolHandler.\n */\ncognitect.transit.__GT_SymbolHandler \x3d (function cognitect$transit$__GT_SymbolHandler(){\nreturn (new cognitect.transit.SymbolHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.ListHandler \x3d (function (){\n});\n(cognitect.transit.ListHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22list\x22;\n}));\n\n(cognitect.transit.ListHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d [];\nvar seq__22223_22660 \x3d cljs.core.seq(v);\nvar chunk__22224_22661 \x3d null;\nvar count__22225_22662 \x3d (0);\nvar i__22226_22663 \x3d (0);\nwhile(true){\nif((i__22226_22663 \x3c count__22225_22662)){\nvar x_22666 \x3d chunk__22224_22661.cljs$core$IIndexed$_nth$arity$2(null, i__22226_22663);\nret.push(x_22666);\n\n\nvar G__22668 \x3d seq__22223_22660;\nvar G__22669 \x3d chunk__22224_22661;\nvar G__22670 \x3d count__22225_22662;\nvar G__22671 \x3d (i__22226_22663 + (1));\nseq__22223_22660 \x3d G__22668;\nchunk__22224_22661 \x3d G__22669;\ncount__22225_22662 \x3d G__22670;\ni__22226_22663 \x3d G__22671;\ncontinue;\n} else {\nvar temp__5804__auto___22672 \x3d cljs.core.seq(seq__22223_22660);\nif(temp__5804__auto___22672){\nvar seq__22223_22673__$1 \x3d temp__5804__auto___22672;\nif(cljs.core.chunked_seq_QMARK_(seq__22223_22673__$1)){\nvar c__5525__auto___22674 \x3d cljs.core.chunk_first(seq__22223_22673__$1);\nvar G__22676 \x3d cljs.core.chunk_rest(seq__22223_22673__$1);\nvar G__22677 \x3d c__5525__auto___22674;\nvar G__22678 \x3d cljs.core.count(c__5525__auto___22674);\nvar G__22679 \x3d (0);\nseq__22223_22660 \x3d G__22676;\nchunk__22224_22661 \x3d G__22677;\ncount__22225_22662 \x3d G__22678;\ni__22226_22663 \x3d G__22679;\ncontinue;\n} else {\nvar x_22680 \x3d cljs.core.first(seq__22223_22673__$1);\nret.push(x_22680);\n\n\nvar G__22681 \x3d cljs.core.next(seq__22223_22673__$1);\nvar G__22682 \x3d null;\nvar G__22683 \x3d (0);\nvar G__22684 \x3d (0);\nseq__22223_22660 \x3d G__22681;\nchunk__22224_22661 \x3d G__22682;\ncount__22225_22662 \x3d G__22683;\ni__22226_22663 \x3d G__22684;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn com.cognitect.transit.tagged(\x22array\x22,ret);\n}));\n\n(cognitect.transit.ListHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn null;\n}));\n\n(cognitect.transit.ListHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.ListHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.ListHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/ListHandler\x22);\n\n(cognitect.transit.ListHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/ListHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/ListHandler.\n */\ncognitect.transit.__GT_ListHandler \x3d (function cognitect$transit$__GT_ListHandler(){\nreturn (new cognitect.transit.ListHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.MapHandler \x3d (function (){\n});\n(cognitect.transit.MapHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22map\x22;\n}));\n\n(cognitect.transit.MapHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn v;\n}));\n\n(cognitect.transit.MapHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn null;\n}));\n\n(cognitect.transit.MapHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.MapHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.MapHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/MapHandler\x22);\n\n(cognitect.transit.MapHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/MapHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/MapHandler.\n */\ncognitect.transit.__GT_MapHandler \x3d (function cognitect$transit$__GT_MapHandler(){\nreturn (new cognitect.transit.MapHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.SetHandler \x3d (function (){\n});\n(cognitect.transit.SetHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22set\x22;\n}));\n\n(cognitect.transit.SetHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d [];\nvar seq__22261_22690 \x3d cljs.core.seq(v);\nvar chunk__22262_22691 \x3d null;\nvar count__22263_22692 \x3d (0);\nvar i__22264_22693 \x3d (0);\nwhile(true){\nif((i__22264_22693 \x3c count__22263_22692)){\nvar x_22694 \x3d chunk__22262_22691.cljs$core$IIndexed$_nth$arity$2(null, i__22264_22693);\nret.push(x_22694);\n\n\nvar G__22695 \x3d seq__22261_22690;\nvar G__22696 \x3d chunk__22262_22691;\nvar G__22697 \x3d count__22263_22692;\nvar G__22698 \x3d (i__22264_22693 + (1));\nseq__22261_22690 \x3d G__22695;\nchunk__22262_22691 \x3d G__22696;\ncount__22263_22692 \x3d G__22697;\ni__22264_22693 \x3d G__22698;\ncontinue;\n} else {\nvar temp__5804__auto___22702 \x3d cljs.core.seq(seq__22261_22690);\nif(temp__5804__auto___22702){\nvar seq__22261_22706__$1 \x3d temp__5804__auto___22702;\nif(cljs.core.chunked_seq_QMARK_(seq__22261_22706__$1)){\nvar c__5525__auto___22707 \x3d cljs.core.chunk_first(seq__22261_22706__$1);\nvar G__22708 \x3d cljs.core.chunk_rest(seq__22261_22706__$1);\nvar G__22709 \x3d c__5525__auto___22707;\nvar G__22710 \x3d cljs.core.count(c__5525__auto___22707);\nvar G__22711 \x3d (0);\nseq__22261_22690 \x3d G__22708;\nchunk__22262_22691 \x3d G__22709;\ncount__22263_22692 \x3d G__22710;\ni__22264_22693 \x3d G__22711;\ncontinue;\n} else {\nvar x_22713 \x3d cljs.core.first(seq__22261_22706__$1);\nret.push(x_22713);\n\n\nvar G__22714 \x3d cljs.core.next(seq__22261_22706__$1);\nvar G__22715 \x3d null;\nvar G__22716 \x3d (0);\nvar G__22717 \x3d (0);\nseq__22261_22690 \x3d G__22714;\nchunk__22262_22691 \x3d G__22715;\ncount__22263_22692 \x3d G__22716;\ni__22264_22693 \x3d G__22717;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn com.cognitect.transit.tagged(\x22array\x22,ret);\n}));\n\n(cognitect.transit.SetHandler.prototype.stringRep \x3d (function (){\nvar self__ \x3d this;\nvar v \x3d this;\nreturn null;\n}));\n\n(cognitect.transit.SetHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.SetHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.SetHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/SetHandler\x22);\n\n(cognitect.transit.SetHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/SetHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/SetHandler.\n */\ncognitect.transit.__GT_SetHandler \x3d (function cognitect$transit$__GT_SetHandler(){\nreturn (new cognitect.transit.SetHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.VectorHandler \x3d (function (){\n});\n(cognitect.transit.VectorHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22array\x22;\n}));\n\n(cognitect.transit.VectorHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nvar ret \x3d [];\nvar seq__22280_22725 \x3d cljs.core.seq(v);\nvar chunk__22281_22726 \x3d null;\nvar count__22282_22727 \x3d (0);\nvar i__22283_22728 \x3d (0);\nwhile(true){\nif((i__22283_22728 \x3c count__22282_22727)){\nvar x_22729 \x3d chunk__22281_22726.cljs$core$IIndexed$_nth$arity$2(null, i__22283_22728);\nret.push(x_22729);\n\n\nvar G__22730 \x3d seq__22280_22725;\nvar G__22731 \x3d chunk__22281_22726;\nvar G__22732 \x3d count__22282_22727;\nvar G__22733 \x3d (i__22283_22728 + (1));\nseq__22280_22725 \x3d G__22730;\nchunk__22281_22726 \x3d G__22731;\ncount__22282_22727 \x3d G__22732;\ni__22283_22728 \x3d G__22733;\ncontinue;\n} else {\nvar temp__5804__auto___22734 \x3d cljs.core.seq(seq__22280_22725);\nif(temp__5804__auto___22734){\nvar seq__22280_22735__$1 \x3d temp__5804__auto___22734;\nif(cljs.core.chunked_seq_QMARK_(seq__22280_22735__$1)){\nvar c__5525__auto___22736 \x3d cljs.core.chunk_first(seq__22280_22735__$1);\nvar G__22737 \x3d cljs.core.chunk_rest(seq__22280_22735__$1);\nvar G__22738 \x3d c__5525__auto___22736;\nvar G__22739 \x3d cljs.core.count(c__5525__auto___22736);\nvar G__22740 \x3d (0);\nseq__22280_22725 \x3d G__22737;\nchunk__22281_22726 \x3d G__22738;\ncount__22282_22727 \x3d G__22739;\ni__22283_22728 \x3d G__22740;\ncontinue;\n} else {\nvar x_22741 \x3d cljs.core.first(seq__22280_22735__$1);\nret.push(x_22741);\n\n\nvar G__22742 \x3d cljs.core.next(seq__22280_22735__$1);\nvar G__22743 \x3d null;\nvar G__22744 \x3d (0);\nvar G__22745 \x3d (0);\nseq__22280_22725 \x3d G__22742;\nchunk__22281_22726 \x3d G__22743;\ncount__22282_22727 \x3d G__22744;\ni__22283_22728 \x3d G__22745;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn ret;\n}));\n\n(cognitect.transit.VectorHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn null;\n}));\n\n(cognitect.transit.VectorHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.VectorHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.VectorHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/VectorHandler\x22);\n\n(cognitect.transit.VectorHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/VectorHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/VectorHandler.\n */\ncognitect.transit.__GT_VectorHandler \x3d (function cognitect$transit$__GT_VectorHandler(){\nreturn (new cognitect.transit.VectorHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.UUIDHandler \x3d (function (){\n});\n(cognitect.transit.UUIDHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22u\x22;\n}));\n\n(cognitect.transit.UUIDHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn v.uuid;\n}));\n\n(cognitect.transit.UUIDHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn this$.rep(v);\n}));\n\n(cognitect.transit.UUIDHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.UUIDHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.UUIDHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/UUIDHandler\x22);\n\n(cognitect.transit.UUIDHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/UUIDHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/UUIDHandler.\n */\ncognitect.transit.__GT_UUIDHandler \x3d (function cognitect$transit$__GT_UUIDHandler(){\nreturn (new cognitect.transit.UUIDHandler());\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.WithMeta \x3d (function (value,meta){\nthis.value \x3d value;\nthis.meta \x3d meta;\n});\n\n(cognitect.transit.WithMeta.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22value\x22,\x22value\x22,1946509744,null),new cljs.core.Symbol(null,\x22meta\x22,\x22meta\x22,-1154898805,null)], null);\n}));\n\n(cognitect.transit.WithMeta.cljs$lang$type \x3d true);\n\n(cognitect.transit.WithMeta.cljs$lang$ctorStr \x3d \x22cognitect.transit/WithMeta\x22);\n\n(cognitect.transit.WithMeta.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/WithMeta\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/WithMeta.\n */\ncognitect.transit.__GT_WithMeta \x3d (function cognitect$transit$__GT_WithMeta(value,meta){\nreturn (new cognitect.transit.WithMeta(value,meta));\n});\n\n\n/**\n* @constructor\n*/\ncognitect.transit.WithMetaHandler \x3d (function (){\n});\n(cognitect.transit.WithMetaHandler.prototype.tag \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn \x22with-meta\x22;\n}));\n\n(cognitect.transit.WithMetaHandler.prototype.rep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn com.cognitect.transit.tagged(\x22array\x22,[v.value,v.meta]);\n}));\n\n(cognitect.transit.WithMetaHandler.prototype.stringRep \x3d (function (v){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn null;\n}));\n\n(cognitect.transit.WithMetaHandler.getBasis \x3d (function (){\nreturn cljs.core.PersistentVector.EMPTY;\n}));\n\n(cognitect.transit.WithMetaHandler.cljs$lang$type \x3d true);\n\n(cognitect.transit.WithMetaHandler.cljs$lang$ctorStr \x3d \x22cognitect.transit/WithMetaHandler\x22);\n\n(cognitect.transit.WithMetaHandler.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/WithMetaHandler\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/WithMetaHandler.\n */\ncognitect.transit.__GT_WithMetaHandler \x3d (function cognitect$transit$__GT_WithMetaHandler(){\nreturn (new cognitect.transit.WithMetaHandler());\n});\n\n/**\n * Return a transit writer. type maybe either :json or :json-verbose.\n * opts is a map with the following optional keys:\n * \n * :handlers - a map of type constructors to handler instances. Can optionally\n * provide a :default write handler which will be used if no\n * matching handler can be found.\n * :transform - a function of one argument returning a transformed value. Will\n * be invoked on a value before it is written.\n */\ncognitect.transit.writer \x3d (function cognitect$transit$writer(var_args){\nvar G__22351 \x3d arguments.length;\nswitch (G__22351) {\ncase 1:\nreturn cognitect.transit.writer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cognitect.transit.writer.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cognitect.transit.writer.cljs$core$IFn$_invoke$arity$1 \x3d (function (type){\nreturn cognitect.transit.writer.cljs$core$IFn$_invoke$arity$2(type,null);\n}));\n\n(cognitect.transit.writer.cljs$core$IFn$_invoke$arity$2 \x3d (function (type,opts){\nvar keyword_handler \x3d (new cognitect.transit.KeywordHandler());\nvar symbol_handler \x3d (new cognitect.transit.SymbolHandler());\nvar list_handler \x3d (new cognitect.transit.ListHandler());\nvar map_handler \x3d (new cognitect.transit.MapHandler());\nvar set_handler \x3d (new cognitect.transit.SetHandler());\nvar vector_handler \x3d (new cognitect.transit.VectorHandler());\nvar uuid_handler \x3d (new cognitect.transit.UUIDHandler());\nvar meta_handler \x3d (new cognitect.transit.WithMetaHandler());\nvar handlers \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentHashMap.fromArrays([cljs.core.PersistentHashMap,cljs.core.Cons,cljs.core.PersistentArrayMap,cljs.core.NodeSeq,cljs.core.PersistentQueue,cljs.core.IndexedSeq,cljs.core.Keyword,cljs.core.BlackNode,cljs.core.EmptyList,cljs.core.LazySeq,cljs.core.Subvec,cljs.core.PersistentQueueSeq,cljs.core.ArrayNodeSeq,cljs.core.ValSeq,cognitect.transit.WithMeta,cljs.core.PersistentArrayMapSeq,cljs.core.PersistentVector,cljs.core.List,cljs.core.RSeq,cljs.core.PersistentHashSet,cljs.core.PersistentTreeMap,cljs.core.KeySeq,cljs.core.ChunkedSeq,cljs.core.PersistentTreeSet,cljs.core.ChunkedCons,cljs.core.Symbol,cljs.core.UUID,cljs.core.Range,cljs.core.PersistentTreeMapSeq,cljs.core.RedNode],[map_handler,list_handler,map_handler,list_handler,list_handler,list_handler,keyword_handler,vector_handler,list_handler,list_handler,vector_handler,list_handler,list_handler,list_handler,meta_handler,list_handler,vector_handler,list_handler,list_handler,set_handler,map_handler,list_handler,list_handler,set_handler,list_handler,symbol_handler,uuid_handler,list_handler,list_handler,vector_handler]),(((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.Eduction !\x3d\x3d \x27undefined\x27))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.Eduction,list_handler]):null),(((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.Repeat !\x3d\x3d \x27undefined\x27))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.Repeat,list_handler]):null),(((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.core.MapEntry !\x3d\x3d \x27undefined\x27))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.MapEntry,vector_handler]):null),new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781).cljs$core$IFn$_invoke$arity$1(opts)], 0));\nreturn com.cognitect.transit.writer(cljs.core.name(type),cognitect.transit.opts_merge(({\x22objectBuilder\x22: (function (m,kfn,vfn){\nreturn cljs.core.reduce_kv((function (obj,k,v){\nvar G__22377 \x3d obj;\nG__22377.push((kfn.cljs$core$IFn$_invoke$arity$1 ? kfn.cljs$core$IFn$_invoke$arity$1(k) : kfn.call(null, k)),(vfn.cljs$core$IFn$_invoke$arity$1 ? vfn.cljs$core$IFn$_invoke$arity$1(v) : vfn.call(null, v)));\n\nreturn G__22377;\n}),[\x22^ \x22],m);\n}), \x22handlers\x22: (function (){var x22380 \x3d cljs.core.clone(handlers);\n(x22380.forEach \x3d (function (f){\nvar coll \x3d this;\nvar seq__22382 \x3d cljs.core.seq(coll);\nvar chunk__22383 \x3d null;\nvar count__22384 \x3d (0);\nvar i__22385 \x3d (0);\nwhile(true){\nif((i__22385 \x3c count__22384)){\nvar vec__22427 \x3d chunk__22383.cljs$core$IIndexed$_nth$arity$2(null, i__22385);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22427,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22427,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),k)){\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,\x22default\x22) : f.call(null, v,\x22default\x22));\n} else {\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n}\n\n\nvar G__22770 \x3d seq__22382;\nvar G__22771 \x3d chunk__22383;\nvar G__22772 \x3d count__22384;\nvar G__22773 \x3d (i__22385 + (1));\nseq__22382 \x3d G__22770;\nchunk__22383 \x3d G__22771;\ncount__22384 \x3d G__22772;\ni__22385 \x3d G__22773;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__22382);\nif(temp__5804__auto__){\nvar seq__22382__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__22382__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__22382__$1);\nvar G__22776 \x3d cljs.core.chunk_rest(seq__22382__$1);\nvar G__22777 \x3d c__5525__auto__;\nvar G__22778 \x3d cljs.core.count(c__5525__auto__);\nvar G__22779 \x3d (0);\nseq__22382 \x3d G__22776;\nchunk__22383 \x3d G__22777;\ncount__22384 \x3d G__22778;\ni__22385 \x3d G__22779;\ncontinue;\n} else {\nvar vec__22437 \x3d cljs.core.first(seq__22382__$1);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22437,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22437,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),k)){\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,\x22default\x22) : f.call(null, v,\x22default\x22));\n} else {\n(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(v,k) : f.call(null, v,k));\n}\n\n\nvar G__22784 \x3d cljs.core.next(seq__22382__$1);\nvar G__22785 \x3d null;\nvar G__22786 \x3d (0);\nvar G__22787 \x3d (0);\nseq__22382 \x3d G__22784;\nchunk__22383 \x3d G__22785;\ncount__22384 \x3d G__22786;\ni__22385 \x3d G__22787;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\nreturn x22380;\n})(), \x22unpack\x22: (function (x){\nif((x instanceof cljs.core.PersistentArrayMap)){\nreturn x.arr;\n} else {\nreturn false;\n}\n})}),cljs.core.clj__GT_js(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781)))));\n}));\n\n(cognitect.transit.writer.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Encode an object into a transit string given a transit writer.\n */\ncognitect.transit.write \x3d (function cognitect$transit$write(w,o){\nreturn w.write(o);\n});\n/**\n * Construct a read handler. Implemented as identity, exists primarily\n * for API compatiblity with transit-clj\n */\ncognitect.transit.read_handler \x3d (function cognitect$transit$read_handler(from_rep){\nreturn from_rep;\n});\ncognitect.transit.fn_or_val \x3d (function cognitect$transit$fn_or_val(f){\nif(cljs.core.fn_QMARK_(f)){\nreturn f;\n} else {\nreturn cljs.core.constantly(f);\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncognitect.transit.t_cognitect$transit22495 \x3d (function (tag_fn,rep_fn,str_rep_fn,verbose_handler_fn,meta22496){\nthis.tag_fn \x3d tag_fn;\nthis.rep_fn \x3d rep_fn;\nthis.str_rep_fn \x3d str_rep_fn;\nthis.verbose_handler_fn \x3d verbose_handler_fn;\nthis.meta22496 \x3d meta22496;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cognitect.transit.t_cognitect$transit22495.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_22497,meta22496__$1){\nvar self__ \x3d this;\nvar _22497__$1 \x3d this;\nreturn (new cognitect.transit.t_cognitect$transit22495(self__.tag_fn,self__.rep_fn,self__.str_rep_fn,self__.verbose_handler_fn,meta22496__$1));\n}));\n\n(cognitect.transit.t_cognitect$transit22495.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_22497){\nvar self__ \x3d this;\nvar _22497__$1 \x3d this;\nreturn self__.meta22496;\n}));\n\n(cognitect.transit.t_cognitect$transit22495.prototype.tag \x3d (function (o){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.tag_fn.cljs$core$IFn$_invoke$arity$1 ? self__.tag_fn.cljs$core$IFn$_invoke$arity$1(o) : self__.tag_fn.call(null, o));\n}));\n\n(cognitect.transit.t_cognitect$transit22495.prototype.rep \x3d (function (o){\nvar self__ \x3d this;\nvar _ \x3d this;\nreturn (self__.rep_fn.cljs$core$IFn$_invoke$arity$1 ? self__.rep_fn.cljs$core$IFn$_invoke$arity$1(o) : self__.rep_fn.call(null, o));\n}));\n\n(cognitect.transit.t_cognitect$transit22495.prototype.stringRep \x3d (function (o){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(cljs.core.truth_(self__.str_rep_fn)){\nreturn (self__.str_rep_fn.cljs$core$IFn$_invoke$arity$1 ? self__.str_rep_fn.cljs$core$IFn$_invoke$arity$1(o) : self__.str_rep_fn.call(null, o));\n} else {\nreturn null;\n}\n}));\n\n(cognitect.transit.t_cognitect$transit22495.prototype.getVerboseHandler \x3d (function (){\nvar self__ \x3d this;\nvar _ \x3d this;\nif(cljs.core.truth_(self__.verbose_handler_fn)){\nreturn (self__.verbose_handler_fn.cljs$core$IFn$_invoke$arity$0 ? self__.verbose_handler_fn.cljs$core$IFn$_invoke$arity$0() : self__.verbose_handler_fn.call(null, ));\n} else {\nreturn null;\n}\n}));\n\n(cognitect.transit.t_cognitect$transit22495.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22tag-fn\x22,\x22tag-fn\x22,242055482,null),new cljs.core.Symbol(null,\x22rep-fn\x22,\x22rep-fn\x22,-1724891035,null),new cljs.core.Symbol(null,\x22str-rep-fn\x22,\x22str-rep-fn\x22,-1179615016,null),new cljs.core.Symbol(null,\x22verbose-handler-fn\x22,\x22verbose-handler-fn\x22,547340594,null),new cljs.core.Symbol(null,\x22meta22496\x22,\x22meta22496\x22,1865370823,null)], null);\n}));\n\n(cognitect.transit.t_cognitect$transit22495.cljs$lang$type \x3d true);\n\n(cognitect.transit.t_cognitect$transit22495.cljs$lang$ctorStr \x3d \x22cognitect.transit/t_cognitect$transit22495\x22);\n\n(cognitect.transit.t_cognitect$transit22495.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cognitect.transit/t_cognitect$transit22495\x22);\n}));\n\n/**\n * Positional factory function for cognitect.transit/t_cognitect$transit22495.\n */\ncognitect.transit.__GT_t_cognitect$transit22495 \x3d (function cognitect$transit$__GT_t_cognitect$transit22495(tag_fn,rep_fn,str_rep_fn,verbose_handler_fn,meta22496){\nreturn (new cognitect.transit.t_cognitect$transit22495(tag_fn,rep_fn,str_rep_fn,verbose_handler_fn,meta22496));\n});\n\n\n/**\n * Creates a transit write handler whose tag, rep,\n * stringRep, and verboseWriteHandler methods\n * invoke the provided fns.\n */\ncognitect.transit.write_handler \x3d (function cognitect$transit$write_handler(var_args){\nvar G__22471 \x3d arguments.length;\nswitch (G__22471) {\ncase 2:\nreturn cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$2 \x3d (function (tag_fn,rep_fn){\nreturn cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$4(tag_fn,rep_fn,null,null);\n}));\n\n(cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$3 \x3d (function (tag_fn,rep_fn,str_rep_fn){\nreturn cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$4(tag_fn,rep_fn,str_rep_fn,null);\n}));\n\n(cognitect.transit.write_handler.cljs$core$IFn$_invoke$arity$4 \x3d (function (tag_fn,rep_fn,str_rep_fn,verbose_handler_fn){\nvar tag_fn__$1 \x3d cognitect.transit.fn_or_val(tag_fn);\nvar rep_fn__$1 \x3d cognitect.transit.fn_or_val(rep_fn);\nvar str_rep_fn__$1 \x3d cognitect.transit.fn_or_val(str_rep_fn);\nvar verbose_handler_fn__$1 \x3d cognitect.transit.fn_or_val(verbose_handler_fn);\nreturn (new cognitect.transit.t_cognitect$transit22495(tag_fn__$1,rep_fn__$1,str_rep_fn__$1,verbose_handler_fn__$1,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cognitect.transit.write_handler.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Construct a tagged value. tag must be a string and rep can\n * be any transit encodeable value.\n */\ncognitect.transit.tagged_value \x3d (function cognitect$transit$tagged_value(tag,rep){\nreturn com.cognitect.transit.types.taggedValue(tag,rep);\n});\n/**\n * Returns true if x is a transit tagged value, false otherwise.\n */\ncognitect.transit.tagged_value_QMARK_ \x3d (function cognitect$transit$tagged_value_QMARK_(x){\nreturn com.cognitect.transit.types.isTaggedValue(x);\n});\n/**\n * Construct a transit integer value. Returns JavaScript number if\n * in the 53bit integer range, a goog.math.Long instance if above. s\n * may be a string or a JavaScript number.\n */\ncognitect.transit.integer \x3d (function cognitect$transit$integer(s){\nreturn com.cognitect.transit.types.intValue(s);\n});\n/**\n * Returns true if x is an integer value between the 53bit and 64bit\n * range, false otherwise.\n */\ncognitect.transit.integer_QMARK_ \x3d (function cognitect$transit$integer_QMARK_(x){\nreturn com.cognitect.transit.types.isInteger(x);\n});\n/**\n * Construct a big integer from a string.\n */\ncognitect.transit.bigint \x3d (function cognitect$transit$bigint(s){\nreturn com.cognitect.transit.types.bigInteger(s);\n});\n/**\n * Returns true if x is a transit big integer value, false otherwise.\n */\ncognitect.transit.bigint_QMARK_ \x3d (function cognitect$transit$bigint_QMARK_(x){\nreturn com.cognitect.transit.types.isBigInteger(x);\n});\n/**\n * Construct a big decimal from a string.\n */\ncognitect.transit.bigdec \x3d (function cognitect$transit$bigdec(s){\nreturn com.cognitect.transit.types.bigDecimalValue(s);\n});\n/**\n * Returns true if x is a transit big decimal value, false otherwise.\n */\ncognitect.transit.bigdec_QMARK_ \x3d (function cognitect$transit$bigdec_QMARK_(x){\nreturn com.cognitect.transit.types.isBigDecimal(x);\n});\n/**\n * Construct a URI from a string.\n */\ncognitect.transit.uri \x3d (function cognitect$transit$uri(s){\nreturn com.cognitect.transit.types.uri(s);\n});\n/**\n * Returns true if x is a transit URI value, false otherwise.\n */\ncognitect.transit.uri_QMARK_ \x3d (function cognitect$transit$uri_QMARK_(x){\nreturn com.cognitect.transit.types.isURI(x);\n});\n/**\n * Construct a UUID from a string.\n */\ncognitect.transit.uuid \x3d (function cognitect$transit$uuid(s){\nreturn com.cognitect.transit.types.uuid(s);\n});\n/**\n * Returns true if x is a transit UUID value, false otherwise.\n */\ncognitect.transit.uuid_QMARK_ \x3d (function cognitect$transit$uuid_QMARK_(x){\nvar or__5002__auto__ \x3d com.cognitect.transit.types.isUUID(x);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (x instanceof cljs.core.UUID);\n}\n});\n/**\n * Construct a transit binary value. s should be base64 encoded\n * string.\n */\ncognitect.transit.binary \x3d (function cognitect$transit$binary(s){\nreturn com.cognitect.transit.types.binary(s);\n});\n/**\n * Returns true if x is a transit binary value, false otherwise.\n */\ncognitect.transit.binary_QMARK_ \x3d (function cognitect$transit$binary_QMARK_(x){\nreturn com.cognitect.transit.types.isBinary(x);\n});\n/**\n * Construct a quoted transit value. x should be a transit\n * encodeable value.\n */\ncognitect.transit.quoted \x3d (function cognitect$transit$quoted(x){\nreturn com.cognitect.transit.types.quoted(x);\n});\n/**\n * Returns true if x is a transit quoted value, false otherwise.\n */\ncognitect.transit.quoted_QMARK_ \x3d (function cognitect$transit$quoted_QMARK_(x){\nreturn com.cognitect.transit.types.isQuoted(x);\n});\n/**\n * Construct a transit link value. x should be an IMap instance\n * containing at a minimum the following keys: :href, :rel. It\n * may optionall include :name, :render, and :prompt. :href must\n * be a transit URI, all other values are strings, and :render must\n * be either :image or :link.\n */\ncognitect.transit.link \x3d (function cognitect$transit$link(x){\nreturn com.cognitect.transit.types.link(x);\n});\n/**\n * Returns true if x a transit link value, false if otherwise.\n */\ncognitect.transit.link_QMARK_ \x3d (function cognitect$transit$link_QMARK_(x){\nreturn com.cognitect.transit.types.isLink(x);\n});\n/**\n * For :transform. Will write any metadata present on the value.\n */\ncognitect.transit.write_meta \x3d (function cognitect$transit$write_meta(x){\nif((((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IMeta$))))?true:false):false)){\nvar m \x3d x.cljs$core$IMeta$_meta$arity$1(null, );\nif((!((m \x3d\x3d null)))){\nreturn (new cognitect.transit.WithMeta(x.cljs$core$IWithMeta$_with_meta$arity$2(null, null),m));\n} else {\nreturn x;\n}\n} else {\nreturn x;\n}\n});\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.api.js", true, "goog.provide(\x27shadow.remote.runtime.api\x27);\n\n/**\n * @interface\n */\nshadow.remote.runtime.api.IRuntime \x3d function(){};\n\nvar shadow$remote$runtime$api$IRuntime$relay_msg$dyn_19800 \x3d (function (runtime,msg){\nvar x__5350__auto__ \x3d (((runtime \x3d\x3d null))?null:runtime);\nvar m__5351__auto__ \x3d (shadow.remote.runtime.api.relay_msg[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(runtime,msg) : m__5351__auto__.call(null, runtime,msg));\n} else {\nvar m__5349__auto__ \x3d (shadow.remote.runtime.api.relay_msg[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(runtime,msg) : m__5349__auto__.call(null, runtime,msg));\n} else {\nthrow cljs.core.missing_protocol(\x22IRuntime.relay-msg\x22,runtime);\n}\n}\n});\nshadow.remote.runtime.api.relay_msg \x3d (function shadow$remote$runtime$api$relay_msg(runtime,msg){\nif((((!((runtime \x3d\x3d null)))) \x26\x26 ((!((runtime.shadow$remote$runtime$api$IRuntime$relay_msg$arity$2 \x3d\x3d null)))))){\nreturn runtime.shadow$remote$runtime$api$IRuntime$relay_msg$arity$2(runtime,msg);\n} else {\nreturn shadow$remote$runtime$api$IRuntime$relay_msg$dyn_19800(runtime,msg);\n}\n});\n\nvar shadow$remote$runtime$api$IRuntime$add_extension$dyn_19810 \x3d (function (runtime,key,spec){\nvar x__5350__auto__ \x3d (((runtime \x3d\x3d null))?null:runtime);\nvar m__5351__auto__ \x3d (shadow.remote.runtime.api.add_extension[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(runtime,key,spec) : m__5351__auto__.call(null, runtime,key,spec));\n} else {\nvar m__5349__auto__ \x3d (shadow.remote.runtime.api.add_extension[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(runtime,key,spec) : m__5349__auto__.call(null, runtime,key,spec));\n} else {\nthrow cljs.core.missing_protocol(\x22IRuntime.add-extension\x22,runtime);\n}\n}\n});\nshadow.remote.runtime.api.add_extension \x3d (function shadow$remote$runtime$api$add_extension(runtime,key,spec){\nif((((!((runtime \x3d\x3d null)))) \x26\x26 ((!((runtime.shadow$remote$runtime$api$IRuntime$add_extension$arity$3 \x3d\x3d null)))))){\nreturn runtime.shadow$remote$runtime$api$IRuntime$add_extension$arity$3(runtime,key,spec);\n} else {\nreturn shadow$remote$runtime$api$IRuntime$add_extension$dyn_19810(runtime,key,spec);\n}\n});\n\nvar shadow$remote$runtime$api$IRuntime$del_extension$dyn_19813 \x3d (function (runtime,key){\nvar x__5350__auto__ \x3d (((runtime \x3d\x3d null))?null:runtime);\nvar m__5351__auto__ \x3d (shadow.remote.runtime.api.del_extension[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(runtime,key) : m__5351__auto__.call(null, runtime,key));\n} else {\nvar m__5349__auto__ \x3d (shadow.remote.runtime.api.del_extension[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(runtime,key) : m__5349__auto__.call(null, runtime,key));\n} else {\nthrow cljs.core.missing_protocol(\x22IRuntime.del-extension\x22,runtime);\n}\n}\n});\nshadow.remote.runtime.api.del_extension \x3d (function shadow$remote$runtime$api$del_extension(runtime,key){\nif((((!((runtime \x3d\x3d null)))) \x26\x26 ((!((runtime.shadow$remote$runtime$api$IRuntime$del_extension$arity$2 \x3d\x3d null)))))){\nreturn runtime.shadow$remote$runtime$api$IRuntime$del_extension$arity$2(runtime,key);\n} else {\nreturn shadow$remote$runtime$api$IRuntime$del_extension$dyn_19813(runtime,key);\n}\n});\n\n\n/**\n * @interface\n */\nshadow.remote.runtime.api.Inspectable \x3d function(){};\n\nvar shadow$remote$runtime$api$Inspectable$describe$dyn_19823 \x3d (function (thing,opts){\nvar x__5350__auto__ \x3d (((thing \x3d\x3d null))?null:thing);\nvar m__5351__auto__ \x3d (shadow.remote.runtime.api.describe[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(thing,opts) : m__5351__auto__.call(null, thing,opts));\n} else {\nvar m__5349__auto__ \x3d (shadow.remote.runtime.api.describe[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(thing,opts) : m__5349__auto__.call(null, thing,opts));\n} else {\nthrow cljs.core.missing_protocol(\x22Inspectable.describe\x22,thing);\n}\n}\n});\n/**\n * returns a map descriptor that tells system how to handle things further\n */\nshadow.remote.runtime.api.describe \x3d (function shadow$remote$runtime$api$describe(thing,opts){\nvar temp__5802__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(thing),cljs.core.with_meta(new cljs.core.Symbol(\x22shadow.remote.runtime.api\x22,\x22describe\x22,\x22shadow.remote.runtime.api/describe\x22,1388020131,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nif(temp__5802__auto__){\nvar meta_impl__5352__auto__ \x3d temp__5802__auto__;\nreturn (meta_impl__5352__auto__.cljs$core$IFn$_invoke$arity$2 ? meta_impl__5352__auto__.cljs$core$IFn$_invoke$arity$2(thing,opts) : meta_impl__5352__auto__.call(null, thing,opts));\n} else {\nif((((!((thing \x3d\x3d null)))) \x26\x26 ((!((thing.shadow$remote$runtime$api$Inspectable$describe$arity$2 \x3d\x3d null)))))){\nreturn thing.shadow$remote$runtime$api$Inspectable$describe$arity$2(thing,opts);\n} else {\nreturn shadow$remote$runtime$api$Inspectable$describe$dyn_19823(thing,opts);\n}\n}\n});\n\n\n/**\n * @interface\n */\nshadow.remote.runtime.api.IEvalCLJS \x3d function(){};\n\nvar shadow$remote$runtime$api$IEvalCLJS$_cljs_eval$dyn_19829 \x3d (function (runtime,input,callback){\nvar x__5350__auto__ \x3d (((runtime \x3d\x3d null))?null:runtime);\nvar m__5351__auto__ \x3d (shadow.remote.runtime.api._cljs_eval[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(runtime,input,callback) : m__5351__auto__.call(null, runtime,input,callback));\n} else {\nvar m__5349__auto__ \x3d (shadow.remote.runtime.api._cljs_eval[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(runtime,input,callback) : m__5349__auto__.call(null, runtime,input,callback));\n} else {\nthrow cljs.core.missing_protocol(\x22IEvalCLJS.-cljs-eval\x22,runtime);\n}\n}\n});\nshadow.remote.runtime.api._cljs_eval \x3d (function shadow$remote$runtime$api$_cljs_eval(runtime,input,callback){\nif((((!((runtime \x3d\x3d null)))) \x26\x26 ((!((runtime.shadow$remote$runtime$api$IEvalCLJS$_cljs_eval$arity$3 \x3d\x3d null)))))){\nreturn runtime.shadow$remote$runtime$api$IEvalCLJS$_cljs_eval$arity$3(runtime,input,callback);\n} else {\nreturn shadow$remote$runtime$api$IEvalCLJS$_cljs_eval$dyn_19829(runtime,input,callback);\n}\n});\n\n\n\n/**\n * @interface\n */\nshadow.remote.runtime.api.IEvalJS \x3d function(){};\n\nvar shadow$remote$runtime$api$IEvalJS$_js_eval$dyn_19840 \x3d (function (runtime,code){\nvar x__5350__auto__ \x3d (((runtime \x3d\x3d null))?null:runtime);\nvar m__5351__auto__ \x3d (shadow.remote.runtime.api._js_eval[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(runtime,code) : m__5351__auto__.call(null, runtime,code));\n} else {\nvar m__5349__auto__ \x3d (shadow.remote.runtime.api._js_eval[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(runtime,code) : m__5349__auto__.call(null, runtime,code));\n} else {\nthrow cljs.core.missing_protocol(\x22IEvalJS.-js-eval\x22,runtime);\n}\n}\n});\nshadow.remote.runtime.api._js_eval \x3d (function shadow$remote$runtime$api$_js_eval(runtime,code){\nif((((!((runtime \x3d\x3d null)))) \x26\x26 ((!((runtime.shadow$remote$runtime$api$IEvalJS$_js_eval$arity$2 \x3d\x3d null)))))){\nreturn runtime.shadow$remote$runtime$api$IEvalJS$_js_eval$arity$2(runtime,code);\n} else {\nreturn shadow$remote$runtime$api$IEvalJS$_js_eval$dyn_19840(runtime,code);\n}\n});\n\n\nshadow.remote.runtime.api.cljs_eval \x3d (function shadow$remote$runtime$api$cljs_eval(runtime,p__19786,callback){\nvar map__19787 \x3d p__19786;\nvar map__19787__$1 \x3d cljs.core.__destructure_map(map__19787);\nvar input \x3d map__19787__$1;\nvar code \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19787__$1,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142));\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19787__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nif(((typeof code \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.simple_symbol_QMARK_(ns)))){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid cljs-eval input\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input], null));\n}\n\nreturn shadow.remote.runtime.api._cljs_eval(runtime,input,callback);\n});\n\nshadow.remote.runtime.api.js_eval \x3d (function shadow$remote$runtime$api$js_eval(runtime,code){\nif(typeof code \x3d\x3d\x3d \x27string\x27){\n} else {\nthrow (new Error(\x22Assert failed: (string? code)\x22));\n}\n\nreturn shadow.remote.runtime.api._js_eval(runtime,code);\n});\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.shared.js", true, "goog.provide(\x27shadow.remote.runtime.shared\x27);\nshadow.remote.runtime.shared.init_state \x3d (function shadow$remote$runtime$shared$init_state(client_info){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22client-info\x22,\x22client-info\x22,1958982504),client_info,new cljs.core.Keyword(null,\x22call-id-seq\x22,\x22call-id-seq\x22,-1679248218),(0),new cljs.core.Keyword(null,\x22call-handlers\x22,\x22call-handlers\x22,386605551),cljs.core.PersistentArrayMap.EMPTY], null);\n});\nshadow.remote.runtime.shared.now \x3d (function shadow$remote$runtime$shared$now(){\nreturn Date.now();\n});\nshadow.remote.runtime.shared.get_client_id \x3d (function shadow$remote$runtime$shared$get_client_id(p__19824){\nvar map__19826 \x3d p__19824;\nvar map__19826__$1 \x3d cljs.core.__destructure_map(map__19826);\nvar runtime \x3d map__19826__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19826__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22runtime has no assigned runtime-id\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime], null));\n}\n});\nshadow.remote.runtime.shared.relay_msg \x3d (function shadow$remote$runtime$shared$relay_msg(runtime,msg){\nvar self_id_19981 \x3d shadow.remote.runtime.shared.get_client_id(runtime);\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007).cljs$core$IFn$_invoke$arity$1(msg),self_id_19981)){\nshadow.remote.runtime.api.relay_msg(runtime,msg);\n} else {\nPromise.resolve((1)).then((function (){\nvar G__19830 \x3d runtime;\nvar G__19831 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),self_id_19981);\nreturn (shadow.remote.runtime.shared.process.cljs$core$IFn$_invoke$arity$2 ? shadow.remote.runtime.shared.process.cljs$core$IFn$_invoke$arity$2(G__19830,G__19831) : shadow.remote.runtime.shared.process.call(null, G__19830,G__19831));\n}));\n}\n\nreturn msg;\n});\nshadow.remote.runtime.shared.reply \x3d (function shadow$remote$runtime$shared$reply(runtime,p__19833,res){\nvar map__19834 \x3d p__19833;\nvar map__19834__$1 \x3d cljs.core.__destructure_map(map__19834);\nvar call_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19834__$1,new cljs.core.Keyword(null,\x22call-id\x22,\x22call-id\x22,1043012968));\nvar from \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19834__$1,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044));\nvar res__$1 \x3d (function (){var G__19839 \x3d res;\nvar G__19839__$1 \x3d (cljs.core.truth_(call_id)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__19839,new cljs.core.Keyword(null,\x22call-id\x22,\x22call-id\x22,1043012968),call_id):G__19839);\nif(cljs.core.truth_(from)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__19839__$1,new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),from);\n} else {\nreturn G__19839__$1;\n}\n})();\nreturn shadow.remote.runtime.api.relay_msg(runtime,res__$1);\n});\nshadow.remote.runtime.shared.call \x3d (function shadow$remote$runtime$shared$call(var_args){\nvar G__19842 \x3d arguments.length;\nswitch (G__19842) {\ncase 3:\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3 \x3d (function (runtime,msg,handlers){\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$4(runtime,msg,handlers,(0));\n}));\n\n(shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$4 \x3d (function (p__19849,msg,handlers,timeout_after_ms){\nvar map__19850 \x3d p__19849;\nvar map__19850__$1 \x3d cljs.core.__destructure_map(map__19850);\nvar runtime \x3d map__19850__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19850__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nif(cljs.core.map_QMARK_(msg)){\n} else {\nthrow (new Error(\x22Assert failed: (map? msg)\x22));\n}\n\nif(cljs.core.map_QMARK_(handlers)){\n} else {\nthrow (new Error(\x22Assert failed: (map? handlers)\x22));\n}\n\nif(cljs.core.nat_int_QMARK_(timeout_after_ms)){\n} else {\nthrow (new Error(\x22Assert failed: (nat-int? timeout-after-ms)\x22));\n}\n\nvar call_id \x3d new cljs.core.Keyword(null,\x22call-id-seq\x22,\x22call-id-seq\x22,-1679248218).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.update,new cljs.core.Keyword(null,\x22call-id-seq\x22,\x22call-id-seq\x22,-1679248218),cljs.core.inc);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22call-handlers\x22,\x22call-handlers\x22,386605551),call_id], null),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781),handlers,new cljs.core.Keyword(null,\x22called-at\x22,\x22called-at\x22,607081160),shadow.remote.runtime.shared.now(),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22timeout\x22,\x22timeout\x22,-318625318),timeout_after_ms], null));\n\nreturn shadow.remote.runtime.api.relay_msg(runtime,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22call-id\x22,\x22call-id\x22,1043012968),call_id));\n}));\n\n(shadow.remote.runtime.shared.call.cljs$lang$maxFixedArity \x3d 4);\n\nshadow.remote.runtime.shared.trigger_BANG_ \x3d (function shadow$remote$runtime$shared$trigger_BANG_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___19988 \x3d arguments.length;\nvar i__5727__auto___19989 \x3d (0);\nwhile(true){\nif((i__5727__auto___19989 \x3c len__5726__auto___19988)){\nargs__5732__auto__.push((arguments[i__5727__auto___19989]));\n\nvar G__19990 \x3d (i__5727__auto___19989 + (1));\ni__5727__auto___19989 \x3d G__19990;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn shadow.remote.runtime.shared.trigger_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(shadow.remote.runtime.shared.trigger_BANG_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (p__19865,ev,args){\nvar map__19866 \x3d p__19865;\nvar map__19866__$1 \x3d cljs.core.__destructure_map(map__19866);\nvar runtime \x3d map__19866__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19866__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar seq__19867 \x3d cljs.core.seq(cljs.core.vals(new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref))));\nvar chunk__19873 \x3d null;\nvar count__19874 \x3d (0);\nvar i__19875 \x3d (0);\nwhile(true){\nif((i__19875 \x3c count__19874)){\nvar ext \x3d chunk__19873.cljs$core$IIndexed$_nth$arity$2(null, i__19875);\nvar ev_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ext,ev);\nif(cljs.core.truth_(ev_fn)){\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2(ev_fn,args);\n\n\nvar G__19995 \x3d seq__19867;\nvar G__19996 \x3d chunk__19873;\nvar G__19997 \x3d count__19874;\nvar G__19998 \x3d (i__19875 + (1));\nseq__19867 \x3d G__19995;\nchunk__19873 \x3d G__19996;\ncount__19874 \x3d G__19997;\ni__19875 \x3d G__19998;\ncontinue;\n} else {\nvar G__19999 \x3d seq__19867;\nvar G__20000 \x3d chunk__19873;\nvar G__20001 \x3d count__19874;\nvar G__20002 \x3d (i__19875 + (1));\nseq__19867 \x3d G__19999;\nchunk__19873 \x3d G__20000;\ncount__19874 \x3d G__20001;\ni__19875 \x3d G__20002;\ncontinue;\n}\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19867);\nif(temp__5804__auto__){\nvar seq__19867__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19867__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19867__$1);\nvar G__20003 \x3d cljs.core.chunk_rest(seq__19867__$1);\nvar G__20004 \x3d c__5525__auto__;\nvar G__20005 \x3d cljs.core.count(c__5525__auto__);\nvar G__20006 \x3d (0);\nseq__19867 \x3d G__20003;\nchunk__19873 \x3d G__20004;\ncount__19874 \x3d G__20005;\ni__19875 \x3d G__20006;\ncontinue;\n} else {\nvar ext \x3d cljs.core.first(seq__19867__$1);\nvar ev_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(ext,ev);\nif(cljs.core.truth_(ev_fn)){\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2(ev_fn,args);\n\n\nvar G__20007 \x3d cljs.core.next(seq__19867__$1);\nvar G__20008 \x3d null;\nvar G__20009 \x3d (0);\nvar G__20010 \x3d (0);\nseq__19867 \x3d G__20007;\nchunk__19873 \x3d G__20008;\ncount__19874 \x3d G__20009;\ni__19875 \x3d G__20010;\ncontinue;\n} else {\nvar G__20011 \x3d cljs.core.next(seq__19867__$1);\nvar G__20012 \x3d null;\nvar G__20013 \x3d (0);\nvar G__20014 \x3d (0);\nseq__19867 \x3d G__20011;\nchunk__19873 \x3d G__20012;\ncount__19874 \x3d G__20013;\ni__19875 \x3d G__20014;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(shadow.remote.runtime.shared.trigger_BANG_.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(shadow.remote.runtime.shared.trigger_BANG_.cljs$lang$applyTo \x3d (function (seq19859){\nvar G__19861 \x3d cljs.core.first(seq19859);\nvar seq19859__$1 \x3d cljs.core.next(seq19859);\nvar G__19862 \x3d cljs.core.first(seq19859__$1);\nvar seq19859__$2 \x3d cljs.core.next(seq19859__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19861,G__19862,seq19859__$2);\n}));\n\nshadow.remote.runtime.shared.welcome \x3d (function shadow$remote$runtime$shared$welcome(p__19891,p__19892){\nvar map__19893 \x3d p__19891;\nvar map__19893__$1 \x3d cljs.core.__destructure_map(map__19893);\nvar runtime \x3d map__19893__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19893__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__19894 \x3d p__19892;\nvar map__19894__$1 \x3d cljs.core.__destructure_map(map__19894);\nvar msg \x3d map__19894__$1;\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19894__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,cljs.core.assoc,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140),client_id,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22welcome\x22,\x22welcome\x22,-578152123),true], 0));\n\nvar map__19895 \x3d cljs.core.deref(state_ref);\nvar map__19895__$1 \x3d cljs.core.__destructure_map(map__19895);\nvar client_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19895__$1,new cljs.core.Keyword(null,\x22client-info\x22,\x22client-info\x22,1958982504));\nvar extensions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19895__$1,new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196));\nshadow.remote.runtime.shared.relay_msg(runtime,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22hello\x22,\x22hello\x22,-245025397),new cljs.core.Keyword(null,\x22client-info\x22,\x22client-info\x22,1958982504),client_info], null));\n\nreturn shadow.remote.runtime.shared.trigger_BANG_(runtime,new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125));\n});\nshadow.remote.runtime.shared.ping \x3d (function shadow$remote$runtime$shared$ping(runtime,msg){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22pong\x22,\x22pong\x22,-172484958)], null));\n});\nshadow.remote.runtime.shared.request_supported_ops \x3d (function shadow$remote$runtime$shared$request_supported_ops(p__19900,msg){\nvar map__19901 \x3d p__19900;\nvar map__19901__$1 \x3d cljs.core.__destructure_map(map__19901);\nvar runtime \x3d map__19901__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19901__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22supported-ops\x22,\x22supported-ops\x22,337914702),new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),cljs.core.disj.cljs$core$IFn$_invoke$arity$variadic(cljs.core.set(cljs.core.keys(new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)))),new cljs.core.Keyword(null,\x22welcome\x22,\x22welcome\x22,-578152123),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22unknown-relay-op\x22,\x22unknown-relay-op\x22,170832753),new cljs.core.Keyword(null,\x22unknown-op\x22,\x22unknown-op\x22,1900385996),new cljs.core.Keyword(null,\x22request-supported-ops\x22,\x22request-supported-ops\x22,-1034994502),new cljs.core.Keyword(null,\x22tool-disconnect\x22,\x22tool-disconnect\x22,189103996)], 0))], null));\n});\nshadow.remote.runtime.shared.unknown_relay_op \x3d (function shadow$remote$runtime$shared$unknown_relay_op(msg){\nreturn console.warn(\x22unknown-relay-op\x22,msg);\n});\nshadow.remote.runtime.shared.unknown_op \x3d (function shadow$remote$runtime$shared$unknown_op(msg){\nreturn console.warn(\x22unknown-op\x22,msg);\n});\nshadow.remote.runtime.shared.add_extension_STAR_ \x3d (function shadow$remote$runtime$shared$add_extension_STAR_(p__19911,key,p__19912){\nvar map__19913 \x3d p__19911;\nvar map__19913__$1 \x3d cljs.core.__destructure_map(map__19913);\nvar state \x3d map__19913__$1;\nvar extensions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19913__$1,new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196));\nvar map__19914 \x3d p__19912;\nvar map__19914__$1 \x3d cljs.core.__destructure_map(map__19914);\nvar spec \x3d map__19914__$1;\nvar ops \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19914__$1,new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063));\nvar transit_write_handlers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19914__$1,new cljs.core.Keyword(null,\x22transit-write-handlers\x22,\x22transit-write-handlers\x22,1886308716));\nif(cljs.core.contains_QMARK_(extensions,key)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22extension already registered\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key,new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401),spec], null));\n} else {\n}\n\nreturn cljs.core.reduce_kv((function (state__$1,op_kw,op_handler){\nif(cljs.core.truth_(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(state__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),op_kw], null)))){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22op already registered\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),key,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),op_kw], null));\n} else {\n}\n\nreturn cljs.core.assoc_in(state__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),op_kw], null),op_handler);\n}),cljs.core.assoc_in(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196),key], null),spec),ops);\n});\nshadow.remote.runtime.shared.add_extension \x3d (function shadow$remote$runtime$shared$add_extension(p__19917,key,spec){\nvar map__19918 \x3d p__19917;\nvar map__19918__$1 \x3d cljs.core.__destructure_map(map__19918);\nvar runtime \x3d map__19918__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19918__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,shadow.remote.runtime.shared.add_extension_STAR_,key,spec);\n\nvar temp__5808__auto___20019 \x3d new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125).cljs$core$IFn$_invoke$arity$1(spec);\nif((temp__5808__auto___20019 \x3d\x3d null)){\n} else {\nvar on_welcome_20020 \x3d temp__5808__auto___20019;\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22welcome\x22,\x22welcome\x22,-578152123).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)))){\n(on_welcome_20020.cljs$core$IFn$_invoke$arity$0 ? on_welcome_20020.cljs$core$IFn$_invoke$arity$0() : on_welcome_20020.call(null, ));\n} else {\n}\n}\n\nreturn runtime;\n});\nshadow.remote.runtime.shared.add_defaults \x3d (function shadow$remote$runtime$shared$add_defaults(runtime){\nreturn shadow.remote.runtime.shared.add_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.shared\x22,\x22defaults\x22,\x22shadow.remote.runtime.shared/defaults\x22,-1821257543),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22welcome\x22,\x22welcome\x22,-578152123),(function (p1__19923_SHARP_){\nreturn shadow.remote.runtime.shared.welcome(runtime,p1__19923_SHARP_);\n}),new cljs.core.Keyword(null,\x22unknown-relay-op\x22,\x22unknown-relay-op\x22,170832753),(function (p1__19924_SHARP_){\nreturn shadow.remote.runtime.shared.unknown_relay_op(p1__19924_SHARP_);\n}),new cljs.core.Keyword(null,\x22unknown-op\x22,\x22unknown-op\x22,1900385996),(function (p1__19925_SHARP_){\nreturn shadow.remote.runtime.shared.unknown_op(p1__19925_SHARP_);\n}),new cljs.core.Keyword(null,\x22ping\x22,\x22ping\x22,-1670114784),(function (p1__19926_SHARP_){\nreturn shadow.remote.runtime.shared.ping(runtime,p1__19926_SHARP_);\n}),new cljs.core.Keyword(null,\x22request-supported-ops\x22,\x22request-supported-ops\x22,-1034994502),(function (p1__19927_SHARP_){\nreturn shadow.remote.runtime.shared.request_supported_ops(runtime,p1__19927_SHARP_);\n})], null)], null));\n});\nshadow.remote.runtime.shared.del_extension_STAR_ \x3d (function shadow$remote$runtime$shared$del_extension_STAR_(state,key){\nvar ext \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196),key], null));\nif(cljs.core.not(ext)){\nreturn state;\n} else {\nreturn cljs.core.reduce_kv((function (state__$1,op_kw,op_handler){\nreturn cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063)], null),cljs.core.dissoc,op_kw);\n}),cljs.core.update.cljs$core$IFn$_invoke$arity$4(state,new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196),cljs.core.dissoc,key),new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063).cljs$core$IFn$_invoke$arity$1(ext));\n}\n});\nshadow.remote.runtime.shared.del_extension \x3d (function shadow$remote$runtime$shared$del_extension(p__19936,key){\nvar map__19938 \x3d p__19936;\nvar map__19938__$1 \x3d cljs.core.__destructure_map(map__19938);\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19938__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(state_ref,shadow.remote.runtime.shared.del_extension_STAR_,key);\n});\nshadow.remote.runtime.shared.unhandled_call_result \x3d (function shadow$remote$runtime$shared$unhandled_call_result(call_config,msg){\nreturn console.warn(\x22unhandled call result\x22,msg,call_config);\n});\nshadow.remote.runtime.shared.unhandled_client_not_found \x3d (function shadow$remote$runtime$shared$unhandled_client_not_found(p__19943,msg){\nvar map__19945 \x3d p__19943;\nvar map__19945__$1 \x3d cljs.core.__destructure_map(map__19945);\nvar runtime \x3d map__19945__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19945__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nreturn shadow.remote.runtime.shared.trigger_BANG_.cljs$core$IFn$_invoke$arity$variadic(runtime,new cljs.core.Keyword(null,\x22on-client-not-found\x22,\x22on-client-not-found\x22,-642452849),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([msg], 0));\n});\nshadow.remote.runtime.shared.reply_unknown_op \x3d (function shadow$remote$runtime$shared$reply_unknown_op(runtime,msg){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22unknown-op\x22,\x22unknown-op\x22,1900385996),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null));\n});\nshadow.remote.runtime.shared.process \x3d (function shadow$remote$runtime$shared$process(p__19950,p__19951){\nvar map__19952 \x3d p__19950;\nvar map__19952__$1 \x3d cljs.core.__destructure_map(map__19952);\nvar runtime \x3d map__19952__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19952__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__19953 \x3d p__19951;\nvar map__19953__$1 \x3d cljs.core.__destructure_map(map__19953);\nvar msg \x3d map__19953__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19953__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar call_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19953__$1,new cljs.core.Keyword(null,\x22call-id\x22,\x22call-id\x22,1043012968));\nvar state \x3d cljs.core.deref(state_ref);\nvar op_handler \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),op], null));\nif(cljs.core.truth_(call_id)){\nvar cfg \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22call-handlers\x22,\x22call-handlers\x22,386605551),call_id], null));\nvar call_handler \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cfg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781),op], null));\nif(cljs.core.truth_(call_handler)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,cljs.core.update,new cljs.core.Keyword(null,\x22call-handlers\x22,\x22call-handlers\x22,386605551),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([call_id], 0));\n\nreturn (call_handler.cljs$core$IFn$_invoke$arity$1 ? call_handler.cljs$core$IFn$_invoke$arity$1(msg) : call_handler.call(null, msg));\n} else {\nif(cljs.core.truth_(op_handler)){\nreturn (op_handler.cljs$core$IFn$_invoke$arity$1 ? op_handler.cljs$core$IFn$_invoke$arity$1(msg) : op_handler.call(null, msg));\n} else {\nreturn shadow.remote.runtime.shared.unhandled_call_result(cfg,msg);\n\n}\n}\n} else {\nif(cljs.core.truth_(op_handler)){\nreturn (op_handler.cljs$core$IFn$_invoke$arity$1 ? op_handler.cljs$core$IFn$_invoke$arity$1(msg) : op_handler.call(null, msg));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-not-found\x22,\x22client-not-found\x22,-1754042614),op)){\nreturn shadow.remote.runtime.shared.unhandled_client_not_found(runtime,msg);\n} else {\nreturn shadow.remote.runtime.shared.reply_unknown_op(runtime,msg);\n\n}\n}\n}\n});\nshadow.remote.runtime.shared.run_on_idle \x3d (function shadow$remote$runtime$shared$run_on_idle(state_ref){\nvar seq__19960 \x3d cljs.core.seq(cljs.core.vals(new cljs.core.Keyword(null,\x22extensions\x22,\x22extensions\x22,-1103629196).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref))));\nvar chunk__19962 \x3d null;\nvar count__19963 \x3d (0);\nvar i__19964 \x3d (0);\nwhile(true){\nif((i__19964 \x3c count__19963)){\nvar map__19972 \x3d chunk__19962.cljs$core$IIndexed$_nth$arity$2(null, i__19964);\nvar map__19972__$1 \x3d cljs.core.__destructure_map(map__19972);\nvar on_idle \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19972__$1,new cljs.core.Keyword(null,\x22on-idle\x22,\x22on-idle\x22,2044706602));\nif(cljs.core.truth_(on_idle)){\n(on_idle.cljs$core$IFn$_invoke$arity$0 ? on_idle.cljs$core$IFn$_invoke$arity$0() : on_idle.call(null, ));\n\n\nvar G__20092 \x3d seq__19960;\nvar G__20093 \x3d chunk__19962;\nvar G__20094 \x3d count__19963;\nvar G__20095 \x3d (i__19964 + (1));\nseq__19960 \x3d G__20092;\nchunk__19962 \x3d G__20093;\ncount__19963 \x3d G__20094;\ni__19964 \x3d G__20095;\ncontinue;\n} else {\nvar G__20096 \x3d seq__19960;\nvar G__20097 \x3d chunk__19962;\nvar G__20098 \x3d count__19963;\nvar G__20099 \x3d (i__19964 + (1));\nseq__19960 \x3d G__20096;\nchunk__19962 \x3d G__20097;\ncount__19963 \x3d G__20098;\ni__19964 \x3d G__20099;\ncontinue;\n}\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__19960);\nif(temp__5804__auto__){\nvar seq__19960__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__19960__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__19960__$1);\nvar G__20103 \x3d cljs.core.chunk_rest(seq__19960__$1);\nvar G__20104 \x3d c__5525__auto__;\nvar G__20105 \x3d cljs.core.count(c__5525__auto__);\nvar G__20106 \x3d (0);\nseq__19960 \x3d G__20103;\nchunk__19962 \x3d G__20104;\ncount__19963 \x3d G__20105;\ni__19964 \x3d G__20106;\ncontinue;\n} else {\nvar map__19976 \x3d cljs.core.first(seq__19960__$1);\nvar map__19976__$1 \x3d cljs.core.__destructure_map(map__19976);\nvar on_idle \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__19976__$1,new cljs.core.Keyword(null,\x22on-idle\x22,\x22on-idle\x22,2044706602));\nif(cljs.core.truth_(on_idle)){\n(on_idle.cljs$core$IFn$_invoke$arity$0 ? on_idle.cljs$core$IFn$_invoke$arity$0() : on_idle.call(null, ));\n\n\nvar G__20107 \x3d cljs.core.next(seq__19960__$1);\nvar G__20108 \x3d null;\nvar G__20109 \x3d (0);\nvar G__20110 \x3d (0);\nseq__19960 \x3d G__20107;\nchunk__19962 \x3d G__20108;\ncount__19963 \x3d G__20109;\ni__19964 \x3d G__20110;\ncontinue;\n} else {\nvar G__20111 \x3d cljs.core.next(seq__19960__$1);\nvar G__20112 \x3d null;\nvar G__20113 \x3d (0);\nvar G__20114 \x3d (0);\nseq__19960 \x3d G__20111;\nchunk__19962 \x3d G__20112;\ncount__19963 \x3d G__20113;\ni__19964 \x3d G__20114;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\n");
SHADOW_ENV.evalLoad("clojure.core.protocols.js", true, "goog.provide(\x27clojure.core.protocols\x27);\n\n/**\n * @interface\n */\nclojure.core.protocols.Datafiable \x3d function(){};\n\nvar clojure$core$protocols$Datafiable$datafy$dyn_19770 \x3d (function (o){\nvar x__5350__auto__ \x3d (((o \x3d\x3d null))?null:o);\nvar m__5351__auto__ \x3d (clojure.core.protocols.datafy[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5351__auto__.call(null, o));\n} else {\nvar m__5349__auto__ \x3d (clojure.core.protocols.datafy[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(o) : m__5349__auto__.call(null, o));\n} else {\nthrow cljs.core.missing_protocol(\x22Datafiable.datafy\x22,o);\n}\n}\n});\n/**\n * return a representation of o as data (default identity)\n */\nclojure.core.protocols.datafy \x3d (function clojure$core$protocols$datafy(o){\nvar temp__5802__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(o),cljs.core.with_meta(new cljs.core.Symbol(\x22clojure.core.protocols\x22,\x22datafy\x22,\x22clojure.core.protocols/datafy\x22,707534751,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nif(temp__5802__auto__){\nvar meta_impl__5352__auto__ \x3d temp__5802__auto__;\nreturn (meta_impl__5352__auto__.cljs$core$IFn$_invoke$arity$1 ? meta_impl__5352__auto__.cljs$core$IFn$_invoke$arity$1(o) : meta_impl__5352__auto__.call(null, o));\n} else {\nif((((!((o \x3d\x3d null)))) \x26\x26 ((!((o.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d\x3d null)))))){\nreturn o.clojure$core$protocols$Datafiable$datafy$arity$1(o);\n} else {\nreturn clojure$core$protocols$Datafiable$datafy$dyn_19770(o);\n}\n}\n});\n\n(clojure.core.protocols.Datafiable[\x22null\x22] \x3d true);\n\n(clojure.core.protocols.datafy[\x22null\x22] \x3d (function (_){\nreturn null;\n}));\n\n(clojure.core.protocols.Datafiable[\x22_\x22] \x3d true);\n\n(clojure.core.protocols.datafy[\x22_\x22] \x3d (function (o){\nreturn o;\n}));\n\n/**\n * @interface\n */\nclojure.core.protocols.Navigable \x3d function(){};\n\nvar clojure$core$protocols$Navigable$nav$dyn_19785 \x3d (function (coll,k,v){\nvar x__5350__auto__ \x3d (((coll \x3d\x3d null))?null:coll);\nvar m__5351__auto__ \x3d (clojure.core.protocols.nav[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,v) : m__5351__auto__.call(null, coll,k,v));\n} else {\nvar m__5349__auto__ \x3d (clojure.core.protocols.nav[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,v) : m__5349__auto__.call(null, coll,k,v));\n} else {\nthrow cljs.core.missing_protocol(\x22Navigable.nav\x22,coll);\n}\n}\n});\n/**\n * return (possibly transformed) v in the context of coll and k (a key/index or nil),\n * defaults to returning v.\n */\nclojure.core.protocols.nav \x3d (function clojure$core$protocols$nav(coll,k,v){\nvar temp__5802__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.meta(coll),cljs.core.with_meta(new cljs.core.Symbol(\x22clojure.core.protocols\x22,\x22nav\x22,\x22clojure.core.protocols/nav\x22,298936762,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.analyzer\x22,\x22no-resolve\x22,\x22cljs.analyzer/no-resolve\x22,-1872351017),true], null)));\nif(temp__5802__auto__){\nvar meta_impl__5352__auto__ \x3d temp__5802__auto__;\nreturn (meta_impl__5352__auto__.cljs$core$IFn$_invoke$arity$3 ? meta_impl__5352__auto__.cljs$core$IFn$_invoke$arity$3(coll,k,v) : meta_impl__5352__auto__.call(null, coll,k,v));\n} else {\nif((((!((coll \x3d\x3d null)))) \x26\x26 ((!((coll.clojure$core$protocols$Navigable$nav$arity$3 \x3d\x3d null)))))){\nreturn coll.clojure$core$protocols$Navigable$nav$arity$3(coll,k,v);\n} else {\nreturn clojure$core$protocols$Navigable$nav$dyn_19785(coll,k,v);\n}\n}\n});\n\n(clojure.core.protocols.Navigable[\x22_\x22] \x3d true);\n\n(clojure.core.protocols.nav[\x22_\x22] \x3d (function (_,___$1,x){\nreturn x;\n}));\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.cljs.js_builtins.js", true, "goog.provide(\x27shadow.remote.runtime.cljs.js_builtins\x27);\ngoog.scope(function(){\n shadow.remote.runtime.cljs.js_builtins.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\n(clojure.core.protocols.Datafiable[\x22object\x22] \x3d true);\n\n(clojure.core.protocols.datafy[\x22object\x22] \x3d (function (o){\nif((!((o.__proto__ \x3d\x3d\x3d Object.prototype)))){\nreturn o;\n} else {\nreturn cljs.core.with_meta(cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,key){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m,key,shadow.remote.runtime.cljs.js_builtins.goog$module$goog$object.get(o,key));\n}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),shadow.remote.runtime.cljs.js_builtins.goog$module$goog$object.getKeys(o))),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(\x22clojure.core.protocols\x22,\x22nav\x22,\x22clojure.core.protocols/nav\x22,298936762,null),(function (coll,k,v){\nreturn shadow.remote.runtime.cljs.js_builtins.goog$module$goog$object.get(o,k);\n})], null));\n}\n}));\n\n(clojure.core.protocols.Datafiable[\x22array\x22] \x3d true);\n\n(clojure.core.protocols.datafy[\x22array\x22] \x3d (function (o){\nreturn cljs.core.vec(o);\n}));\n\n(Error.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (e){\nvar e__$1 \x3d this;\nvar data \x3d cljs.core.ex_data(e__$1);\nvar file \x3d e__$1.fileName;\nvar line \x3d e__$1.lineNumber;\nvar column \x3d e__$1.columnNumber;\nvar G__19809 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002),e__$1.message,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),e__$1.name,new cljs.core.Keyword(null,\x22stack\x22,\x22stack\x22,-793405930),e__$1.stack], null);\nvar G__19809__$1 \x3d (((!((data \x3d\x3d null))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__19809,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),data):G__19809);\nvar G__19809__$2 \x3d (cljs.core.truth_(file)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__19809__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file):G__19809__$1);\nvar G__19809__$3 \x3d (cljs.core.truth_(line)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__19809__$2,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line):G__19809__$2);\nif(cljs.core.truth_(column)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__19809__$3,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column);\n} else {\nreturn G__19809__$3;\n}\n}));\n");
SHADOW_ENV.evalLoad("clojure.datafy.js", true, "goog.provide(\x27clojure.datafy\x27);\n/**\n * Attempts to return x as data.\n * datafy will return the value of clojure.protocols/datafy. If\n * the value has been transformed and the result supports\n * metadata, :clojure.datafy/obj will be set on the metadata to the\n * original value of x.\n */\nclojure.datafy.datafy \x3d (function clojure$datafy$datafy(x){\nvar v \x3d clojure.core.protocols.datafy(x);\nif((v \x3d\x3d\x3d x)){\nreturn v;\n} else {\nif((((!((v \x3d\x3d null))))?(((((v.cljs$lang$protocol_mask$partition0$ \x26 (262144))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d v.cljs$core$IWithMeta$))))?true:false):false)){\nreturn cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(v,cljs.core.assoc,new cljs.core.Keyword(\x22clojure.datafy\x22,\x22obj\x22,\x22clojure.datafy/obj\x22,-330079421),x);\n} else {\nreturn v;\n}\n}\n});\n/**\n * Returns (possibly transformed) v in the context of coll and k (a\n * key/index or nil). Callers should attempt to provide the key/index\n * context k for Indexed/Associative/ILookup colls if possible, but not\n * to fabricate one e.g. for sequences (pass nil). nav will return the\n * value of clojure.core.protocols/nav.\n */\nclojure.datafy.nav \x3d (function clojure$datafy$nav(coll,k,v){\nreturn clojure.core.protocols.nav(coll,k,v);\n});\nclojure.datafy.datify_ref \x3d (function clojure$datafy$datify_ref(r){\nreturn cljs.core.with_meta(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.deref(r)], null),cljs.core.meta(r));\n});\n(Error.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(Error.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (x){\nvar x__$1 \x3d this;\nreturn cljs.core.Throwable__GT_map(x__$1);\n}));\n\n(cljs.core.ExceptionInfo.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.ExceptionInfo.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (x){\nvar x__$1 \x3d this;\nreturn cljs.core.Throwable__GT_map(x__$1);\n}));\n\n(cljs.core.Var.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Var.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (r){\nvar r__$1 \x3d this;\nreturn clojure.datafy.datify_ref(r__$1);\n}));\n\n(cljs.core.Reduced.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Reduced.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (r){\nvar r__$1 \x3d this;\nreturn clojure.datafy.datify_ref(r__$1);\n}));\n\n(cljs.core.Atom.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Atom.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (r){\nvar r__$1 \x3d this;\nreturn clojure.datafy.datify_ref(r__$1);\n}));\n\n(cljs.core.Volatile.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Volatile.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (r){\nvar r__$1 \x3d this;\nreturn clojure.datafy.datify_ref(r__$1);\n}));\n\n(cljs.core.Delay.prototype.clojure$core$protocols$Datafiable$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Delay.prototype.clojure$core$protocols$Datafiable$datafy$arity$1 \x3d (function (r){\nvar r__$1 \x3d this;\nreturn clojure.datafy.datify_ref(r__$1);\n}));\n");
SHADOW_ENV.evalLoad("cljs.pprint.js", true, "goog.provide(\x27cljs.pprint\x27);\ncljs.pprint.print \x3d (function cljs$pprint$print(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27883 \x3d arguments.length;\nvar i__5727__auto___27884 \x3d (0);\nwhile(true){\nif((i__5727__auto___27884 \x3c len__5726__auto___27883)){\nargs__5732__auto__.push((arguments[i__5727__auto___27884]));\n\nvar G__27885 \x3d (i__5727__auto___27884 + (1));\ni__5727__auto___27884 \x3d G__27885;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic \x3d (function (more){\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.print_str,more));\n}));\n\n(cljs.pprint.print.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.pprint.print.cljs$lang$applyTo \x3d (function (seq22064){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22064));\n}));\n\ncljs.pprint.println \x3d (function cljs$pprint$println(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27886 \x3d arguments.length;\nvar i__5727__auto___27887 \x3d (0);\nwhile(true){\nif((i__5727__auto___27887 \x3c len__5726__auto___27886)){\nargs__5732__auto__.push((arguments[i__5727__auto___27887]));\n\nvar G__27888 \x3d (i__5727__auto___27887 + (1));\ni__5727__auto___27887 \x3d G__27888;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.pprint.println.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.pprint.println.cljs$core$IFn$_invoke$arity$variadic \x3d (function (more){\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.pprint.print,more);\n\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,\x22\\n\x22);\n}));\n\n(cljs.pprint.println.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.pprint.println.cljs$lang$applyTo \x3d (function (seq22079){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22079));\n}));\n\ncljs.pprint.print_char \x3d (function cljs$pprint$print_char(c){\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,(function (){var pred__22086 \x3d cljs.core._EQ_;\nvar expr__22087 \x3d c;\nif(cljs.core.truth_((function (){var G__22089 \x3d \x22\\b\x22;\nvar G__22090 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22089,G__22090) : pred__22086.call(null, G__22089,G__22090));\n})())){\nreturn \x22\\\\backspace\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22091 \x3d \x22 \x22;\nvar G__22092 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22091,G__22092) : pred__22086.call(null, G__22091,G__22092));\n})())){\nreturn \x22\\\\space\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22093 \x3d \x22\\t\x22;\nvar G__22094 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22093,G__22094) : pred__22086.call(null, G__22093,G__22094));\n})())){\nreturn \x22\\\\tab\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22095 \x3d \x22\\n\x22;\nvar G__22096 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22095,G__22096) : pred__22086.call(null, G__22095,G__22096));\n})())){\nreturn \x22\\\\newline\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22097 \x3d \x22\\f\x22;\nvar G__22098 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22097,G__22098) : pred__22086.call(null, G__22097,G__22098));\n})())){\nreturn \x22\\\\formfeed\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22099 \x3d \x22\\r\x22;\nvar G__22100 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22099,G__22100) : pred__22086.call(null, G__22099,G__22100));\n})())){\nreturn \x22\\\\return\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22101 \x3d \x22\\\x22\x22;\nvar G__22102 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22101,G__22102) : pred__22086.call(null, G__22101,G__22102));\n})())){\nreturn \x22\\\\\\\x22\x22;\n} else {\nif(cljs.core.truth_((function (){var G__22103 \x3d \x22\\\\\x22;\nvar G__22104 \x3d expr__22087;\nreturn (pred__22086.cljs$core$IFn$_invoke$arity$2 ? pred__22086.cljs$core$IFn$_invoke$arity$2(G__22103,G__22104) : pred__22086.call(null, G__22103,G__22104));\n})())){\nreturn \x22\\\\\\\\\x22;\n} else {\nreturn [\x22\\\\\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(\x27\x27);\n}\n}\n}\n}\n}\n}\n}\n}\n})());\n});\ncljs.pprint.pr \x3d (function cljs$pprint$pr(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27889 \x3d arguments.length;\nvar i__5727__auto___27890 \x3d (0);\nwhile(true){\nif((i__5727__auto___27890 \x3c len__5726__auto___27889)){\nargs__5732__auto__.push((arguments[i__5727__auto___27890]));\n\nvar G__27891 \x3d (i__5727__auto___27890 + (1));\ni__5727__auto___27890 \x3d G__27891;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.pprint.pr.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.pprint.pr.cljs$core$IFn$_invoke$arity$variadic \x3d (function (more){\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str,more));\n}));\n\n(cljs.pprint.pr.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.pprint.pr.cljs$lang$applyTo \x3d (function (seq22107){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22107));\n}));\n\ncljs.pprint.prn \x3d (function cljs$pprint$prn(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___27892 \x3d arguments.length;\nvar i__5727__auto___27893 \x3d (0);\nwhile(true){\nif((i__5727__auto___27893 \x3c len__5726__auto___27892)){\nargs__5732__auto__.push((arguments[i__5727__auto___27893]));\n\nvar G__27894 \x3d (i__5727__auto___27893 + (1));\ni__5727__auto___27893 \x3d G__27894;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.pprint.prn.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.pprint.prn.cljs$core$IFn$_invoke$arity$variadic \x3d (function (more){\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.pprint.pr,more);\n\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,\x22\\n\x22);\n}));\n\n(cljs.pprint.prn.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.pprint.prn.cljs$lang$applyTo \x3d (function (seq22113){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22113));\n}));\n\n/**\n * Returns true if n is an float.\n */\ncljs.pprint.float_QMARK_ \x3d (function cljs$pprint$float_QMARK_(n){\nreturn ((typeof n \x3d\x3d\x3d \x27number\x27) \x26\x26 ((((!(isNaN(n)))) \x26\x26 ((((!((n \x3d\x3d\x3d Infinity)))) \x26\x26 ((!((parseFloat(n) \x3d\x3d\x3d parseInt(n,(10)))))))))));\n});\n/**\n * Convert char to int\n */\ncljs.pprint.char_code \x3d (function cljs$pprint$char_code(c){\nif(typeof c \x3d\x3d\x3d \x27number\x27){\nreturn c;\n} else {\nif(((typeof c \x3d\x3d\x3d \x27string\x27) \x26\x26 ((c.length \x3d\x3d\x3d (1))))){\nreturn c.charCodeAt((0));\n} else {\nthrow (new Error(\x22Argument to char must be a character or number\x22));\n\n}\n}\n});\ncljs.pprint.map_passing_context \x3d (function cljs$pprint$map_passing_context(func,initial_context,lis){\nvar context \x3d initial_context;\nvar lis__$1 \x3d lis;\nvar acc \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nif(cljs.core.empty_QMARK_(lis__$1)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [acc,context], null);\n} else {\nvar this$ \x3d cljs.core.first(lis__$1);\nvar remainder \x3d cljs.core.next(lis__$1);\nvar vec__22130 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(func,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$,context], null));\nvar result \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22130,(0),null);\nvar new_context \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22130,(1),null);\nvar G__27895 \x3d new_context;\nvar G__27896 \x3d remainder;\nvar G__27897 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,result);\ncontext \x3d G__27895;\nlis__$1 \x3d G__27896;\nacc \x3d G__27897;\ncontinue;\n}\nbreak;\n}\n});\ncljs.pprint.consume \x3d (function cljs$pprint$consume(func,initial_context){\nvar context \x3d initial_context;\nvar acc \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nvar vec__22138 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(func,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [context], null));\nvar result \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22138,(0),null);\nvar new_context \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22138,(1),null);\nif(cljs.core.not(result)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [acc,new_context], null);\n} else {\nvar G__27898 \x3d new_context;\nvar G__27899 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,result);\ncontext \x3d G__27898;\nacc \x3d G__27899;\ncontinue;\n}\nbreak;\n}\n});\ncljs.pprint.consume_while \x3d (function cljs$pprint$consume_while(func,initial_context){\nvar context \x3d initial_context;\nvar acc \x3d cljs.core.PersistentVector.EMPTY;\nwhile(true){\nvar vec__22149 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(func,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [context], null));\nvar result \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22149,(0),null);\nvar continue$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22149,(1),null);\nvar new_context \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22149,(2),null);\nif(cljs.core.not(continue$)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [acc,context], null);\n} else {\nvar G__27900 \x3d new_context;\nvar G__27901 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,result);\ncontext \x3d G__27900;\nacc \x3d G__27901;\ncontinue;\n}\nbreak;\n}\n});\ncljs.pprint.unzip_map \x3d (function cljs$pprint$unzip_map(m){\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__5480__auto__ \x3d (function cljs$pprint$unzip_map_$_iter__22163(s__22164){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__22164__$1 \x3d s__22164;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__22164__$1);\nif(temp__5804__auto__){\nvar s__22164__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__22164__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__22164__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__22166 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__22165 \x3d (0);\nwhile(true){\nif((i__22165 \x3c size__5479__auto__)){\nvar vec__22170 \x3d cljs.core._nth(c__5478__auto__,i__22165);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22170,(0),null);\nvar vec__22173 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22170,(1),null);\nvar v1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22173,(0),null);\nvar v2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22173,(1),null);\ncljs.core.chunk_append(b__22166,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v1], null));\n\nvar G__27903 \x3d (i__22165 + (1));\ni__22165 \x3d G__27903;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22166),cljs$pprint$unzip_map_$_iter__22163(cljs.core.chunk_rest(s__22164__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22166),null);\n}\n} else {\nvar vec__22176 \x3d cljs.core.first(s__22164__$2);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22176,(0),null);\nvar vec__22179 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22176,(1),null);\nvar v1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22179,(0),null);\nvar v2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22179,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v1], null),cljs$pprint$unzip_map_$_iter__22163(cljs.core.rest(s__22164__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(m);\n})()),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__5480__auto__ \x3d (function cljs$pprint$unzip_map_$_iter__22185(s__22186){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__22186__$1 \x3d s__22186;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__22186__$1);\nif(temp__5804__auto__){\nvar s__22186__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__22186__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__22186__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__22188 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__22187 \x3d (0);\nwhile(true){\nif((i__22187 \x3c size__5479__auto__)){\nvar vec__22193 \x3d cljs.core._nth(c__5478__auto__,i__22187);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22193,(0),null);\nvar vec__22196 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22193,(1),null);\nvar v1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22196,(0),null);\nvar v2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22196,(1),null);\ncljs.core.chunk_append(b__22188,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v2], null));\n\nvar G__27910 \x3d (i__22187 + (1));\ni__22187 \x3d G__27910;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22188),cljs$pprint$unzip_map_$_iter__22185(cljs.core.chunk_rest(s__22186__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22188),null);\n}\n} else {\nvar vec__22199 \x3d cljs.core.first(s__22186__$2);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22199,(0),null);\nvar vec__22202 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22199,(1),null);\nvar v1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22202,(0),null);\nvar v2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22202,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v2], null),cljs$pprint$unzip_map_$_iter__22185(cljs.core.rest(s__22186__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(m);\n})())], null);\n});\ncljs.pprint.tuple_map \x3d (function cljs$pprint$tuple_map(m,v1){\n\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__5480__auto__ \x3d (function cljs$pprint$tuple_map_$_iter__22212(s__22213){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__22213__$1 \x3d s__22213;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__22213__$1);\nif(temp__5804__auto__){\nvar s__22213__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__22213__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__22213__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__22215 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__22214 \x3d (0);\nwhile(true){\nif((i__22214 \x3c size__5479__auto__)){\nvar vec__22229 \x3d cljs.core._nth(c__5478__auto__,i__22214);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22229,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22229,(1),null);\ncljs.core.chunk_append(b__22215,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,v1], null)], null));\n\nvar G__27913 \x3d (i__22214 + (1));\ni__22214 \x3d G__27913;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22215),cljs$pprint$tuple_map_$_iter__22212(cljs.core.chunk_rest(s__22213__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__22215),null);\n}\n} else {\nvar vec__22233 \x3d cljs.core.first(s__22213__$2);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22233,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22233,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,v1], null)], null),cljs$pprint$tuple_map_$_iter__22212(cljs.core.rest(s__22213__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(m);\n})());\n});\ncljs.pprint.rtrim \x3d (function cljs$pprint$rtrim(s,c){\n\nvar len \x3d cljs.core.count(s);\nif((((len \x3e (0))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s,(cljs.core.count(s) - (1))),c)))){\nvar n \x3d (len - (1));\nwhile(true){\nif((n \x3c (0))){\nreturn \x22\x22;\n} else {\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s,n),c)))){\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),(n + (1)));\n} else {\nvar G__27915 \x3d (n - (1));\nn \x3d G__27915;\ncontinue;\n\n}\n}\nbreak;\n}\n} else {\nreturn s;\n}\n});\ncljs.pprint.ltrim \x3d (function cljs$pprint$ltrim(s,c){\n\nvar len \x3d cljs.core.count(s);\nif((((len \x3e (0))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s,(0)),c)))){\nvar n \x3d (0);\nwhile(true){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(n,len)) || ((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s,n),c)))))){\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,n);\n} else {\nvar G__27916 \x3d (n + (1));\nn \x3d G__27916;\ncontinue;\n}\nbreak;\n}\n} else {\nreturn s;\n}\n});\ncljs.pprint.prefix_count \x3d (function cljs$pprint$prefix_count(aseq,val){\n\nvar test \x3d ((cljs.core.coll_QMARK_(val))?cljs.core.set(val):cljs.core.PersistentHashSet.createAsIfByAssoc([val]));\nvar pos \x3d (0);\nwhile(true){\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(pos,cljs.core.count(aseq))) || (cljs.core.not((function (){var G__22259 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(aseq,pos);\nreturn (test.cljs$core$IFn$_invoke$arity$1 ? test.cljs$core$IFn$_invoke$arity$1(G__22259) : test.call(null, G__22259));\n})())))){\nreturn pos;\n} else {\nvar G__27917 \x3d (pos + (1));\npos \x3d G__27917;\ncontinue;\n}\nbreak;\n}\n});\n\n/**\n * @interface\n */\ncljs.pprint.IPrettyFlush \x3d function(){};\n\nvar cljs$pprint$IPrettyFlush$_ppflush$dyn_27919 \x3d (function (pp){\nvar x__5350__auto__ \x3d (((pp \x3d\x3d null))?null:pp);\nvar m__5351__auto__ \x3d (cljs.pprint._ppflush[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(pp) : m__5351__auto__.call(null, pp));\n} else {\nvar m__5349__auto__ \x3d (cljs.pprint._ppflush[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(pp) : m__5349__auto__.call(null, pp));\n} else {\nthrow cljs.core.missing_protocol(\x22IPrettyFlush.-ppflush\x22,pp);\n}\n}\n});\ncljs.pprint._ppflush \x3d (function cljs$pprint$_ppflush(pp){\nif((((!((pp \x3d\x3d null)))) \x26\x26 ((!((pp.cljs$pprint$IPrettyFlush$_ppflush$arity$1 \x3d\x3d null)))))){\nreturn pp.cljs$pprint$IPrettyFlush$_ppflush$arity$1(pp);\n} else {\nreturn cljs$pprint$IPrettyFlush$_ppflush$dyn_27919(pp);\n}\n});\n\ncljs.pprint._STAR_default_page_width_STAR_ \x3d (72);\ncljs.pprint.get_field \x3d (function cljs$pprint$get_field(this$,sym){\nvar G__22269 \x3d cljs.core.deref(cljs.core.deref(this$));\nreturn (sym.cljs$core$IFn$_invoke$arity$1 ? sym.cljs$core$IFn$_invoke$arity$1(G__22269) : sym.call(null, G__22269));\n});\ncljs.pprint.set_field \x3d (function cljs$pprint$set_field(this$,sym,new_val){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,sym,new_val);\n});\ncljs.pprint.get_column \x3d (function cljs$pprint$get_column(this$){\nreturn cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599));\n});\ncljs.pprint.get_line \x3d (function cljs$pprint$get_line(this$){\nreturn cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\n});\ncljs.pprint.get_max_column \x3d (function cljs$pprint$get_max_column(this$){\nreturn cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548));\n});\ncljs.pprint.set_max_column \x3d (function cljs$pprint$set_max_column(this$,new_max){\ncljs.pprint.set_field(this$,new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),new_max);\n\nreturn null;\n});\ncljs.pprint.get_writer \x3d (function cljs$pprint$get_writer(this$){\nreturn cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322));\n});\ncljs.pprint.c_write_char \x3d (function cljs$pprint$c_write_char(this$,c){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,\x22\\n\x22)){\ncljs.pprint.set_field(this$,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599),(0));\n\ncljs.pprint.set_field(this$,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),(cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235)) + (1)));\n} else {\ncljs.pprint.set_field(this$,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599),(cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599)) + (1)));\n}\n\nreturn cljs.core._write(cljs.pprint.get_field(this$,new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322)),c);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.pprint.t_cljs$pprint22323 \x3d (function (writer,max_columns,fields,meta22324){\nthis.writer \x3d writer;\nthis.max_columns \x3d max_columns;\nthis.fields \x3d fields;\nthis.meta22324 \x3d meta22324;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1074167808;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.pprint.t_cljs$pprint22323.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_22325,meta22324__$1){\nvar self__ \x3d this;\nvar _22325__$1 \x3d this;\nreturn (new cljs.pprint.t_cljs$pprint22323(self__.writer,self__.max_columns,self__.fields,meta22324__$1));\n}));\n\n(cljs.pprint.t_cljs$pprint22323.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_22325){\nvar self__ \x3d this;\nvar _22325__$1 \x3d this;\nreturn self__.meta22324;\n}));\n\n(cljs.pprint.t_cljs$pprint22323.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.fields;\n}));\n\n(cljs.pprint.t_cljs$pprint22323.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core._flush(self__.writer);\n}));\n\n(cljs.pprint.t_cljs$pprint22323.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (this$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar pred__22333 \x3d cljs.core._EQ_;\nvar expr__22334 \x3d cljs.core.type(x);\nif(cljs.core.truth_((pred__22333.cljs$core$IFn$_invoke$arity$2 ? pred__22333.cljs$core$IFn$_invoke$arity$2(String,expr__22334) : pred__22333.call(null, String,expr__22334)))){\nvar s \x3d x;\nvar nl \x3d s.lastIndexOf(\x22\\n\x22);\nif((nl \x3c (0))){\ncljs.pprint.set_field(this$__$1,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599),(cljs.pprint.get_field(this$__$1,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599)) + cljs.core.count(s)));\n} else {\ncljs.pprint.set_field(this$__$1,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599),((cljs.core.count(s) - nl) - (1)));\n\ncljs.pprint.set_field(this$__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),(cljs.pprint.get_field(this$__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235)) + cljs.core.count(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__22312_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p1__22312_SHARP_,\x22\\n\x22);\n}),s))));\n}\n\nreturn cljs.core._write(cljs.pprint.get_field(this$__$1,new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322)),s);\n} else {\nif(cljs.core.truth_((pred__22333.cljs$core$IFn$_invoke$arity$2 ? pred__22333.cljs$core$IFn$_invoke$arity$2(Number,expr__22334) : pred__22333.call(null, Number,expr__22334)))){\nreturn cljs.pprint.c_write_char(this$__$1,x);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__22334)].join(\x27\x27)));\n}\n}\n}));\n\n(cljs.pprint.t_cljs$pprint22323.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22writer\x22,\x22writer\x22,1362963291,null),new cljs.core.Symbol(null,\x22max-columns\x22,\x22max-columns\x22,-912112507,null),new cljs.core.Symbol(null,\x22fields\x22,\x22fields\x22,-291534703,null),new cljs.core.Symbol(null,\x22meta22324\x22,\x22meta22324\x22,-2101712505,null)], null);\n}));\n\n(cljs.pprint.t_cljs$pprint22323.cljs$lang$type \x3d true);\n\n(cljs.pprint.t_cljs$pprint22323.cljs$lang$ctorStr \x3d \x22cljs.pprint/t_cljs$pprint22323\x22);\n\n(cljs.pprint.t_cljs$pprint22323.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.pprint/t_cljs$pprint22323\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/t_cljs$pprint22323.\n */\ncljs.pprint.__GT_t_cljs$pprint22323 \x3d (function cljs$pprint$__GT_t_cljs$pprint22323(writer,max_columns,fields,meta22324){\nreturn (new cljs.pprint.t_cljs$pprint22323(writer,max_columns,fields,meta22324));\n});\n\n\ncljs.pprint.column_writer \x3d (function cljs$pprint$column_writer(var_args){\nvar G__22318 \x3d arguments.length;\nswitch (G__22318) {\ncase 1:\nreturn cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$1 \x3d (function (writer){\nreturn cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2(writer,cljs.pprint._STAR_default_page_width_STAR_);\n}));\n\n(cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2 \x3d (function (writer,max_columns){\nvar fields \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),max_columns,new cljs.core.Keyword(null,\x22cur\x22,\x22cur\x22,1153190599),(0),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),(0),new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322),writer], null));\nreturn (new cljs.pprint.t_cljs$pprint22323(writer,max_columns,fields,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cljs.pprint.column_writer.cljs$lang$maxFixedArity \x3d 2);\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.logical_block \x3d (function (parent,section,start_col,indent,done_nl,intra_block_nl,prefix,per_line_prefix,suffix,logical_block_callback,__meta,__extmap,__hash){\nthis.parent \x3d parent;\nthis.section \x3d section;\nthis.start_col \x3d start_col;\nthis.indent \x3d indent;\nthis.done_nl \x3d done_nl;\nthis.intra_block_nl \x3d intra_block_nl;\nthis.prefix \x3d prefix;\nthis.per_line_prefix \x3d per_line_prefix;\nthis.suffix \x3d suffix;\nthis.logical_block_callback \x3d logical_block_callback;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.logical_block.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k22358,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__22398 \x3d k22358;\nvar G__22398__$1 \x3d (((G__22398 instanceof cljs.core.Keyword))?G__22398.fqn:null);\nswitch (G__22398__$1) {\ncase \x22parent\x22:\nreturn self__.parent;\n\nbreak;\ncase \x22section\x22:\nreturn self__.section;\n\nbreak;\ncase \x22start-col\x22:\nreturn self__.start_col;\n\nbreak;\ncase \x22indent\x22:\nreturn self__.indent;\n\nbreak;\ncase \x22done-nl\x22:\nreturn self__.done_nl;\n\nbreak;\ncase \x22intra-block-nl\x22:\nreturn self__.intra_block_nl;\n\nbreak;\ncase \x22prefix\x22:\nreturn self__.prefix;\n\nbreak;\ncase \x22per-line-prefix\x22:\nreturn self__.per_line_prefix;\n\nbreak;\ncase \x22suffix\x22:\nreturn self__.suffix;\n\nbreak;\ncase \x22logical-block-callback\x22:\nreturn self__.logical_block_callback;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k22358,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__22417){\nvar vec__22419 \x3d p__22417;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22419,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22419,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.logical-block{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),self__.parent],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),self__.section],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),self__.start_col],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),self__.indent],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),self__.done_nl],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),self__.intra_block_nl],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),self__.prefix],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),self__.per_line_prefix],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),self__.suffix],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194),self__.logical_block_callback],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__22357){\nvar self__ \x3d this;\nvar G__22357__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__22357__$1,10,new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (10 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (1977012399 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this22359,other22360){\nvar self__ \x3d this;\nvar this22359__$1 \x3d this;\nreturn (((!((other22360 \x3d\x3d null)))) \x26\x26 ((((this22359__$1.constructor \x3d\x3d\x3d other22360.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.parent,other22360.parent)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.section,other22360.section)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.start_col,other22360.start_col)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.indent,other22360.indent)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.done_nl,other22360.done_nl)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.intra_block_nl,other22360.intra_block_nl)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.prefix,other22360.prefix)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.per_line_prefix,other22360.per_line_prefix)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.suffix,other22360.suffix)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.logical_block_callback,other22360.logical_block_callback)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22359__$1.__extmap,other22360.__extmap)))))))))))))))))))))))));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 10, [new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),null,new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),null,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),null,new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),null,new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),null,new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),null,new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),null,new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),null,new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194),null,new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k22358){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__22526 \x3d k22358;\nvar G__22526__$1 \x3d (((G__22526 instanceof cljs.core.Keyword))?G__22526.fqn:null);\nswitch (G__22526__$1) {\ncase \x22parent\x22:\ncase \x22section\x22:\ncase \x22start-col\x22:\ncase \x22indent\x22:\ncase \x22done-nl\x22:\ncase \x22intra-block-nl\x22:\ncase \x22prefix\x22:\ncase \x22per-line-prefix\x22:\ncase \x22suffix\x22:\ncase \x22logical-block-callback\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k22358);\n\n}\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__22357){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__22527 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__22528 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),expr__22528)))){\nreturn (new cljs.pprint.logical_block(G__22357,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,G__22357,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,G__22357,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,G__22357,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,G__22357,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,G__22357,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,G__22357,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,G__22357,self__.suffix,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,G__22357,self__.logical_block_callback,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22527.cljs$core$IFn$_invoke$arity$2 ? pred__22527.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194),expr__22528) : pred__22527.call(null, new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194),expr__22528)))){\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,G__22357,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__22357),null));\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),self__.parent,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),self__.section,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),self__.start_col,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),self__.indent,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),self__.done_nl,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),self__.intra_block_nl,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),self__.prefix,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),self__.per_line_prefix,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),self__.suffix,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194),self__.logical_block_callback,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__22357){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.logical_block(self__.parent,self__.section,self__.start_col,self__.indent,self__.done_nl,self__.intra_block_nl,self__.prefix,self__.per_line_prefix,self__.suffix,self__.logical_block_callback,G__22357,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.logical_block.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.logical_block.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22parent\x22,\x22parent\x22,761652748,null),new cljs.core.Symbol(null,\x22section\x22,\x22section\x22,1340390001,null),new cljs.core.Symbol(null,\x22start-col\x22,\x22start-col\x22,-1986355626,null),new cljs.core.Symbol(null,\x22indent\x22,\x22indent\x22,1492331402,null),new cljs.core.Symbol(null,\x22done-nl\x22,\x22done-nl\x22,1259507187,null),new cljs.core.Symbol(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,-845608894,null),new cljs.core.Symbol(null,\x22prefix\x22,\x22prefix\x22,1374623062,null),new cljs.core.Symbol(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,-1807493956,null),new cljs.core.Symbol(null,\x22suffix\x22,\x22suffix\x22,2007904584,null),new cljs.core.Symbol(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,-1041744575,null)], null);\n}));\n\n(cljs.pprint.logical_block.cljs$lang$type \x3d true);\n\n(cljs.pprint.logical_block.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/logical-block\x22,null,(1),null));\n}));\n\n(cljs.pprint.logical_block.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/logical-block\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/logical-block.\n */\ncljs.pprint.__GT_logical_block \x3d (function cljs$pprint$__GT_logical_block(parent,section,start_col,indent,done_nl,intra_block_nl,prefix,per_line_prefix,suffix,logical_block_callback){\nreturn (new cljs.pprint.logical_block(parent,section,start_col,indent,done_nl,intra_block_nl,prefix,per_line_prefix,suffix,logical_block_callback,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/logical-block, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_logical_block \x3d (function cljs$pprint$map__GT_logical_block(G__22373){\nvar extmap__5342__auto__ \x3d (function (){var G__22575 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__22373,new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143),new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125),new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340),new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875),new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465),new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813),new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057),new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194)], 0));\nif(cljs.core.record_QMARK_(G__22373)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__22575);\n} else {\nreturn G__22575;\n}\n})();\nreturn (new cljs.pprint.logical_block(new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(G__22373),new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194).cljs$core$IFn$_invoke$arity$1(G__22373),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\ncljs.pprint.ancestor_QMARK_ \x3d (function cljs$pprint$ancestor_QMARK_(parent,child){\nvar child__$1 \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(child);\nwhile(true){\nif((child__$1 \x3d\x3d null)){\nreturn false;\n} else {\nif((parent \x3d\x3d\x3d child__$1)){\nreturn true;\n} else {\nvar G__28007 \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(child__$1);\nchild__$1 \x3d G__28007;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.pprint.buffer_length \x3d (function cljs$pprint$buffer_length(l){\nvar l__$1 \x3d cljs.core.seq(l);\nif(l__$1){\nreturn (new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926).cljs$core$IFn$_invoke$arity$1(cljs.core.last(l__$1)) - new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086).cljs$core$IFn$_invoke$arity$1(cljs.core.first(l__$1)));\n} else {\nreturn (0);\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.buffer_blob \x3d (function (type_tag,data,trailing_white_space,start_pos,end_pos,__meta,__extmap,__hash){\nthis.type_tag \x3d type_tag;\nthis.data \x3d data;\nthis.trailing_white_space \x3d trailing_white_space;\nthis.start_pos \x3d start_pos;\nthis.end_pos \x3d end_pos;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.buffer_blob.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k22591,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__22628 \x3d k22591;\nvar G__22628__$1 \x3d (((G__22628 instanceof cljs.core.Keyword))?G__22628.fqn:null);\nswitch (G__22628__$1) {\ncase \x22type-tag\x22:\nreturn self__.type_tag;\n\nbreak;\ncase \x22data\x22:\nreturn self__.data;\n\nbreak;\ncase \x22trailing-white-space\x22:\nreturn self__.trailing_white_space;\n\nbreak;\ncase \x22start-pos\x22:\nreturn self__.start_pos;\n\nbreak;\ncase \x22end-pos\x22:\nreturn self__.end_pos;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k22591,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__22642){\nvar vec__22647 \x3d p__22642;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22647,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22647,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.buffer-blob{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),self__.trailing_white_space],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__22590){\nvar self__ \x3d this;\nvar G__22590__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__22590__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,self__.trailing_white_space,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (1809113693 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this22592,other22593){\nvar self__ \x3d this;\nvar this22592__$1 \x3d this;\nreturn (((!((other22593 \x3d\x3d null)))) \x26\x26 ((((this22592__$1.constructor \x3d\x3d\x3d other22593.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22592__$1.type_tag,other22593.type_tag)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22592__$1.data,other22593.data)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22592__$1.trailing_white_space,other22593.trailing_white_space)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22592__$1.start_pos,other22593.start_pos)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22592__$1.end_pos,other22593.end_pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22592__$1.__extmap,other22593.__extmap)))))))))))))));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),null,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),null,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),null,new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),null,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,self__.trailing_white_space,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k22591){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__22748 \x3d k22591;\nvar G__22748__$1 \x3d (((G__22748 instanceof cljs.core.Keyword))?G__22748.fqn:null);\nswitch (G__22748__$1) {\ncase \x22type-tag\x22:\ncase \x22data\x22:\ncase \x22trailing-white-space\x22:\ncase \x22start-pos\x22:\ncase \x22end-pos\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k22591);\n\n}\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__22590){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__22753 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__22754 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__22753.cljs$core$IFn$_invoke$arity$2 ? pred__22753.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__22754) : pred__22753.call(null, new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__22754)))){\nreturn (new cljs.pprint.buffer_blob(G__22590,self__.data,self__.trailing_white_space,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22753.cljs$core$IFn$_invoke$arity$2 ? pred__22753.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__22754) : pred__22753.call(null, new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),expr__22754)))){\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,G__22590,self__.trailing_white_space,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22753.cljs$core$IFn$_invoke$arity$2 ? pred__22753.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),expr__22754) : pred__22753.call(null, new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),expr__22754)))){\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,G__22590,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22753.cljs$core$IFn$_invoke$arity$2 ? pred__22753.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__22754) : pred__22753.call(null, new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__22754)))){\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,self__.trailing_white_space,G__22590,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22753.cljs$core$IFn$_invoke$arity$2 ? pred__22753.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__22754) : pred__22753.call(null, new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__22754)))){\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,self__.trailing_white_space,self__.start_pos,G__22590,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,self__.trailing_white_space,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__22590),null));\n}\n}\n}\n}\n}\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),self__.data,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),self__.trailing_white_space,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__22590){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.buffer_blob(self__.type_tag,self__.data,self__.trailing_white_space,self__.start_pos,self__.end_pos,G__22590,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.buffer_blob.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.buffer_blob.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22type-tag\x22,\x22type-tag\x22,-233331740,null),new cljs.core.Symbol(null,\x22data\x22,\x22data\x22,1407862150,null),new cljs.core.Symbol(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,-1158428773,null),new cljs.core.Symbol(null,\x22start-pos\x22,\x22start-pos\x22,-1985646683,null),new cljs.core.Symbol(null,\x22end-pos\x22,\x22end-pos\x22,-3352399,null)], null);\n}));\n\n(cljs.pprint.buffer_blob.cljs$lang$type \x3d true);\n\n(cljs.pprint.buffer_blob.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/buffer-blob\x22,null,(1),null));\n}));\n\n(cljs.pprint.buffer_blob.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/buffer-blob\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/buffer-blob.\n */\ncljs.pprint.__GT_buffer_blob \x3d (function cljs$pprint$__GT_buffer_blob(type_tag,data,trailing_white_space,start_pos,end_pos){\nreturn (new cljs.pprint.buffer_blob(type_tag,data,trailing_white_space,start_pos,end_pos,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/buffer-blob, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_buffer_blob \x3d (function cljs$pprint$map__GT_buffer_blob(G__22606){\nvar extmap__5342__auto__ \x3d (function (){var G__22792 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__22606,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], 0));\nif(cljs.core.record_QMARK_(G__22606)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__22792);\n} else {\nreturn G__22792;\n}\n})();\nreturn (new cljs.pprint.buffer_blob(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(G__22606),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(G__22606),new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(G__22606),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086).cljs$core$IFn$_invoke$arity$1(G__22606),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926).cljs$core$IFn$_invoke$arity$1(G__22606),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n\ncljs.pprint.make_buffer_blob \x3d (function cljs$pprint$make_buffer_blob(data,trailing_white_space,start_pos,end_pos){\nreturn (new cljs.pprint.buffer_blob(new cljs.core.Keyword(null,\x22buffer-blob\x22,\x22buffer-blob\x22,-1830112173),data,trailing_white_space,start_pos,end_pos,null,null,null));\n});\n\ncljs.pprint.buffer_blob_QMARK_ \x3d (function cljs$pprint$buffer_blob_QMARK_(x__21922__auto__){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(x__21922__auto__),new cljs.core.Keyword(null,\x22buffer-blob\x22,\x22buffer-blob\x22,-1830112173));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.nl_t \x3d (function (type_tag,type,logical_block,start_pos,end_pos,__meta,__extmap,__hash){\nthis.type_tag \x3d type_tag;\nthis.type \x3d type;\nthis.logical_block \x3d logical_block;\nthis.start_pos \x3d start_pos;\nthis.end_pos \x3d end_pos;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.nl_t.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k22811,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__22839 \x3d k22811;\nvar G__22839__$1 \x3d (((G__22839 instanceof cljs.core.Keyword))?G__22839.fqn:null);\nswitch (G__22839__$1) {\ncase \x22type-tag\x22:\nreturn self__.type_tag;\n\nbreak;\ncase \x22type\x22:\nreturn self__.type;\n\nbreak;\ncase \x22logical-block\x22:\nreturn self__.logical_block;\n\nbreak;\ncase \x22start-pos\x22:\nreturn self__.start_pos;\n\nbreak;\ncase \x22end-pos\x22:\nreturn self__.end_pos;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k22811,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__22843){\nvar vec__22845 \x3d p__22843;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22845,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22845,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.nl-t{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),self__.type],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__22810){\nvar self__ \x3d this;\nvar G__22810__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__22810__$1,5,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (5 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-1640656800 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this22816,other22817){\nvar self__ \x3d this;\nvar this22816__$1 \x3d this;\nreturn (((!((other22817 \x3d\x3d null)))) \x26\x26 ((((this22816__$1.constructor \x3d\x3d\x3d other22817.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22816__$1.type_tag,other22817.type_tag)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22816__$1.type,other22817.type)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22816__$1.logical_block,other22817.logical_block)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22816__$1.start_pos,other22817.start_pos)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22816__$1.end_pos,other22817.end_pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22816__$1.__extmap,other22817.__extmap)))))))))))))));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),null,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),null,new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),null,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),null,new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k22811){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__22895 \x3d k22811;\nvar G__22895__$1 \x3d (((G__22895 instanceof cljs.core.Keyword))?G__22895.fqn:null);\nswitch (G__22895__$1) {\ncase \x22type-tag\x22:\ncase \x22type\x22:\ncase \x22logical-block\x22:\ncase \x22start-pos\x22:\ncase \x22end-pos\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k22811);\n\n}\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__22810){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__22913 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__22914 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__22913.cljs$core$IFn$_invoke$arity$2 ? pred__22913.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__22914) : pred__22913.call(null, new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__22914)))){\nreturn (new cljs.pprint.nl_t(G__22810,self__.type,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22913.cljs$core$IFn$_invoke$arity$2 ? pred__22913.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),expr__22914) : pred__22913.call(null, new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),expr__22914)))){\nreturn (new cljs.pprint.nl_t(self__.type_tag,G__22810,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22913.cljs$core$IFn$_invoke$arity$2 ? pred__22913.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__22914) : pred__22913.call(null, new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__22914)))){\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,G__22810,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22913.cljs$core$IFn$_invoke$arity$2 ? pred__22913.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__22914) : pred__22913.call(null, new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__22914)))){\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,self__.logical_block,G__22810,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__22913.cljs$core$IFn$_invoke$arity$2 ? pred__22913.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__22914) : pred__22913.call(null, new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__22914)))){\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,self__.logical_block,self__.start_pos,G__22810,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__22810),null));\n}\n}\n}\n}\n}\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),self__.type,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__22810){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.nl_t(self__.type_tag,self__.type,self__.logical_block,self__.start_pos,self__.end_pos,G__22810,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.nl_t.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.nl_t.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22type-tag\x22,\x22type-tag\x22,-233331740,null),new cljs.core.Symbol(null,\x22type\x22,\x22type\x22,-1480165421,null),new cljs.core.Symbol(null,\x22logical-block\x22,\x22logical-block\x22,1059508963,null),new cljs.core.Symbol(null,\x22start-pos\x22,\x22start-pos\x22,-1985646683,null),new cljs.core.Symbol(null,\x22end-pos\x22,\x22end-pos\x22,-3352399,null)], null);\n}));\n\n(cljs.pprint.nl_t.cljs$lang$type \x3d true);\n\n(cljs.pprint.nl_t.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/nl-t\x22,null,(1),null));\n}));\n\n(cljs.pprint.nl_t.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/nl-t\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/nl-t.\n */\ncljs.pprint.__GT_nl_t \x3d (function cljs$pprint$__GT_nl_t(type_tag,type,logical_block,start_pos,end_pos){\nreturn (new cljs.pprint.nl_t(type_tag,type,logical_block,start_pos,end_pos,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/nl-t, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_nl_t \x3d (function cljs$pprint$map__GT_nl_t(G__22824){\nvar extmap__5342__auto__ \x3d (function (){var G__22980 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__22824,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], 0));\nif(cljs.core.record_QMARK_(G__22824)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__22980);\n} else {\nreturn G__22980;\n}\n})();\nreturn (new cljs.pprint.nl_t(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(G__22824),new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(G__22824),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(G__22824),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086).cljs$core$IFn$_invoke$arity$1(G__22824),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926).cljs$core$IFn$_invoke$arity$1(G__22824),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n\ncljs.pprint.make_nl_t \x3d (function cljs$pprint$make_nl_t(type,logical_block,start_pos,end_pos){\nreturn (new cljs.pprint.nl_t(new cljs.core.Keyword(null,\x22nl-t\x22,\x22nl-t\x22,-1608382114),type,logical_block,start_pos,end_pos,null,null,null));\n});\n\ncljs.pprint.nl_t_QMARK_ \x3d (function cljs$pprint$nl_t_QMARK_(x__21922__auto__){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(x__21922__auto__),new cljs.core.Keyword(null,\x22nl-t\x22,\x22nl-t\x22,-1608382114));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.start_block_t \x3d (function (type_tag,logical_block,start_pos,end_pos,__meta,__extmap,__hash){\nthis.type_tag \x3d type_tag;\nthis.logical_block \x3d logical_block;\nthis.start_pos \x3d start_pos;\nthis.end_pos \x3d end_pos;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.start_block_t.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k22998,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__23020 \x3d k22998;\nvar G__23020__$1 \x3d (((G__23020 instanceof cljs.core.Keyword))?G__23020.fqn:null);\nswitch (G__23020__$1) {\ncase \x22type-tag\x22:\nreturn self__.type_tag;\n\nbreak;\ncase \x22logical-block\x22:\nreturn self__.logical_block;\n\nbreak;\ncase \x22start-pos\x22:\nreturn self__.start_pos;\n\nbreak;\ncase \x22end-pos\x22:\nreturn self__.end_pos;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k22998,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__23031){\nvar vec__23032 \x3d p__23031;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23032,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23032,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.start-block-t{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__22997){\nvar self__ \x3d this;\nvar G__22997__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__22997__$1,4,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.start_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (4 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-414877272 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this22999,other23000){\nvar self__ \x3d this;\nvar this22999__$1 \x3d this;\nreturn (((!((other23000 \x3d\x3d null)))) \x26\x26 ((((this22999__$1.constructor \x3d\x3d\x3d other23000.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22999__$1.type_tag,other23000.type_tag)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22999__$1.logical_block,other23000.logical_block)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22999__$1.start_pos,other23000.start_pos)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22999__$1.end_pos,other23000.end_pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this22999__$1.__extmap,other23000.__extmap)))))))))))));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),null,new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),null,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),null,new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.start_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k22998){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__23090 \x3d k22998;\nvar G__23090__$1 \x3d (((G__23090 instanceof cljs.core.Keyword))?G__23090.fqn:null);\nswitch (G__23090__$1) {\ncase \x22type-tag\x22:\ncase \x22logical-block\x22:\ncase \x22start-pos\x22:\ncase \x22end-pos\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k22998);\n\n}\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__22997){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__23097 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__23098 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__23097.cljs$core$IFn$_invoke$arity$2 ? pred__23097.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__23098) : pred__23097.call(null, new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__23098)))){\nreturn (new cljs.pprint.start_block_t(G__22997,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23097.cljs$core$IFn$_invoke$arity$2 ? pred__23097.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__23098) : pred__23097.call(null, new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__23098)))){\nreturn (new cljs.pprint.start_block_t(self__.type_tag,G__22997,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23097.cljs$core$IFn$_invoke$arity$2 ? pred__23097.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__23098) : pred__23097.call(null, new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__23098)))){\nreturn (new cljs.pprint.start_block_t(self__.type_tag,self__.logical_block,G__22997,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23097.cljs$core$IFn$_invoke$arity$2 ? pred__23097.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__23098) : pred__23097.call(null, new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__23098)))){\nreturn (new cljs.pprint.start_block_t(self__.type_tag,self__.logical_block,self__.start_pos,G__22997,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.start_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__22997),null));\n}\n}\n}\n}\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__22997){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.start_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,G__22997,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.start_block_t.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.start_block_t.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22type-tag\x22,\x22type-tag\x22,-233331740,null),new cljs.core.Symbol(null,\x22logical-block\x22,\x22logical-block\x22,1059508963,null),new cljs.core.Symbol(null,\x22start-pos\x22,\x22start-pos\x22,-1985646683,null),new cljs.core.Symbol(null,\x22end-pos\x22,\x22end-pos\x22,-3352399,null)], null);\n}));\n\n(cljs.pprint.start_block_t.cljs$lang$type \x3d true);\n\n(cljs.pprint.start_block_t.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/start-block-t\x22,null,(1),null));\n}));\n\n(cljs.pprint.start_block_t.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/start-block-t\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/start-block-t.\n */\ncljs.pprint.__GT_start_block_t \x3d (function cljs$pprint$__GT_start_block_t(type_tag,logical_block,start_pos,end_pos){\nreturn (new cljs.pprint.start_block_t(type_tag,logical_block,start_pos,end_pos,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/start-block-t, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_start_block_t \x3d (function cljs$pprint$map__GT_start_block_t(G__23003){\nvar extmap__5342__auto__ \x3d (function (){var G__23136 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__23003,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], 0));\nif(cljs.core.record_QMARK_(G__23003)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__23136);\n} else {\nreturn G__23136;\n}\n})();\nreturn (new cljs.pprint.start_block_t(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(G__23003),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(G__23003),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086).cljs$core$IFn$_invoke$arity$1(G__23003),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926).cljs$core$IFn$_invoke$arity$1(G__23003),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n\ncljs.pprint.make_start_block_t \x3d (function cljs$pprint$make_start_block_t(logical_block,start_pos,end_pos){\nreturn (new cljs.pprint.start_block_t(new cljs.core.Keyword(null,\x22start-block-t\x22,\x22start-block-t\x22,-373430594),logical_block,start_pos,end_pos,null,null,null));\n});\n\ncljs.pprint.start_block_t_QMARK_ \x3d (function cljs$pprint$start_block_t_QMARK_(x__21922__auto__){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(x__21922__auto__),new cljs.core.Keyword(null,\x22start-block-t\x22,\x22start-block-t\x22,-373430594));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.end_block_t \x3d (function (type_tag,logical_block,start_pos,end_pos,__meta,__extmap,__hash){\nthis.type_tag \x3d type_tag;\nthis.logical_block \x3d logical_block;\nthis.start_pos \x3d start_pos;\nthis.end_pos \x3d end_pos;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.end_block_t.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k23160,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__23184 \x3d k23160;\nvar G__23184__$1 \x3d (((G__23184 instanceof cljs.core.Keyword))?G__23184.fqn:null);\nswitch (G__23184__$1) {\ncase \x22type-tag\x22:\nreturn self__.type_tag;\n\nbreak;\ncase \x22logical-block\x22:\nreturn self__.logical_block;\n\nbreak;\ncase \x22start-pos\x22:\nreturn self__.start_pos;\n\nbreak;\ncase \x22end-pos\x22:\nreturn self__.end_pos;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k23160,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__23198){\nvar vec__23199 \x3d p__23198;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23199,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23199,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.end-block-t{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__23159){\nvar self__ \x3d this;\nvar G__23159__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__23159__$1,4,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.end_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (4 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (1365867980 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this23161,other23162){\nvar self__ \x3d this;\nvar this23161__$1 \x3d this;\nreturn (((!((other23162 \x3d\x3d null)))) \x26\x26 ((((this23161__$1.constructor \x3d\x3d\x3d other23162.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23161__$1.type_tag,other23162.type_tag)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23161__$1.logical_block,other23162.logical_block)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23161__$1.start_pos,other23162.start_pos)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23161__$1.end_pos,other23162.end_pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23161__$1.__extmap,other23162.__extmap)))))))))))));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),null,new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),null,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),null,new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.end_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k23160){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__23262 \x3d k23160;\nvar G__23262__$1 \x3d (((G__23262 instanceof cljs.core.Keyword))?G__23262.fqn:null);\nswitch (G__23262__$1) {\ncase \x22type-tag\x22:\ncase \x22logical-block\x22:\ncase \x22start-pos\x22:\ncase \x22end-pos\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k23160);\n\n}\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__23159){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__23275 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__23276 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__23275.cljs$core$IFn$_invoke$arity$2 ? pred__23275.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__23276) : pred__23275.call(null, new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__23276)))){\nreturn (new cljs.pprint.end_block_t(G__23159,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23275.cljs$core$IFn$_invoke$arity$2 ? pred__23275.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__23276) : pred__23275.call(null, new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__23276)))){\nreturn (new cljs.pprint.end_block_t(self__.type_tag,G__23159,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23275.cljs$core$IFn$_invoke$arity$2 ? pred__23275.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__23276) : pred__23275.call(null, new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__23276)))){\nreturn (new cljs.pprint.end_block_t(self__.type_tag,self__.logical_block,G__23159,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23275.cljs$core$IFn$_invoke$arity$2 ? pred__23275.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__23276) : pred__23275.call(null, new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__23276)))){\nreturn (new cljs.pprint.end_block_t(self__.type_tag,self__.logical_block,self__.start_pos,G__23159,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.end_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__23159),null));\n}\n}\n}\n}\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__23159){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.end_block_t(self__.type_tag,self__.logical_block,self__.start_pos,self__.end_pos,G__23159,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.end_block_t.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.end_block_t.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22type-tag\x22,\x22type-tag\x22,-233331740,null),new cljs.core.Symbol(null,\x22logical-block\x22,\x22logical-block\x22,1059508963,null),new cljs.core.Symbol(null,\x22start-pos\x22,\x22start-pos\x22,-1985646683,null),new cljs.core.Symbol(null,\x22end-pos\x22,\x22end-pos\x22,-3352399,null)], null);\n}));\n\n(cljs.pprint.end_block_t.cljs$lang$type \x3d true);\n\n(cljs.pprint.end_block_t.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/end-block-t\x22,null,(1),null));\n}));\n\n(cljs.pprint.end_block_t.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/end-block-t\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/end-block-t.\n */\ncljs.pprint.__GT_end_block_t \x3d (function cljs$pprint$__GT_end_block_t(type_tag,logical_block,start_pos,end_pos){\nreturn (new cljs.pprint.end_block_t(type_tag,logical_block,start_pos,end_pos,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/end-block-t, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_end_block_t \x3d (function cljs$pprint$map__GT_end_block_t(G__23168){\nvar extmap__5342__auto__ \x3d (function (){var G__23306 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__23168,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], 0));\nif(cljs.core.record_QMARK_(G__23168)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__23306);\n} else {\nreturn G__23306;\n}\n})();\nreturn (new cljs.pprint.end_block_t(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(G__23168),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(G__23168),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086).cljs$core$IFn$_invoke$arity$1(G__23168),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926).cljs$core$IFn$_invoke$arity$1(G__23168),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n\ncljs.pprint.make_end_block_t \x3d (function cljs$pprint$make_end_block_t(logical_block,start_pos,end_pos){\nreturn (new cljs.pprint.end_block_t(new cljs.core.Keyword(null,\x22end-block-t\x22,\x22end-block-t\x22,1544648735),logical_block,start_pos,end_pos,null,null,null));\n});\n\ncljs.pprint.end_block_t_QMARK_ \x3d (function cljs$pprint$end_block_t_QMARK_(x__21922__auto__){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(x__21922__auto__),new cljs.core.Keyword(null,\x22end-block-t\x22,\x22end-block-t\x22,1544648735));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.indent_t \x3d (function (type_tag,logical_block,relative_to,offset,start_pos,end_pos,__meta,__extmap,__hash){\nthis.type_tag \x3d type_tag;\nthis.logical_block \x3d logical_block;\nthis.relative_to \x3d relative_to;\nthis.offset \x3d offset;\nthis.start_pos \x3d start_pos;\nthis.end_pos \x3d end_pos;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.indent_t.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k23322,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__23352 \x3d k23322;\nvar G__23352__$1 \x3d (((G__23352 instanceof cljs.core.Keyword))?G__23352.fqn:null);\nswitch (G__23352__$1) {\ncase \x22type-tag\x22:\nreturn self__.type_tag;\n\nbreak;\ncase \x22logical-block\x22:\nreturn self__.logical_block;\n\nbreak;\ncase \x22relative-to\x22:\nreturn self__.relative_to;\n\nbreak;\ncase \x22offset\x22:\nreturn self__.offset;\n\nbreak;\ncase \x22start-pos\x22:\nreturn self__.start_pos;\n\nbreak;\ncase \x22end-pos\x22:\nreturn self__.end_pos;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k23322,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__23381){\nvar vec__23382 \x3d p__23381;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23382,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23382,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.indent-t{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),self__.relative_to],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),self__.offset],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__23321){\nvar self__ \x3d this;\nvar G__23321__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__23321__$1,6,new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,self__.offset,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (6 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-1602780238 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this23323,other23324){\nvar self__ \x3d this;\nvar this23323__$1 \x3d this;\nreturn (((!((other23324 \x3d\x3d null)))) \x26\x26 ((((this23323__$1.constructor \x3d\x3d\x3d other23324.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.type_tag,other23324.type_tag)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.logical_block,other23324.logical_block)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.relative_to,other23324.relative_to)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.offset,other23324.offset)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.start_pos,other23324.start_pos)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.end_pos,other23324.end_pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this23323__$1.__extmap,other23324.__extmap)))))))))))))))));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),null,new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),null,new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),null,new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),null,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),null,new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,self__.offset,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k23322){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__23452 \x3d k23322;\nvar G__23452__$1 \x3d (((G__23452 instanceof cljs.core.Keyword))?G__23452.fqn:null);\nswitch (G__23452__$1) {\ncase \x22type-tag\x22:\ncase \x22logical-block\x22:\ncase \x22relative-to\x22:\ncase \x22offset\x22:\ncase \x22start-pos\x22:\ncase \x22end-pos\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k23322);\n\n}\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__23321){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__23461 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__23462 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__23461.cljs$core$IFn$_invoke$arity$2 ? pred__23461.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__23462) : pred__23461.call(null, new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),expr__23462)))){\nreturn (new cljs.pprint.indent_t(G__23321,self__.logical_block,self__.relative_to,self__.offset,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23461.cljs$core$IFn$_invoke$arity$2 ? pred__23461.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__23462) : pred__23461.call(null, new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),expr__23462)))){\nreturn (new cljs.pprint.indent_t(self__.type_tag,G__23321,self__.relative_to,self__.offset,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23461.cljs$core$IFn$_invoke$arity$2 ? pred__23461.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),expr__23462) : pred__23461.call(null, new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),expr__23462)))){\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,G__23321,self__.offset,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23461.cljs$core$IFn$_invoke$arity$2 ? pred__23461.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),expr__23462) : pred__23461.call(null, new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),expr__23462)))){\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,G__23321,self__.start_pos,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23461.cljs$core$IFn$_invoke$arity$2 ? pred__23461.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__23462) : pred__23461.call(null, new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),expr__23462)))){\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,self__.offset,G__23321,self__.end_pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__23461.cljs$core$IFn$_invoke$arity$2 ? pred__23461.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__23462) : pred__23461.call(null, new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),expr__23462)))){\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,self__.offset,self__.start_pos,G__23321,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,self__.offset,self__.start_pos,self__.end_pos,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__23321),null));\n}\n}\n}\n}\n}\n}\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),self__.type_tag,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),self__.logical_block,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),self__.relative_to,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),self__.offset,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),self__.start_pos,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926),self__.end_pos,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__23321){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.indent_t(self__.type_tag,self__.logical_block,self__.relative_to,self__.offset,self__.start_pos,self__.end_pos,G__23321,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.indent_t.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.indent_t.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22type-tag\x22,\x22type-tag\x22,-233331740,null),new cljs.core.Symbol(null,\x22logical-block\x22,\x22logical-block\x22,1059508963,null),new cljs.core.Symbol(null,\x22relative-to\x22,\x22relative-to\x22,1170431476,null),new cljs.core.Symbol(null,\x22offset\x22,\x22offset\x22,1937029838,null),new cljs.core.Symbol(null,\x22start-pos\x22,\x22start-pos\x22,-1985646683,null),new cljs.core.Symbol(null,\x22end-pos\x22,\x22end-pos\x22,-3352399,null)], null);\n}));\n\n(cljs.pprint.indent_t.cljs$lang$type \x3d true);\n\n(cljs.pprint.indent_t.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/indent-t\x22,null,(1),null));\n}));\n\n(cljs.pprint.indent_t.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/indent-t\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/indent-t.\n */\ncljs.pprint.__GT_indent_t \x3d (function cljs$pprint$__GT_indent_t(type_tag,logical_block,relative_to,offset,start_pos,end_pos){\nreturn (new cljs.pprint.indent_t(type_tag,logical_block,relative_to,offset,start_pos,end_pos,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/indent-t, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_indent_t \x3d (function cljs$pprint$map__GT_indent_t(G__23326){\nvar extmap__5342__auto__ \x3d (function (){var G__23495 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__23326,new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564),new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926)], 0));\nif(cljs.core.record_QMARK_(G__23326)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__23495);\n} else {\nreturn G__23495;\n}\n})();\nreturn (new cljs.pprint.indent_t(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(G__23326),new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(G__23326),new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051).cljs$core$IFn$_invoke$arity$1(G__23326),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(G__23326),new cljs.core.Keyword(null,\x22start-pos\x22,\x22start-pos\x22,668789086).cljs$core$IFn$_invoke$arity$1(G__23326),new cljs.core.Keyword(null,\x22end-pos\x22,\x22end-pos\x22,-1643883926).cljs$core$IFn$_invoke$arity$1(G__23326),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n\ncljs.pprint.make_indent_t \x3d (function cljs$pprint$make_indent_t(logical_block,relative_to,offset,start_pos,end_pos){\nreturn (new cljs.pprint.indent_t(new cljs.core.Keyword(null,\x22indent-t\x22,\x22indent-t\x22,528318969),logical_block,relative_to,offset,start_pos,end_pos,null,null,null));\n});\n\ncljs.pprint.indent_t_QMARK_ \x3d (function cljs$pprint$indent_t_QMARK_(x__21922__auto__){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(x__21922__auto__),new cljs.core.Keyword(null,\x22indent-t\x22,\x22indent-t\x22,528318969));\n});\ncljs.pprint.pp_newline \x3d (function cljs$pprint$pp_newline(){\nreturn \x22\\n\x22;\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint.write_token !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.pprint.write_token \x3d (function (){var method_table__5599__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5600__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5601__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5602__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5603__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__23531 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__23531.cljs$core$IFn$_invoke$arity$0 ? fexpr__23531.cljs$core$IFn$_invoke$arity$0() : fexpr__23531.call(null, ));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.pprint\x22,\x22write-token\x22),(function (p1__23525_SHARP_,p2__23524_SHARP_){\nreturn new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(p2__23524_SHARP_);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5603__auto__,method_table__5599__auto__,prefer_table__5600__auto__,method_cache__5601__auto__,cached_hierarchy__5602__auto__));\n})();\n}\ncljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22start-block-t\x22,\x22start-block-t\x22,-373430594),(function (this$,token){\nvar temp__5804__auto___28248 \x3d new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5804__auto___28248)){\nvar cb_28249 \x3d temp__5804__auto___28248;\n(cb_28249.cljs$core$IFn$_invoke$arity$1 ? cb_28249.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981)) : cb_28249.call(null, new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981)));\n} else {\n}\n\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(token);\nvar temp__5804__auto___28252 \x3d new cljs.core.Keyword(null,\x22prefix\x22,\x22prefix\x22,-265908465).cljs$core$IFn$_invoke$arity$1(lb);\nif(cljs.core.truth_(temp__5804__auto___28252)){\nvar prefix_28255 \x3d temp__5804__auto___28252;\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),prefix_28255);\n} else {\n}\n\nvar col \x3d cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))));\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143).cljs$core$IFn$_invoke$arity$1(lb),col);\n\nreturn cljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125).cljs$core$IFn$_invoke$arity$1(lb),col);\n}));\ncljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22end-block-t\x22,\x22end-block-t\x22,1544648735),(function (this$,token){\nvar temp__5804__auto___28256 \x3d new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5804__auto___28256)){\nvar cb_28257 \x3d temp__5804__auto___28256;\n(cb_28257.cljs$core$IFn$_invoke$arity$1 ? cb_28257.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22end\x22,\x22end\x22,-268185958)) : cb_28257.call(null, new cljs.core.Keyword(null,\x22end\x22,\x22end\x22,-268185958)));\n} else {\n}\n\nvar temp__5804__auto__ \x3d new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(token));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar suffix \x3d temp__5804__auto__;\nreturn cljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),suffix);\n} else {\nreturn null;\n}\n}));\ncljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22indent-t\x22,\x22indent-t\x22,528318969),(function (this$,token){\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(token);\nreturn cljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125).cljs$core$IFn$_invoke$arity$1(lb),(new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(token) + (function (){var pred__23552 \x3d cljs.core._EQ_;\nvar expr__23553 \x3d new cljs.core.Keyword(null,\x22relative-to\x22,\x22relative-to\x22,-470100051).cljs$core$IFn$_invoke$arity$1(token);\nif(cljs.core.truth_((pred__23552.cljs$core$IFn$_invoke$arity$2 ? pred__23552.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),expr__23553) : pred__23552.call(null, new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),expr__23553)))){\nreturn cljs.core.deref(new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143).cljs$core$IFn$_invoke$arity$1(lb));\n} else {\nif(cljs.core.truth_((pred__23552.cljs$core$IFn$_invoke$arity$2 ? pred__23552.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22current\x22,\x22current\x22,-1088038603),expr__23553) : pred__23552.call(null, new cljs.core.Keyword(null,\x22current\x22,\x22current\x22,-1088038603),expr__23553)))){\nreturn cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__23553)].join(\x27\x27)));\n}\n}\n})()));\n}));\ncljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22buffer-blob\x22,\x22buffer-blob\x22,-1830112173),(function (this$,token){\nreturn cljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(token));\n}));\ncljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22nl-t\x22,\x22nl-t\x22,-1608382114),(function (this$,token){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,\x22mandatory\x22,\x22mandatory\x22,542802336));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d (!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889))));\nif(and__5000__auto__){\nreturn cljs.core.deref(new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(token)));\n} else {\nreturn and__5000__auto__;\n}\n}\n})())){\n(cljs.pprint.emit_nl.cljs$core$IFn$_invoke$arity$2 ? cljs.pprint.emit_nl.cljs$core$IFn$_invoke$arity$2(this$,token) : cljs.pprint.emit_nl.call(null, this$,token));\n} else {\nvar temp__5802__auto___28286 \x3d new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5802__auto___28286)){\nvar tws_28291 \x3d temp__5802__auto___28286;\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),tws_28291);\n} else {\n}\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),null);\n}));\ncljs.pprint.write_tokens \x3d (function cljs$pprint$write_tokens(this$,tokens,force_trailing_whitespace){\nvar seq__23571 \x3d cljs.core.seq(tokens);\nvar chunk__23572 \x3d null;\nvar count__23573 \x3d (0);\nvar i__23574 \x3d (0);\nwhile(true){\nif((i__23574 \x3c count__23573)){\nvar token \x3d chunk__23572.cljs$core$IIndexed$_nth$arity$2(null, i__23574);\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,\x22nl-t\x22,\x22nl-t\x22,-1608382114))))){\nvar temp__5802__auto___28296 \x3d new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5802__auto___28296)){\nvar tws_28297 \x3d temp__5802__auto___28296;\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),tws_28297);\n} else {\n}\n} else {\n}\n\ncljs.pprint.write_token.cljs$core$IFn$_invoke$arity$2(this$,token);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(token));\n\nvar tws_28299 \x3d new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d force_trailing_whitespace;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn tws_28299;\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),tws_28299);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),null);\n} else {\n}\n\n\nvar G__28302 \x3d seq__23571;\nvar G__28303 \x3d chunk__23572;\nvar G__28304 \x3d count__23573;\nvar G__28305 \x3d (i__23574 + (1));\nseq__23571 \x3d G__28302;\nchunk__23572 \x3d G__28303;\ncount__23573 \x3d G__28304;\ni__23574 \x3d G__28305;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__23571);\nif(temp__5804__auto__){\nvar seq__23571__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__23571__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__23571__$1);\nvar G__28306 \x3d cljs.core.chunk_rest(seq__23571__$1);\nvar G__28307 \x3d c__5525__auto__;\nvar G__28308 \x3d cljs.core.count(c__5525__auto__);\nvar G__28309 \x3d (0);\nseq__23571 \x3d G__28306;\nchunk__23572 \x3d G__28307;\ncount__23573 \x3d G__28308;\ni__23574 \x3d G__28309;\ncontinue;\n} else {\nvar token \x3d cljs.core.first(seq__23571__$1);\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22type-tag\x22,\x22type-tag\x22,-1873863267).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,\x22nl-t\x22,\x22nl-t\x22,-1608382114))))){\nvar temp__5802__auto___28310 \x3d new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5802__auto___28310)){\nvar tws_28311 \x3d temp__5802__auto___28310;\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),tws_28311);\n} else {\n}\n} else {\n}\n\ncljs.pprint.write_token.cljs$core$IFn$_invoke$arity$2(this$,token);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(token));\n\nvar tws_28313 \x3d new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d force_trailing_whitespace;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn tws_28313;\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),tws_28313);\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),null);\n} else {\n}\n\n\nvar G__28317 \x3d cljs.core.next(seq__23571__$1);\nvar G__28318 \x3d null;\nvar G__28319 \x3d (0);\nvar G__28320 \x3d (0);\nseq__23571 \x3d G__28317;\nchunk__23572 \x3d G__28318;\ncount__23573 \x3d G__28319;\ni__23574 \x3d G__28320;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\ncljs.pprint.tokens_fit_QMARK_ \x3d (function cljs$pprint$tokens_fit_QMARK_(this$,tokens){\nvar maxcol \x3d cljs.pprint.get_max_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))));\nreturn (((maxcol \x3d\x3d null)) || (((cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)))) + cljs.pprint.buffer_length(tokens)) \x3c maxcol)));\n});\ncljs.pprint.linear_nl_QMARK_ \x3d (function cljs$pprint$linear_nl_QMARK_(this$,lb,section){\nvar or__5002__auto__ \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340).cljs$core$IFn$_invoke$arity$1(lb));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (!(cljs.pprint.tokens_fit_QMARK_(this$,section)));\n}\n});\ncljs.pprint.miser_nl_QMARK_ \x3d (function cljs$pprint$miser_nl_QMARK_(this$,lb,section){\nvar miser_width \x3d cljs.pprint.get_miser_width(this$);\nvar maxcol \x3d cljs.pprint.get_max_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))));\nvar and__5000__auto__ \x3d miser_width;\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d maxcol;\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d (cljs.core.deref(new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143).cljs$core$IFn$_invoke$arity$1(lb)) \x3e\x3d (maxcol - miser_width));\nif(and__5000__auto____$2){\nreturn cljs.pprint.linear_nl_QMARK_(this$,lb,section);\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint.emit_nl_QMARK_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.pprint.emit_nl_QMARK_ \x3d (function (){var method_table__5599__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5600__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5601__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5602__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5603__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__23675 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__23675.cljs$core$IFn$_invoke$arity$0 ? fexpr__23675.cljs$core$IFn$_invoke$arity$0() : fexpr__23675.call(null, ));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.pprint\x22,\x22emit-nl?\x22),(function (t,_,___$1,___$2){\nreturn new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348).cljs$core$IFn$_invoke$arity$1(t);\n}),new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5603__auto__,method_table__5599__auto__,prefer_table__5600__auto__,method_cache__5601__auto__,cached_hierarchy__5602__auto__));\n})();\n}\ncljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697),(function (newl,this$,section,_){\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(newl);\nreturn cljs.pprint.linear_nl_QMARK_(this$,lb,section);\n}));\ncljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22miser\x22,\x22miser\x22,-556060186),(function (newl,this$,section,_){\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(newl);\nreturn cljs.pprint.miser_nl_QMARK_(this$,lb,section);\n}));\ncljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),(function (newl,this$,section,subsection){\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(newl);\nvar or__5002__auto__ \x3d cljs.core.deref(new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875).cljs$core$IFn$_invoke$arity$1(lb));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (!(cljs.pprint.tokens_fit_QMARK_(this$,subsection)));\nif(or__5002__auto____$1){\nreturn or__5002__auto____$1;\n} else {\nreturn cljs.pprint.miser_nl_QMARK_(this$,lb,section);\n}\n}\n}));\ncljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null, new cljs.core.Keyword(null,\x22mandatory\x22,\x22mandatory\x22,542802336),(function (_,___$1,___$2,___$3){\nreturn true;\n}));\ncljs.pprint.get_section \x3d (function cljs$pprint$get_section(buffer){\nvar nl \x3d cljs.core.first(buffer);\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(nl);\nvar section \x3d cljs.core.seq(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((function (p1__23701_SHARP_){\nreturn (!(((cljs.pprint.nl_t_QMARK_(p1__23701_SHARP_)) \x26\x26 (cljs.pprint.ancestor_QMARK_(new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(p1__23701_SHARP_),lb)))));\n}),cljs.core.next(buffer)));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [section,cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2((cljs.core.count(section) + (1)),buffer))], null);\n});\ncljs.pprint.get_sub_section \x3d (function cljs$pprint$get_sub_section(buffer){\nvar nl \x3d cljs.core.first(buffer);\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(nl);\nvar section \x3d cljs.core.seq(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((function (p1__23773_SHARP_){\nvar nl_lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(p1__23773_SHARP_);\nreturn (!(((cljs.pprint.nl_t_QMARK_(p1__23773_SHARP_)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(nl_lb,lb)) || (cljs.pprint.ancestor_QMARK_(nl_lb,lb)))))));\n}),cljs.core.next(buffer)));\nreturn section;\n});\ncljs.pprint.update_nl_state \x3d (function cljs$pprint$update_nl_state(lb){\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875).cljs$core$IFn$_invoke$arity$1(lb),true);\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340).cljs$core$IFn$_invoke$arity$1(lb),true);\n\nvar lb__$1 \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(lb);\nwhile(true){\nif(cljs.core.truth_(lb__$1)){\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22done-nl\x22,\x22done-nl\x22,-381024340).cljs$core$IFn$_invoke$arity$1(lb__$1),true);\n\ncljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22intra-block-nl\x22,\x22intra-block-nl\x22,1808826875).cljs$core$IFn$_invoke$arity$1(lb__$1),true);\n\nvar G__28339 \x3d new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(lb__$1);\nlb__$1 \x3d G__28339;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n});\ncljs.pprint.emit_nl \x3d (function cljs$pprint$emit_nl(this$,nl){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),cljs.pprint.pp_newline());\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),null);\n\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-block\x22,\x22logical-block\x22,-581022564).cljs$core$IFn$_invoke$arity$1(nl);\nvar prefix \x3d new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813).cljs$core$IFn$_invoke$arity$1(lb);\nif(cljs.core.truth_(prefix)){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),prefix);\n} else {\n}\n\nvar istr_28342 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((cljs.core.deref(new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125).cljs$core$IFn$_invoke$arity$1(lb)) - cljs.core.count(prefix)),\x22 \x22));\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),istr_28342);\n\nreturn cljs.pprint.update_nl_state(lb);\n});\ncljs.pprint.split_at_newline \x3d (function cljs$pprint$split_at_newline(tokens){\nvar pre \x3d cljs.core.seq(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((function (p1__23816_SHARP_){\nreturn (!(cljs.pprint.nl_t_QMARK_(p1__23816_SHARP_)));\n}),tokens));\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [pre,cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(pre),tokens))], null);\n});\ncljs.pprint.write_token_string \x3d (function cljs$pprint$write_token_string(this$,tokens){\nvar vec__23875 \x3d cljs.pprint.split_at_newline(tokens);\nvar a \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23875,(0),null);\nvar b \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23875,(1),null);\nif(cljs.core.truth_(a)){\ncljs.pprint.write_tokens(this$,a,false);\n} else {\n}\n\nif(cljs.core.truth_(b)){\nvar vec__23879 \x3d cljs.pprint.get_section(b);\nvar section \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23879,(0),null);\nvar remainder \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23879,(1),null);\nvar newl \x3d cljs.core.first(b);\nvar do_nl \x3d cljs.pprint.emit_nl_QMARK_.cljs$core$IFn$_invoke$arity$4(newl,this$,section,cljs.pprint.get_sub_section(b));\nvar result \x3d (cljs.core.truth_(do_nl)?(function (){\ncljs.pprint.emit_nl(this$,newl);\n\nreturn cljs.core.next(b);\n})()\n:b);\nvar long_section \x3d (!(cljs.pprint.tokens_fit_QMARK_(this$,result)));\nvar result__$1 \x3d ((long_section)?(function (){var rem2 \x3d (cljs.pprint.write_token_string.cljs$core$IFn$_invoke$arity$2 ? cljs.pprint.write_token_string.cljs$core$IFn$_invoke$arity$2(this$,section) : cljs.pprint.write_token_string.call(null, this$,section));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(rem2,section)){\ncljs.pprint.write_tokens(this$,section,false);\n\nreturn remainder;\n} else {\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(rem2,remainder));\n}\n})():result);\nreturn result__$1;\n} else {\nreturn null;\n}\n});\ncljs.pprint.write_line \x3d (function cljs$pprint$write_line(this$){\nvar buffer \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nwhile(true){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,buffer));\n\nif((!(cljs.pprint.tokens_fit_QMARK_(this$,buffer)))){\nvar new_buffer \x3d cljs.pprint.write_token_string(this$,buffer);\nif((!((buffer \x3d\x3d\x3d new_buffer)))){\nvar G__28345 \x3d new_buffer;\nbuffer \x3d G__28345;\ncontinue;\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});\ncljs.pprint.add_to_buffer \x3d (function cljs$pprint$add_to_buffer(this$,token){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),token));\n\nif((!(cljs.pprint.tokens_fit_QMARK_(this$,new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))))))){\nreturn cljs.pprint.write_line(this$);\n} else {\nreturn null;\n}\n});\ncljs.pprint.write_buffered_output \x3d (function cljs$pprint$write_buffered_output(this$){\ncljs.pprint.write_line(this$);\n\nvar temp__5802__auto__ \x3d new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar buf \x3d temp__5802__auto__;\ncljs.pprint.write_tokens(this$,buf,true);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198),cljs.core.PersistentVector.EMPTY);\n} else {\nreturn null;\n}\n});\ncljs.pprint.write_white_space \x3d (function cljs$pprint$write_white_space(this$){\nvar temp__5804__auto__ \x3d new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar tws \x3d temp__5804__auto__;\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),tws);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),null);\n} else {\nreturn null;\n}\n});\ncljs.pprint.write_initial_lines \x3d (function cljs$pprint$write_initial_lines(this$,s){\nvar lines \x3d clojure.string.split.cljs$core$IFn$_invoke$arity$3(s,\x22\\n\x22,(-1));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(lines),(1))){\nreturn s;\n} else {\nvar prefix \x3d new cljs.core.Keyword(null,\x22per-line-prefix\x22,\x22per-line-prefix\x22,846941813).cljs$core$IFn$_invoke$arity$1(cljs.core.first(new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)))));\nvar l \x3d cljs.core.first(lines);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22buffering\x22,\x22buffering\x22,-876713613),new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))))){\nvar oldpos_28347 \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nvar newpos_28348 \x3d (oldpos_28347 + cljs.core.count(l));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),newpos_28348);\n\ncljs.pprint.add_to_buffer(this$,cljs.pprint.make_buffer_blob(l,null,oldpos_28347,newpos_28348));\n\ncljs.pprint.write_buffered_output(this$);\n} else {\ncljs.pprint.write_white_space(this$);\n\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),l);\n}\n\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),\x22\\n\x22);\n\nvar seq__23989_28351 \x3d cljs.core.seq(cljs.core.next(cljs.core.butlast(lines)));\nvar chunk__23990_28352 \x3d null;\nvar count__23991_28353 \x3d (0);\nvar i__23992_28354 \x3d (0);\nwhile(true){\nif((i__23992_28354 \x3c count__23991_28353)){\nvar l_28356__$1 \x3d chunk__23990_28352.cljs$core$IIndexed$_nth$arity$2(null, i__23992_28354);\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),l_28356__$1);\n\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),cljs.pprint.pp_newline());\n\nif(cljs.core.truth_(prefix)){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),prefix);\n} else {\n}\n\n\nvar G__28357 \x3d seq__23989_28351;\nvar G__28358 \x3d chunk__23990_28352;\nvar G__28359 \x3d count__23991_28353;\nvar G__28360 \x3d (i__23992_28354 + (1));\nseq__23989_28351 \x3d G__28357;\nchunk__23990_28352 \x3d G__28358;\ncount__23991_28353 \x3d G__28359;\ni__23992_28354 \x3d G__28360;\ncontinue;\n} else {\nvar temp__5804__auto___28361 \x3d cljs.core.seq(seq__23989_28351);\nif(temp__5804__auto___28361){\nvar seq__23989_28362__$1 \x3d temp__5804__auto___28361;\nif(cljs.core.chunked_seq_QMARK_(seq__23989_28362__$1)){\nvar c__5525__auto___28363 \x3d cljs.core.chunk_first(seq__23989_28362__$1);\nvar G__28364 \x3d cljs.core.chunk_rest(seq__23989_28362__$1);\nvar G__28365 \x3d c__5525__auto___28363;\nvar G__28366 \x3d cljs.core.count(c__5525__auto___28363);\nvar G__28367 \x3d (0);\nseq__23989_28351 \x3d G__28364;\nchunk__23990_28352 \x3d G__28365;\ncount__23991_28353 \x3d G__28366;\ni__23992_28354 \x3d G__28367;\ncontinue;\n} else {\nvar l_28368__$1 \x3d cljs.core.first(seq__23989_28362__$1);\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),l_28368__$1);\n\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),cljs.pprint.pp_newline());\n\nif(cljs.core.truth_(prefix)){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),prefix);\n} else {\n}\n\n\nvar G__28372 \x3d cljs.core.next(seq__23989_28362__$1);\nvar G__28373 \x3d null;\nvar G__28374 \x3d (0);\nvar G__28375 \x3d (0);\nseq__23989_28351 \x3d G__28372;\nchunk__23990_28352 \x3d G__28373;\ncount__23991_28353 \x3d G__28374;\ni__23992_28354 \x3d G__28375;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22buffering\x22,\x22buffering\x22,-876713613),new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108));\n\nreturn cljs.core.last(lines);\n}\n});\ncljs.pprint.p_write_char \x3d (function cljs$pprint$p_write_char(this$,c){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108))){\ncljs.pprint.write_white_space(this$);\n\nreturn cljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),c);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,\x22\\n\x22)){\nreturn cljs.pprint.write_initial_lines(this$,\x22\\n\x22);\n} else {\nvar oldpos \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nvar newpos \x3d (oldpos + (1));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),newpos);\n\nreturn cljs.pprint.add_to_buffer(this$,cljs.pprint.make_buffer_blob(cljs.core.char$(c),null,oldpos,newpos));\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.pprint.IPrettyFlush}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.pprint.t_cljs$pprint24196 \x3d (function (writer,max_columns,miser_width,lb,fields,meta24197){\nthis.writer \x3d writer;\nthis.max_columns \x3d max_columns;\nthis.miser_width \x3d miser_width;\nthis.lb \x3d lb;\nthis.fields \x3d fields;\nthis.meta24197 \x3d meta24197;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1074167808;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24198,meta24197__$1){\nvar self__ \x3d this;\nvar _24198__$1 \x3d this;\nreturn (new cljs.pprint.t_cljs$pprint24196(self__.writer,self__.max_columns,self__.miser_width,self__.lb,self__.fields,meta24197__$1));\n}));\n\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24198){\nvar self__ \x3d this;\nvar _24198__$1 \x3d this;\nreturn self__.meta24197;\n}));\n\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.fields;\n}));\n\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (this$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar pred__24212 \x3d cljs.core._EQ_;\nvar expr__24213 \x3d cljs.core.type(x);\nif(cljs.core.truth_((pred__24212.cljs$core$IFn$_invoke$arity$2 ? pred__24212.cljs$core$IFn$_invoke$arity$2(String,expr__24213) : pred__24212.call(null, String,expr__24213)))){\nvar s0 \x3d cljs.pprint.write_initial_lines(this$__$1,x);\nvar s \x3d clojure.string.replace_first(s0,/\\s+$/,\x22\x22);\nvar white_space \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s0,((s).length));\nvar mode \x3d new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$__$1)));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(mode,new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108))){\ncljs.pprint.write_white_space(this$__$1);\n\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$__$1))),s);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$__$1),cljs.core.assoc,new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),white_space);\n} else {\nvar oldpos \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$__$1)));\nvar newpos \x3d (oldpos + cljs.core.count(s0));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$__$1),cljs.core.assoc,new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),newpos);\n\nreturn cljs.pprint.add_to_buffer(this$__$1,cljs.pprint.make_buffer_blob(s,white_space,oldpos,newpos));\n}\n} else {\nif(cljs.core.truth_((pred__24212.cljs$core$IFn$_invoke$arity$2 ? pred__24212.cljs$core$IFn$_invoke$arity$2(Number,expr__24213) : pred__24212.call(null, Number,expr__24213)))){\nreturn cljs.pprint.p_write_char(this$__$1,x);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__24213)].join(\x27\x27)));\n}\n}\n}));\n\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nthis$__$1.cljs$pprint$IPrettyFlush$_ppflush$arity$1(null, );\n\nreturn cljs.core._flush(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$__$1))));\n}));\n\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$pprint$IPrettyFlush$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.pprint.t_cljs$pprint24196.prototype.cljs$pprint$IPrettyFlush$_ppflush$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$__$1))),new cljs.core.Keyword(null,\x22buffering\x22,\x22buffering\x22,-876713613))){\ncljs.pprint.write_tokens(this$__$1,new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$__$1))),true);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$__$1),cljs.core.assoc,new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198),cljs.core.PersistentVector.EMPTY);\n} else {\nreturn cljs.pprint.write_white_space(this$__$1);\n}\n}));\n\n(cljs.pprint.t_cljs$pprint24196.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22writer\x22,\x22writer\x22,1362963291,null),new cljs.core.Symbol(null,\x22max-columns\x22,\x22max-columns\x22,-912112507,null),new cljs.core.Symbol(null,\x22miser-width\x22,\x22miser-width\x22,330482090,null),new cljs.core.Symbol(null,\x22lb\x22,\x22lb\x22,950310490,null),new cljs.core.Symbol(null,\x22fields\x22,\x22fields\x22,-291534703,null),new cljs.core.Symbol(null,\x22meta24197\x22,\x22meta24197\x22,-763818827,null)], null);\n}));\n\n(cljs.pprint.t_cljs$pprint24196.cljs$lang$type \x3d true);\n\n(cljs.pprint.t_cljs$pprint24196.cljs$lang$ctorStr \x3d \x22cljs.pprint/t_cljs$pprint24196\x22);\n\n(cljs.pprint.t_cljs$pprint24196.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.pprint/t_cljs$pprint24196\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/t_cljs$pprint24196.\n */\ncljs.pprint.__GT_t_cljs$pprint24196 \x3d (function cljs$pprint$__GT_t_cljs$pprint24196(writer,max_columns,miser_width,lb,fields,meta24197){\nreturn (new cljs.pprint.t_cljs$pprint24196(writer,max_columns,miser_width,lb,fields,meta24197));\n});\n\n\ncljs.pprint.pretty_writer \x3d (function cljs$pprint$pretty_writer(writer,max_columns,miser_width){\nvar lb \x3d (new cljs.pprint.logical_block(null,null,cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false),null,null,null,null,null,null,null));\nvar fields \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776),new cljs.core.Keyword(null,\x22miser-width\x22,\x22miser-width\x22,-1310049437),new cljs.core.Keyword(null,\x22buffer-block\x22,\x22buffer-block\x22,-10937307),new cljs.core.Keyword(null,\x22pretty-writer\x22,\x22pretty-writer\x22,-1222834267),new cljs.core.Keyword(null,\x22sections\x22,\x22sections\x22,-886710106),new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691),new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),new cljs.core.Keyword(null,\x22trailing-white-space\x22,\x22trailing-white-space\x22,1496006996),new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322),new cljs.core.Keyword(null,\x22buffer-level\x22,\x22buffer-level\x22,928864731),new cljs.core.Keyword(null,\x22buffer\x22,\x22buffer\x22,617295198)],[lb,miser_width,lb,true,null,new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108),(0),null,cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2(writer,max_columns),(1),cljs.core.PersistentVector.EMPTY]));\nreturn (new cljs.pprint.t_cljs$pprint24196(writer,max_columns,miser_width,lb,fields,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.pprint.start_block \x3d (function cljs$pprint$start_block(this$,prefix,per_line_prefix,suffix){\nvar lb \x3d (new cljs.pprint.logical_block(new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),null,cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false),prefix,per_line_prefix,suffix,null,null,null,null));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776),lb);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108))){\ncljs.pprint.write_white_space(this$);\n\nvar temp__5804__auto___28382 \x3d new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5804__auto___28382)){\nvar cb_28383 \x3d temp__5804__auto___28382;\n(cb_28383.cljs$core$IFn$_invoke$arity$1 ? cb_28383.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981)) : cb_28383.call(null, new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981)));\n} else {\n}\n\nif(cljs.core.truth_(prefix)){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),prefix);\n} else {\n}\n\nvar col \x3d cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))));\ncljs.core.reset_BANG_(lb.start_col,col);\n\nreturn cljs.core.reset_BANG_(lb.indent,col);\n} else {\nvar oldpos \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nvar newpos \x3d (oldpos + (cljs.core.truth_(prefix)?cljs.core.count(prefix):(0)));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),newpos);\n\nreturn cljs.pprint.add_to_buffer(this$,cljs.pprint.make_start_block_t(lb,oldpos,newpos));\n}\n});\ncljs.pprint.end_block \x3d (function cljs$pprint$end_block(this$){\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nvar suffix \x3d new cljs.core.Keyword(null,\x22suffix\x22,\x22suffix\x22,367373057).cljs$core$IFn$_invoke$arity$1(lb);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108))){\ncljs.pprint.write_white_space(this$);\n\nif(cljs.core.truth_(suffix)){\ncljs.core._write(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),suffix);\n} else {\n}\n\nvar temp__5804__auto___28384 \x3d new cljs.core.Keyword(null,\x22logical-block-callback\x22,\x22logical-block-callback\x22,1612691194).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core.truth_(temp__5804__auto___28384)){\nvar cb_28386 \x3d temp__5804__auto___28384;\n(cb_28386.cljs$core$IFn$_invoke$arity$1 ? cb_28386.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22end\x22,\x22end\x22,-268185958)) : cb_28386.call(null, new cljs.core.Keyword(null,\x22end\x22,\x22end\x22,-268185958)));\n} else {\n}\n} else {\nvar oldpos_28387 \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nvar newpos_28388 \x3d (oldpos_28387 + (cljs.core.truth_(suffix)?cljs.core.count(suffix):(0)));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),newpos_28388);\n\ncljs.pprint.add_to_buffer(this$,cljs.pprint.make_end_block_t(lb,oldpos_28387,newpos_28388));\n}\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776),new cljs.core.Keyword(null,\x22parent\x22,\x22parent\x22,-878878779).cljs$core$IFn$_invoke$arity$1(lb));\n});\ncljs.pprint.nl \x3d (function cljs$pprint$nl(this$,type){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this$),cljs.core.assoc,new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691),new cljs.core.Keyword(null,\x22buffering\x22,\x22buffering\x22,-876713613));\n\nvar pos \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nreturn cljs.pprint.add_to_buffer(this$,cljs.pprint.make_nl_t(type,new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),pos,pos));\n});\ncljs.pprint.indent \x3d (function cljs$pprint$indent(this$,relative_to,offset){\nvar lb \x3d new cljs.core.Keyword(null,\x22logical-blocks\x22,\x22logical-blocks\x22,-1466339776).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22mode\x22,\x22mode\x22,654403691).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))),new cljs.core.Keyword(null,\x22writing\x22,\x22writing\x22,-1486865108))){\ncljs.pprint.write_white_space(this$);\n\nreturn cljs.core.reset_BANG_(new cljs.core.Keyword(null,\x22indent\x22,\x22indent\x22,-148200125).cljs$core$IFn$_invoke$arity$1(lb),(offset + (function (){var pred__24342 \x3d cljs.core._EQ_;\nvar expr__24343 \x3d relative_to;\nif(cljs.core.truth_((pred__24342.cljs$core$IFn$_invoke$arity$2 ? pred__24342.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),expr__24343) : pred__24342.call(null, new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),expr__24343)))){\nreturn cljs.core.deref(new cljs.core.Keyword(null,\x22start-col\x22,\x22start-col\x22,668080143).cljs$core$IFn$_invoke$arity$1(lb));\n} else {\nif(cljs.core.truth_((pred__24342.cljs$core$IFn$_invoke$arity$2 ? pred__24342.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22current\x22,\x22current\x22,-1088038603),expr__24343) : pred__24342.call(null, new cljs.core.Keyword(null,\x22current\x22,\x22current\x22,-1088038603),expr__24343)))){\nreturn cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$))));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__24343)].join(\x27\x27)));\n}\n}\n})()));\n} else {\nvar pos \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\nreturn cljs.pprint.add_to_buffer(this$,cljs.pprint.make_indent_t(lb,relative_to,offset,pos,pos));\n}\n});\ncljs.pprint.get_miser_width \x3d (function cljs$pprint$get_miser_width(this$){\nreturn new cljs.core.Keyword(null,\x22miser-width\x22,\x22miser-width\x22,-1310049437).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this$)));\n});\n/**\n * Bind to true if you want write to use pretty printing\n */\ncljs.pprint._STAR_print_pretty_STAR_ \x3d true;\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint._STAR_print_pprint_dispatch_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * The pretty print dispatch function. Use with-pprint-dispatch or\n * set-pprint-dispatch to modify.\n */\ncljs.pprint._STAR_print_pprint_dispatch_STAR_ \x3d null;\n}\n/**\n * Pretty printing will try to avoid anything going beyond this column.\n * Set it to nil to have pprint let the line be arbitrarily long. This will ignore all\n * non-mandatory newlines.\n */\ncljs.pprint._STAR_print_right_margin_STAR_ \x3d (72);\n/**\n * The column at which to enter miser style. Depending on the dispatch table,\n * miser style add newlines in more places to try to keep lines short allowing for further\n * levels of nesting.\n */\ncljs.pprint._STAR_print_miser_width_STAR_ \x3d (40);\n/**\n * Maximum number of lines to print in a pretty print instance (N.B. This is not yet used)\n */\ncljs.pprint._STAR_print_lines_STAR_ \x3d null;\n/**\n * Mark circular structures (N.B. This is not yet used)\n */\ncljs.pprint._STAR_print_circle_STAR_ \x3d null;\n/**\n * Mark repeated structures rather than repeat them (N.B. This is not yet used)\n */\ncljs.pprint._STAR_print_shared_STAR_ \x3d null;\n/**\n * Don\x27t print namespaces with symbols. This is particularly useful when\n * pretty printing the results of macro expansions\n */\ncljs.pprint._STAR_print_suppress_namespaces_STAR_ \x3d null;\n/**\n * Print a radix specifier in front of integers and rationals. If *print-base* is 2, 8,\n * or 16, then the radix specifier used is #b, #o, or #x, respectively. Otherwise the\n * radix specifier is in the form #XXr where XX is the decimal value of *print-base* \n */\ncljs.pprint._STAR_print_radix_STAR_ \x3d null;\n/**\n * The base to use for printing integers and rationals.\n */\ncljs.pprint._STAR_print_base_STAR_ \x3d (10);\ncljs.pprint._STAR_current_level_STAR_ \x3d (0);\ncljs.pprint._STAR_current_length_STAR_ \x3d null;\ncljs.pprint.table_ize \x3d (function cljs$pprint$table_ize(t,m){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p1__24381_SHARP_){\nvar temp__5804__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(t,cljs.core.key(p1__24381_SHARP_));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar v \x3d temp__5804__auto__;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,cljs.core.val(p1__24381_SHARP_)], null);\n} else {\nreturn null;\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([m], 0)));\n});\n/**\n * Return true iff x is a PrettyWriter\n */\ncljs.pprint.pretty_writer_QMARK_ \x3d (function cljs$pprint$pretty_writer_QMARK_(x){\nvar and__5000__auto__ \x3d (((!((x \x3d\x3d null))))?(((((x.cljs$lang$protocol_mask$partition0$ \x26 (32768))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$core$IDeref$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,x));\nif(and__5000__auto__){\nreturn new cljs.core.Keyword(null,\x22pretty-writer\x22,\x22pretty-writer\x22,-1222834267).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(x)));\n} else {\nreturn and__5000__auto__;\n}\n});\n/**\n * Wrap base-writer in a PrettyWriter with the specified right-margin and miser-width\n */\ncljs.pprint.make_pretty_writer \x3d (function cljs$pprint$make_pretty_writer(base_writer,right_margin,miser_width){\nreturn cljs.pprint.pretty_writer(base_writer,right_margin,miser_width);\n});\n/**\n * Write an object to *out* subject to the current bindings of the printer control\n * variables. Use the kw-args argument to override individual variables for this call (and\n * any recursive calls).\n * \n * *out* must be a PrettyWriter if pretty printing is enabled. This is the responsibility\n * of the caller.\n * \n * This method is primarily intended for use by pretty print dispatch functions that\n * already know that the pretty printer will have set up their environment appropriately.\n * Normal library clients should use the standard \x22write\x22 interface. \n */\ncljs.pprint.write_out \x3d (function cljs$pprint$write_out(object){\nvar length_reached \x3d (function (){var and__5000__auto__ \x3d cljs.pprint._STAR_current_length_STAR_;\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d cljs.core._STAR_print_length_STAR_;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn (cljs.pprint._STAR_current_length_STAR_ \x3e\x3d cljs.core._STAR_print_length_STAR_);\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.not(cljs.pprint._STAR_print_pretty_STAR_)){\ncljs.pprint.pr.call(null, object);\n} else {\nif(cljs.core.truth_(length_reached)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n} else {\nif(cljs.core.truth_(cljs.pprint._STAR_current_length_STAR_)){\n(cljs.pprint._STAR_current_length_STAR_ \x3d (cljs.pprint._STAR_current_length_STAR_ + (1)));\n} else {\n}\n\ncljs.pprint._STAR_print_pprint_dispatch_STAR_.call(null, object);\n}\n}\n\nreturn length_reached;\n});\n/**\n * Write an object subject to the current bindings of the printer control variables.\n * Use the kw-args argument to override individual variables for this call (and any\n * recursive calls). Returns the string result if :stream is nil or nil otherwise.\n * \n * The following keyword arguments can be passed with values:\n * Keyword Meaning Default value\n * :stream Writer for output or nil true (indicates *out*)\n * :base Base to use for writing rationals Current value of *print-base*\n * :circle* If true, mark circular structures Current value of *print-circle*\n * :length Maximum elements to show in sublists Current value of *print-length*\n * :level Maximum depth Current value of *print-level*\n * :lines* Maximum lines of output Current value of *print-lines*\n * :miser-width Width to enter miser mode Current value of *print-miser-width*\n * :dispatch The pretty print dispatch function Current value of *print-pprint-dispatch*\n * :pretty If true, do pretty printing Current value of *print-pretty*\n * :radix If true, prepend a radix specifier Current value of *print-radix*\n * :readably* If true, print readably Current value of *print-readably*\n * :right-margin The column for the right margin Current value of *print-right-margin*\n * :suppress-namespaces If true, no namespaces in symbols Current value of *print-suppress-namespaces*\n * \n * * \x3d not yet supported\n */\ncljs.pprint.write \x3d (function cljs$pprint$write(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___28400 \x3d arguments.length;\nvar i__5727__auto___28401 \x3d (0);\nwhile(true){\nif((i__5727__auto___28401 \x3c len__5726__auto___28400)){\nargs__5732__auto__.push((arguments[i__5727__auto___28401]));\n\nvar G__28402 \x3d (i__5727__auto___28401 + (1));\ni__5727__auto___28401 \x3d G__28402;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn cljs.pprint.write.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(cljs.pprint.write.cljs$core$IFn$_invoke$arity$variadic \x3d (function (object,kw_args){\nvar options \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22stream\x22,\x22stream\x22,1534941648),true], null),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,kw_args)], 0));\nvar _STAR_print_base_STAR__orig_val__24420 \x3d cljs.pprint._STAR_print_base_STAR_;\nvar _STAR_print_circle_STAR__orig_val__24422 \x3d cljs.pprint._STAR_print_circle_STAR_;\nvar _STAR_print_length_STAR__orig_val__24423 \x3d cljs.core._STAR_print_length_STAR_;\nvar _STAR_print_level_STAR__orig_val__24424 \x3d cljs.core._STAR_print_level_STAR_;\nvar _STAR_print_lines_STAR__orig_val__24425 \x3d cljs.pprint._STAR_print_lines_STAR_;\nvar _STAR_print_miser_width_STAR__orig_val__24426 \x3d cljs.pprint._STAR_print_miser_width_STAR_;\nvar _STAR_print_pprint_dispatch_STAR__orig_val__24427 \x3d cljs.pprint._STAR_print_pprint_dispatch_STAR_;\nvar _STAR_print_pretty_STAR__orig_val__24428 \x3d cljs.pprint._STAR_print_pretty_STAR_;\nvar _STAR_print_radix_STAR__orig_val__24429 \x3d cljs.pprint._STAR_print_radix_STAR_;\nvar _STAR_print_readably_STAR__orig_val__24430 \x3d cljs.core._STAR_print_readably_STAR_;\nvar _STAR_print_right_margin_STAR__orig_val__24431 \x3d cljs.pprint._STAR_print_right_margin_STAR_;\nvar _STAR_print_suppress_namespaces_STAR__orig_val__24432 \x3d cljs.pprint._STAR_print_suppress_namespaces_STAR_;\nvar _STAR_print_base_STAR__temp_val__24433 \x3d new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_base_STAR_);\nvar _STAR_print_circle_STAR__temp_val__24434 \x3d new cljs.core.Keyword(null,\x22circle\x22,\x22circle\x22,1903212362).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_circle_STAR_);\nvar _STAR_print_length_STAR__temp_val__24435 \x3d new cljs.core.Keyword(null,\x22length\x22,\x22length\x22,588987862).cljs$core$IFn$_invoke$arity$2(options,cljs.core._STAR_print_length_STAR_);\nvar _STAR_print_level_STAR__temp_val__24436 \x3d new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552).cljs$core$IFn$_invoke$arity$2(options,cljs.core._STAR_print_level_STAR_);\nvar _STAR_print_lines_STAR__temp_val__24437 \x3d new cljs.core.Keyword(null,\x22lines\x22,\x22lines\x22,-700165781).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_lines_STAR_);\nvar _STAR_print_miser_width_STAR__temp_val__24438 \x3d new cljs.core.Keyword(null,\x22miser-width\x22,\x22miser-width\x22,-1310049437).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_miser_width_STAR_);\nvar _STAR_print_pprint_dispatch_STAR__temp_val__24439 \x3d new cljs.core.Keyword(null,\x22dispatch\x22,\x22dispatch\x22,1319337009).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_pprint_dispatch_STAR_);\nvar _STAR_print_pretty_STAR__temp_val__24440 \x3d new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_pretty_STAR_);\nvar _STAR_print_radix_STAR__temp_val__24441 \x3d new cljs.core.Keyword(null,\x22radix\x22,\x22radix\x22,857016463).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_radix_STAR_);\nvar _STAR_print_readably_STAR__temp_val__24442 \x3d new cljs.core.Keyword(null,\x22readably\x22,\x22readably\x22,1129599760).cljs$core$IFn$_invoke$arity$2(options,cljs.core._STAR_print_readably_STAR_);\nvar _STAR_print_right_margin_STAR__temp_val__24443 \x3d new cljs.core.Keyword(null,\x22right-margin\x22,\x22right-margin\x22,-810413306).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_right_margin_STAR_);\nvar _STAR_print_suppress_namespaces_STAR__temp_val__24444 \x3d new cljs.core.Keyword(null,\x22suppress-namespaces\x22,\x22suppress-namespaces\x22,2130686956).cljs$core$IFn$_invoke$arity$2(options,cljs.pprint._STAR_print_suppress_namespaces_STAR_);\n(cljs.pprint._STAR_print_base_STAR_ \x3d _STAR_print_base_STAR__temp_val__24433);\n\n(cljs.pprint._STAR_print_circle_STAR_ \x3d _STAR_print_circle_STAR__temp_val__24434);\n\n(cljs.core._STAR_print_length_STAR_ \x3d _STAR_print_length_STAR__temp_val__24435);\n\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__temp_val__24436);\n\n(cljs.pprint._STAR_print_lines_STAR_ \x3d _STAR_print_lines_STAR__temp_val__24437);\n\n(cljs.pprint._STAR_print_miser_width_STAR_ \x3d _STAR_print_miser_width_STAR__temp_val__24438);\n\n(cljs.pprint._STAR_print_pprint_dispatch_STAR_ \x3d _STAR_print_pprint_dispatch_STAR__temp_val__24439);\n\n(cljs.pprint._STAR_print_pretty_STAR_ \x3d _STAR_print_pretty_STAR__temp_val__24440);\n\n(cljs.pprint._STAR_print_radix_STAR_ \x3d _STAR_print_radix_STAR__temp_val__24441);\n\n(cljs.core._STAR_print_readably_STAR_ \x3d _STAR_print_readably_STAR__temp_val__24442);\n\n(cljs.pprint._STAR_print_right_margin_STAR_ \x3d _STAR_print_right_margin_STAR__temp_val__24443);\n\n(cljs.pprint._STAR_print_suppress_namespaces_STAR_ \x3d _STAR_print_suppress_namespaces_STAR__temp_val__24444);\n\ntry{try{var sb \x3d (new goog.string.StringBuffer());\nvar optval \x3d ((cljs.core.contains_QMARK_(options,new cljs.core.Keyword(null,\x22stream\x22,\x22stream\x22,1534941648)))?new cljs.core.Keyword(null,\x22stream\x22,\x22stream\x22,1534941648).cljs$core$IFn$_invoke$arity$1(options):true);\nvar base_writer \x3d ((((optval \x3d\x3d\x3d true) || ((optval \x3d\x3d null))))?(new cljs.core.StringBufferWriter(sb)):optval);\nif(cljs.core.truth_(cljs.pprint._STAR_print_pretty_STAR_)){\nvar base_writer__21899__auto___28411 \x3d base_writer;\nvar new_writer__21900__auto___28412 \x3d cljs.core.not(cljs.pprint.pretty_writer_QMARK_(base_writer__21899__auto___28411));\nvar _STAR_out_STAR__orig_val__24460_28413 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__24461_28415 \x3d ((new_writer__21900__auto___28412)?cljs.pprint.make_pretty_writer(base_writer__21899__auto___28411,cljs.pprint._STAR_print_right_margin_STAR_,cljs.pprint._STAR_print_miser_width_STAR_):base_writer__21899__auto___28411);\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__24461_28415);\n\ntry{cljs.pprint.write_out(object);\n\ncljs.pprint._ppflush(cljs.core._STAR_out_STAR_);\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__24460_28413);\n}} else {\nvar _STAR_out_STAR__orig_val__24462_28417 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__24463_28418 \x3d base_writer;\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__24463_28418);\n\ntry{cljs.pprint.pr.call(null, object);\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__24462_28417);\n}}\n\nif(optval \x3d\x3d\x3d true){\ncljs.core.string_print(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb));\n} else {\n}\n\nif((optval \x3d\x3d null)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nreturn null;\n}\n}finally {}}finally {(cljs.pprint._STAR_print_suppress_namespaces_STAR_ \x3d _STAR_print_suppress_namespaces_STAR__orig_val__24432);\n\n(cljs.pprint._STAR_print_right_margin_STAR_ \x3d _STAR_print_right_margin_STAR__orig_val__24431);\n\n(cljs.core._STAR_print_readably_STAR_ \x3d _STAR_print_readably_STAR__orig_val__24430);\n\n(cljs.pprint._STAR_print_radix_STAR_ \x3d _STAR_print_radix_STAR__orig_val__24429);\n\n(cljs.pprint._STAR_print_pretty_STAR_ \x3d _STAR_print_pretty_STAR__orig_val__24428);\n\n(cljs.pprint._STAR_print_pprint_dispatch_STAR_ \x3d _STAR_print_pprint_dispatch_STAR__orig_val__24427);\n\n(cljs.pprint._STAR_print_miser_width_STAR_ \x3d _STAR_print_miser_width_STAR__orig_val__24426);\n\n(cljs.pprint._STAR_print_lines_STAR_ \x3d _STAR_print_lines_STAR__orig_val__24425);\n\n(cljs.core._STAR_print_level_STAR_ \x3d _STAR_print_level_STAR__orig_val__24424);\n\n(cljs.core._STAR_print_length_STAR_ \x3d _STAR_print_length_STAR__orig_val__24423);\n\n(cljs.pprint._STAR_print_circle_STAR_ \x3d _STAR_print_circle_STAR__orig_val__24422);\n\n(cljs.pprint._STAR_print_base_STAR_ \x3d _STAR_print_base_STAR__orig_val__24420);\n}}));\n\n(cljs.pprint.write.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(cljs.pprint.write.cljs$lang$applyTo \x3d (function (seq24408){\nvar G__24409 \x3d cljs.core.first(seq24408);\nvar seq24408__$1 \x3d cljs.core.next(seq24408);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__24409,seq24408__$1);\n}));\n\ncljs.pprint.pprint \x3d (function cljs$pprint$pprint(var_args){\nvar G__24469 \x3d arguments.length;\nswitch (G__24469) {\ncase 1:\nreturn cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1 \x3d (function (object){\nvar sb \x3d (new goog.string.StringBuffer());\nvar _STAR_out_STAR__orig_val__24496 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__24497 \x3d (new cljs.core.StringBufferWriter(sb));\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__24497);\n\ntry{cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2(object,cljs.core._STAR_out_STAR_);\n\nreturn cljs.core.string_print(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb));\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__24496);\n}}));\n\n(cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2 \x3d (function (object,writer){\nvar base_writer__21899__auto__ \x3d writer;\nvar new_writer__21900__auto__ \x3d cljs.core.not(cljs.pprint.pretty_writer_QMARK_(base_writer__21899__auto__));\nvar _STAR_out_STAR__orig_val__24505 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__24506 \x3d ((new_writer__21900__auto__)?cljs.pprint.make_pretty_writer(base_writer__21899__auto__,cljs.pprint._STAR_print_right_margin_STAR_,cljs.pprint._STAR_print_miser_width_STAR_):base_writer__21899__auto__);\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__24506);\n\ntry{var _STAR_print_pretty_STAR__orig_val__24510_28425 \x3d cljs.pprint._STAR_print_pretty_STAR_;\nvar _STAR_print_pretty_STAR__temp_val__24511_28426 \x3d true;\n(cljs.pprint._STAR_print_pretty_STAR_ \x3d _STAR_print_pretty_STAR__temp_val__24511_28426);\n\ntry{cljs.pprint.write_out(object);\n}finally {(cljs.pprint._STAR_print_pretty_STAR_ \x3d _STAR_print_pretty_STAR__orig_val__24510_28425);\n}\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.pprint.get_column(cljs.core._STAR_out_STAR_))))){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22\\n\x22);\n} else {\n}\n\nreturn cljs.pprint._ppflush(cljs.core._STAR_out_STAR_);\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__24505);\n}}));\n\n(cljs.pprint.pprint.cljs$lang$maxFixedArity \x3d 2);\n\ncljs.pprint.set_pprint_dispatch \x3d (function cljs$pprint$set_pprint_dispatch(function$){\n(cljs.pprint._STAR_print_pprint_dispatch_STAR_ \x3d function$);\n\nreturn null;\n});\ncljs.pprint.check_enumerated_arg \x3d (function cljs$pprint$check_enumerated_arg(arg,choices){\nif(cljs.core.not((choices.cljs$core$IFn$_invoke$arity$1 ? choices.cljs$core$IFn$_invoke$arity$1(arg) : choices.call(null, arg)))){\nthrow (new Error([\x22Bad argument: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arg),\x22. It must be one of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(choices)].join(\x27\x27)));\n} else {\nreturn null;\n}\n});\ncljs.pprint.level_exceeded \x3d (function cljs$pprint$level_exceeded(){\nvar and__5000__auto__ \x3d cljs.core._STAR_print_level_STAR_;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (cljs.pprint._STAR_current_level_STAR_ \x3e\x3d cljs.core._STAR_print_level_STAR_);\n} else {\nreturn and__5000__auto__;\n}\n});\n/**\n * Print a conditional newline to a pretty printing stream. kind specifies if the\n * newline is :linear, :miser, :fill, or :mandatory.\n * \n * This function is intended for use when writing custom dispatch functions.\n * \n * Output is sent to *out* which must be a pretty printing writer.\n */\ncljs.pprint.pprint_newline \x3d (function cljs$pprint$pprint_newline(kind){\ncljs.pprint.check_enumerated_arg(kind,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22mandatory\x22,\x22mandatory\x22,542802336),null,new cljs.core.Keyword(null,\x22miser\x22,\x22miser\x22,-556060186),null,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),null,new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697),null], null), null));\n\nreturn cljs.pprint.nl(cljs.core._STAR_out_STAR_,kind);\n});\n/**\n * Create an indent at this point in the pretty printing stream. This defines how\n * following lines are indented. relative-to can be either :block or :current depending\n * whether the indent should be computed relative to the start of the logical block or\n * the current column position. n is an offset.\n * \n * This function is intended for use when writing custom dispatch functions.\n * \n * Output is sent to *out* which must be a pretty printing writer.\n */\ncljs.pprint.pprint_indent \x3d (function cljs$pprint$pprint_indent(relative_to,n){\ncljs.pprint.check_enumerated_arg(relative_to,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),null,new cljs.core.Keyword(null,\x22current\x22,\x22current\x22,-1088038603),null], null), null));\n\nreturn cljs.pprint.indent(cljs.core._STAR_out_STAR_,relative_to,n);\n});\n/**\n * Tab at this point in the pretty printing stream. kind specifies whether the tab\n * is :line, :section, :line-relative, or :section-relative.\n * \n * Colnum and colinc specify the target column and the increment to move the target\n * forward if the output is already past the original target.\n * \n * This function is intended for use when writing custom dispatch functions.\n * \n * Output is sent to *out* which must be a pretty printing writer.\n * \n * THIS FUNCTION IS NOT YET IMPLEMENTED.\n */\ncljs.pprint.pprint_tab \x3d (function cljs$pprint$pprint_tab(kind,colnum,colinc){\ncljs.pprint.check_enumerated_arg(kind,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22section\x22,\x22section\x22,-300141526),null,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),null,new cljs.core.Keyword(null,\x22line-relative\x22,\x22line-relative\x22,1149548219),null,new cljs.core.Keyword(null,\x22section-relative\x22,\x22section-relative\x22,-658298724),null], null), null));\n\nthrow (new Error(\x22pprint-tab is not yet implemented\x22));\n});\n/**\n * An implementation of a Common Lisp compatible format function. cl-format formats its\n * arguments to an output stream or string based on the format control string given. It\n * supports sophisticated formatting of structured data.\n * \n * Writer satisfies IWriter, true to output via *print-fn* or nil to output\n * to a string, format-in is the format control string and the remaining arguments\n * are the data to be formatted.\n * \n * The format control string is a string to be output with embedded \x27format directives\x27\n * describing how to format the various arguments passed in.\n * \n * If writer is nil, cl-format returns the formatted result string. Otherwise, cl-format\n * returns nil.\n * \n * For example:\n * (let [results [46 38 22]]\n * (cl-format true \x22There ~[are~;is~:;are~]~:* ~d result~:p: ~{~d~^, ~}~%\x22\n * (count results) results))\n * \n * Prints via *print-fn*:\n * There are 3 results: 46, 38, 22\n * \n * Detailed documentation on format control strings is available in the \x22Common Lisp the\n * Language, 2nd edition\x22, Chapter 22 (available online at:\n * http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/node200.html#SECTION002633000000000000000)\n * and in the Common Lisp HyperSpec at\n * http://www.lispworks.com/documentation/HyperSpec/Body/22_c.htm\n */\ncljs.pprint.cl_format \x3d (function cljs$pprint$cl_format(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___28443 \x3d arguments.length;\nvar i__5727__auto___28446 \x3d (0);\nwhile(true){\nif((i__5727__auto___28446 \x3c len__5726__auto___28443)){\nargs__5732__auto__.push((arguments[i__5727__auto___28446]));\n\nvar G__28447 \x3d (i__5727__auto___28446 + (1));\ni__5727__auto___28446 \x3d G__28447;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((2) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);\nreturn cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);\n});\n\n(cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic \x3d (function (writer,format_in,args){\nvar compiled_format \x3d ((typeof format_in \x3d\x3d\x3d \x27string\x27)?cljs.pprint.compile_format(format_in):format_in);\nvar navigator__$1 \x3d cljs.pprint.init_navigator(args);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3(writer,compiled_format,navigator__$1);\n}));\n\n(cljs.pprint.cl_format.cljs$lang$maxFixedArity \x3d (2));\n\n/** @this {Function} */\n(cljs.pprint.cl_format.cljs$lang$applyTo \x3d (function (seq24546){\nvar G__24547 \x3d cljs.core.first(seq24546);\nvar seq24546__$1 \x3d cljs.core.next(seq24546);\nvar G__24548 \x3d cljs.core.first(seq24546__$1);\nvar seq24546__$2 \x3d cljs.core.next(seq24546__$1);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__24547,G__24548,seq24546__$2);\n}));\n\ncljs.pprint._STAR_format_str_STAR_ \x3d null;\ncljs.pprint.format_error \x3d (function cljs$pprint$format_error(message,offset){\nvar full_message \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(message),\x22\\n\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_format_str_STAR_),\x22\\n\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(offset,\x22 \x22))),\x22^\x22,\x22\\n\x22].join(\x27\x27);\nthrow Error(full_message);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.arg_navigator \x3d (function (seq,rest,pos,__meta,__extmap,__hash){\nthis.seq \x3d seq;\nthis.rest \x3d rest;\nthis.pos \x3d pos;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.arg_navigator.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k24580,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__24592 \x3d k24580;\nvar G__24592__$1 \x3d (((G__24592 instanceof cljs.core.Keyword))?G__24592.fqn:null);\nswitch (G__24592__$1) {\ncase \x22seq\x22:\nreturn self__.seq;\n\nbreak;\ncase \x22rest\x22:\nreturn self__.rest;\n\nbreak;\ncase \x22pos\x22:\nreturn self__.pos;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k24580,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__24619){\nvar vec__24621 \x3d p__24619;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24621,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24621,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.arg-navigator{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),self__.seq],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),self__.rest],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),self__.pos],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__24579){\nvar self__ \x3d this;\nvar G__24579__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__24579__$1,3,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.arg_navigator(self__.seq,self__.rest,self__.pos,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (3 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-402038447 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this24582,other24583){\nvar self__ \x3d this;\nvar this24582__$1 \x3d this;\nreturn (((!((other24583 \x3d\x3d null)))) \x26\x26 ((((this24582__$1.constructor \x3d\x3d\x3d other24583.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24582__$1.seq,other24583.seq)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24582__$1.rest,other24583.rest)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24582__$1.pos,other24583.pos)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24582__$1.__extmap,other24583.__extmap)))))))))));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),null,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),null,new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.arg_navigator(self__.seq,self__.rest,self__.pos,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k24580){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__24695 \x3d k24580;\nvar G__24695__$1 \x3d (((G__24695 instanceof cljs.core.Keyword))?G__24695.fqn:null);\nswitch (G__24695__$1) {\ncase \x22seq\x22:\ncase \x22rest\x22:\ncase \x22pos\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k24580);\n\n}\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__24579){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__24696 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__24697 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__24696.cljs$core$IFn$_invoke$arity$2 ? pred__24696.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),expr__24697) : pred__24696.call(null, new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),expr__24697)))){\nreturn (new cljs.pprint.arg_navigator(G__24579,self__.rest,self__.pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__24696.cljs$core$IFn$_invoke$arity$2 ? pred__24696.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),expr__24697) : pred__24696.call(null, new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),expr__24697)))){\nreturn (new cljs.pprint.arg_navigator(self__.seq,G__24579,self__.pos,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__24696.cljs$core$IFn$_invoke$arity$2 ? pred__24696.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),expr__24697) : pred__24696.call(null, new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),expr__24697)))){\nreturn (new cljs.pprint.arg_navigator(self__.seq,self__.rest,G__24579,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.arg_navigator(self__.seq,self__.rest,self__.pos,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__24579),null));\n}\n}\n}\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),self__.seq,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),self__.rest,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220),self__.pos,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__24579){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.arg_navigator(self__.seq,self__.rest,self__.pos,G__24579,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.arg_navigator.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.arg_navigator.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22seq\x22,\x22seq\x22,-177272256,null),new cljs.core.Symbol(null,\x22rest\x22,\x22rest\x22,398835108,null),new cljs.core.Symbol(null,\x22pos\x22,\x22pos\x22,775924307,null)], null);\n}));\n\n(cljs.pprint.arg_navigator.cljs$lang$type \x3d true);\n\n(cljs.pprint.arg_navigator.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/arg-navigator\x22,null,(1),null));\n}));\n\n(cljs.pprint.arg_navigator.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/arg-navigator\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/arg-navigator.\n */\ncljs.pprint.__GT_arg_navigator \x3d (function cljs$pprint$__GT_arg_navigator(seq,rest,pos){\nreturn (new cljs.pprint.arg_navigator(seq,rest,pos,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/arg-navigator, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_arg_navigator \x3d (function cljs$pprint$map__GT_arg_navigator(G__24586){\nvar extmap__5342__auto__ \x3d (function (){var G__24729 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__24586,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419),new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220)], 0));\nif(cljs.core.record_QMARK_(G__24586)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__24729);\n} else {\nreturn G__24729;\n}\n})();\nreturn (new cljs.pprint.arg_navigator(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(G__24586),new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(G__24586),new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(G__24586),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\n/**\n * Create a new arg-navigator from the sequence with the position set to 0\n */\ncljs.pprint.init_navigator \x3d (function cljs$pprint$init_navigator(s){\nvar s__$1 \x3d cljs.core.seq(s);\nreturn (new cljs.pprint.arg_navigator(s__$1,s__$1,(0),null,null,null));\n});\ncljs.pprint.next_arg \x3d (function cljs$pprint$next_arg(navigator){\nvar rst \x3d new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator);\nif(cljs.core.truth_(rst)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(rst),(new cljs.pprint.arg_navigator(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(navigator),cljs.core.next(rst),(new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator) + (1)),null,null,null))], null);\n} else {\nthrow Error(\x22Not enough arguments for format definition\x22);\n}\n});\ncljs.pprint.next_arg_or_nil \x3d (function cljs$pprint$next_arg_or_nil(navigator){\nvar rst \x3d new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator);\nif(cljs.core.truth_(rst)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(rst),(new cljs.pprint.arg_navigator(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(navigator),cljs.core.next(rst),(new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator) + (1)),null,null,null))], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,navigator], null);\n}\n});\ncljs.pprint.get_format_arg \x3d (function cljs$pprint$get_format_arg(navigator){\nvar vec__24748 \x3d cljs.pprint.next_arg(navigator);\nvar raw_format \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24748,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24748,(1),null);\nvar compiled_format \x3d ((typeof raw_format \x3d\x3d\x3d \x27string\x27)?cljs.pprint.compile_format(raw_format):raw_format);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [compiled_format,navigator__$1], null);\n});\ncljs.pprint.absolute_reposition \x3d (function cljs$pprint$absolute_reposition(navigator,position){\nif((position \x3e\x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator))){\nvar G__24770 \x3d navigator;\nvar G__24771 \x3d (new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator) - position);\nreturn (cljs.pprint.relative_reposition.cljs$core$IFn$_invoke$arity$2 ? cljs.pprint.relative_reposition.cljs$core$IFn$_invoke$arity$2(G__24770,G__24771) : cljs.pprint.relative_reposition.call(null, G__24770,G__24771));\n} else {\nreturn (new cljs.pprint.arg_navigator(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(navigator),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(position,new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(navigator)),position,null,null,null));\n}\n});\ncljs.pprint.relative_reposition \x3d (function cljs$pprint$relative_reposition(navigator,position){\nvar newpos \x3d (new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator) + position);\nif((position \x3c (0))){\nreturn cljs.pprint.absolute_reposition(navigator,newpos);\n} else {\nreturn (new cljs.pprint.arg_navigator(new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783).cljs$core$IFn$_invoke$arity$1(navigator),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(position,new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator)),newpos,null,null,null));\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ncljs.pprint.compiled_directive \x3d (function (func,def,params,offset,__meta,__extmap,__hash){\nthis.func \x3d func;\nthis.def \x3d def;\nthis.params \x3d params;\nthis.offset \x3d offset;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(cljs.pprint.compiled_directive.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k24787,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__24792 \x3d k24787;\nvar G__24792__$1 \x3d (((G__24792 instanceof cljs.core.Keyword))?G__24792.fqn:null);\nswitch (G__24792__$1) {\ncase \x22func\x22:\nreturn self__.func;\n\nbreak;\ncase \x22def\x22:\nreturn self__.def;\n\nbreak;\ncase \x22params\x22:\nreturn self__.params;\n\nbreak;\ncase \x22offset\x22:\nreturn self__.offset;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k24787,else__5303__auto__);\n\n}\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__24794){\nvar vec__24795 \x3d p__24794;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24795,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24795,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#cljs.pprint.compiled-directive{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),self__.func],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),self__.def],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),self__.params],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),self__.offset],null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__24786){\nvar self__ \x3d this;\nvar G__24786__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__24786__$1,4,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new cljs.pprint.compiled_directive(self__.func,self__.def,self__.params,self__.offset,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (4 + cljs.core.count(self__.__extmap));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (-829256337 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this24788,other24789){\nvar self__ \x3d this;\nvar this24788__$1 \x3d this;\nreturn (((!((other24789 \x3d\x3d null)))) \x26\x26 ((((this24788__$1.constructor \x3d\x3d\x3d other24789.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24788__$1.func,other24789.func)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24788__$1.def,other24789.def)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24788__$1.params,other24789.params)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24788__$1.offset,other24789.offset)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this24788__$1.__extmap,other24789.__extmap)))))))))))));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),null,new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),null,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),null,new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new cljs.pprint.compiled_directive(self__.func,self__.def,self__.params,self__.offset,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k24787){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__24914 \x3d k24787;\nvar G__24914__$1 \x3d (((G__24914 instanceof cljs.core.Keyword))?G__24914.fqn:null);\nswitch (G__24914__$1) {\ncase \x22func\x22:\ncase \x22def\x22:\ncase \x22params\x22:\ncase \x22offset\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k24787);\n\n}\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__24786){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__24938 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__24939 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__24938.cljs$core$IFn$_invoke$arity$2 ? pred__24938.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),expr__24939) : pred__24938.call(null, new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),expr__24939)))){\nreturn (new cljs.pprint.compiled_directive(G__24786,self__.def,self__.params,self__.offset,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__24938.cljs$core$IFn$_invoke$arity$2 ? pred__24938.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),expr__24939) : pred__24938.call(null, new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),expr__24939)))){\nreturn (new cljs.pprint.compiled_directive(self__.func,G__24786,self__.params,self__.offset,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__24938.cljs$core$IFn$_invoke$arity$2 ? pred__24938.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),expr__24939) : pred__24938.call(null, new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),expr__24939)))){\nreturn (new cljs.pprint.compiled_directive(self__.func,self__.def,G__24786,self__.offset,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__24938.cljs$core$IFn$_invoke$arity$2 ? pred__24938.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),expr__24939) : pred__24938.call(null, new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),expr__24939)))){\nreturn (new cljs.pprint.compiled_directive(self__.func,self__.def,self__.params,G__24786,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new cljs.pprint.compiled_directive(self__.func,self__.def,self__.params,self__.offset,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__24786),null));\n}\n}\n}\n}\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),self__.func,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),self__.def,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),self__.params,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311),self__.offset,null))], null),self__.__extmap));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__24786){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new cljs.pprint.compiled_directive(self__.func,self__.def,self__.params,self__.offset,G__24786,self__.__extmap,self__.__hash));\n}));\n\n(cljs.pprint.compiled_directive.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(cljs.pprint.compiled_directive.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22func\x22,\x22func\x22,1401825487,null),new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),new cljs.core.Symbol(null,\x22params\x22,\x22params\x22,-1943919534,null),new cljs.core.Symbol(null,\x22offset\x22,\x22offset\x22,1937029838,null)], null);\n}));\n\n(cljs.pprint.compiled_directive.cljs$lang$type \x3d true);\n\n(cljs.pprint.compiled_directive.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22cljs.pprint/compiled-directive\x22,null,(1),null));\n}));\n\n(cljs.pprint.compiled_directive.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22cljs.pprint/compiled-directive\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/compiled-directive.\n */\ncljs.pprint.__GT_compiled_directive \x3d (function cljs$pprint$__GT_compiled_directive(func,def,params,offset){\nreturn (new cljs.pprint.compiled_directive(func,def,params,offset,null,null,null));\n});\n\n/**\n * Factory function for cljs.pprint/compiled-directive, taking a map of keywords to field values.\n */\ncljs.pprint.map__GT_compiled_directive \x3d (function cljs$pprint$map__GT_compiled_directive(G__24791){\nvar extmap__5342__auto__ \x3d (function (){var G__25036 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__24791,new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311)], 0));\nif(cljs.core.record_QMARK_(G__24791)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__25036);\n} else {\nreturn G__25036;\n}\n})();\nreturn (new cljs.pprint.compiled_directive(new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040).cljs$core$IFn$_invoke$arity$1(G__24791),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(G__24791),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(G__24791),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(G__24791),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\ncljs.pprint.realize_parameter \x3d (function cljs$pprint$realize_parameter(p__25067,navigator){\nvar vec__25069 \x3d p__25067;\nvar param \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25069,(0),null);\nvar vec__25072 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25069,(1),null);\nvar raw_val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25072,(0),null);\nvar offset \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25072,(1),null);\nvar vec__25081 \x3d ((cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),param))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [raw_val,navigator], null):((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(raw_val,new cljs.core.Keyword(null,\x22parameter-from-args\x22,\x22parameter-from-args\x22,-758446196)))?cljs.pprint.next_arg(navigator):((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(raw_val,new cljs.core.Keyword(null,\x22remaining-arg-count\x22,\x22remaining-arg-count\x22,-1216589335)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.count(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator)),navigator], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [raw_val,navigator], null)\n)));\nvar real_param \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25081,(0),null);\nvar new_navigator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25081,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [param,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [real_param,offset], null)], null),new_navigator], null);\n});\ncljs.pprint.realize_parameter_list \x3d (function cljs$pprint$realize_parameter_list(parameter_map,navigator){\nvar vec__25101 \x3d cljs.pprint.map_passing_context(cljs.pprint.realize_parameter,navigator,parameter_map);\nvar pairs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25101,(0),null);\nvar new_navigator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25101,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,pairs),new_navigator], null);\n});\ncljs.pprint.special_radix_markers \x3d new cljs.core.PersistentArrayMap(null, 3, [(2),\x22#b\x22,(8),\x22#o\x22,(16),\x22#x\x22], null);\ncljs.pprint.format_simple_number \x3d (function cljs$pprint$format_simple_number(n){\nif(cljs.core.integer_QMARK_(n)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.pprint._STAR_print_base_STAR_,(10))){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(n),(cljs.core.truth_(cljs.pprint._STAR_print_radix_STAR_)?\x22.\x22:null)].join(\x27\x27);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.core.truth_(cljs.pprint._STAR_print_radix_STAR_)?(function (){var or__5002__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.special_radix_markers,cljs.pprint._STAR_print_base_STAR_);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn [\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_print_base_STAR_),\x22r\x22].join(\x27\x27);\n}\n})():null)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint.opt_base_str(cljs.pprint._STAR_print_base_STAR_,n))].join(\x27\x27);\n}\n} else {\nreturn null;\n\n}\n});\ncljs.pprint.format_ascii \x3d (function cljs$pprint$format_ascii(print_func,params,arg_navigator,offsets){\nvar vec__25137 \x3d cljs.pprint.next_arg(arg_navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25137,(0),null);\nvar arg_navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25137,(1),null);\nvar base_output \x3d (function (){var or__5002__auto__ \x3d cljs.pprint.format_simple_number(arg);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (print_func.cljs$core$IFn$_invoke$arity$1 ? print_func.cljs$core$IFn$_invoke$arity$1(arg) : print_func.call(null, arg));\n}\n})();\nvar base_width \x3d base_output.length;\nvar min_width \x3d (base_width + new cljs.core.Keyword(null,\x22minpad\x22,\x22minpad\x22,323570901).cljs$core$IFn$_invoke$arity$1(params));\nvar width \x3d (((min_width \x3e\x3d new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445).cljs$core$IFn$_invoke$arity$1(params)))?min_width:(min_width + ((cljs.core.quot(((new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445).cljs$core$IFn$_invoke$arity$1(params) - min_width) - (1)),new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385).cljs$core$IFn$_invoke$arity$1(params)) + (1)) * new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385).cljs$core$IFn$_invoke$arity$1(params))));\nvar chars \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((width - base_width),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params)));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(chars),cljs.core.str.cljs$core$IFn$_invoke$arity$1(base_output)].join(\x27\x27)], 0));\n} else {\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(base_output),cljs.core.str.cljs$core$IFn$_invoke$arity$1(chars)].join(\x27\x27)], 0));\n}\n\nreturn arg_navigator__$1;\n});\n/**\n * returns true if a number is actually an integer (that is, has no fractional part)\n */\ncljs.pprint.integral_QMARK_ \x3d (function cljs$pprint$integral_QMARK_(x){\nif(cljs.core.integer_QMARK_(x)){\nreturn true;\n} else {\nif(cljs.pprint.float_QMARK_(x)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x,Math.floor(x));\n} else {\nreturn false;\n\n}\n}\n});\n/**\n * Return the list of remainders (essentially the \x27digits\x27) of val in the given base\n */\ncljs.pprint.remainders \x3d (function cljs$pprint$remainders(base,val){\nreturn cljs.core.reverse(cljs.core.first(cljs.pprint.consume((function (p1__25171_SHARP_){\nif((p1__25171_SHARP_ \x3e (0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.rem(p1__25171_SHARP_,base),cljs.core.quot(p1__25171_SHARP_,base)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null], null);\n}\n}),val)));\n});\n/**\n * Return val as a string in the given base\n */\ncljs.pprint.base_str \x3d (function cljs$pprint$base_str(base,val){\nif((val \x3d\x3d\x3d (0))){\nreturn \x220\x22;\n} else {\nvar xlated_val \x3d val\n;\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__25180_SHARP_){\nif((p1__25180_SHARP_ \x3c (10))){\nreturn cljs.core.char$((cljs.pprint.char_code(\x220\x22) + p1__25180_SHARP_));\n} else {\nreturn cljs.core.char$((cljs.pprint.char_code(\x22a\x22) + (p1__25180_SHARP_ - (10))));\n}\n}),cljs.pprint.remainders(base,val)));\n}\n});\ncljs.pprint.javascript_base_formats \x3d new cljs.core.PersistentArrayMap(null, 3, [(8),\x22%o\x22,(10),\x22%d\x22,(16),\x22%x\x22], null);\n/**\n * Return val as a string in the given base. No cljs format, so no improved performance.\n */\ncljs.pprint.opt_base_str \x3d (function cljs$pprint$opt_base_str(base,val){\nreturn cljs.pprint.base_str(base,val);\n});\ncljs.pprint.group_by_STAR_ \x3d (function cljs$pprint$group_by_STAR_(unit,lis){\nreturn cljs.core.reverse(cljs.core.first(cljs.pprint.consume((function (x){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.seq(cljs.core.reverse(cljs.core.take.cljs$core$IFn$_invoke$arity$2(unit,x))),cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(unit,x))], null);\n}),cljs.core.reverse(lis))));\n});\ncljs.pprint.format_integer \x3d (function cljs$pprint$format_integer(base,params,arg_navigator,offsets){\nvar vec__25203 \x3d cljs.pprint.next_arg(arg_navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25203,(0),null);\nvar arg_navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25203,(1),null);\nif(cljs.pprint.integral_QMARK_(arg)){\nvar neg_28520 \x3d (arg \x3c (0));\nvar pos_arg_28521 \x3d ((neg_28520)?(- arg):arg);\nvar raw_str_28522 \x3d cljs.pprint.opt_base_str(base,pos_arg_28521);\nvar group_str_28523 \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?(function (){var groups \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__25199_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,p1__25199_SHARP_);\n}),cljs.pprint.group_by_STAR_(new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083).cljs$core$IFn$_invoke$arity$1(params),raw_str_28522));\nvar commas \x3d cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.count(groups),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327).cljs$core$IFn$_invoke$arity$1(params));\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.next(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(commas,groups)));\n})():raw_str_28522);\nvar signed_str_28524 \x3d ((neg_28520)?[\x22-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(group_str_28523)].join(\x27\x27):(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))?[\x22+\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(group_str_28523)].join(\x27\x27):group_str_28523\n));\nvar padded_str_28525 \x3d (((signed_str_28524.length \x3c new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445).cljs$core$IFn$_invoke$arity$1(params)))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445).cljs$core$IFn$_invoke$arity$1(params) - signed_str_28524.length),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params)))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(signed_str_28524)].join(\x27\x27):signed_str_28524);\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([padded_str_28525], 0));\n} else {\ncljs.pprint.format_ascii(cljs.core.print_str,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445).cljs$core$IFn$_invoke$arity$1(params),new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385),(1),new cljs.core.Keyword(null,\x22minpad\x22,\x22minpad\x22,323570901),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params),new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),true], null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [arg], null)),null);\n}\n\nreturn arg_navigator__$1;\n});\ncljs.pprint.english_cardinal_units \x3d new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22zero\x22,\x22one\x22,\x22two\x22,\x22three\x22,\x22four\x22,\x22five\x22,\x22six\x22,\x22seven\x22,\x22eight\x22,\x22nine\x22,\x22ten\x22,\x22eleven\x22,\x22twelve\x22,\x22thirteen\x22,\x22fourteen\x22,\x22fifteen\x22,\x22sixteen\x22,\x22seventeen\x22,\x22eighteen\x22,\x22nineteen\x22], null);\ncljs.pprint.english_ordinal_units \x3d new cljs.core.PersistentVector(null, 20, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22zeroth\x22,\x22first\x22,\x22second\x22,\x22third\x22,\x22fourth\x22,\x22fifth\x22,\x22sixth\x22,\x22seventh\x22,\x22eighth\x22,\x22ninth\x22,\x22tenth\x22,\x22eleventh\x22,\x22twelfth\x22,\x22thirteenth\x22,\x22fourteenth\x22,\x22fifteenth\x22,\x22sixteenth\x22,\x22seventeenth\x22,\x22eighteenth\x22,\x22nineteenth\x22], null);\ncljs.pprint.english_cardinal_tens \x3d new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22,\x22\x22,\x22twenty\x22,\x22thirty\x22,\x22forty\x22,\x22fifty\x22,\x22sixty\x22,\x22seventy\x22,\x22eighty\x22,\x22ninety\x22], null);\ncljs.pprint.english_ordinal_tens \x3d new cljs.core.PersistentVector(null, 10, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22,\x22\x22,\x22twentieth\x22,\x22thirtieth\x22,\x22fortieth\x22,\x22fiftieth\x22,\x22sixtieth\x22,\x22seventieth\x22,\x22eightieth\x22,\x22ninetieth\x22], null);\ncljs.pprint.english_scale_numbers \x3d new cljs.core.PersistentVector(null, 22, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22,\x22thousand\x22,\x22million\x22,\x22billion\x22,\x22trillion\x22,\x22quadrillion\x22,\x22quintillion\x22,\x22sextillion\x22,\x22septillion\x22,\x22octillion\x22,\x22nonillion\x22,\x22decillion\x22,\x22undecillion\x22,\x22duodecillion\x22,\x22tredecillion\x22,\x22quattuordecillion\x22,\x22quindecillion\x22,\x22sexdecillion\x22,\x22septendecillion\x22,\x22octodecillion\x22,\x22novemdecillion\x22,\x22vigintillion\x22], null);\n/**\n * Convert a number less than 1000 to a cardinal english string\n */\ncljs.pprint.format_simple_cardinal \x3d (function cljs$pprint$format_simple_cardinal(num){\nvar hundreds \x3d cljs.core.quot(num,(100));\nvar tens \x3d cljs.core.rem(num,(100));\nreturn [(((hundreds \x3e (0)))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,hundreds)),\x22 hundred\x22].join(\x27\x27):null),(((((hundreds \x3e (0))) \x26\x26 ((tens \x3e (0)))))?\x22 \x22:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1((((tens \x3e (0)))?(((tens \x3c (20)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,tens):(function (){var ten_digit \x3d cljs.core.quot(tens,(10));\nvar unit_digit \x3d cljs.core.rem(tens,(10));\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((((ten_digit \x3e (0)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_tens,ten_digit):null)),(((((ten_digit \x3e (0))) \x26\x26 ((unit_digit \x3e (0)))))?\x22-\x22:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1((((unit_digit \x3e (0)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,unit_digit):null))].join(\x27\x27);\n})()):null))].join(\x27\x27);\n});\n/**\n * Take a sequence of parts, add scale numbers (e.g., million) and combine into a string\n * offset is a factor of 10^3 to multiply by\n */\ncljs.pprint.add_english_scales \x3d (function cljs$pprint$add_english_scales(parts,offset){\nvar cnt \x3d cljs.core.count(parts);\nvar acc \x3d cljs.core.PersistentVector.EMPTY;\nvar pos \x3d (cnt - (1));\nvar this$ \x3d cljs.core.first(parts);\nvar remainder \x3d cljs.core.next(parts);\nwhile(true){\nif((remainder \x3d\x3d null)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(\x22, \x22,acc))),(((((!(cljs.core.empty_QMARK_(this$)))) \x26\x26 ((!(cljs.core.empty_QMARK_(acc))))))?\x22, \x22:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(this$),(((((!(cljs.core.empty_QMARK_(this$)))) \x26\x26 (((pos + offset) \x3e (0)))))?[\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_scale_numbers,(pos + offset)))].join(\x27\x27):null)].join(\x27\x27);\n} else {\nvar G__28526 \x3d ((cljs.core.empty_QMARK_(this$))?acc:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(this$),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_scale_numbers,(pos + offset)))].join(\x27\x27)));\nvar G__28527 \x3d (pos - (1));\nvar G__28528 \x3d cljs.core.first(remainder);\nvar G__28529 \x3d cljs.core.next(remainder);\nacc \x3d G__28526;\npos \x3d G__28527;\nthis$ \x3d G__28528;\nremainder \x3d G__28529;\ncontinue;\n}\nbreak;\n}\n});\ncljs.pprint.format_cardinal_english \x3d (function cljs$pprint$format_cardinal_english(params,navigator,offsets){\nvar vec__25429 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25429,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25429,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),arg)){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22zero\x22], 0));\n} else {\nvar abs_arg_28533 \x3d (((arg \x3c (0)))?(- arg):arg);\nvar parts_28534 \x3d cljs.pprint.remainders((1000),abs_arg_28533);\nif((cljs.core.count(parts_28534) \x3c\x3d cljs.core.count(cljs.pprint.english_scale_numbers))){\nvar parts_strs_28535 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.pprint.format_simple_cardinal,parts_28534);\nvar full_str_28536 \x3d cljs.pprint.add_english_scales(parts_strs_28535,(0));\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[(((arg \x3c (0)))?\x22minus \x22:null),full_str_28536].join(\x27\x27)], 0));\n} else {\ncljs.pprint.format_integer((10),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),\x22 \x22,new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),\x22,\x22,new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),(3),new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),true], null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [arg], null)),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),(0),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),(0),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),(0)], null));\n}\n}\n\nreturn navigator__$1;\n});\n/**\n * Convert a number less than 1000 to a ordinal english string\n * Note this should only be used for the last one in the sequence\n */\ncljs.pprint.format_simple_ordinal \x3d (function cljs$pprint$format_simple_ordinal(num){\nvar hundreds \x3d cljs.core.quot(num,(100));\nvar tens \x3d cljs.core.rem(num,(100));\nreturn [(((hundreds \x3e (0)))?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,hundreds)),\x22 hundred\x22].join(\x27\x27):null),(((((hundreds \x3e (0))) \x26\x26 ((tens \x3e (0)))))?\x22 \x22:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1((((tens \x3e (0)))?(((tens \x3c (20)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_ordinal_units,tens):(function (){var ten_digit \x3d cljs.core.quot(tens,(10));\nvar unit_digit \x3d cljs.core.rem(tens,(10));\nif((((ten_digit \x3e (0))) \x26\x26 ((!((unit_digit \x3e (0))))))){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_ordinal_tens,ten_digit);\n} else {\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1((((ten_digit \x3e (0)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_tens,ten_digit):null)),(((((ten_digit \x3e (0))) \x26\x26 ((unit_digit \x3e (0)))))?\x22-\x22:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1((((unit_digit \x3e (0)))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_ordinal_units,unit_digit):null))].join(\x27\x27);\n}\n})()):(((hundreds \x3e (0)))?\x22th\x22:null)))].join(\x27\x27);\n});\ncljs.pprint.format_ordinal_english \x3d (function cljs$pprint$format_ordinal_english(params,navigator,offsets){\nvar vec__25537 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25537,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25537,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),arg)){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22zeroth\x22], 0));\n} else {\nvar abs_arg_28537 \x3d (((arg \x3c (0)))?(- arg):arg);\nvar parts_28538 \x3d cljs.pprint.remainders((1000),abs_arg_28537);\nif((cljs.core.count(parts_28538) \x3c\x3d cljs.core.count(cljs.pprint.english_scale_numbers))){\nvar parts_strs_28539 \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.pprint.format_simple_cardinal,cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1(parts_28538));\nvar head_str_28540 \x3d cljs.pprint.add_english_scales(parts_strs_28539,(1));\nvar tail_str_28541 \x3d cljs.pprint.format_simple_ordinal(cljs.core.last(parts_28538));\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[(((arg \x3c (0)))?\x22minus \x22:null),(((((!(cljs.core.empty_QMARK_(head_str_28540)))) \x26\x26 ((!(cljs.core.empty_QMARK_(tail_str_28541))))))?[head_str_28540,\x22, \x22,tail_str_28541].join(\x27\x27):(((!(cljs.core.empty_QMARK_(head_str_28540))))?[head_str_28540,\x22th\x22].join(\x27\x27):tail_str_28541\n))].join(\x27\x27)], 0));\n} else {\ncljs.pprint.format_integer((10),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),\x22 \x22,new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),\x22,\x22,new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),(3),new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),true], null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [arg], null)),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),(0),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),(0),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),(0)], null));\n\nvar low_two_digits_28542 \x3d cljs.core.rem(arg,(100));\nvar not_teens_28543 \x3d ((((11) \x3c low_two_digits_28542)) || (((19) \x3e low_two_digits_28542)));\nvar low_digit_28544 \x3d cljs.core.rem(low_two_digits_28542,(10));\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(((((low_digit_28544 \x3d\x3d\x3d (1))) \x26\x26 (not_teens_28543)))?\x22st\x22:(((((low_digit_28544 \x3d\x3d\x3d (2))) \x26\x26 (not_teens_28543)))?\x22nd\x22:(((((low_digit_28544 \x3d\x3d\x3d (3))) \x26\x26 (not_teens_28543)))?\x22rd\x22:\x22th\x22\n)))], 0));\n}\n}\n\nreturn navigator__$1;\n});\ncljs.pprint.old_roman_table \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22I\x22,\x22II\x22,\x22III\x22,\x22IIII\x22,\x22V\x22,\x22VI\x22,\x22VII\x22,\x22VIII\x22,\x22VIIII\x22], null),new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22X\x22,\x22XX\x22,\x22XXX\x22,\x22XXXX\x22,\x22L\x22,\x22LX\x22,\x22LXX\x22,\x22LXXX\x22,\x22LXXXX\x22], null),new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22C\x22,\x22CC\x22,\x22CCC\x22,\x22CCCC\x22,\x22D\x22,\x22DC\x22,\x22DCC\x22,\x22DCCC\x22,\x22DCCCC\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22M\x22,\x22MM\x22,\x22MMM\x22], null)], null);\ncljs.pprint.new_roman_table \x3d new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22I\x22,\x22II\x22,\x22III\x22,\x22IV\x22,\x22V\x22,\x22VI\x22,\x22VII\x22,\x22VIII\x22,\x22IX\x22], null),new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22X\x22,\x22XX\x22,\x22XXX\x22,\x22XL\x22,\x22L\x22,\x22LX\x22,\x22LXX\x22,\x22LXXX\x22,\x22XC\x22], null),new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22C\x22,\x22CC\x22,\x22CCC\x22,\x22CD\x22,\x22D\x22,\x22DC\x22,\x22DCC\x22,\x22DCCC\x22,\x22CM\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22M\x22,\x22MM\x22,\x22MMM\x22], null)], null);\n/**\n * Format a roman numeral using the specified look-up table\n */\ncljs.pprint.format_roman \x3d (function cljs$pprint$format_roman(table,params,navigator,offsets){\nvar vec__25576 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25576,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25576,(1),null);\nif(((typeof arg \x3d\x3d\x3d \x27number\x27) \x26\x26 ((((arg \x3e (0))) \x26\x26 ((arg \x3c (4000))))))){\nvar digits_28545 \x3d cljs.pprint.remainders((10),arg);\nvar acc_28546 \x3d cljs.core.PersistentVector.EMPTY;\nvar pos_28547 \x3d (cljs.core.count(digits_28545) - (1));\nvar digits_28548__$1 \x3d digits_28545;\nwhile(true){\nif(cljs.core.empty_QMARK_(digits_28548__$1)){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,acc_28546)], 0));\n} else {\nvar digit_28549 \x3d cljs.core.first(digits_28548__$1);\nvar G__28550 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),digit_28549))?acc_28546:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc_28546,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(table,pos_28547),(digit_28549 - (1)))));\nvar G__28551 \x3d (pos_28547 - (1));\nvar G__28552 \x3d cljs.core.next(digits_28548__$1);\nacc_28546 \x3d G__28550;\npos_28547 \x3d G__28551;\ndigits_28548__$1 \x3d G__28552;\ncontinue;\n}\nbreak;\n}\n} else {\ncljs.pprint.format_integer((10),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),\x22 \x22,new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),\x22,\x22,new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),(3),new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),true], null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [arg], null)),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),(0),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),(0),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),(0),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),(0)], null));\n}\n\nreturn navigator__$1;\n});\ncljs.pprint.format_old_roman \x3d (function cljs$pprint$format_old_roman(params,navigator,offsets){\nreturn cljs.pprint.format_roman(cljs.pprint.old_roman_table,params,navigator,offsets);\n});\ncljs.pprint.format_new_roman \x3d (function cljs$pprint$format_new_roman(params,navigator,offsets){\nreturn cljs.pprint.format_roman(cljs.pprint.new_roman_table,params,navigator,offsets);\n});\ncljs.pprint.special_chars \x3d new cljs.core.PersistentArrayMap(null, 5, [(8),\x22Backspace\x22,(9),\x22Tab\x22,(10),\x22Newline\x22,(13),\x22Return\x22,(32),\x22Space\x22], null);\ncljs.pprint.pretty_character \x3d (function cljs$pprint$pretty_character(params,navigator,offsets){\nvar vec__25604 \x3d cljs.pprint.next_arg(navigator);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25604,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25604,(1),null);\nvar as_int \x3d cljs.pprint.char_code(c);\nvar base_char \x3d (as_int \x26 (127));\nvar meta \x3d (as_int \x26 (128));\nvar special \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.special_chars,base_char);\nif((meta \x3e (0))){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Meta-\x22], 0));\n} else {\n}\n\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(special)?special:(((base_char \x3c (32)))?[\x22Control-\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.char$((base_char + (64))))].join(\x27\x27):((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(base_char,(127)))?\x22Control-?\x22:cljs.core.char$(base_char)\n)))], 0));\n\nreturn navigator__$1;\n});\ncljs.pprint.readable_character \x3d (function cljs$pprint$readable_character(params,navigator,offsets){\nvar vec__25611 \x3d cljs.pprint.next_arg(navigator);\nvar c \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25611,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25611,(1),null);\nvar pred__25614_28554 \x3d cljs.core._EQ_;\nvar expr__25615_28555 \x3d new cljs.core.Keyword(null,\x22char-format\x22,\x22char-format\x22,-1016499218).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_((function (){var G__25618 \x3d \x22o\x22;\nvar G__25619 \x3d expr__25615_28555;\nreturn (pred__25614_28554.cljs$core$IFn$_invoke$arity$2 ? pred__25614_28554.cljs$core$IFn$_invoke$arity$2(G__25618,G__25619) : pred__25614_28554.call(null, G__25618,G__25619));\n})())){\ncljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(true,\x22\\\\o~3,\x270o\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.pprint.char_code(c)], 0));\n} else {\nif(cljs.core.truth_((function (){var G__25628 \x3d \x22u\x22;\nvar G__25629 \x3d expr__25615_28555;\nreturn (pred__25614_28554.cljs$core$IFn$_invoke$arity$2 ? pred__25614_28554.cljs$core$IFn$_invoke$arity$2(G__25628,G__25629) : pred__25614_28554.call(null, G__25628,G__25629));\n})())){\ncljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(true,\x22\\\\u~4,\x270x\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.pprint.char_code(c)], 0));\n} else {\nif(cljs.core.truth_((pred__25614_28554.cljs$core$IFn$_invoke$arity$2 ? pred__25614_28554.cljs$core$IFn$_invoke$arity$2(null,expr__25615_28555) : pred__25614_28554.call(null, null,expr__25615_28555)))){\ncljs.pprint.print_char(c);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__25615_28555)].join(\x27\x27)));\n}\n}\n}\n\nreturn navigator__$1;\n});\ncljs.pprint.plain_character \x3d (function cljs$pprint$plain_character(params,navigator,offsets){\nvar vec__25672 \x3d cljs.pprint.next_arg(navigator);\nvar char$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25672,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25672,(1),null);\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([char$], 0));\n\nreturn navigator__$1;\n});\ncljs.pprint.abort_QMARK_ \x3d (function cljs$pprint$abort_QMARK_(context){\nvar token \x3d cljs.core.first(context);\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333),token)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22colon-up-arrow\x22,\x22colon-up-arrow\x22,244853007),token)));\n});\ncljs.pprint.execute_sub_format \x3d (function cljs$pprint$execute_sub_format(format,args,base_args){\nreturn cljs.core.second(cljs.pprint.map_passing_context((function (element,context){\nif(cljs.pprint.abort_QMARK_(context)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,context], null);\n} else {\nvar vec__25700 \x3d cljs.pprint.realize_parameter_list(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(element),context);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25700,(0),null);\nvar args__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25700,(1),null);\nvar vec__25703 \x3d cljs.pprint.unzip_map(params);\nvar params__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25703,(0),null);\nvar offsets \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25703,(1),null);\nvar params__$2 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(params__$1,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822),base_args);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040).cljs$core$IFn$_invoke$arity$1(element),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [params__$2,args__$1,offsets], null))], null);\n}\n}),args,format));\n});\n/**\n * Produce string parts for the mantissa (normalize 1-9) and exponent\n */\ncljs.pprint.float_parts_base \x3d (function cljs$pprint$float_parts_base(f){\nvar s \x3d clojure.string.lower_case(cljs.core.str.cljs$core$IFn$_invoke$arity$1(f));\nvar exploc \x3d s.indexOf(\x22e\x22);\nvar dotloc \x3d s.indexOf(\x22.\x22);\nif((exploc \x3c (0))){\nif((dotloc \x3c (0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [s,cljs.core.str.cljs$core$IFn$_invoke$arity$1((((s).length) - (1)))], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),dotloc),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(dotloc + (1)))].join(\x27\x27),cljs.core.str.cljs$core$IFn$_invoke$arity$1((dotloc - (1)))], null);\n}\n} else {\nif((dotloc \x3c (0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),exploc),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(exploc + (1)))], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),(1)),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(2),exploc)].join(\x27\x27),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(exploc + (1)))], null);\n}\n}\n});\n/**\n * Take care of leading and trailing zeros in decomposed floats\n */\ncljs.pprint.float_parts \x3d (function cljs$pprint$float_parts(f){\nvar vec__25730 \x3d cljs.pprint.float_parts_base(f);\nvar m \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25730,(0),null);\nvar e \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25730,(1),null);\nvar m1 \x3d cljs.pprint.rtrim(m,\x220\x22);\nvar m2 \x3d cljs.pprint.ltrim(m1,\x220\x22);\nvar delta \x3d (cljs.core.count(m1) - cljs.core.count(m2));\nvar e__$1 \x3d (((((cljs.core.count(e) \x3e (0))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(e,(0)),\x22+\x22))))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(e,(1)):e);\nif(cljs.core.empty_QMARK_(m2)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x220\x22,(0)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [m2,(parseInt(e__$1,(10)) - delta)], null);\n}\n});\n/**\n * Assumption: The input string consists of one or more decimal digits,\n * and no other characters. Return a string containing one or more\n * decimal digits containing a decimal number one larger than the input\n * string. The output string will always be the same length as the input\n * string, or one character longer.\n */\ncljs.pprint.inc_s \x3d (function cljs$pprint$inc_s(s){\nvar len_1 \x3d (cljs.core.count(s) - (1));\nvar i \x3d (len_1 | (0));\nwhile(true){\nif((i \x3c (0))){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.str,\x221\x22,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((len_1 + (1)),\x220\x22));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x229\x22,s.charAt(i))){\nvar G__28559 \x3d (i - (1));\ni \x3d G__28559;\ncontinue;\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.str,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),i),cljs.core.char$((cljs.pprint.char_code(s.charAt(i)) + (1))),cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((len_1 - i),\x220\x22));\n\n}\n}\nbreak;\n}\n});\ncljs.pprint.round_str \x3d (function cljs$pprint$round_str(m,e,d,w){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d d;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn w;\n}\n})())){\nvar len \x3d cljs.core.count(m);\nvar w__$1 \x3d (cljs.core.truth_(w)?(function (){var x__5087__auto__ \x3d (2);\nvar y__5088__auto__ \x3d w;\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})():(0));\nvar round_pos \x3d (cljs.core.truth_(d)?((e + d) + (1)):(((e \x3e\x3d (0)))?(function (){var x__5087__auto__ \x3d (e + (1));\nvar y__5088__auto__ \x3d (w__$1 - (1));\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})():(w__$1 + e)\n));\nvar vec__25762 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(round_pos,(0)))?new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x220\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(m)].join(\x27\x27),(e + (1)),(1),(len + (1))], null):new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,e,round_pos,len], null));\nvar m1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25762,(0),null);\nvar e1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25762,(1),null);\nvar round_pos__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25762,(2),null);\nvar len__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25762,(3),null);\nif(cljs.core.truth_(round_pos__$1)){\nif((round_pos__$1 \x3c (0))){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x220\x22,(0),false], null);\n} else {\nif((len__$1 \x3e round_pos__$1)){\nvar round_char \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(m1,round_pos__$1);\nvar result \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$3(m1,(0),round_pos__$1);\nif((cljs.pprint.char_code(round_char) \x3e\x3d cljs.pprint.char_code(\x225\x22))){\nvar round_up_result \x3d cljs.pprint.inc_s(result);\nvar expanded \x3d (cljs.core.count(round_up_result) \x3e ((result).length));\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [((expanded)?cljs.core.subs.cljs$core$IFn$_invoke$arity$3(round_up_result,(0),(cljs.core.count(round_up_result) - (1))):round_up_result),e1,expanded], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [result,e1,false], null);\n}\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,e,false], null);\n}\n}\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,e,false], null);\n}\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,e,false], null);\n}\n});\ncljs.pprint.expand_fixed \x3d (function cljs$pprint$expand_fixed(m,e,d){\nvar vec__25833 \x3d (((e \x3c (0)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(((- e) - (1)),\x220\x22))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(m)].join(\x27\x27),(-1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,e], null));\nvar m1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25833,(0),null);\nvar e1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25833,(1),null);\nvar len \x3d cljs.core.count(m1);\nvar target_len \x3d (cljs.core.truth_(d)?((e1 + d) + (1)):(e1 + (1)));\nif((len \x3c target_len)){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(m1),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((target_len - len),\x220\x22)))].join(\x27\x27);\n} else {\nreturn m1;\n}\n});\n/**\n * Insert the decimal point at the right spot in the number to match an exponent\n */\ncljs.pprint.insert_decimal \x3d (function cljs$pprint$insert_decimal(m,e){\nif((e \x3c (0))){\nreturn [\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(m)].join(\x27\x27);\n} else {\nvar loc \x3d (e + (1));\nreturn [cljs.core.subs.cljs$core$IFn$_invoke$arity$3(m,(0),loc),\x22.\x22,cljs.core.subs.cljs$core$IFn$_invoke$arity$2(m,loc)].join(\x27\x27);\n}\n});\ncljs.pprint.get_fixed \x3d (function cljs$pprint$get_fixed(m,e,d){\nreturn cljs.pprint.insert_decimal(cljs.pprint.expand_fixed(m,e,d),e);\n});\n/**\n * Insert the decimal point at the right spot in the number to match an exponent\n */\ncljs.pprint.insert_scaled_decimal \x3d (function cljs$pprint$insert_scaled_decimal(m,k){\nif((k \x3c (0))){\nreturn [\x22.\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(m)].join(\x27\x27);\n} else {\nreturn [cljs.core.subs.cljs$core$IFn$_invoke$arity$3(m,(0),k),\x22.\x22,cljs.core.subs.cljs$core$IFn$_invoke$arity$2(m,k)].join(\x27\x27);\n}\n});\ncljs.pprint.convert_ratio \x3d (function cljs$pprint$convert_ratio(x){\nreturn x;\n});\ncljs.pprint.fixed_float \x3d (function cljs$pprint$fixed_float(params,navigator,offsets){\nvar w \x3d new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001).cljs$core$IFn$_invoke$arity$1(params);\nvar d \x3d new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424).cljs$core$IFn$_invoke$arity$1(params);\nvar vec__25864 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25864,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25864,(1),null);\nvar vec__25867 \x3d (((arg \x3c (0)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22-\x22,(- arg)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22+\x22,arg], null));\nvar sign \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25867,(0),null);\nvar abs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25867,(1),null);\nvar abs__$1 \x3d cljs.pprint.convert_ratio(abs);\nvar vec__25870 \x3d cljs.pprint.float_parts(abs__$1);\nvar mantissa \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25870,(0),null);\nvar exp \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25870,(1),null);\nvar scaled_exp \x3d (exp + new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393).cljs$core$IFn$_invoke$arity$1(params));\nvar add_sign \x3d (function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (arg \x3c (0));\n}\n})();\nvar append_zero \x3d ((cljs.core.not(d)) \x26\x26 (((cljs.core.count(mantissa) - (1)) \x3c\x3d scaled_exp)));\nvar vec__25873 \x3d cljs.pprint.round_str(mantissa,scaled_exp,d,(cljs.core.truth_(w)?(w - (cljs.core.truth_(add_sign)?(1):(0))):null));\nvar rounded_mantissa \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25873,(0),null);\nvar scaled_exp__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25873,(1),null);\nvar expanded \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25873,(2),null);\nvar fixed_repr \x3d cljs.pprint.get_fixed(rounded_mantissa,(cljs.core.truth_(expanded)?(scaled_exp__$1 + (1)):scaled_exp__$1),d);\nvar fixed_repr__$1 \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d w;\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d d;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn (((d \x3e\x3d (1))) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(fixed_repr.charAt((0)),\x220\x22)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(fixed_repr.charAt((1)),\x22.\x22)) \x26\x26 ((((fixed_repr).length) \x3e (w - (cljs.core.truth_(add_sign)?(1):(0))))))))));\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(fixed_repr,(1)):fixed_repr);\nvar prepend_zero \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(fixed_repr__$1),\x22.\x22);\nif(cljs.core.truth_(w)){\nvar len_28563 \x3d ((fixed_repr__$1).length);\nvar signed_len_28564 \x3d (cljs.core.truth_(add_sign)?(len_28563 + (1)):len_28563);\nvar prepend_zero_28565__$1 \x3d ((prepend_zero) \x26\x26 ((!((signed_len_28564 \x3e\x3d w)))));\nvar append_zero_28566__$1 \x3d ((append_zero) \x26\x26 ((!((signed_len_28564 \x3e\x3d w)))));\nvar full_len_28567 \x3d ((((prepend_zero_28565__$1) || (append_zero_28566__$1)))?(signed_len_28564 + (1)):signed_len_28564);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d (full_len_28567 \x3e w);\nif(and__5000__auto__){\nreturn new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106).cljs$core$IFn$_invoke$arity$1(params);\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(w,new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106).cljs$core$IFn$_invoke$arity$1(params)))], 0));\n} else {\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((w - full_len_28567),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params)))),cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.core.truth_(add_sign)?sign:null)),((prepend_zero_28565__$1)?\x220\x22:null),fixed_repr__$1,((append_zero_28566__$1)?\x220\x22:null)].join(\x27\x27)], 0));\n}\n} else {\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.core.truth_(add_sign)?sign:null)),((prepend_zero)?\x220\x22:null),fixed_repr__$1,((append_zero)?\x220\x22:null)].join(\x27\x27)], 0));\n}\n\nreturn navigator__$1;\n});\ncljs.pprint.exponential_float \x3d (function cljs$pprint$exponential_float(params,navigator,offset){\nvar vec__25954 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25954,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25954,(1),null);\nvar arg__$1 \x3d cljs.pprint.convert_ratio(arg);\nvar G__25962_28568 \x3d cljs.pprint.float_parts((((arg__$1 \x3c (0)))?(- arg__$1):arg__$1));\nvar vec__25964_28569 \x3d G__25962_28568;\nvar mantissa_28570 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25964_28569,(0),null);\nvar exp_28571 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25964_28569,(1),null);\nvar G__25962_28572__$1 \x3d G__25962_28568;\nwhile(true){\nvar vec__25973_28573 \x3d G__25962_28572__$1;\nvar mantissa_28574__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25973_28573,(0),null);\nvar exp_28575__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25973_28573,(1),null);\nvar w_28576 \x3d new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001).cljs$core$IFn$_invoke$arity$1(params);\nvar d_28577 \x3d new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424).cljs$core$IFn$_invoke$arity$1(params);\nvar e_28578 \x3d new cljs.core.Keyword(null,\x22e\x22,\x22e\x22,1381269198).cljs$core$IFn$_invoke$arity$1(params);\nvar k_28579 \x3d new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393).cljs$core$IFn$_invoke$arity$1(params);\nvar expchar_28580 \x3d (function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22exponentchar\x22,\x22exponentchar\x22,1986664222).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn \x22E\x22;\n}\n})();\nvar add_sign_28581 \x3d (function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (arg__$1 \x3c (0));\n}\n})();\nvar prepend_zero_28582 \x3d (k_28579 \x3c\x3d (0));\nvar scaled_exp_28583 \x3d (exp_28575__$1 - (k_28579 - (1)));\nvar scaled_exp_str_28584 \x3d cljs.core.str.cljs$core$IFn$_invoke$arity$1(Math.abs(scaled_exp_28583));\nvar scaled_exp_str_28585__$1 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(expchar_28580),(((scaled_exp_28583 \x3c (0)))?\x22-\x22:\x22+\x22),cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.core.truth_(e_28578)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((e_28578 - ((scaled_exp_str_28584).length)),\x220\x22)):null)),scaled_exp_str_28584].join(\x27\x27);\nvar exp_width_28586 \x3d ((scaled_exp_str_28585__$1).length);\nvar base_mantissa_width_28587 \x3d cljs.core.count(mantissa_28574__$1);\nvar scaled_mantissa_28588 \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((- k_28579),\x220\x22))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(mantissa_28574__$1),cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.core.truth_(d_28577)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(((d_28577 - (base_mantissa_width_28587 - (1))) - (((k_28579 \x3c (0)))?(- k_28579):(0))),\x220\x22)):null))].join(\x27\x27);\nvar w_mantissa_28589 \x3d (cljs.core.truth_(w_28576)?(w_28576 - exp_width_28586):null);\nvar vec__25978_28590 \x3d cljs.pprint.round_str(scaled_mantissa_28588,(0),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k_28579,(0)))?(d_28577 - (1)):(((k_28579 \x3e (0)))?d_28577:(((k_28579 \x3c (0)))?(d_28577 - (1)):null))),(cljs.core.truth_(w_mantissa_28589)?(w_mantissa_28589 - (cljs.core.truth_(add_sign_28581)?(1):(0))):null));\nvar rounded_mantissa_28591 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25978_28590,(0),null);\nvar __28592 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25978_28590,(1),null);\nvar incr_exp_28593 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25978_28590,(2),null);\nvar full_mantissa_28594 \x3d cljs.pprint.insert_scaled_decimal(rounded_mantissa_28591,k_28579);\nvar append_zero_28595 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k_28579,cljs.core.count(rounded_mantissa_28591))) \x26\x26 ((d_28577 \x3d\x3d null)));\nif(cljs.core.not(incr_exp_28593)){\nif(cljs.core.truth_(w_28576)){\nvar len_28598 \x3d (((full_mantissa_28594).length) + exp_width_28586);\nvar signed_len_28599 \x3d (cljs.core.truth_(add_sign_28581)?(len_28598 + (1)):len_28598);\nvar prepend_zero_28600__$1 \x3d ((prepend_zero_28582) \x26\x26 ((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(signed_len_28599,w_28576)))));\nvar full_len_28601 \x3d ((prepend_zero_28600__$1)?(signed_len_28599 + (1)):signed_len_28599);\nvar append_zero_28602__$1 \x3d ((append_zero_28595) \x26\x26 ((full_len_28601 \x3c w_28576)));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d (function (){var or__5002__auto__ \x3d (full_len_28601 \x3e w_28576);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d e_28578;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn ((exp_width_28586 - (2)) \x3e e_28578);\n} else {\nreturn and__5000__auto__;\n}\n}\n})();\nif(cljs.core.truth_(and__5000__auto__)){\nreturn new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106).cljs$core$IFn$_invoke$arity$1(params);\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(w_28576,new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106).cljs$core$IFn$_invoke$arity$1(params)))], 0));\n} else {\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(((w_28576 - full_len_28601) - ((append_zero_28602__$1)?(1):(0))),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params)))),(cljs.core.truth_(add_sign_28581)?(((arg__$1 \x3c (0)))?\x22-\x22:\x22+\x22):null),((prepend_zero_28600__$1)?\x220\x22:null),full_mantissa_28594,((append_zero_28602__$1)?\x220\x22:null),scaled_exp_str_28585__$1].join(\x27\x27)], 0));\n}\n} else {\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[(cljs.core.truth_(add_sign_28581)?(((arg__$1 \x3c (0)))?\x22-\x22:\x22+\x22):null),((prepend_zero_28582)?\x220\x22:null),full_mantissa_28594,((append_zero_28595)?\x220\x22:null),scaled_exp_str_28585__$1].join(\x27\x27)], 0));\n}\n} else {\nvar G__28605 \x3d new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [rounded_mantissa_28591,(exp_28575__$1 + (1))], null);\nG__25962_28572__$1 \x3d G__28605;\ncontinue;\n}\nbreak;\n}\n\nreturn navigator__$1;\n});\ncljs.pprint.general_float \x3d (function cljs$pprint$general_float(params,navigator,offsets){\nvar vec__26050 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26050,(0),null);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26050,(1),null);\nvar arg__$1 \x3d cljs.pprint.convert_ratio(arg);\nvar vec__26053 \x3d cljs.pprint.float_parts((((arg__$1 \x3c (0)))?(- arg__$1):arg__$1));\nvar mantissa \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26053,(0),null);\nvar exp \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26053,(1),null);\nvar w \x3d new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001).cljs$core$IFn$_invoke$arity$1(params);\nvar d \x3d new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424).cljs$core$IFn$_invoke$arity$1(params);\nvar e \x3d new cljs.core.Keyword(null,\x22e\x22,\x22e\x22,1381269198).cljs$core$IFn$_invoke$arity$1(params);\nvar n \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arg__$1,0.0))?(0):(exp + (1)));\nvar ee \x3d (cljs.core.truth_(e)?(e + (2)):(4));\nvar ww \x3d (cljs.core.truth_(w)?(w - ee):null);\nvar d__$1 \x3d (cljs.core.truth_(d)?d:(function (){var x__5087__auto__ \x3d cljs.core.count(mantissa);\nvar y__5088__auto__ \x3d (function (){var x__5090__auto__ \x3d n;\nvar y__5091__auto__ \x3d (7);\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})();\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})());\nvar dd \x3d (d__$1 - n);\nif(((((0) \x3c\x3d dd)) \x26\x26 ((dd \x3c\x3d d__$1)))){\nvar navigator__$1 \x3d cljs.pprint.fixed_float(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),ww,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),dd,new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),(0),new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106),new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106).cljs$core$IFn$_invoke$arity$1(params),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params),new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params)], null),navigator,offsets);\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(ee,\x22 \x22))], 0));\n\nreturn navigator__$1;\n} else {\nreturn cljs.pprint.exponential_float(params,navigator,offsets);\n}\n});\ncljs.pprint.dollar_float \x3d (function cljs$pprint$dollar_float(params,navigator,offsets){\nvar vec__26073 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26073,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26073,(1),null);\nvar vec__26076 \x3d cljs.pprint.float_parts(Math.abs(arg));\nvar mantissa \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26076,(0),null);\nvar exp \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26076,(1),null);\nvar d \x3d new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424).cljs$core$IFn$_invoke$arity$1(params);\nvar n \x3d new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025).cljs$core$IFn$_invoke$arity$1(params);\nvar w \x3d new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001).cljs$core$IFn$_invoke$arity$1(params);\nvar add_sign \x3d (function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (arg \x3c (0));\n}\n})();\nvar vec__26079 \x3d cljs.pprint.round_str(mantissa,exp,d,null);\nvar rounded_mantissa \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26079,(0),null);\nvar scaled_exp \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26079,(1),null);\nvar expanded \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26079,(2),null);\nvar fixed_repr \x3d cljs.pprint.get_fixed(rounded_mantissa,(cljs.core.truth_(expanded)?(scaled_exp + (1)):scaled_exp),d);\nvar full_repr \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((n - fixed_repr.indexOf(\x22.\x22)),\x220\x22))),fixed_repr].join(\x27\x27);\nvar full_len \x3d (((full_repr).length) + (cljs.core.truth_(add_sign)?(1):(0)));\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[(cljs.core.truth_((function (){var and__5000__auto__ \x3d new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn add_sign;\n} else {\nreturn and__5000__auto__;\n}\n})())?(((arg \x3c (0)))?\x22-\x22:\x22+\x22):null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((w - full_len),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params)))),(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params));\nif(and__5000__auto__){\nreturn add_sign;\n} else {\nreturn and__5000__auto__;\n}\n})())?(((arg \x3c (0)))?\x22-\x22:\x22+\x22):null),full_repr].join(\x27\x27)], 0));\n\nreturn navigator__$1;\n});\ncljs.pprint.choice_conditional \x3d (function cljs$pprint$choice_conditional(params,arg_navigator,offsets){\nvar arg \x3d new cljs.core.Keyword(null,\x22selector\x22,\x22selector\x22,762528866).cljs$core$IFn$_invoke$arity$1(params);\nvar vec__26118 \x3d (cljs.core.truth_(arg)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [arg,arg_navigator], null):cljs.pprint.next_arg(arg_navigator));\nvar arg__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26118,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26118,(1),null);\nvar clauses \x3d new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params);\nvar clause \x3d (((((arg__$1 \x3c (0))) || ((arg__$1 \x3e\x3d cljs.core.count(clauses)))))?cljs.core.first(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(params)):cljs.core.nth.cljs$core$IFn$_invoke$arity$2(clauses,arg__$1));\nif(cljs.core.truth_(clause)){\nreturn cljs.pprint.execute_sub_format(clause,navigator__$1,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\n} else {\nreturn navigator__$1;\n}\n});\ncljs.pprint.boolean_conditional \x3d (function cljs$pprint$boolean_conditional(params,arg_navigator,offsets){\nvar vec__26137 \x3d cljs.pprint.next_arg(arg_navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26137,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26137,(1),null);\nvar clauses \x3d new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params);\nvar clause \x3d (cljs.core.truth_(arg)?cljs.core.second(clauses):cljs.core.first(clauses));\nif(cljs.core.truth_(clause)){\nreturn cljs.pprint.execute_sub_format(clause,navigator__$1,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\n} else {\nreturn navigator__$1;\n}\n});\ncljs.pprint.check_arg_conditional \x3d (function cljs$pprint$check_arg_conditional(params,arg_navigator,offsets){\nvar vec__26151 \x3d cljs.pprint.next_arg(arg_navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26151,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26151,(1),null);\nvar clauses \x3d new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params);\nvar clause \x3d (cljs.core.truth_(arg)?cljs.core.first(clauses):null);\nif(cljs.core.truth_(arg)){\nif(cljs.core.truth_(clause)){\nreturn cljs.pprint.execute_sub_format(clause,arg_navigator,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\n} else {\nreturn arg_navigator;\n}\n} else {\nreturn navigator__$1;\n}\n});\ncljs.pprint.iterate_sublist \x3d (function cljs$pprint$iterate_sublist(params,navigator,offsets){\nvar max_count \x3d new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563).cljs$core$IFn$_invoke$arity$1(params);\nvar param_clause \x3d cljs.core.first(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params));\nvar vec__26164 \x3d ((cljs.core.empty_QMARK_(param_clause))?cljs.pprint.get_format_arg(navigator):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [param_clause,navigator], null));\nvar clause \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26164,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26164,(1),null);\nvar vec__26167 \x3d cljs.pprint.next_arg(navigator__$1);\nvar arg_list \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26167,(0),null);\nvar navigator__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26167,(1),null);\nvar args \x3d cljs.pprint.init_navigator(arg_list);\nvar count \x3d (0);\nvar args__$1 \x3d args;\nvar last_pos \x3d ((-1) | (0));\nwhile(true){\nif(((cljs.core.not(max_count)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(args__$1),last_pos)) \x26\x26 ((count \x3e (1))))))){\nthrow Error(\x22%{ construct not consuming any arguments: Infinite loop!\x22);\n} else {\n}\n\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d ((cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(args__$1))) \x26\x26 (((cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22right-params\x22,\x22right-params\x22,-1790676237).cljs$core$IFn$_invoke$arity$1(params)))) || ((count \x3e (0))))));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d max_count;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (count \x3e\x3d max_count);\n} else {\nreturn and__5000__auto__;\n}\n}\n})())){\nreturn navigator__$2;\n} else {\nvar iter_result \x3d cljs.pprint.execute_sub_format(clause,args__$1,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333),cljs.core.first(iter_result))){\nreturn navigator__$2;\n} else {\nvar G__28620 \x3d (count + (1));\nvar G__28621 \x3d iter_result;\nvar G__28622 \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(args__$1);\ncount \x3d G__28620;\nargs__$1 \x3d G__28621;\nlast_pos \x3d G__28622;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.pprint.iterate_list_of_sublists \x3d (function cljs$pprint$iterate_list_of_sublists(params,navigator,offsets){\nvar max_count \x3d new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563).cljs$core$IFn$_invoke$arity$1(params);\nvar param_clause \x3d cljs.core.first(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params));\nvar vec__26290 \x3d ((cljs.core.empty_QMARK_(param_clause))?cljs.pprint.get_format_arg(navigator):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [param_clause,navigator], null));\nvar clause \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26290,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26290,(1),null);\nvar vec__26293 \x3d cljs.pprint.next_arg(navigator__$1);\nvar arg_list \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26293,(0),null);\nvar navigator__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26293,(1),null);\nvar count \x3d (0);\nvar arg_list__$1 \x3d arg_list;\nwhile(true){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d ((cljs.core.empty_QMARK_(arg_list__$1)) \x26\x26 (((cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22right-params\x22,\x22right-params\x22,-1790676237).cljs$core$IFn$_invoke$arity$1(params)))) || ((count \x3e (0))))));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d max_count;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (count \x3e\x3d max_count);\n} else {\nreturn and__5000__auto__;\n}\n}\n})())){\nreturn navigator__$2;\n} else {\nvar iter_result \x3d cljs.pprint.execute_sub_format(clause,cljs.pprint.init_navigator(cljs.core.first(arg_list__$1)),cljs.pprint.init_navigator(cljs.core.next(arg_list__$1)));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22colon-up-arrow\x22,\x22colon-up-arrow\x22,244853007),cljs.core.first(iter_result))){\nreturn navigator__$2;\n} else {\nvar G__28625 \x3d (count + (1));\nvar G__28626 \x3d cljs.core.next(arg_list__$1);\ncount \x3d G__28625;\narg_list__$1 \x3d G__28626;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.pprint.iterate_main_list \x3d (function cljs$pprint$iterate_main_list(params,navigator,offsets){\nvar max_count \x3d new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563).cljs$core$IFn$_invoke$arity$1(params);\nvar param_clause \x3d cljs.core.first(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params));\nvar vec__26346 \x3d ((cljs.core.empty_QMARK_(param_clause))?cljs.pprint.get_format_arg(navigator):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [param_clause,navigator], null));\nvar clause \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26346,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26346,(1),null);\nvar count \x3d (0);\nvar navigator__$2 \x3d navigator__$1;\nvar last_pos \x3d ((-1) | (0));\nwhile(true){\nif(((cljs.core.not(max_count)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator__$2),last_pos)) \x26\x26 ((count \x3e (1))))))){\nthrow Error(\x22%@{ construct not consuming any arguments: Infinite loop!\x22);\n} else {\n}\n\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d ((cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator__$2))) \x26\x26 (((cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22right-params\x22,\x22right-params\x22,-1790676237).cljs$core$IFn$_invoke$arity$1(params)))) || ((count \x3e (0))))));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d max_count;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (count \x3e\x3d max_count);\n} else {\nreturn and__5000__auto__;\n}\n}\n})())){\nreturn navigator__$2;\n} else {\nvar iter_result \x3d cljs.pprint.execute_sub_format(clause,navigator__$2,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333),cljs.core.first(iter_result))){\nreturn cljs.core.second(iter_result);\n} else {\nvar G__28629 \x3d (count + (1));\nvar G__28630 \x3d iter_result;\nvar G__28631 \x3d new cljs.core.Keyword(null,\x22pos\x22,\x22pos\x22,-864607220).cljs$core$IFn$_invoke$arity$1(navigator__$2);\ncount \x3d G__28629;\nnavigator__$2 \x3d G__28630;\nlast_pos \x3d G__28631;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.pprint.iterate_main_sublists \x3d (function cljs$pprint$iterate_main_sublists(params,navigator,offsets){\nvar max_count \x3d new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563).cljs$core$IFn$_invoke$arity$1(params);\nvar param_clause \x3d cljs.core.first(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params));\nvar vec__26412 \x3d ((cljs.core.empty_QMARK_(param_clause))?cljs.pprint.get_format_arg(navigator):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [param_clause,navigator], null));\nvar clause \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26412,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26412,(1),null);\nvar count \x3d (0);\nvar navigator__$2 \x3d navigator__$1;\nwhile(true){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d ((cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator__$2))) \x26\x26 (((cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22right-params\x22,\x22right-params\x22,-1790676237).cljs$core$IFn$_invoke$arity$1(params)))) || ((count \x3e (0))))));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d max_count;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (count \x3e\x3d max_count);\n} else {\nreturn and__5000__auto__;\n}\n}\n})())){\nreturn navigator__$2;\n} else {\nvar vec__26467 \x3d cljs.pprint.next_arg_or_nil(navigator__$2);\nvar sublist \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26467,(0),null);\nvar navigator__$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26467,(1),null);\nvar iter_result \x3d cljs.pprint.execute_sub_format(clause,cljs.pprint.init_navigator(sublist),navigator__$3);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22colon-up-arrow\x22,\x22colon-up-arrow\x22,244853007),cljs.core.first(iter_result))){\nreturn navigator__$3;\n} else {\nvar G__28632 \x3d (count + (1));\nvar G__28633 \x3d navigator__$3;\ncount \x3d G__28632;\nnavigator__$2 \x3d G__28633;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.pprint.logical_block_or_justify \x3d (function cljs$pprint$logical_block_or_justify(params,navigator,offsets){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22right-params\x22,\x22right-params\x22,-1790676237).cljs$core$IFn$_invoke$arity$1(params)))){\nreturn cljs.pprint.format_logical_block(params,navigator,offsets);\n} else {\nreturn cljs.pprint.justify_clauses(params,navigator,offsets);\n}\n});\ncljs.pprint.render_clauses \x3d (function cljs$pprint$render_clauses(clauses,navigator,base_navigator){\nvar clauses__$1 \x3d clauses;\nvar acc \x3d cljs.core.PersistentVector.EMPTY;\nvar navigator__$1 \x3d navigator;\nwhile(true){\nif(cljs.core.empty_QMARK_(clauses__$1)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [acc,navigator__$1], null);\n} else {\nvar clause \x3d cljs.core.first(clauses__$1);\nvar vec__26567 \x3d (function (){var sb \x3d (new goog.string.StringBuffer());\nvar _STAR_out_STAR__orig_val__26579 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__26580 \x3d (new cljs.core.StringBufferWriter(sb));\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__26580);\n\ntry{return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.pprint.execute_sub_format(clause,navigator__$1,base_navigator),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb)], null);\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__26579);\n}})();\nvar iter_result \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26567,(0),null);\nvar result_str \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26567,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333),cljs.core.first(iter_result))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [acc,cljs.core.second(iter_result)], null);\n} else {\nvar G__28637 \x3d cljs.core.next(clauses__$1);\nvar G__28638 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,result_str);\nvar G__28639 \x3d iter_result;\nclauses__$1 \x3d G__28637;\nacc \x3d G__28638;\nnavigator__$1 \x3d G__28639;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.pprint.justify_clauses \x3d (function cljs$pprint$justify_clauses(params,navigator,offsets){\nvar vec__26631 \x3d (function (){var temp__5804__auto__ \x3d new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar else$ \x3d temp__5804__auto__;\nreturn cljs.pprint.render_clauses(else$,navigator,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\n} else {\nreturn null;\n}\n})();\nvar vec__26634 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26631,(0),null);\nvar eol_str \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26634,(0),null);\nvar new_navigator \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26631,(1),null);\nvar navigator__$1 \x3d (function (){var or__5002__auto__ \x3d new_navigator;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn navigator;\n}\n})();\nvar vec__26637 \x3d (function (){var temp__5804__auto__ \x3d new cljs.core.Keyword(null,\x22else-params\x22,\x22else-params\x22,-832171646).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar p \x3d temp__5804__auto__;\nreturn cljs.pprint.realize_parameter_list(p,navigator__$1);\n} else {\nreturn null;\n}\n})();\nvar else_params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26637,(0),null);\nvar new_navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26637,(1),null);\nvar navigator__$2 \x3d (function (){var or__5002__auto__ \x3d new_navigator__$1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn navigator__$1;\n}\n})();\nvar min_remaining \x3d (function (){var or__5002__auto__ \x3d cljs.core.first(new cljs.core.Keyword(null,\x22min-remaining\x22,\x22min-remaining\x22,962687677).cljs$core$IFn$_invoke$arity$1(else_params));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (0);\n}\n})();\nvar max_columns \x3d (function (){var or__5002__auto__ \x3d cljs.core.first(new cljs.core.Keyword(null,\x22max-columns\x22,\x22max-columns\x22,1742323262).cljs$core$IFn$_invoke$arity$1(else_params));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.pprint.get_max_column(cljs.core._STAR_out_STAR_);\n}\n})();\nvar clauses \x3d new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params);\nvar vec__26640 \x3d cljs.pprint.render_clauses(clauses,navigator__$2,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\nvar strs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26640,(0),null);\nvar navigator__$3 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26640,(1),null);\nvar slots \x3d (function (){var x__5087__auto__ \x3d (1);\nvar y__5088__auto__ \x3d (((cljs.core.count(strs) - (1)) + (cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?(1):(0))) + (cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))?(1):(0)));\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})();\nvar chars \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core._PLUS_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,strs));\nvar mincol \x3d new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445).cljs$core$IFn$_invoke$arity$1(params);\nvar minpad \x3d new cljs.core.Keyword(null,\x22minpad\x22,\x22minpad\x22,323570901).cljs$core$IFn$_invoke$arity$1(params);\nvar colinc \x3d new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385).cljs$core$IFn$_invoke$arity$1(params);\nvar minout \x3d (chars + (slots * minpad));\nvar result_columns \x3d (((minout \x3c\x3d mincol))?mincol:(mincol + (colinc * ((1) + cljs.core.quot(((minout - mincol) - (1)),colinc)))));\nvar total_pad \x3d (result_columns - chars);\nvar pad \x3d (function (){var x__5087__auto__ \x3d minpad;\nvar y__5088__auto__ \x3d cljs.core.quot(total_pad,slots);\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})();\nvar extra_pad \x3d (total_pad - (pad * slots));\nvar pad_str \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(pad,new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params)));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d eol_str;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (((cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_)))) + min_remaining) + result_columns) \x3e max_columns);\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([eol_str], 0));\n} else {\n}\n\nvar slots_28645__$1 \x3d slots;\nvar extra_pad_28646__$1 \x3d extra_pad;\nvar strs_28647__$1 \x3d strs;\nvar pad_only_28648 \x3d (function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(strs_28647__$1),(1))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))));\n}\n})();\nwhile(true){\nif(cljs.core.seq(strs_28647__$1)){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(((cljs.core.not(pad_only_28648))?cljs.core.first(strs_28647__$1):null)),cljs.core.str.cljs$core$IFn$_invoke$arity$1((cljs.core.truth_((function (){var or__5002__auto__ \x3d pad_only_28648;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.core.next(strs_28647__$1);\nif(or__5002__auto____$1){\nreturn or__5002__auto____$1;\n} else {\nreturn new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\n}\n}\n})())?pad_str:null)),cljs.core.str.cljs$core$IFn$_invoke$arity$1((((extra_pad_28646__$1 \x3e (0)))?new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530).cljs$core$IFn$_invoke$arity$1(params):null))].join(\x27\x27)], 0));\n\nvar G__28651 \x3d (slots_28645__$1 - (1));\nvar G__28652 \x3d (extra_pad_28646__$1 - (1));\nvar G__28653 \x3d (cljs.core.truth_(pad_only_28648)?strs_28647__$1:cljs.core.next(strs_28647__$1));\nvar G__28654 \x3d false;\nslots_28645__$1 \x3d G__28651;\nextra_pad_28646__$1 \x3d G__28652;\nstrs_28647__$1 \x3d G__28653;\npad_only_28648 \x3d G__28654;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn navigator__$3;\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.pprint.t_cljs$pprint26687 \x3d (function (writer,meta26688){\nthis.writer \x3d writer;\nthis.meta26688 \x3d meta26688;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1074135040;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.pprint.t_cljs$pprint26687.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26689,meta26688__$1){\nvar self__ \x3d this;\nvar _26689__$1 \x3d this;\nreturn (new cljs.pprint.t_cljs$pprint26687(self__.writer,meta26688__$1));\n}));\n\n(cljs.pprint.t_cljs$pprint26687.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26689){\nvar self__ \x3d this;\nvar _26689__$1 \x3d this;\nreturn self__.meta26688;\n}));\n\n(cljs.pprint.t_cljs$pprint26687.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core._flush(self__.writer);\n}));\n\n(cljs.pprint.t_cljs$pprint26687.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (this$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar pred__26692 \x3d cljs.core._EQ_;\nvar expr__26693 \x3d cljs.core.type(x);\nif(cljs.core.truth_((pred__26692.cljs$core$IFn$_invoke$arity$2 ? pred__26692.cljs$core$IFn$_invoke$arity$2(String,expr__26693) : pred__26692.call(null, String,expr__26693)))){\nvar s \x3d x;\nreturn cljs.core._write(self__.writer,clojure.string.lower_case(s));\n} else {\nif(cljs.core.truth_((pred__26692.cljs$core$IFn$_invoke$arity$2 ? pred__26692.cljs$core$IFn$_invoke$arity$2(Number,expr__26693) : pred__26692.call(null, Number,expr__26693)))){\nvar c \x3d x;\nreturn cljs.core._write(self__.writer,clojure.string.lower_case(cljs.core.char$(c)));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__26693)].join(\x27\x27)));\n}\n}\n}));\n\n(cljs.pprint.t_cljs$pprint26687.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22writer\x22,\x22writer\x22,1362963291,null),new cljs.core.Symbol(null,\x22meta26688\x22,\x22meta26688\x22,1126914021,null)], null);\n}));\n\n(cljs.pprint.t_cljs$pprint26687.cljs$lang$type \x3d true);\n\n(cljs.pprint.t_cljs$pprint26687.cljs$lang$ctorStr \x3d \x22cljs.pprint/t_cljs$pprint26687\x22);\n\n(cljs.pprint.t_cljs$pprint26687.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.pprint/t_cljs$pprint26687\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/t_cljs$pprint26687.\n */\ncljs.pprint.__GT_t_cljs$pprint26687 \x3d (function cljs$pprint$__GT_t_cljs$pprint26687(writer,meta26688){\nreturn (new cljs.pprint.t_cljs$pprint26687(writer,meta26688));\n});\n\n\n/**\n * Returns a proxy that wraps writer, converting all characters to lower case\n */\ncljs.pprint.downcase_writer \x3d (function cljs$pprint$downcase_writer(writer){\nreturn (new cljs.pprint.t_cljs$pprint26687(writer,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.pprint.t_cljs$pprint26721 \x3d (function (writer,meta26722){\nthis.writer \x3d writer;\nthis.meta26722 \x3d meta26722;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1074135040;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.pprint.t_cljs$pprint26721.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26723,meta26722__$1){\nvar self__ \x3d this;\nvar _26723__$1 \x3d this;\nreturn (new cljs.pprint.t_cljs$pprint26721(self__.writer,meta26722__$1));\n}));\n\n(cljs.pprint.t_cljs$pprint26721.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26723){\nvar self__ \x3d this;\nvar _26723__$1 \x3d this;\nreturn self__.meta26722;\n}));\n\n(cljs.pprint.t_cljs$pprint26721.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core._flush(self__.writer);\n}));\n\n(cljs.pprint.t_cljs$pprint26721.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (this$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar pred__26734 \x3d cljs.core._EQ_;\nvar expr__26735 \x3d cljs.core.type(x);\nif(cljs.core.truth_((pred__26734.cljs$core$IFn$_invoke$arity$2 ? pred__26734.cljs$core$IFn$_invoke$arity$2(String,expr__26735) : pred__26734.call(null, String,expr__26735)))){\nvar s \x3d x;\nreturn cljs.core._write(self__.writer,clojure.string.upper_case(s));\n} else {\nif(cljs.core.truth_((pred__26734.cljs$core$IFn$_invoke$arity$2 ? pred__26734.cljs$core$IFn$_invoke$arity$2(Number,expr__26735) : pred__26734.call(null, Number,expr__26735)))){\nvar c \x3d x;\nreturn cljs.core._write(self__.writer,clojure.string.upper_case(cljs.core.char$(c)));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__26735)].join(\x27\x27)));\n}\n}\n}));\n\n(cljs.pprint.t_cljs$pprint26721.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22writer\x22,\x22writer\x22,1362963291,null),new cljs.core.Symbol(null,\x22meta26722\x22,\x22meta26722\x22,622882551,null)], null);\n}));\n\n(cljs.pprint.t_cljs$pprint26721.cljs$lang$type \x3d true);\n\n(cljs.pprint.t_cljs$pprint26721.cljs$lang$ctorStr \x3d \x22cljs.pprint/t_cljs$pprint26721\x22);\n\n(cljs.pprint.t_cljs$pprint26721.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.pprint/t_cljs$pprint26721\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/t_cljs$pprint26721.\n */\ncljs.pprint.__GT_t_cljs$pprint26721 \x3d (function cljs$pprint$__GT_t_cljs$pprint26721(writer,meta26722){\nreturn (new cljs.pprint.t_cljs$pprint26721(writer,meta26722));\n});\n\n\n/**\n * Returns a proxy that wraps writer, converting all characters to upper case\n */\ncljs.pprint.upcase_writer \x3d (function cljs$pprint$upcase_writer(writer){\nreturn (new cljs.pprint.t_cljs$pprint26721(writer,cljs.core.PersistentArrayMap.EMPTY));\n});\n/**\n * Capitalizes the words in a string. If first? is false, don\x27t capitalize the\n * first character of the string even if it\x27s a letter.\n */\ncljs.pprint.capitalize_string \x3d (function cljs$pprint$capitalize_string(s,first_QMARK_){\nvar f \x3d cljs.core.first(s);\nvar s__$1 \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d first_QMARK_;\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d f;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn goog.string.isUnicodeChar(f);\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())?[clojure.string.upper_case(f),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(1))].join(\x27\x27):s);\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.first(cljs.pprint.consume((function (s__$2){\nif(cljs.core.empty_QMARK_(s__$2)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null], null);\n} else {\nvar m \x3d RegExp(\x22\\\\W\\\\w\x22,\x22g\x22).exec(s__$2);\nvar offset \x3d (function (){var and__5000__auto__ \x3d m;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (m.index + (1));\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(offset)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s__$2,(0),offset),clojure.string.upper_case(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s__$2,offset))].join(\x27\x27),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$2,(offset + (1)))], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [s__$2,null], null);\n}\n}\n}),s__$1)));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.pprint.t_cljs$pprint26759 \x3d (function (writer,last_was_whitespace_QMARK_,meta26760){\nthis.writer \x3d writer;\nthis.last_was_whitespace_QMARK_ \x3d last_was_whitespace_QMARK_;\nthis.meta26760 \x3d meta26760;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1074135040;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.pprint.t_cljs$pprint26759.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26761,meta26760__$1){\nvar self__ \x3d this;\nvar _26761__$1 \x3d this;\nreturn (new cljs.pprint.t_cljs$pprint26759(self__.writer,self__.last_was_whitespace_QMARK_,meta26760__$1));\n}));\n\n(cljs.pprint.t_cljs$pprint26759.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26761){\nvar self__ \x3d this;\nvar _26761__$1 \x3d this;\nreturn self__.meta26760;\n}));\n\n(cljs.pprint.t_cljs$pprint26759.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core._flush(self__.writer);\n}));\n\n(cljs.pprint.t_cljs$pprint26759.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (this$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar pred__26764 \x3d cljs.core._EQ_;\nvar expr__26765 \x3d cljs.core.type(x);\nif(cljs.core.truth_((pred__26764.cljs$core$IFn$_invoke$arity$2 ? pred__26764.cljs$core$IFn$_invoke$arity$2(String,expr__26765) : pred__26764.call(null, String,expr__26765)))){\nvar s \x3d x;\ncljs.core._write(self__.writer,cljs.pprint.capitalize_string(s.toLowerCase(),cljs.core.deref(self__.last_was_whitespace_QMARK_)));\n\nif((s.length \x3e (0))){\nreturn cljs.core.reset_BANG_(self__.last_was_whitespace_QMARK_,goog.string.isEmptyOrWhitespace(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s,(cljs.core.count(s) - (1)))));\n} else {\nreturn null;\n}\n} else {\nif(cljs.core.truth_((pred__26764.cljs$core$IFn$_invoke$arity$2 ? pred__26764.cljs$core$IFn$_invoke$arity$2(Number,expr__26765) : pred__26764.call(null, Number,expr__26765)))){\nvar c \x3d cljs.core.char$(x);\nvar mod_c \x3d (cljs.core.truth_(cljs.core.deref(self__.last_was_whitespace_QMARK_))?clojure.string.upper_case(c):c);\ncljs.core._write(self__.writer,mod_c);\n\nreturn cljs.core.reset_BANG_(self__.last_was_whitespace_QMARK_,goog.string.isEmptyOrWhitespace(c));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__26765)].join(\x27\x27)));\n}\n}\n}));\n\n(cljs.pprint.t_cljs$pprint26759.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22writer\x22,\x22writer\x22,1362963291,null),new cljs.core.Symbol(null,\x22last-was-whitespace?\x22,\x22last-was-whitespace?\x22,-1073928093,null),new cljs.core.Symbol(null,\x22meta26760\x22,\x22meta26760\x22,-1106833983,null)], null);\n}));\n\n(cljs.pprint.t_cljs$pprint26759.cljs$lang$type \x3d true);\n\n(cljs.pprint.t_cljs$pprint26759.cljs$lang$ctorStr \x3d \x22cljs.pprint/t_cljs$pprint26759\x22);\n\n(cljs.pprint.t_cljs$pprint26759.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.pprint/t_cljs$pprint26759\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/t_cljs$pprint26759.\n */\ncljs.pprint.__GT_t_cljs$pprint26759 \x3d (function cljs$pprint$__GT_t_cljs$pprint26759(writer,last_was_whitespace_QMARK_,meta26760){\nreturn (new cljs.pprint.t_cljs$pprint26759(writer,last_was_whitespace_QMARK_,meta26760));\n});\n\n\n/**\n * Returns a proxy that wraps writer, capitalizing all words\n */\ncljs.pprint.capitalize_word_writer \x3d (function cljs$pprint$capitalize_word_writer(writer){\nvar last_was_whitespace_QMARK_ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(true);\nreturn (new cljs.pprint.t_cljs$pprint26759(writer,last_was_whitespace_QMARK_,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.pprint.t_cljs$pprint26816 \x3d (function (writer,capped,meta26817){\nthis.writer \x3d writer;\nthis.capped \x3d capped;\nthis.meta26817 \x3d meta26817;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1074135040;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.pprint.t_cljs$pprint26816.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_26818,meta26817__$1){\nvar self__ \x3d this;\nvar _26818__$1 \x3d this;\nreturn (new cljs.pprint.t_cljs$pprint26816(self__.writer,self__.capped,meta26817__$1));\n}));\n\n(cljs.pprint.t_cljs$pprint26816.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_26818){\nvar self__ \x3d this;\nvar _26818__$1 \x3d this;\nreturn self__.meta26817;\n}));\n\n(cljs.pprint.t_cljs$pprint26816.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core._flush(self__.writer);\n}));\n\n(cljs.pprint.t_cljs$pprint26816.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (this$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar pred__26823 \x3d cljs.core._EQ_;\nvar expr__26824 \x3d cljs.core.type(x);\nif(cljs.core.truth_((pred__26823.cljs$core$IFn$_invoke$arity$2 ? pred__26823.cljs$core$IFn$_invoke$arity$2(String,expr__26824) : pred__26823.call(null, String,expr__26824)))){\nvar s \x3d clojure.string.lower_case(x);\nif(cljs.core.not(cljs.core.deref(self__.capped))){\nvar m \x3d RegExp(\x22\\\\S\x22,\x22g\x22).exec(s);\nvar offset \x3d (function (){var and__5000__auto__ \x3d m;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn m.index;\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(offset)){\ncljs.core._write(self__.writer,[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),offset),clojure.string.upper_case(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(s,offset)),clojure.string.lower_case(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(offset + (1))))].join(\x27\x27));\n\nreturn cljs.core.reset_BANG_(self__.capped,true);\n} else {\nreturn cljs.core._write(self__.writer,s);\n}\n} else {\nreturn cljs.core._write(self__.writer,clojure.string.lower_case(s));\n}\n} else {\nif(cljs.core.truth_((pred__26823.cljs$core$IFn$_invoke$arity$2 ? pred__26823.cljs$core$IFn$_invoke$arity$2(Number,expr__26824) : pred__26823.call(null, Number,expr__26824)))){\nvar c \x3d cljs.core.char$(x);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(cljs.core.deref(self__.capped));\nif(and__5000__auto__){\nreturn goog.string.isUnicodeChar(c);\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.core.reset_BANG_(self__.capped,true);\n\nreturn cljs.core._write(self__.writer,clojure.string.upper_case(c));\n} else {\nreturn cljs.core._write(self__.writer,clojure.string.lower_case(c));\n}\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(expr__26824)].join(\x27\x27)));\n}\n}\n}));\n\n(cljs.pprint.t_cljs$pprint26816.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22writer\x22,\x22writer\x22,1362963291,null),new cljs.core.Symbol(null,\x22capped\x22,\x22capped\x22,-1650988402,null),new cljs.core.Symbol(null,\x22meta26817\x22,\x22meta26817\x22,-633949033,null)], null);\n}));\n\n(cljs.pprint.t_cljs$pprint26816.cljs$lang$type \x3d true);\n\n(cljs.pprint.t_cljs$pprint26816.cljs$lang$ctorStr \x3d \x22cljs.pprint/t_cljs$pprint26816\x22);\n\n(cljs.pprint.t_cljs$pprint26816.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.pprint/t_cljs$pprint26816\x22);\n}));\n\n/**\n * Positional factory function for cljs.pprint/t_cljs$pprint26816.\n */\ncljs.pprint.__GT_t_cljs$pprint26816 \x3d (function cljs$pprint$__GT_t_cljs$pprint26816(writer,capped,meta26817){\nreturn (new cljs.pprint.t_cljs$pprint26816(writer,capped,meta26817));\n});\n\n\n/**\n * Returns a proxy that wraps writer, capitalizing the first word\n */\ncljs.pprint.init_cap_writer \x3d (function cljs$pprint$init_cap_writer(writer){\nvar capped \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\nreturn (new cljs.pprint.t_cljs$pprint26816(writer,capped,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.pprint.modify_case \x3d (function cljs$pprint$modify_case(make_writer,params,navigator,offsets){\nvar clause \x3d cljs.core.first(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params));\nvar _STAR_out_STAR__orig_val__26844 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__26845 \x3d (make_writer.cljs$core$IFn$_invoke$arity$1 ? make_writer.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_out_STAR_) : make_writer.call(null, cljs.core._STAR_out_STAR_));\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__26845);\n\ntry{return cljs.pprint.execute_sub_format(clause,navigator,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__26844);\n}});\n/**\n * Returns the IWriter passed in wrapped in a pretty writer proxy, unless it\x27s\n * already a pretty writer. Generally, it is unnecessary to call this function, since pprint,\n * write, and cl-format all call it if they need to. However if you want the state to be\n * preserved across calls, you will want to wrap them with this.\n * \n * For example, when you want to generate column-aware output with multiple calls to cl-format,\n * do it like in this example:\n * \n * (defn print-table [aseq column-width]\n * (binding [*out* (get-pretty-writer *out*)]\n * (doseq [row aseq]\n * (doseq [col row]\n * (cl-format true \x22~4D~7,vT\x22 col column-width))\n * (prn))))\n * \n * Now when you run:\n * \n * user\x3e (print-table (map #(vector % (* % %) (* % % %)) (range 1 11)) 8)\n * \n * It prints a table of squares and cubes for the numbers from 1 to 10:\n * \n * 1 1 1\n * 2 4 8\n * 3 9 27\n * 4 16 64\n * 5 25 125\n * 6 36 216\n * 7 49 343\n * 8 64 512\n * 9 81 729\n * 10 100 1000\n */\ncljs.pprint.get_pretty_writer \x3d (function cljs$pprint$get_pretty_writer(writer){\nif(cljs.core.truth_(cljs.pprint.pretty_writer_QMARK_(writer))){\nreturn writer;\n} else {\nreturn cljs.pprint.pretty_writer(writer,cljs.pprint._STAR_print_right_margin_STAR_,cljs.pprint._STAR_print_miser_width_STAR_);\n}\n});\n/**\n * Make a newline if *out* is not already at the beginning of the line. If *out* is\n * not a pretty writer (which keeps track of columns), this function always outputs a newline.\n */\ncljs.pprint.fresh_line \x3d (function cljs$pprint$fresh_line(){\nif((((!((cljs.core._STAR_out_STAR_ \x3d\x3d null))))?(((((cljs.core._STAR_out_STAR_.cljs$lang$protocol_mask$partition0$ \x26 (32768))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d cljs.core._STAR_out_STAR_.cljs$core$IDeref$))))?true:(((!cljs.core._STAR_out_STAR_.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,cljs.core._STAR_out_STAR_):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,cljs.core._STAR_out_STAR_))){\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_)))))))){\nreturn cljs.pprint.prn();\n} else {\nreturn null;\n}\n} else {\nreturn cljs.pprint.prn();\n}\n});\ncljs.pprint.absolute_tabulation \x3d (function cljs$pprint$absolute_tabulation(params,navigator,offsets){\nvar colnum_28673 \x3d new cljs.core.Keyword(null,\x22colnum\x22,\x22colnum\x22,2023796854).cljs$core$IFn$_invoke$arity$1(params);\nvar colinc_28674 \x3d new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385).cljs$core$IFn$_invoke$arity$1(params);\nvar current_28675 \x3d cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_))));\nvar space_count_28676 \x3d (((current_28675 \x3c colnum_28673))?(colnum_28673 - current_28675):((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(colinc_28674,(0)))?(0):(colinc_28674 - cljs.core.rem((current_28675 - colnum_28673),colinc_28674))\n));\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(space_count_28676,\x22 \x22))], 0));\n\nreturn navigator;\n});\ncljs.pprint.relative_tabulation \x3d (function cljs$pprint$relative_tabulation(params,navigator,offsets){\nvar colrel_28680 \x3d new cljs.core.Keyword(null,\x22colnum\x22,\x22colnum\x22,2023796854).cljs$core$IFn$_invoke$arity$1(params);\nvar colinc_28681 \x3d new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385).cljs$core$IFn$_invoke$arity$1(params);\nvar start_col_28682 \x3d (colrel_28680 + cljs.pprint.get_column(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_)))));\nvar offset_28683 \x3d (((colinc_28681 \x3e (0)))?cljs.core.rem(start_col_28682,colinc_28681):(0));\nvar space_count_28684 \x3d (colrel_28680 + ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((0),offset_28683))?(0):(colinc_28681 - offset_28683)));\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(space_count_28684,\x22 \x22))], 0));\n\nreturn navigator;\n});\ncljs.pprint.format_logical_block \x3d (function cljs$pprint$format_logical_block(params,navigator,offsets){\nvar clauses \x3d new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(params);\nvar clause_count \x3d cljs.core.count(clauses);\nvar prefix \x3d (((clause_count \x3e (1)))?new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.first(cljs.core.first(clauses)))):(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?\x22(\x22:null));\nvar body \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(clauses,(((clause_count \x3e (1)))?(1):(0)));\nvar suffix \x3d (((clause_count \x3e (2)))?new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.first(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(clauses,(2))))):(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?\x22)\x22:null));\nvar vec__26906 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26906,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26906,(1),null);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__26912_28687 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__26913_28688 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__26914_28689 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__26915_28692 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__26914_28689);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__26915_28692);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,prefix,null,suffix);\n\ncljs.pprint.execute_sub_format(body,cljs.pprint.init_navigator(arg),new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params));\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__26913_28688);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__26912_28687);\n}}\n\n\nreturn navigator__$1;\n});\ncljs.pprint.set_indent \x3d (function cljs$pprint$set_indent(params,navigator,offsets){\nvar relative_to \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?new cljs.core.Keyword(null,\x22current\x22,\x22current\x22,-1088038603):new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210));\ncljs.pprint.pprint_indent(relative_to,new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025).cljs$core$IFn$_invoke$arity$1(params));\n\nreturn navigator;\n});\ncljs.pprint.conditional_newline \x3d (function cljs$pprint$conditional_newline(params,navigator,offsets){\nvar kind \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))?new cljs.core.Keyword(null,\x22mandatory\x22,\x22mandatory\x22,542802336):new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889)):(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))?new cljs.core.Keyword(null,\x22miser\x22,\x22miser\x22,-556060186):new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697)));\ncljs.pprint.pprint_newline(kind);\n\nreturn navigator;\n});\ncljs.pprint.directive_table \x3d cljs.core.PersistentHashMap.fromArrays([\x22A\x22,\x22S\x22,\x22D\x22,\x22B\x22,\x22O\x22,\x22X\x22,\x22R\x22,\x22P\x22,\x22C\x22,\x22F\x22,\x22E\x22,\x22G\x22,\x22$\x22,\x22%\x22,\x22\x26\x22,\x22|\x22,\x22~\x22,\x22\\n\x22,\x22T\x22,\x22*\x22,\x22?\x22,\x22(\x22,\x22)\x22,\x22[\x22,\x22;\x22,\x22]\x22,\x22{\x22,\x22}\x22,\x22\x3c\x22,\x22\x3e\x22,\x22^\x22,\x22W\x22,\x22_\x22,\x22I\x22],[new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22A\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22minpad\x22,\x22minpad\x22,323570901),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (p1__26927_SHARP_,p2__26929_SHARP_,p3__26930_SHARP_){\nreturn cljs.pprint.format_ascii(cljs.core.print_str,p1__26927_SHARP_,p2__26929_SHARP_,p3__26930_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22S\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22minpad\x22,\x22minpad\x22,323570901),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (p1__26931_SHARP_,p2__26932_SHARP_,p3__26933_SHARP_){\nreturn cljs.pprint.format_ascii(cljs.core.pr_str,p1__26931_SHARP_,p2__26932_SHARP_,p3__26933_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22D\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22,\x22,String], null),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (p1__26934_SHARP_,p2__26935_SHARP_,p3__26936_SHARP_){\nreturn cljs.pprint.format_integer((10),p1__26934_SHARP_,p2__26935_SHARP_,p3__26936_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22B\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22,\x22,String], null),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (p1__26938_SHARP_,p2__26939_SHARP_,p3__26940_SHARP_){\nreturn cljs.pprint.format_integer((2),p1__26938_SHARP_,p2__26939_SHARP_,p3__26940_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22O\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22,\x22,String], null),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (p1__26942_SHARP_,p2__26943_SHARP_,p3__26944_SHARP_){\nreturn cljs.pprint.format_integer((8),p1__26942_SHARP_,p2__26943_SHARP_,p3__26944_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22X\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22,\x22,String], null),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (p1__26945_SHARP_,p2__26946_SHARP_,p3__26948_SHARP_){\nreturn cljs.pprint.format_integer((16),p1__26945_SHARP_,p2__26946_SHARP_,p3__26948_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22R\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(5),[new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22commachar\x22,\x22commachar\x22,652859327),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22,\x22,String], null),new cljs.core.Keyword(null,\x22commainterval\x22,\x22commainterval\x22,-1980061083),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(3),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_(cljs.core.first(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(params)))){\nreturn (function (p1__26949_SHARP_,p2__26950_SHARP_,p3__26951_SHARP_){\nreturn cljs.pprint.format_integer(new cljs.core.Keyword(null,\x22base\x22,\x22base\x22,185279322).cljs$core$IFn$_invoke$arity$1(p1__26949_SHARP_),p1__26949_SHARP_,p2__26950_SHARP_,p3__26951_SHARP_);\n});\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn (function (p1__26952_SHARP_,p2__26953_SHARP_,p3__26954_SHARP_){\nreturn cljs.pprint.format_old_roman(p1__26952_SHARP_,p2__26953_SHARP_,p3__26954_SHARP_);\n});\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\nreturn (function (p1__26955_SHARP_,p2__26956_SHARP_,p3__26957_SHARP_){\nreturn cljs.pprint.format_new_roman(p1__26955_SHARP_,p2__26956_SHARP_,p3__26957_SHARP_);\n});\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))){\nreturn (function (p1__26958_SHARP_,p2__26959_SHARP_,p3__26960_SHARP_){\nreturn cljs.pprint.format_ordinal_english(p1__26958_SHARP_,p2__26959_SHARP_,p3__26960_SHARP_);\n});\n} else {\nreturn (function (p1__26961_SHARP_,p2__26962_SHARP_,p3__26963_SHARP_){\nreturn cljs.pprint.format_cardinal_english(p1__26961_SHARP_,p2__26962_SHARP_,p3__26963_SHARP_);\n});\n\n}\n}\n}\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22P\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,navigator,offsets){\nvar navigator__$1 \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params__$1))?cljs.pprint.relative_reposition(navigator,(-1)):navigator);\nvar strs \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params__$1))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22y\x22,\x22ies\x22], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22,\x22s\x22], null));\nvar vec__26979 \x3d cljs.pprint.next_arg(navigator__$1);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26979,(0),null);\nvar navigator__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26979,(1),null);\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arg,(1)))?cljs.core.first(strs):cljs.core.second(strs))], 0));\n\nreturn navigator__$2;\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22C\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22char-format\x22,\x22char-format\x22,-1016499218),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))){\nreturn cljs.pprint.pretty_character;\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\nreturn cljs.pprint.readable_character;\n} else {\nreturn cljs.pprint.plain_character;\n\n}\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22F\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(5),[new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,String], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.fixed_float;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22E\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(7),[new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22e\x22,\x22e\x22,1381269198),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,String], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22exponentchar\x22,\x22exponentchar\x22,1986664222),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.exponential_float;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22G\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(7),[new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22e\x22,\x22e\x22,1381269198),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22k\x22,\x22k\x22,-2146297393),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22overflowchar\x22,\x22overflowchar\x22,-1620088106),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,String], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null),new cljs.core.Keyword(null,\x22exponentchar\x22,\x22exponentchar\x22,1986664222),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.general_float;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22$\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(2),Number], null),new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22w\x22,\x22w\x22,354169001),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.dollar_float;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22%\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,arg_navigator,offsets){\nvar n__5593__auto___28725 \x3d new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085).cljs$core$IFn$_invoke$arity$1(params__$1);\nvar i_28726 \x3d (0);\nwhile(true){\nif((i_28726 \x3c n__5593__auto___28725)){\ncljs.pprint.prn();\n\nvar G__28727 \x3d (i_28726 + (1));\ni_28726 \x3d G__28727;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn arg_navigator;\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22\x26\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,arg_navigator,offsets){\nvar cnt_28728 \x3d new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085).cljs$core$IFn$_invoke$arity$1(params__$1);\nif((cnt_28728 \x3e (0))){\ncljs.pprint.fresh_line();\n} else {\n}\n\nvar n__5593__auto___28729 \x3d (cnt_28728 - (1));\nvar i_28730 \x3d (0);\nwhile(true){\nif((i_28730 \x3c n__5593__auto___28729)){\ncljs.pprint.prn();\n\nvar G__28731 \x3d (i_28730 + (1));\ni_28730 \x3d G__28731;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn arg_navigator;\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22|\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,arg_navigator,offsets){\nvar n__5593__auto___28732 \x3d new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085).cljs$core$IFn$_invoke$arity$1(params__$1);\nvar i_28734 \x3d (0);\nwhile(true){\nif((i_28734 \x3c n__5593__auto___28732)){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\f\x22], 0));\n\nvar G__28735 \x3d (i_28734 + (1));\ni_28734 \x3d G__28735;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn arg_navigator;\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22~\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,arg_navigator,offsets){\nvar n \x3d new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025).cljs$core$IFn$_invoke$arity$1(params__$1);\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(n,\x22~\x22))], 0));\n\nreturn arg_navigator;\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22\\n\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,arg_navigator,offsets){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params__$1))){\ncljs.pprint.prn();\n} else {\n}\n\nreturn arg_navigator;\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22T\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(2),[new cljs.core.Keyword(null,\x22colnum\x22,\x22colnum\x22,2023796854),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\nreturn (function (p1__26965_SHARP_,p2__26966_SHARP_,p3__26967_SHARP_){\nreturn cljs.pprint.relative_tabulation(p1__26965_SHARP_,p2__26966_SHARP_,p3__26967_SHARP_);\n});\n} else {\nreturn (function (p1__26968_SHARP_,p2__26969_SHARP_,p3__26970_SHARP_){\nreturn cljs.pprint.absolute_tabulation(p1__26968_SHARP_,p2__26969_SHARP_,p3__26970_SHARP_);\n});\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22*\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,navigator,offsets){\nvar n \x3d new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025).cljs$core$IFn$_invoke$arity$1(params__$1);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params__$1))){\nreturn cljs.pprint.absolute_reposition(navigator,n);\n} else {\nreturn cljs.pprint.relative_reposition(navigator,(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params__$1))?(- n):n));\n}\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22?\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\nreturn (function (params__$1,navigator,offsets){\nvar vec__26999 \x3d cljs.pprint.get_format_arg(navigator);\nvar subformat \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26999,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26999,(1),null);\nreturn cljs.pprint.execute_sub_format(subformat,navigator__$1,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params__$1));\n});\n} else {\nreturn (function (params__$1,navigator,offsets){\nvar vec__27003 \x3d cljs.pprint.get_format_arg(navigator);\nvar subformat \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27003,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27003,(1),null);\nvar vec__27006 \x3d cljs.pprint.next_arg(navigator__$1);\nvar subargs \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27006,(0),null);\nvar navigator__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27006,(1),null);\nvar sub_navigator \x3d cljs.pprint.init_navigator(subargs);\ncljs.pprint.execute_sub_format(subformat,sub_navigator,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params__$1));\n\nreturn navigator__$2;\n});\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22(\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),\x22)\x22,new cljs.core.Keyword(null,\x22allows-separator\x22,\x22allows-separator\x22,-818967742),null,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null], null),new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nvar mod_case_writer \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params);\n} else {\nreturn and__5000__auto__;\n}\n})())?cljs.pprint.upcase_writer:(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?cljs.pprint.capitalize_word_writer:(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))?cljs.pprint.init_cap_writer:cljs.pprint.downcase_writer\n)));\nreturn (function (p1__26971_SHARP_,p2__26972_SHARP_,p3__26973_SHARP_){\nreturn cljs.pprint.modify_case(mod_case_writer,p1__26971_SHARP_,p2__26972_SHARP_,p3__26973_SHARP_);\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22)\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn null;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22[\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22selector\x22,\x22selector\x22,762528866),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),\x22]\x22,new cljs.core.Keyword(null,\x22allows-separator\x22,\x22allows-separator\x22,-818967742),true,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),new cljs.core.Keyword(null,\x22last\x22,\x22last\x22,1105735132)], null),new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))){\nreturn cljs.pprint.boolean_conditional;\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\nreturn cljs.pprint.check_arg_conditional;\n} else {\nreturn cljs.pprint.choice_conditional;\n\n}\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22;\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(2),[new cljs.core.Keyword(null,\x22min-remaining\x22,\x22min-remaining\x22,962687677),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22max-columns\x22,\x22max-columns\x22,1742323262),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22separator\x22,\x22separator\x22,-1628749125),true], null),new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn null;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22]\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn null;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22{\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22max-iterations\x22,\x22max-iterations\x22,2021275563),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),\x22}\x22,new cljs.core.Keyword(null,\x22allows-separator\x22,\x22allows-separator\x22,-818967742),false], null),new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn cljs.pprint.iterate_main_sublists;\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))){\nreturn cljs.pprint.iterate_list_of_sublists;\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))){\nreturn cljs.pprint.iterate_main_list;\n} else {\nreturn cljs.pprint.iterate_sublist;\n\n}\n}\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22}\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn null;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22\x3c\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(4),[new cljs.core.Keyword(null,\x22mincol\x22,\x22mincol\x22,1230695445),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22colinc\x22,\x22colinc\x22,-584873385),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),Number], null),new cljs.core.Keyword(null,\x22minpad\x22,\x22minpad\x22,323570901),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null),new cljs.core.Keyword(null,\x22padchar\x22,\x22padchar\x22,2018584530),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,String], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null,new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),\x22\x3e\x22,new cljs.core.Keyword(null,\x22allows-separator\x22,\x22allows-separator\x22,-818967742),true,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),new cljs.core.Keyword(null,\x22first\x22,\x22first\x22,-644103046)], null),new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.logical_block_or_justify;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22\x3e\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn null;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22^\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(3),[new cljs.core.Keyword(null,\x22arg1\x22,\x22arg1\x22,951899358),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22arg2\x22,\x22arg2\x22,1729550917),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null),new cljs.core.Keyword(null,\x22arg3\x22,\x22arg3\x22,-1486822496),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn (function (params__$1,navigator,offsets){\nvar arg1 \x3d new cljs.core.Keyword(null,\x22arg1\x22,\x22arg1\x22,951899358).cljs$core$IFn$_invoke$arity$1(params__$1);\nvar arg2 \x3d new cljs.core.Keyword(null,\x22arg2\x22,\x22arg2\x22,1729550917).cljs$core$IFn$_invoke$arity$1(params__$1);\nvar arg3 \x3d new cljs.core.Keyword(null,\x22arg3\x22,\x22arg3\x22,-1486822496).cljs$core$IFn$_invoke$arity$1(params__$1);\nvar exit \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params__$1))?new cljs.core.Keyword(null,\x22colon-up-arrow\x22,\x22colon-up-arrow\x22,244853007):new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d arg1;\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d arg2;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn arg3;\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\nif((((arg1 \x3c\x3d arg2)) \x26\x26 ((arg2 \x3c\x3d arg3)))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [exit,navigator], null);\n} else {\nreturn navigator;\n}\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d arg1;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn arg2;\n} else {\nreturn and__5000__auto__;\n}\n})())){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arg1,arg2)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [exit,navigator], null);\n} else {\nreturn navigator;\n}\n} else {\nif(cljs.core.truth_(arg1)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arg1,(0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [exit,navigator], null);\n} else {\nreturn navigator;\n}\n} else {\nif((cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params__$1))?cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822).cljs$core$IFn$_invoke$arity$1(params__$1))):cljs.core.empty_QMARK_(new cljs.core.Keyword(null,\x22rest\x22,\x22rest\x22,-1241696419).cljs$core$IFn$_invoke$arity$1(navigator)))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [exit,navigator], null);\n} else {\nreturn navigator;\n}\n\n}\n}\n}\n});\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22W\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null,new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params);\n}\n})())){\nvar bindings \x3d cljs.core.concat.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(params))?new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22level\x22,\x22level\x22,1290497552),null,new cljs.core.Keyword(null,\x22length\x22,\x22length\x22,588987862),null], null):cljs.core.PersistentVector.EMPTY),(cljs.core.truth_(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486),true], null):cljs.core.PersistentVector.EMPTY));\nreturn (function (params__$1,navigator,offsets){\nvar vec__27045 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27045,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27045,(1),null);\nif(cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.pprint.write,arg,bindings))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333),navigator__$1], null);\n} else {\nreturn navigator__$1;\n}\n});\n} else {\nreturn (function (params__$1,navigator,offsets){\nvar vec__27051 \x3d cljs.pprint.next_arg(navigator);\nvar arg \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27051,(0),null);\nvar navigator__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27051,(1),null);\nif(cljs.core.truth_(cljs.pprint.write_out(arg))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22up-arrow\x22,\x22up-arrow\x22,1705310333),navigator__$1], null);\n} else {\nreturn navigator__$1;\n}\n});\n}\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22_\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349),null,new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.conditional_newline;\n})], null),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132),\x22I\x22,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235),(new cljs.core.PersistentArrayMap(null,(1),[new cljs.core.Keyword(null,\x22n\x22,\x22n\x22,562130025),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),Number], null)],null)),new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),null], null), null),new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656),(function (params,offset){\nreturn cljs.pprint.set_indent;\n})], null)]);\ncljs.pprint.param_pattern \x3d /^([vV]|#|(\x27.)|([+-]?\\d+)|(?\x3d,))/;\ncljs.pprint.special_params \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22remaining-arg-count\x22,\x22remaining-arg-count\x22,-1216589335),null,new cljs.core.Keyword(null,\x22parameter-from-args\x22,\x22parameter-from-args\x22,-758446196),null], null), null);\ncljs.pprint.extract_param \x3d (function cljs$pprint$extract_param(p__27067){\nvar vec__27068 \x3d p__27067;\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27068,(0),null);\nvar offset \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27068,(1),null);\nvar saw_comma \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27068,(2),null);\nvar m \x3d (new RegExp(cljs.pprint.param_pattern.source,\x22g\x22));\nvar param \x3d m.exec(s);\nif(cljs.core.truth_(param)){\nvar token_str \x3d cljs.core.first(param);\nvar remainder \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,m.lastIndex);\nvar new_offset \x3d (offset + m.lastIndex);\nif((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22,\x22,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(remainder,(0)))))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [token_str,offset], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [remainder,new_offset,false], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [token_str,offset], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.subs.cljs$core$IFn$_invoke$arity$2(remainder,(1)),(new_offset + (1)),true], null)], null);\n}\n} else {\nif(cljs.core.truth_(saw_comma)){\nreturn cljs.pprint.format_error(\x22Badly formed parameters in format directive\x22,offset);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [s,offset], null)], null);\n}\n}\n});\ncljs.pprint.extract_params \x3d (function cljs$pprint$extract_params(s,offset){\nreturn cljs.pprint.consume(cljs.pprint.extract_param,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [s,offset,false], null));\n});\n/**\n * Translate the string representation of a param to the internalized\n * representation\n */\ncljs.pprint.translate_param \x3d (function cljs$pprint$translate_param(p__27082){\nvar vec__27083 \x3d p__27082;\nvar p \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27083,(0),null);\nvar offset \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27083,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p.length,(0)))?null:((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p.length,(1))) \x26\x26 (cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22V\x22,null,\x22v\x22,null], null), null),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p,(0))))))?new cljs.core.Keyword(null,\x22parameter-from-args\x22,\x22parameter-from-args\x22,-758446196):((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p.length,(1))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22#\x22,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p,(0))))))?new cljs.core.Keyword(null,\x22remaining-arg-count\x22,\x22remaining-arg-count\x22,-1216589335):((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(p.length,(2))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22\x27\x22,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p,(0))))))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p,(1)):parseInt(p,(10))\n)))),offset], null);\n});\ncljs.pprint.flag_defs \x3d new cljs.core.PersistentArrayMap(null, 2, [\x22:\x22,new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945),\x22@\x22,new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349)], null);\ncljs.pprint.extract_flags \x3d (function cljs$pprint$extract_flags(s,offset){\nreturn cljs.pprint.consume((function (p__27100){\nvar vec__27102 \x3d p__27100;\nvar s__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27102,(0),null);\nvar offset__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27102,(1),null);\nvar flags \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27102,(2),null);\nif(cljs.core.empty_QMARK_(s__$1)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [s__$1,offset__$1,flags], null)], null);\n} else {\nvar flag \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.flag_defs,cljs.core.first(s__$1));\nif(cljs.core.truth_(flag)){\nif(cljs.core.contains_QMARK_(flags,flag)){\nreturn cljs.pprint.format_error([\x22Flag \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(s__$1)),\x22\\\x22 appears more than once in a directive\x22].join(\x27\x27),offset__$1);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s__$1,(1)),(offset__$1 + (1)),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(flags,flag,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,offset__$1], null))], null)], null);\n}\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [s__$1,offset__$1,flags], null)], null);\n}\n}\n}),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [s,offset,cljs.core.PersistentArrayMap.EMPTY], null));\n});\ncljs.pprint.check_flags \x3d (function cljs$pprint$check_flags(def,flags){\nvar allowed \x3d new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075).cljs$core$IFn$_invoke$arity$1(def);\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(allowed));\nif(and__5000__auto__){\nreturn new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(flags);\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.pprint.format_error([\x22\\\x22@\\\x22 is an illegal flag for format directive \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(def)),\x22\\\x22\x22].join(\x27\x27),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(flags),(1)));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(allowed));\nif(and__5000__auto__){\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(flags);\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.pprint.format_error([\x22\\\x22:\\\x22 is an illegal flag for format directive \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(def)),\x22\\\x22\x22].join(\x27\x27),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(flags),(1)));\n} else {\n}\n\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(new cljs.core.Keyword(null,\x22both\x22,\x22both\x22,-393648840).cljs$core$IFn$_invoke$arity$1(allowed));\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(flags);\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(flags);\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn cljs.pprint.format_error([\x22Cannot combine \\\x22@\\\x22 and \\\x22:\\\x22 flags for format directive \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(def)),\x22\\\x22\x22].join(\x27\x27),(function (){var x__5090__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(flags),(1));\nvar y__5091__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22at\x22,\x22at\x22,1476951349).cljs$core$IFn$_invoke$arity$1(flags),(1));\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})());\n} else {\nreturn null;\n}\n});\n/**\n * Takes a directive definition and the list of actual parameters and\n * a map of flags and returns a map of the parameters and flags with defaults\n * filled in. We check to make sure that there are the right types and number\n * of parameters as well.\n */\ncljs.pprint.map_params \x3d (function cljs$pprint$map_params(def,params,flags,offset){\ncljs.pprint.check_flags(def,flags);\n\nif((cljs.core.count(params) \x3e cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(def)))){\ncljs.pprint.format_error(cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(null,\x22Too many parameters for directive \\\x22~C\\\x22: ~D~:* ~[were~;was~:;were~] specified but only ~D~:* ~[are~;is~:;are~] allowed\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(def),cljs.core.count(params),cljs.core.count(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(def))], 0)),cljs.core.second(cljs.core.first(params)));\n} else {\n}\n\ncljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (p1__27125_SHARP_,p2__27128_SHARP_){\nvar val \x3d cljs.core.first(p1__27125_SHARP_);\nif((!((((val \x3d\x3d null)) || (((cljs.core.contains_QMARK_(cljs.pprint.special_params,val)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(cljs.core.second(p2__27128_SHARP_)),cljs.core.type(val))))))))){\nreturn cljs.pprint.format_error([\x22Parameter \x22,cljs.core.name(cljs.core.first(p2__27128_SHARP_)),\x22 has bad type in directive \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(def)),\x22\\\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(val))].join(\x27\x27),cljs.core.second(p1__27125_SHARP_));\n} else {\nreturn null;\n}\n}),params,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(def)));\n\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.reverse((function (){var iter__5480__auto__ \x3d (function cljs$pprint$map_params_$_iter__27153(s__27154){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__27154__$1 \x3d s__27154;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__27154__$1);\nif(temp__5804__auto__){\nvar s__27154__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__27154__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__27154__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__27156 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__27155 \x3d (0);\nwhile(true){\nif((i__27155 \x3c size__5479__auto__)){\nvar vec__27166 \x3d cljs.core._nth(c__5478__auto__,i__27155);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27166,(0),null);\nvar vec__27169 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27166,(1),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27169,(0),null);\ncljs.core.chunk_append(b__27156,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [default$,offset], null)], null));\n\nvar G__28755 \x3d (i__27155 + (1));\ni__27155 \x3d G__28755;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__27156),cljs$pprint$map_params_$_iter__27153(cljs.core.chunk_rest(s__27154__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__27156),null);\n}\n} else {\nvar vec__27177 \x3d cljs.core.first(s__27154__$2);\nvar name \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27177,(0),null);\nvar vec__27180 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27177,(1),null);\nvar default$ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27180,(0),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [name,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [default$,offset], null)], null),cljs$pprint$map_params_$_iter__27153(cljs.core.rest(s__27154__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(def));\n})())),cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__27131_SHARP_,p2__27132_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc,p1__27131_SHARP_,p2__27132_SHARP_);\n}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__27134_SHARP_){\nreturn cljs.core.first(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p1__27134_SHARP_,(1)));\n}),cljs.core.zipmap(cljs.core.keys(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(def)),params))),flags], 0));\n});\ncljs.pprint.compile_directive \x3d (function cljs$pprint$compile_directive(s,offset){\nvar vec__27206 \x3d cljs.pprint.extract_params(s,offset);\nvar raw_params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27206,(0),null);\nvar vec__27209 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27206,(1),null);\nvar rest \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27209,(0),null);\nvar offset__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27209,(1),null);\nvar vec__27212 \x3d cljs.pprint.extract_flags(rest,offset__$1);\nvar _ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27212,(0),null);\nvar vec__27215 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27212,(1),null);\nvar rest__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27215,(0),null);\nvar offset__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27215,(1),null);\nvar flags \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27215,(2),null);\nvar directive \x3d cljs.core.first(rest__$1);\nvar def \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.directive_table,clojure.string.upper_case(directive));\nvar params \x3d (cljs.core.truth_(def)?cljs.pprint.map_params(def,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.pprint.translate_param,raw_params),flags,offset__$2):null);\nif(cljs.core.not(directive)){\ncljs.pprint.format_error(\x22Format string ended in the middle of a directive\x22,offset__$2);\n} else {\n}\n\nif(cljs.core.not(def)){\ncljs.pprint.format_error([\x22Directive \\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(directive),\x22\\\x22 is undefined\x22].join(\x27\x27),offset__$2);\n} else {\n}\n\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.pprint.compiled_directive((function (){var fexpr__27222 \x3d new cljs.core.Keyword(null,\x22generator-fn\x22,\x22generator-fn\x22,811851656).cljs$core$IFn$_invoke$arity$1(def);\nreturn (fexpr__27222.cljs$core$IFn$_invoke$arity$2 ? fexpr__27222.cljs$core$IFn$_invoke$arity$2(params,offset__$2) : fexpr__27222.call(null, params,offset__$2));\n})(),def,params,offset__$2,null,null,null)),(function (){var remainder \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(rest__$1,(1));\nvar offset__$3 \x3d (offset__$2 + (1));\nvar trim_QMARK_ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22\\n\x22,new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(def))) \x26\x26 (cljs.core.not(new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(params))));\nvar trim_count \x3d ((trim_QMARK_)?cljs.pprint.prefix_count(remainder,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22 \x22,\x22\\t\x22], null)):(0));\nvar remainder__$1 \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(remainder,trim_count);\nvar offset__$4 \x3d (offset__$3 + trim_count);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [remainder__$1,offset__$4], null);\n})()], null);\n});\ncljs.pprint.compile_raw_string \x3d (function cljs$pprint$compile_raw_string(s,offset){\nreturn (new cljs.pprint.compiled_directive((function (_,a,___$1){\ncljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s], 0));\n\nreturn a;\n}),null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),s], null),offset,null,null,null));\n});\ncljs.pprint.right_bracket \x3d (function cljs$pprint$right_bracket(this$){\nreturn new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$)));\n});\ncljs.pprint.separator_QMARK_ \x3d (function cljs$pprint$separator_QMARK_(this$){\nreturn new cljs.core.Keyword(null,\x22separator\x22,\x22separator\x22,-1628749125).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$)));\n});\ncljs.pprint.else_separator_QMARK_ \x3d (function cljs$pprint$else_separator_QMARK_(this$){\nvar and__5000__auto__ \x3d new cljs.core.Keyword(null,\x22separator\x22,\x22separator\x22,-1628749125).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$)));\nif(cljs.core.truth_(and__5000__auto__)){\nreturn new cljs.core.Keyword(null,\x22colon\x22,\x22colon\x22,-965200945).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(this$));\n} else {\nreturn and__5000__auto__;\n}\n});\ncljs.pprint.process_bracket \x3d (function cljs$pprint$process_bracket(this$,remainder){\nvar vec__27258 \x3d cljs.pprint.collect_clauses(new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$)),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(this$),remainder);\nvar subex \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27258,(0),null);\nvar remainder__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27258,(1),null);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.pprint.compiled_directive(new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040).cljs$core$IFn$_invoke$arity$1(this$),new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(this$),cljs.pprint.tuple_map(subex,new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(this$))], 0)),new cljs.core.Keyword(null,\x22offset\x22,\x22offset\x22,296498311).cljs$core$IFn$_invoke$arity$1(this$),null,null,null)),remainder__$1], null);\n});\ncljs.pprint.process_clause \x3d (function cljs$pprint$process_clause(bracket_info,offset,remainder){\nreturn cljs.pprint.consume((function (remainder__$1){\nif(cljs.core.empty_QMARK_(remainder__$1)){\nreturn cljs.pprint.format_error(\x22No closing bracket found.\x22,offset);\n} else {\nvar this$ \x3d cljs.core.first(remainder__$1);\nvar remainder__$2 \x3d cljs.core.next(remainder__$1);\nif(cljs.core.truth_(cljs.pprint.right_bracket(this$))){\nreturn cljs.pprint.process_bracket(this$,remainder__$2);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833).cljs$core$IFn$_invoke$arity$1(bracket_info),new cljs.core.Keyword(null,\x22directive\x22,\x22directive\x22,793559132).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$)))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22right-bracket\x22,\x22right-bracket\x22,951856080),new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(this$),null,remainder__$2], null)], null);\n} else {\nif(cljs.core.truth_(cljs.pprint.else_separator_QMARK_(this$))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),null,new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(this$),remainder__$2], null)], null);\n} else {\nif(cljs.core.truth_(cljs.pprint.separator_QMARK_(this$))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22separator\x22,\x22separator\x22,-1628749125),null,null,remainder__$2], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$,remainder__$2], null);\n\n}\n}\n}\n}\n}\n}),remainder);\n});\ncljs.pprint.collect_clauses \x3d (function cljs$pprint$collect_clauses(bracket_info,offset,remainder){\nreturn cljs.core.second(cljs.pprint.consume((function (p__27297){\nvar vec__27300 \x3d p__27297;\nvar clause_map \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27300,(0),null);\nvar saw_else \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27300,(1),null);\nvar remainder__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27300,(2),null);\nvar vec__27306 \x3d cljs.pprint.process_clause(bracket_info,offset,remainder__$1);\nvar clause \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27306,(0),null);\nvar vec__27309 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27306,(1),null);\nvar type \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27309,(0),null);\nvar right_params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27309,(1),null);\nvar else_params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27309,(2),null);\nvar remainder__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27309,(3),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type,new cljs.core.Keyword(null,\x22right-bracket\x22,\x22right-bracket\x22,951856080))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([clause_map,cljs.core.PersistentArrayMap.createAsIfByAssoc([(cljs.core.truth_(saw_else)?new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146):new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause], null),new cljs.core.Keyword(null,\x22right-params\x22,\x22right-params\x22,-1790676237),right_params])], 0)),remainder__$2], null)], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type,new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146))){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(clause_map))){\nreturn cljs.pprint.format_error(\x22Two else clauses (\\\x22~:;\\\x22) inside bracket construction.\x22,offset);\n} else {\nif(cljs.core.not(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(bracket_info))){\nreturn cljs.pprint.format_error(\x22An else clause (\\\x22~:;\\\x22) is in a bracket type that doesn\x27t support it.\x22,offset);\n} else {\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22first\x22,\x22first\x22,-644103046),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(bracket_info))) \x26\x26 (cljs.core.seq(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(clause_map))))){\nreturn cljs.pprint.format_error(\x22The else clause (\\\x22~:;\\\x22) is only allowed in the first position for this directive.\x22,offset);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22first\x22,\x22first\x22,-644103046),new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(bracket_info))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([clause_map,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause], null),new cljs.core.Keyword(null,\x22else-params\x22,\x22else-params\x22,-832171646),else_params], null)], 0)),false,remainder__$2], null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([clause_map,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause], null)], null)], 0)),true,remainder__$2], null)], null);\n}\n\n}\n}\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type,new cljs.core.Keyword(null,\x22separator\x22,\x22separator\x22,-1628749125))){\nif(cljs.core.truth_(saw_else)){\nreturn cljs.pprint.format_error(\x22A plain clause (with \\\x22~;\\\x22) follows an else clause (\\\x22~:;\\\x22) inside bracket construction.\x22,offset);\n} else {\nif(cljs.core.not(new cljs.core.Keyword(null,\x22allows-separator\x22,\x22allows-separator\x22,-818967742).cljs$core$IFn$_invoke$arity$1(bracket_info))){\nreturn cljs.pprint.format_error(\x22A separator (\\\x22~;\\\x22) is in a bracket type that doesn\x27t support it.\x22,offset);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([clause_map,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause], null)], null)], 0)),false,remainder__$2], null)], null);\n\n}\n}\n} else {\nreturn null;\n}\n}\n}\n}),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241),cljs.core.PersistentVector.EMPTY], null),false,remainder], null)));\n});\n/**\n * Take a linearly compiled format and process the bracket directives to give it\n * the appropriate tree structure\n */\ncljs.pprint.process_nesting \x3d (function cljs$pprint$process_nesting(format){\nreturn cljs.core.first(cljs.pprint.consume((function (remainder){\nvar this$ \x3d cljs.core.first(remainder);\nvar remainder__$1 \x3d cljs.core.next(remainder);\nvar bracket \x3d new cljs.core.Keyword(null,\x22bracket-info\x22,\x22bracket-info\x22,-1600092774).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(this$));\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833).cljs$core$IFn$_invoke$arity$1(bracket))){\nreturn cljs.pprint.process_bracket(this$,remainder__$1);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$,remainder__$1], null);\n}\n}),format));\n});\n/**\n * Compiles format-str into a compiled format which can be used as an argument\n * to cl-format just like a plain format string. Use this function for improved\n * performance when you\x27re using the same format string repeatedly\n */\ncljs.pprint.compile_format \x3d (function cljs$pprint$compile_format(format_str){\nvar _STAR_format_str_STAR__orig_val__27327 \x3d cljs.pprint._STAR_format_str_STAR_;\nvar _STAR_format_str_STAR__temp_val__27328 \x3d format_str;\n(cljs.pprint._STAR_format_str_STAR_ \x3d _STAR_format_str_STAR__temp_val__27328);\n\ntry{return cljs.pprint.process_nesting(cljs.core.first(cljs.pprint.consume((function (p__27329){\nvar vec__27330 \x3d p__27329;\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27330,(0),null);\nvar offset \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27330,(1),null);\nif(cljs.core.empty_QMARK_(s)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,s], null);\n} else {\nvar tilde \x3d s.indexOf(\x22~\x22);\nif((tilde \x3c (0))){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.pprint.compile_raw_string(s,offset),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22\x22,(offset + s.length)], null)], null);\n} else {\nif((tilde \x3d\x3d\x3d (0))){\nreturn cljs.pprint.compile_directive(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,(1)),(offset + (1)));\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.pprint.compile_raw_string(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),tilde),offset),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,tilde),(tilde + offset)], null)], null);\n\n}\n}\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [format_str,(0)], null))));\n}finally {(cljs.pprint._STAR_format_str_STAR_ \x3d _STAR_format_str_STAR__orig_val__27327);\n}});\n/**\n * determine whether a given compiled format has any directives that depend on the\n * column number or pretty printing\n */\ncljs.pprint.needs_pretty \x3d (function cljs$pprint$needs_pretty(format){\nvar format__$1 \x3d format;\nwhile(true){\nif(cljs.core.empty_QMARK_(format__$1)){\nreturn false;\n} else {\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22pretty\x22,\x22pretty\x22,-1916372486).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22flags\x22,\x22flags\x22,1775418075).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22def\x22,\x22def\x22,-1043430536).cljs$core$IFn$_invoke$arity$1(cljs.core.first(format__$1))));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.core.some(cljs.pprint.needs_pretty,cljs.core.first(new cljs.core.Keyword(null,\x22clauses\x22,\x22clauses\x22,1454841241).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.first(format__$1)))));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn cljs.core.some(cljs.pprint.needs_pretty,cljs.core.first(new cljs.core.Keyword(null,\x22else\x22,\x22else\x22,-1508377146).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(cljs.core.first(format__$1)))));\n}\n}\n})())){\nreturn true;\n} else {\nvar G__28777 \x3d cljs.core.next(format__$1);\nformat__$1 \x3d G__28777;\ncontinue;\n}\n}\nbreak;\n}\n});\n/**\n * Executes the format with the arguments.\n */\ncljs.pprint.execute_format \x3d (function cljs$pprint$execute_format(var_args){\nvar G__27352 \x3d arguments.length;\nswitch (G__27352) {\ncase 3:\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 2:\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3 \x3d (function (stream,format,args){\nvar sb \x3d (new goog.string.StringBuffer());\nvar real_stream \x3d ((((cljs.core.not(stream)) || (stream \x3d\x3d\x3d true)))?(new cljs.core.StringBufferWriter(sb)):stream);\nvar wrapped_stream \x3d ((((cljs.pprint.needs_pretty(format)) \x26\x26 (cljs.core.not(cljs.pprint.pretty_writer_QMARK_(real_stream)))))?cljs.pprint.get_pretty_writer(real_stream):real_stream);\nvar _STAR_out_STAR__orig_val__27362 \x3d cljs.core._STAR_out_STAR_;\nvar _STAR_out_STAR__temp_val__27363 \x3d wrapped_stream;\n(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__temp_val__27363);\n\ntry{try{cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(format,args);\n}finally {if((!((real_stream \x3d\x3d\x3d wrapped_stream)))){\ncljs.core._flush(wrapped_stream);\n} else {\n}\n}\nif(cljs.core.not(stream)){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n} else {\nif(stream \x3d\x3d\x3d true){\nreturn cljs.core.string_print(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb));\n} else {\nreturn null;\n\n}\n}\n}finally {(cljs.core._STAR_out_STAR_ \x3d _STAR_out_STAR__orig_val__27362);\n}}));\n\n(cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2 \x3d (function (format,args){\ncljs.pprint.map_passing_context((function (element,context){\nif(cljs.pprint.abort_QMARK_(context)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,context], null);\n} else {\nvar vec__27382 \x3d cljs.pprint.realize_parameter_list(new cljs.core.Keyword(null,\x22params\x22,\x22params\x22,710516235).cljs$core$IFn$_invoke$arity$1(element),context);\nvar params \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27382,(0),null);\nvar args__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27382,(1),null);\nvar vec__27385 \x3d cljs.pprint.unzip_map(params);\nvar params__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27385,(0),null);\nvar offsets \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27385,(1),null);\nvar params__$2 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(params__$1,new cljs.core.Keyword(null,\x22base-args\x22,\x22base-args\x22,-1268706822),args__$1);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22func\x22,\x22func\x22,-238706040).cljs$core$IFn$_invoke$arity$1(element),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [params__$2,args__$1,offsets], null))], null);\n}\n}),args,format);\n\nreturn null;\n}));\n\n(cljs.pprint.execute_format.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.pprint.cached_compile \x3d cljs.core.memoize(cljs.pprint.compile_format);\n/**\n * Installs a function as a new method of multimethod associated with dispatch-value. \n */\ncljs.pprint.use_method \x3d (function cljs$pprint$use_method(multifn,dispatch_val,func){\nreturn cljs.core._add_method(multifn,dispatch_val,func);\n});\ncljs.pprint.reader_macros \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),\x22\x27\x22,new cljs.core.Symbol(null,\x22var\x22,\x22var\x22,870848730,null),\x22#\x27\x22,new cljs.core.Symbol(\x22clojure.core\x22,\x22deref\x22,\x22clojure.core/deref\x22,188719157,null),\x22@\x22,new cljs.core.Symbol(\x22clojure.core\x22,\x22unquote\x22,\x22clojure.core/unquote\x22,843087510,null),\x22~\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22deref\x22,\x22cljs.core/deref\x22,1901963335,null),\x22@\x22,new cljs.core.Symbol(\x22cljs.core\x22,\x22unquote\x22,\x22cljs.core/unquote\x22,1013085760,null),\x22~\x22], null);\ncljs.pprint.pprint_reader_macro \x3d (function cljs$pprint$pprint_reader_macro(alis){\nvar macro_char \x3d (function (){var G__27398 \x3d cljs.core.first(alis);\nreturn (cljs.pprint.reader_macros.cljs$core$IFn$_invoke$arity$1 ? cljs.pprint.reader_macros.cljs$core$IFn$_invoke$arity$1(G__27398) : cljs.pprint.reader_macros.call(null, G__27398));\n})();\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d macro_char;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(alis));\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.core._write(cljs.core._STAR_out_STAR_,macro_char);\n\ncljs.pprint.write_out(cljs.core.second(alis));\n\nreturn true;\n} else {\nreturn null;\n}\n});\ncljs.pprint.pprint_simple_list \x3d (function cljs$pprint$pprint_simple_list(alis){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27403_28780 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27404_28781 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27405_28782 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27406_28783 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27405_28782);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27406_28783);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\nvar length_count27407_28784 \x3d (0);\nvar alis_28785__$1 \x3d cljs.core.seq(alis);\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27407_28784 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(alis_28785__$1){\ncljs.pprint.write_out(cljs.core.first(alis_28785__$1));\n\nif(cljs.core.next(alis_28785__$1)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28788 \x3d (length_count27407_28784 + (1));\nvar G__28789 \x3d cljs.core.next(alis_28785__$1);\nlength_count27407_28784 \x3d G__28788;\nalis_28785__$1 \x3d G__28789;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27404_28781);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27403_28780);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_list \x3d (function cljs$pprint$pprint_list(alis){\nif(cljs.core.not(cljs.pprint.pprint_reader_macro(alis))){\nreturn cljs.pprint.pprint_simple_list(alis);\n} else {\nreturn null;\n}\n});\ncljs.pprint.pprint_vector \x3d (function cljs$pprint$pprint_vector(avec){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27426_28791 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27427_28792 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27428_28793 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27429_28794 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27428_28793);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27429_28794);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22[\x22,null,\x22]\x22);\n\nvar length_count27433_28795 \x3d (0);\nvar aseq_28796 \x3d cljs.core.seq(avec);\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27433_28795 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(aseq_28796){\ncljs.pprint.write_out(cljs.core.first(aseq_28796));\n\nif(cljs.core.next(aseq_28796)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28797 \x3d (length_count27433_28795 + (1));\nvar G__28798 \x3d cljs.core.next(aseq_28796);\nlength_count27433_28795 \x3d G__28797;\naseq_28796 \x3d G__28798;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27427_28792);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27426_28791);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_array \x3d (function (){var format_in__22023__auto__ \x3d \x22~\x3c[~;~@{~w~^, ~:_~}~;]~:\x3e\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28801__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28801 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28802__i \x3d 0, G__28802__a \x3d new Array(arguments.length - 0);\nwhile (G__28802__i \x3c G__28802__a.length) {G__28802__a[G__28802__i] \x3d arguments[G__28802__i + 0]; ++G__28802__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28802__a,0,null);\n} \nreturn G__28801__delegate.call(this,args__22025__auto__);};\nG__28801.cljs$lang$maxFixedArity \x3d 0;\nG__28801.cljs$lang$applyTo \x3d (function (arglist__28803){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28803);\nreturn G__28801__delegate(args__22025__auto__);\n});\nG__28801.cljs$core$IFn$_invoke$arity$variadic \x3d G__28801__delegate;\nreturn G__28801;\n})()\n;\n})();\ncljs.pprint.pprint_map \x3d (function cljs$pprint$pprint_map(amap){\nvar vec__27447 \x3d (((!(cljs.core.record_QMARK_(amap))))?(function (){var fexpr__27455 \x3d new cljs.core.Var(function(){return cljs.core.lift_ns;},new cljs.core.Symbol(\x22cljs.core\x22,\x22lift-ns\x22,\x22cljs.core/lift-ns\x22,463499081,null),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22private\x22,\x22private\x22,-558947994),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177),new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),new cljs.core.Keyword(null,\x22end-column\x22,\x22end-column\x22,1425389514),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22end-line\x22,\x22end-line\x22,1837326455),new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754),new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891),new cljs.core.Keyword(null,\x22test\x22,\x22test\x22,577538877)],[true,new cljs.core.Symbol(null,\x22cljs.core\x22,\x22cljs.core\x22,770546058,null),new cljs.core.Symbol(null,\x22lift-ns\x22,\x22lift-ns\x22,602311926,null),\x22cljs/core.cljs\x22,15,1,10696,10696,cljs.core.list(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22m\x22,\x22m\x22,-1021758608,null)], null)),\x22Returns [lifted-ns lifted-map] or nil if m can\x27t be lifted.\x22,(cljs.core.truth_(cljs.core.lift_ns)?cljs.core.lift_ns.cljs$lang$test:null)]));\nreturn (fexpr__27455.cljs$core$IFn$_invoke$arity$1 ? fexpr__27455.cljs$core$IFn$_invoke$arity$1(amap) : fexpr__27455.call(null, amap));\n})():null);\nvar ns \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27447,(0),null);\nvar lift_map \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27447,(1),null);\nvar amap__$1 \x3d (function (){var or__5002__auto__ \x3d lift_map;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn amap;\n}\n})();\nvar prefix \x3d (cljs.core.truth_(ns)?[\x22#:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22{\x22].join(\x27\x27):\x22{\x22);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27460_28808 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27461_28809 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27462_28810 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27463_28811 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27462_28810);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27463_28811);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,prefix,null,\x22}\x22);\n\nvar length_count27464_28812 \x3d (0);\nvar aseq_28813 \x3d cljs.core.seq(amap__$1);\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27464_28812 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(aseq_28813){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27470_28814 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27471_28815 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27472_28816 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27473_28817 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27472_28816);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27473_28817);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,null,null,null);\n\ncljs.pprint.write_out(cljs.core.ffirst(aseq_28813));\n\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d (0));\n\ncljs.pprint.write_out(cljs.core.fnext(cljs.core.first(aseq_28813)));\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27471_28815);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27470_28814);\n}}\n\n\nif(cljs.core.next(aseq_28813)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22, \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28820 \x3d (length_count27464_28812 + (1));\nvar G__28821 \x3d cljs.core.next(aseq_28813);\nlength_count27464_28812 \x3d G__28820;\naseq_28813 \x3d G__28821;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27461_28809);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27460_28808);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_simple_default \x3d (function cljs$pprint$pprint_simple_default(obj){\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj], 0)));\n});\ncljs.pprint.pprint_set \x3d (function (){var format_in__22023__auto__ \x3d \x22~\x3c#{~;~@{~w~^ ~:_~}~;}~:\x3e\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28822__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28822 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28823__i \x3d 0, G__28823__a \x3d new Array(arguments.length - 0);\nwhile (G__28823__i \x3c G__28823__a.length) {G__28823__a[G__28823__i] \x3d arguments[G__28823__i + 0]; ++G__28823__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28823__a,0,null);\n} \nreturn G__28822__delegate.call(this,args__22025__auto__);};\nG__28822.cljs$lang$maxFixedArity \x3d 0;\nG__28822.cljs$lang$applyTo \x3d (function (arglist__28824){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28824);\nreturn G__28822__delegate(args__22025__auto__);\n});\nG__28822.cljs$core$IFn$_invoke$arity$variadic \x3d G__28822__delegate;\nreturn G__28822;\n})()\n;\n})();\ncljs.pprint.type_map \x3d new cljs.core.PersistentArrayMap(null, 2, [\x22core$future_call\x22,\x22Future\x22,\x22core$promise\x22,\x22Promise\x22], null);\n/**\n * Map ugly type names to something simpler\n */\ncljs.pprint.map_ref_type \x3d (function cljs$pprint$map_ref_type(name){\nvar or__5002__auto__ \x3d (function (){var temp__5804__auto__ \x3d cljs.core.re_find(/^[^$]+\\$[^$]+/,name);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar match \x3d temp__5804__auto__;\nreturn (cljs.pprint.type_map.cljs$core$IFn$_invoke$arity$1 ? cljs.pprint.type_map.cljs$core$IFn$_invoke$arity$1(match) : cljs.pprint.type_map.call(null, match));\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn name;\n}\n});\ncljs.pprint.pprint_ideref \x3d (function cljs$pprint$pprint_ideref(o){\nvar prefix \x3d [\x22#\x3c\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint.map_ref_type(cljs.core.type(o).name)),\x22@\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.getUid(o)),\x22: \x22].join(\x27\x27);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27497_28827 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27498_28828 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27499_28829 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27500_28830 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27499_28829);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27500_28830);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,prefix,null,\x22\x3e\x22);\n\ncljs.pprint.pprint_indent(new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),(- (((prefix).length) - (2))));\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\ncljs.pprint.write_out((((function (){var and__5000__auto__ \x3d (((!((o \x3d\x3d null))))?(((((o.cljs$lang$protocol_mask$partition1$ \x26 (1))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d o.cljs$core$IPending$))))?true:(((!o.cljs$lang$protocol_mask$partition1$))?cljs.core.native_satisfies_QMARK_(cljs.core.IPending,o):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IPending,o));\nif(and__5000__auto__){\nreturn (!(cljs.core._realized_QMARK_(o)));\n} else {\nreturn and__5000__auto__;\n}\n})())?new cljs.core.Keyword(null,\x22not-delivered\x22,\x22not-delivered\x22,1599158697):cljs.core.deref(o)));\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27498_28828);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27497_28827);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_pqueue \x3d (function (){var format_in__22023__auto__ \x3d \x22~\x3c\x3c-(~;~@{~w~^ ~_~}~;)-\x3c~:\x3e\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28832__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28832 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28833__i \x3d 0, G__28833__a \x3d new Array(arguments.length - 0);\nwhile (G__28833__i \x3c G__28833__a.length) {G__28833__a[G__28833__i] \x3d arguments[G__28833__i + 0]; ++G__28833__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28833__a,0,null);\n} \nreturn G__28832__delegate.call(this,args__22025__auto__);};\nG__28832.cljs$lang$maxFixedArity \x3d 0;\nG__28832.cljs$lang$applyTo \x3d (function (arglist__28834){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28834);\nreturn G__28832__delegate(args__22025__auto__);\n});\nG__28832.cljs$core$IFn$_invoke$arity$variadic \x3d G__28832__delegate;\nreturn G__28832;\n})()\n;\n})();\ncljs.pprint.type_dispatcher \x3d (function cljs$pprint$type_dispatcher(obj){\nif((obj instanceof cljs.core.PersistentQueue)){\nreturn new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879);\n} else {\nif((((!((obj \x3d\x3d null))))?(((((obj.cljs$lang$protocol_mask$partition0$ \x26 (32768))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d obj.cljs$core$IDeref$))))?true:(((!obj.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,obj):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,obj))){\nreturn new cljs.core.Keyword(null,\x22deref\x22,\x22deref\x22,-145586795);\n} else {\nif((obj instanceof cljs.core.Symbol)){\nreturn new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696);\n} else {\nif(cljs.core.seq_QMARK_(obj)){\nreturn new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683);\n} else {\nif(cljs.core.map_QMARK_(obj)){\nreturn new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461);\n} else {\nif(cljs.core.vector_QMARK_(obj)){\nreturn new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158);\n} else {\nif(cljs.core.set_QMARK_(obj)){\nreturn new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554);\n} else {\nif((obj \x3d\x3d null)){\nreturn null;\n} else {\nreturn new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328);\n\n}\n}\n}\n}\n}\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint.simple_dispatch !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * The pretty print dispatch function for simple data structure format.\n */\ncljs.pprint.simple_dispatch \x3d (function (){var method_table__5599__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5600__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5601__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5602__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5603__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__27529 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__27529.cljs$core$IFn$_invoke$arity$0 ? fexpr__27529.cljs$core$IFn$_invoke$arity$0() : fexpr__27529.call(null, ));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.pprint\x22,\x22simple-dispatch\x22),cljs.pprint.type_dispatcher,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5603__auto__,method_table__5599__auto__,prefer_table__5600__auto__,method_cache__5601__auto__,cached_hierarchy__5602__auto__));\n})();\n}\ncljs.pprint.use_method(cljs.pprint.simple_dispatch,new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),cljs.pprint.pprint_list);\ncljs.pprint.use_method(cljs.pprint.simple_dispatch,new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),cljs.pprint.pprint_vector);\ncljs.pprint.use_method(cljs.pprint.simple_dispatch,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),cljs.pprint.pprint_map);\ncljs.pprint.use_method(cljs.pprint.simple_dispatch,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),cljs.pprint.pprint_set);\ncljs.pprint.use_method(cljs.pprint.simple_dispatch,null,(function (){\nreturn cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null], 0)));\n}));\ncljs.pprint.use_method(cljs.pprint.simple_dispatch,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.pprint.pprint_simple_default);\ncljs.pprint.set_pprint_dispatch(cljs.pprint.simple_dispatch);\n/**\n * Figure out which kind of brackets to use\n */\ncljs.pprint.brackets \x3d (function cljs$pprint$brackets(form){\nif(cljs.core.vector_QMARK_(form)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22[\x22,\x22]\x22], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [\x22(\x22,\x22)\x22], null);\n}\n});\n/**\n * Pretty print a single reference (import, use, etc.) from a namespace decl\n */\ncljs.pprint.pprint_ns_reference \x3d (function cljs$pprint$pprint_ns_reference(reference){\nif(cljs.core.sequential_QMARK_(reference)){\nvar vec__27540 \x3d cljs.pprint.brackets(reference);\nvar start \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27540,(0),null);\nvar end \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27540,(1),null);\nvar vec__27543 \x3d reference;\nvar seq__27544 \x3d cljs.core.seq(vec__27543);\nvar first__27545 \x3d cljs.core.first(seq__27544);\nvar seq__27544__$1 \x3d cljs.core.next(seq__27544);\nvar keyw \x3d first__27545;\nvar args \x3d seq__27544__$1;\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27546_28835 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27547_28836 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27548_28837 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27549_28838 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27548_28837);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27549_28838);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,start,null,end);\n\n(function (){var format_in__22023__auto__ \x3d \x22~w~:i\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28839__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28839 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28840__i \x3d 0, G__28840__a \x3d new Array(arguments.length - 0);\nwhile (G__28840__i \x3c G__28840__a.length) {G__28840__a[G__28840__i] \x3d arguments[G__28840__i + 0]; ++G__28840__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28840__a,0,null);\n} \nreturn G__28839__delegate.call(this,args__22025__auto__);};\nG__28839.cljs$lang$maxFixedArity \x3d 0;\nG__28839.cljs$lang$applyTo \x3d (function (arglist__28841){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28841);\nreturn G__28839__delegate(args__22025__auto__);\n});\nG__28839.cljs$core$IFn$_invoke$arity$variadic \x3d G__28839__delegate;\nreturn G__28839;\n})()\n;\n})()(keyw);\n\nvar args_28842__$1 \x3d args;\nwhile(true){\nif(cljs.core.seq(args_28842__$1)){\n(function (){var format_in__22023__auto__ \x3d \x22 \x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn ((function (args_28842__$1,format_in__22023__auto__,cf__22024__auto__,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args){\nreturn (function() { \nvar G__28843__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28843 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28844__i \x3d 0, G__28844__a \x3d new Array(arguments.length - 0);\nwhile (G__28844__i \x3c G__28844__a.length) {G__28844__a[G__28844__i] \x3d arguments[G__28844__i + 0]; ++G__28844__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28844__a,0,null);\n} \nreturn G__28843__delegate.call(this,args__22025__auto__);};\nG__28843.cljs$lang$maxFixedArity \x3d 0;\nG__28843.cljs$lang$applyTo \x3d (function (arglist__28845){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28845);\nreturn G__28843__delegate(args__22025__auto__);\n});\nG__28843.cljs$core$IFn$_invoke$arity$variadic \x3d G__28843__delegate;\nreturn G__28843;\n})()\n;\n;})(args_28842__$1,format_in__22023__auto__,cf__22024__auto__,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args))\n})()();\n\nvar arg_28846 \x3d cljs.core.first(args_28842__$1);\nif(cljs.core.sequential_QMARK_(arg_28846)){\nvar vec__27550_28847 \x3d cljs.pprint.brackets(arg_28846);\nvar start_28848__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27550_28847,(0),null);\nvar end_28849__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27550_28847,(1),null);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27553_28850 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27554_28851 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27555_28852 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27556_28853 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27555_28852);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27556_28853);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,start_28848__$1,null,end_28849__$1);\n\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(arg_28846),(3))) \x26\x26 ((cljs.core.second(arg_28846) instanceof cljs.core.Keyword)))){\nvar vec__27557_28854 \x3d arg_28846;\nvar ns_28855 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27557_28854,(0),null);\nvar kw_28856 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27557_28854,(1),null);\nvar lis_28857 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27557_28854,(2),null);\n(function (){var format_in__22023__auto__ \x3d \x22~w ~w \x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn ((function (args_28842__$1,format_in__22023__auto__,cf__22024__auto__,vec__27557_28854,ns_28855,kw_28856,lis_28857,_STAR_current_level_STAR__orig_val__27553_28850,_STAR_current_length_STAR__orig_val__27554_28851,_STAR_current_level_STAR__temp_val__27555_28852,_STAR_current_length_STAR__temp_val__27556_28853,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args){\nreturn (function() { \nvar G__28858__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28858 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28859__i \x3d 0, G__28859__a \x3d new Array(arguments.length - 0);\nwhile (G__28859__i \x3c G__28859__a.length) {G__28859__a[G__28859__i] \x3d arguments[G__28859__i + 0]; ++G__28859__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28859__a,0,null);\n} \nreturn G__28858__delegate.call(this,args__22025__auto__);};\nG__28858.cljs$lang$maxFixedArity \x3d 0;\nG__28858.cljs$lang$applyTo \x3d (function (arglist__28860){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28860);\nreturn G__28858__delegate(args__22025__auto__);\n});\nG__28858.cljs$core$IFn$_invoke$arity$variadic \x3d G__28858__delegate;\nreturn G__28858;\n})()\n;\n;})(args_28842__$1,format_in__22023__auto__,cf__22024__auto__,vec__27557_28854,ns_28855,kw_28856,lis_28857,_STAR_current_level_STAR__orig_val__27553_28850,_STAR_current_length_STAR__orig_val__27554_28851,_STAR_current_level_STAR__temp_val__27555_28852,_STAR_current_length_STAR__temp_val__27556_28853,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args))\n})()(ns_28855,kw_28856);\n\nif(cljs.core.sequential_QMARK_(lis_28857)){\n(function (){var format_in__22023__auto__ \x3d ((cljs.core.vector_QMARK_(lis_28857))?\x22~\x3c[~;~@{~w~^ ~:_~}~;]~:\x3e\x22:\x22~\x3c(~;~@{~w~^ ~:_~}~;)~:\x3e\x22);\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn ((function (args_28842__$1,format_in__22023__auto__,cf__22024__auto__,vec__27557_28854,ns_28855,kw_28856,lis_28857,_STAR_current_level_STAR__orig_val__27553_28850,_STAR_current_length_STAR__orig_val__27554_28851,_STAR_current_level_STAR__temp_val__27555_28852,_STAR_current_length_STAR__temp_val__27556_28853,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args){\nreturn (function() { \nvar G__28862__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28862 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28863__i \x3d 0, G__28863__a \x3d new Array(arguments.length - 0);\nwhile (G__28863__i \x3c G__28863__a.length) {G__28863__a[G__28863__i] \x3d arguments[G__28863__i + 0]; ++G__28863__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28863__a,0,null);\n} \nreturn G__28862__delegate.call(this,args__22025__auto__);};\nG__28862.cljs$lang$maxFixedArity \x3d 0;\nG__28862.cljs$lang$applyTo \x3d (function (arglist__28864){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28864);\nreturn G__28862__delegate(args__22025__auto__);\n});\nG__28862.cljs$core$IFn$_invoke$arity$variadic \x3d G__28862__delegate;\nreturn G__28862;\n})()\n;\n;})(args_28842__$1,format_in__22023__auto__,cf__22024__auto__,vec__27557_28854,ns_28855,kw_28856,lis_28857,_STAR_current_level_STAR__orig_val__27553_28850,_STAR_current_length_STAR__orig_val__27554_28851,_STAR_current_level_STAR__temp_val__27555_28852,_STAR_current_length_STAR__temp_val__27556_28853,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args))\n})()(lis_28857);\n} else {\ncljs.pprint.write_out(lis_28857);\n}\n} else {\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2((function (){var format_in__22023__auto__ \x3d \x22~w ~:i~@{~w~^ ~:_~}\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn ((function (args_28842__$1,format_in__22023__auto__,cf__22024__auto__,_STAR_current_level_STAR__orig_val__27553_28850,_STAR_current_length_STAR__orig_val__27554_28851,_STAR_current_level_STAR__temp_val__27555_28852,_STAR_current_length_STAR__temp_val__27556_28853,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args){\nreturn (function() { \nvar G__28865__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28865 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28866__i \x3d 0, G__28866__a \x3d new Array(arguments.length - 0);\nwhile (G__28866__i \x3c G__28866__a.length) {G__28866__a[G__28866__i] \x3d arguments[G__28866__i + 0]; ++G__28866__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28866__a,0,null);\n} \nreturn G__28865__delegate.call(this,args__22025__auto__);};\nG__28865.cljs$lang$maxFixedArity \x3d 0;\nG__28865.cljs$lang$applyTo \x3d (function (arglist__28867){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28867);\nreturn G__28865__delegate(args__22025__auto__);\n});\nG__28865.cljs$core$IFn$_invoke$arity$variadic \x3d G__28865__delegate;\nreturn G__28865;\n})()\n;\n;})(args_28842__$1,format_in__22023__auto__,cf__22024__auto__,_STAR_current_level_STAR__orig_val__27553_28850,_STAR_current_length_STAR__orig_val__27554_28851,_STAR_current_level_STAR__temp_val__27555_28852,_STAR_current_length_STAR__temp_val__27556_28853,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args))\n})(),arg_28846);\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27554_28851);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27553_28850);\n}}\n\n\nif(cljs.core.next(args_28842__$1)){\n(function (){var format_in__22023__auto__ \x3d \x22~_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn ((function (args_28842__$1,format_in__22023__auto__,cf__22024__auto__,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args){\nreturn (function() { \nvar G__28869__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28869 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28870__i \x3d 0, G__28870__a \x3d new Array(arguments.length - 0);\nwhile (G__28870__i \x3c G__28870__a.length) {G__28870__a[G__28870__i] \x3d arguments[G__28870__i + 0]; ++G__28870__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28870__a,0,null);\n} \nreturn G__28869__delegate.call(this,args__22025__auto__);};\nG__28869.cljs$lang$maxFixedArity \x3d 0;\nG__28869.cljs$lang$applyTo \x3d (function (arglist__28871){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28871);\nreturn G__28869__delegate(args__22025__auto__);\n});\nG__28869.cljs$core$IFn$_invoke$arity$variadic \x3d G__28869__delegate;\nreturn G__28869;\n})()\n;\n;})(args_28842__$1,format_in__22023__auto__,cf__22024__auto__,vec__27550_28847,start_28848__$1,end_28849__$1,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args))\n})()();\n} else {\n}\n} else {\ncljs.pprint.write_out(arg_28846);\n\nif(cljs.core.next(args_28842__$1)){\n(function (){var format_in__22023__auto__ \x3d \x22~:_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn ((function (args_28842__$1,format_in__22023__auto__,cf__22024__auto__,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args){\nreturn (function() { \nvar G__28873__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28873 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28874__i \x3d 0, G__28874__a \x3d new Array(arguments.length - 0);\nwhile (G__28874__i \x3c G__28874__a.length) {G__28874__a[G__28874__i] \x3d arguments[G__28874__i + 0]; ++G__28874__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28874__a,0,null);\n} \nreturn G__28873__delegate.call(this,args__22025__auto__);};\nG__28873.cljs$lang$maxFixedArity \x3d 0;\nG__28873.cljs$lang$applyTo \x3d (function (arglist__28875){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28875);\nreturn G__28873__delegate(args__22025__auto__);\n});\nG__28873.cljs$core$IFn$_invoke$arity$variadic \x3d G__28873__delegate;\nreturn G__28873;\n})()\n;\n;})(args_28842__$1,format_in__22023__auto__,cf__22024__auto__,arg_28846,_STAR_current_level_STAR__orig_val__27546_28835,_STAR_current_length_STAR__orig_val__27547_28836,_STAR_current_level_STAR__temp_val__27548_28837,_STAR_current_length_STAR__temp_val__27549_28838,vec__27540,start,end,vec__27543,seq__27544,first__27545,seq__27544__$1,keyw,args))\n})()();\n} else {\n}\n}\n\nvar G__28876 \x3d cljs.core.next(args_28842__$1);\nargs_28842__$1 \x3d G__28876;\ncontinue;\n} else {\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27547_28836);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27546_28835);\n}}\n\nreturn null;\n} else {\nreturn cljs.pprint.write_out(reference);\n}\n});\n/**\n * The pretty print dispatch chunk for the ns macro\n */\ncljs.pprint.pprint_ns \x3d (function cljs$pprint$pprint_ns(alis){\nif(cljs.core.next(alis)){\nvar vec__27579 \x3d alis;\nvar seq__27580 \x3d cljs.core.seq(vec__27579);\nvar first__27581 \x3d cljs.core.first(seq__27580);\nvar seq__27580__$1 \x3d cljs.core.next(seq__27580);\nvar ns_sym \x3d first__27581;\nvar first__27581__$1 \x3d cljs.core.first(seq__27580__$1);\nvar seq__27580__$2 \x3d cljs.core.next(seq__27580__$1);\nvar ns_name \x3d first__27581__$1;\nvar stuff \x3d seq__27580__$2;\nvar vec__27582 \x3d ((typeof cljs.core.first(stuff) \x3d\x3d\x3d \x27string\x27)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(stuff),cljs.core.next(stuff)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,stuff], null));\nvar doc_str \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27582,(0),null);\nvar stuff__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27582,(1),null);\nvar vec__27585 \x3d ((cljs.core.map_QMARK_(cljs.core.first(stuff__$1)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(stuff__$1),cljs.core.next(stuff__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,stuff__$1], null));\nvar attr_map \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27585,(0),null);\nvar references \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27585,(1),null);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27589_28879 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27590_28880 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27591_28881 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27592_28882 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27591_28881);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27592_28882);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\n(function (){var format_in__22023__auto__ \x3d \x22~w ~1I~@_~w\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28883__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28883 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28884__i \x3d 0, G__28884__a \x3d new Array(arguments.length - 0);\nwhile (G__28884__i \x3c G__28884__a.length) {G__28884__a[G__28884__i] \x3d arguments[G__28884__i + 0]; ++G__28884__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28884__a,0,null);\n} \nreturn G__28883__delegate.call(this,args__22025__auto__);};\nG__28883.cljs$lang$maxFixedArity \x3d 0;\nG__28883.cljs$lang$applyTo \x3d (function (arglist__28885){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28885);\nreturn G__28883__delegate(args__22025__auto__);\n});\nG__28883.cljs$core$IFn$_invoke$arity$variadic \x3d G__28883__delegate;\nreturn G__28883;\n})()\n;\n})()(ns_sym,ns_name);\n\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d doc_str;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d attr_map;\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn cljs.core.seq(references);\n}\n}\n})())){\n(function (){var format_in__22023__auto__ \x3d \x22~@:_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28887__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28887 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28888__i \x3d 0, G__28888__a \x3d new Array(arguments.length - 0);\nwhile (G__28888__i \x3c G__28888__a.length) {G__28888__a[G__28888__i] \x3d arguments[G__28888__i + 0]; ++G__28888__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28888__a,0,null);\n} \nreturn G__28887__delegate.call(this,args__22025__auto__);};\nG__28887.cljs$lang$maxFixedArity \x3d 0;\nG__28887.cljs$lang$applyTo \x3d (function (arglist__28889){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28889);\nreturn G__28887__delegate(args__22025__auto__);\n});\nG__28887.cljs$core$IFn$_invoke$arity$variadic \x3d G__28887__delegate;\nreturn G__28887;\n})()\n;\n})()();\n} else {\n}\n\nif(cljs.core.truth_(doc_str)){\ncljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(true,\x22\\\x22~a\\\x22~:[~;~:@_~]\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([doc_str,(function (){var or__5002__auto__ \x3d attr_map;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.seq(references);\n}\n})()], 0));\n} else {\n}\n\nif(cljs.core.truth_(attr_map)){\n(function (){var format_in__22023__auto__ \x3d \x22~w~:[~;~:@_~]\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28890__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28890 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28892__i \x3d 0, G__28892__a \x3d new Array(arguments.length - 0);\nwhile (G__28892__i \x3c G__28892__a.length) {G__28892__a[G__28892__i] \x3d arguments[G__28892__i + 0]; ++G__28892__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28892__a,0,null);\n} \nreturn G__28890__delegate.call(this,args__22025__auto__);};\nG__28890.cljs$lang$maxFixedArity \x3d 0;\nG__28890.cljs$lang$applyTo \x3d (function (arglist__28893){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28893);\nreturn G__28890__delegate(args__22025__auto__);\n});\nG__28890.cljs$core$IFn$_invoke$arity$variadic \x3d G__28890__delegate;\nreturn G__28890;\n})()\n;\n})()(attr_map,cljs.core.seq(references));\n} else {\n}\n\nvar references_28894__$1 \x3d references;\nwhile(true){\ncljs.pprint.pprint_ns_reference(cljs.core.first(references_28894__$1));\n\nvar temp__5804__auto___28895 \x3d cljs.core.next(references_28894__$1);\nif(temp__5804__auto___28895){\nvar references_28896__$2 \x3d temp__5804__auto___28895;\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28897 \x3d references_28896__$2;\nreferences_28894__$1 \x3d G__28897;\ncontinue;\n} else {\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27590_28880);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27589_28879);\n}}\n\nreturn null;\n} else {\nreturn cljs.pprint.write_out(alis);\n}\n});\ncljs.pprint.pprint_hold_first \x3d (function (){var format_in__22023__auto__ \x3d \x22~:\x3c~w~^ ~@_~w~^ ~_~@{~w~^ ~_~}~:\x3e\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28898__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28898 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28899__i \x3d 0, G__28899__a \x3d new Array(arguments.length - 0);\nwhile (G__28899__i \x3c G__28899__a.length) {G__28899__a[G__28899__i] \x3d arguments[G__28899__i + 0]; ++G__28899__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28899__a,0,null);\n} \nreturn G__28898__delegate.call(this,args__22025__auto__);};\nG__28898.cljs$lang$maxFixedArity \x3d 0;\nG__28898.cljs$lang$applyTo \x3d (function (arglist__28900){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28900);\nreturn G__28898__delegate(args__22025__auto__);\n});\nG__28898.cljs$core$IFn$_invoke$arity$variadic \x3d G__28898__delegate;\nreturn G__28898;\n})()\n;\n})();\ncljs.pprint.single_defn \x3d (function cljs$pprint$single_defn(alis,has_doc_str_QMARK_){\nif(cljs.core.seq(alis)){\nif(cljs.core.truth_(has_doc_str_QMARK_)){\n(function (){var format_in__22023__auto__ \x3d \x22 ~_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28901__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28901 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28902__i \x3d 0, G__28902__a \x3d new Array(arguments.length - 0);\nwhile (G__28902__i \x3c G__28902__a.length) {G__28902__a[G__28902__i] \x3d arguments[G__28902__i + 0]; ++G__28902__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28902__a,0,null);\n} \nreturn G__28901__delegate.call(this,args__22025__auto__);};\nG__28901.cljs$lang$maxFixedArity \x3d 0;\nG__28901.cljs$lang$applyTo \x3d (function (arglist__28903){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28903);\nreturn G__28901__delegate(args__22025__auto__);\n});\nG__28901.cljs$core$IFn$_invoke$arity$variadic \x3d G__28901__delegate;\nreturn G__28901;\n})()\n;\n})()();\n} else {\n(function (){var format_in__22023__auto__ \x3d \x22 ~@_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28904__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28904 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28905__i \x3d 0, G__28905__a \x3d new Array(arguments.length - 0);\nwhile (G__28905__i \x3c G__28905__a.length) {G__28905__a[G__28905__i] \x3d arguments[G__28905__i + 0]; ++G__28905__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28905__a,0,null);\n} \nreturn G__28904__delegate.call(this,args__22025__auto__);};\nG__28904.cljs$lang$maxFixedArity \x3d 0;\nG__28904.cljs$lang$applyTo \x3d (function (arglist__28906){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28906);\nreturn G__28904__delegate(args__22025__auto__);\n});\nG__28904.cljs$core$IFn$_invoke$arity$variadic \x3d G__28904__delegate;\nreturn G__28904;\n})()\n;\n})()();\n}\n\nreturn (function (){var format_in__22023__auto__ \x3d \x22~{~w~^ ~_~}\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28907__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28907 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28908__i \x3d 0, G__28908__a \x3d new Array(arguments.length - 0);\nwhile (G__28908__i \x3c G__28908__a.length) {G__28908__a[G__28908__i] \x3d arguments[G__28908__i + 0]; ++G__28908__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28908__a,0,null);\n} \nreturn G__28907__delegate.call(this,args__22025__auto__);};\nG__28907.cljs$lang$maxFixedArity \x3d 0;\nG__28907.cljs$lang$applyTo \x3d (function (arglist__28909){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28909);\nreturn G__28907__delegate(args__22025__auto__);\n});\nG__28907.cljs$core$IFn$_invoke$arity$variadic \x3d G__28907__delegate;\nreturn G__28907;\n})()\n;\n})()(alis);\n} else {\nreturn null;\n}\n});\ncljs.pprint.multi_defn \x3d (function cljs$pprint$multi_defn(alis,has_doc_str_QMARK_){\nif(cljs.core.seq(alis)){\nreturn (function (){var format_in__22023__auto__ \x3d \x22 ~_~{~w~^ ~_~}\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28911__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28911 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28912__i \x3d 0, G__28912__a \x3d new Array(arguments.length - 0);\nwhile (G__28912__i \x3c G__28912__a.length) {G__28912__a[G__28912__i] \x3d arguments[G__28912__i + 0]; ++G__28912__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28912__a,0,null);\n} \nreturn G__28911__delegate.call(this,args__22025__auto__);};\nG__28911.cljs$lang$maxFixedArity \x3d 0;\nG__28911.cljs$lang$applyTo \x3d (function (arglist__28913){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28913);\nreturn G__28911__delegate(args__22025__auto__);\n});\nG__28911.cljs$core$IFn$_invoke$arity$variadic \x3d G__28911__delegate;\nreturn G__28911;\n})()\n;\n})()(alis);\n} else {\nreturn null;\n}\n});\ncljs.pprint.pprint_defn \x3d (function cljs$pprint$pprint_defn(alis){\nif(cljs.core.next(alis)){\nvar vec__27628 \x3d alis;\nvar seq__27629 \x3d cljs.core.seq(vec__27628);\nvar first__27630 \x3d cljs.core.first(seq__27629);\nvar seq__27629__$1 \x3d cljs.core.next(seq__27629);\nvar defn_sym \x3d first__27630;\nvar first__27630__$1 \x3d cljs.core.first(seq__27629__$1);\nvar seq__27629__$2 \x3d cljs.core.next(seq__27629__$1);\nvar defn_name \x3d first__27630__$1;\nvar stuff \x3d seq__27629__$2;\nvar vec__27632 \x3d ((typeof cljs.core.first(stuff) \x3d\x3d\x3d \x27string\x27)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(stuff),cljs.core.next(stuff)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,stuff], null));\nvar doc_str \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27632,(0),null);\nvar stuff__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27632,(1),null);\nvar vec__27635 \x3d ((cljs.core.map_QMARK_(cljs.core.first(stuff__$1)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(stuff__$1),cljs.core.next(stuff__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,stuff__$1], null));\nvar attr_map \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27635,(0),null);\nvar stuff__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27635,(1),null);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27641_28915 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27642_28916 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27643_28917 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27644_28918 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27643_28917);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27644_28918);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\n(function (){var format_in__22023__auto__ \x3d \x22~w ~1I~@_~w\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28923__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28923 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28929__i \x3d 0, G__28929__a \x3d new Array(arguments.length - 0);\nwhile (G__28929__i \x3c G__28929__a.length) {G__28929__a[G__28929__i] \x3d arguments[G__28929__i + 0]; ++G__28929__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28929__a,0,null);\n} \nreturn G__28923__delegate.call(this,args__22025__auto__);};\nG__28923.cljs$lang$maxFixedArity \x3d 0;\nG__28923.cljs$lang$applyTo \x3d (function (arglist__28930){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28930);\nreturn G__28923__delegate(args__22025__auto__);\n});\nG__28923.cljs$core$IFn$_invoke$arity$variadic \x3d G__28923__delegate;\nreturn G__28923;\n})()\n;\n})()(defn_sym,defn_name);\n\nif(cljs.core.truth_(doc_str)){\n(function (){var format_in__22023__auto__ \x3d \x22 ~_~w\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28931__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28931 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28932__i \x3d 0, G__28932__a \x3d new Array(arguments.length - 0);\nwhile (G__28932__i \x3c G__28932__a.length) {G__28932__a[G__28932__i] \x3d arguments[G__28932__i + 0]; ++G__28932__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28932__a,0,null);\n} \nreturn G__28931__delegate.call(this,args__22025__auto__);};\nG__28931.cljs$lang$maxFixedArity \x3d 0;\nG__28931.cljs$lang$applyTo \x3d (function (arglist__28933){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28933);\nreturn G__28931__delegate(args__22025__auto__);\n});\nG__28931.cljs$core$IFn$_invoke$arity$variadic \x3d G__28931__delegate;\nreturn G__28931;\n})()\n;\n})()(doc_str);\n} else {\n}\n\nif(cljs.core.truth_(attr_map)){\n(function (){var format_in__22023__auto__ \x3d \x22 ~_~w\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28934__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28934 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28935__i \x3d 0, G__28935__a \x3d new Array(arguments.length - 0);\nwhile (G__28935__i \x3c G__28935__a.length) {G__28935__a[G__28935__i] \x3d arguments[G__28935__i + 0]; ++G__28935__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28935__a,0,null);\n} \nreturn G__28934__delegate.call(this,args__22025__auto__);};\nG__28934.cljs$lang$maxFixedArity \x3d 0;\nG__28934.cljs$lang$applyTo \x3d (function (arglist__28936){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28936);\nreturn G__28934__delegate(args__22025__auto__);\n});\nG__28934.cljs$core$IFn$_invoke$arity$variadic \x3d G__28934__delegate;\nreturn G__28934;\n})()\n;\n})()(attr_map);\n} else {\n}\n\nif(cljs.core.vector_QMARK_(cljs.core.first(stuff__$2))){\ncljs.pprint.single_defn(stuff__$2,(function (){var or__5002__auto__ \x3d doc_str;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn attr_map;\n}\n})());\n} else {\ncljs.pprint.multi_defn(stuff__$2,(function (){var or__5002__auto__ \x3d doc_str;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn attr_map;\n}\n})());\n\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27642_28916);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27641_28915);\n}}\n\nreturn null;\n} else {\nreturn cljs.pprint.pprint_simple_code_list(alis);\n}\n});\ncljs.pprint.pprint_binding_form \x3d (function cljs$pprint$pprint_binding_form(binding_vec){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27668_28937 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27669_28938 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27670_28939 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27671_28940 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27670_28939);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27671_28940);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22[\x22,null,\x22]\x22);\n\nvar length_count27673_28941 \x3d (0);\nvar binding_28942 \x3d binding_vec;\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27673_28941 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(cljs.core.seq(binding_28942)){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27675_28943 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27676_28944 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27677_28945 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27678_28946 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27677_28945);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27678_28946);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,null,null,null);\n\n\ncljs.pprint.write_out(cljs.core.first(binding_28942));\n\nif(cljs.core.next(binding_28942)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22miser\x22,\x22miser\x22,-556060186));\n\ncljs.pprint.write_out(cljs.core.second(binding_28942));\n} else {\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27676_28944);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27675_28943);\n}}\n\n\nif(cljs.core.next(cljs.core.rest(binding_28942))){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28947 \x3d (length_count27673_28941 + (1));\nvar G__28948 \x3d cljs.core.next(cljs.core.rest(binding_28942));\nlength_count27673_28941 \x3d G__28947;\nbinding_28942 \x3d G__28948;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27669_28938);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27668_28937);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_let \x3d (function cljs$pprint$pprint_let(alis){\nvar base_sym \x3d cljs.core.first(alis);\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27693_28949 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27694_28950 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27695_28951 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27696_28952 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27695_28951);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27696_28952);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\nif(((cljs.core.next(alis)) \x26\x26 (cljs.core.vector_QMARK_(cljs.core.second(alis))))){\n(function (){var format_in__22023__auto__ \x3d \x22~w ~1I~@_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28954__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28954 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28955__i \x3d 0, G__28955__a \x3d new Array(arguments.length - 0);\nwhile (G__28955__i \x3c G__28955__a.length) {G__28955__a[G__28955__i] \x3d arguments[G__28955__i + 0]; ++G__28955__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28955__a,0,null);\n} \nreturn G__28954__delegate.call(this,args__22025__auto__);};\nG__28954.cljs$lang$maxFixedArity \x3d 0;\nG__28954.cljs$lang$applyTo \x3d (function (arglist__28956){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28956);\nreturn G__28954__delegate(args__22025__auto__);\n});\nG__28954.cljs$core$IFn$_invoke$arity$variadic \x3d G__28954__delegate;\nreturn G__28954;\n})()\n;\n})()(base_sym);\n\ncljs.pprint.pprint_binding_form(cljs.core.second(alis));\n\n(function (){var format_in__22023__auto__ \x3d \x22 ~_~{~w~^ ~_~}\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28957__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28957 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28958__i \x3d 0, G__28958__a \x3d new Array(arguments.length - 0);\nwhile (G__28958__i \x3c G__28958__a.length) {G__28958__a[G__28958__i] \x3d arguments[G__28958__i + 0]; ++G__28958__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28958__a,0,null);\n} \nreturn G__28957__delegate.call(this,args__22025__auto__);};\nG__28957.cljs$lang$maxFixedArity \x3d 0;\nG__28957.cljs$lang$applyTo \x3d (function (arglist__28959){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28959);\nreturn G__28957__delegate(args__22025__auto__);\n});\nG__28957.cljs$core$IFn$_invoke$arity$variadic \x3d G__28957__delegate;\nreturn G__28957;\n})()\n;\n})()(cljs.core.next(cljs.core.rest(alis)));\n} else {\ncljs.pprint.pprint_simple_code_list(alis);\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27694_28950);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27693_28949);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_if \x3d (function (){var format_in__22023__auto__ \x3d \x22~:\x3c~1I~w~^ ~@_~w~@{ ~_~w~}~:\x3e\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28961__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28961 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28962__i \x3d 0, G__28962__a \x3d new Array(arguments.length - 0);\nwhile (G__28962__i \x3c G__28962__a.length) {G__28962__a[G__28962__i] \x3d arguments[G__28962__i + 0]; ++G__28962__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28962__a,0,null);\n} \nreturn G__28961__delegate.call(this,args__22025__auto__);};\nG__28961.cljs$lang$maxFixedArity \x3d 0;\nG__28961.cljs$lang$applyTo \x3d (function (arglist__28963){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28963);\nreturn G__28961__delegate(args__22025__auto__);\n});\nG__28961.cljs$core$IFn$_invoke$arity$variadic \x3d G__28961__delegate;\nreturn G__28961;\n})()\n;\n})();\ncljs.pprint.pprint_cond \x3d (function cljs$pprint$pprint_cond(alis){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27708_28964 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27709_28965 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27710_28966 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27711_28967 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27710_28966);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27711_28967);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\ncljs.pprint.pprint_indent(new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),(1));\n\ncljs.pprint.write_out(cljs.core.first(alis));\n\nif(cljs.core.next(alis)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar length_count27715_28969 \x3d (0);\nvar alis_28970__$1 \x3d cljs.core.next(alis);\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27715_28969 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(alis_28970__$1){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27717_28972 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27718_28973 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27719_28974 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27720_28975 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27719_28974);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27720_28975);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,null,null,null);\n\n\ncljs.pprint.write_out(cljs.core.first(alis_28970__$1));\n\nif(cljs.core.next(alis_28970__$1)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22miser\x22,\x22miser\x22,-556060186));\n\ncljs.pprint.write_out(cljs.core.second(alis_28970__$1));\n} else {\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27718_28973);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27717_28972);\n}}\n\n\nif(cljs.core.next(cljs.core.rest(alis_28970__$1))){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28977 \x3d (length_count27715_28969 + (1));\nvar G__28978 \x3d cljs.core.next(cljs.core.rest(alis_28970__$1));\nlength_count27715_28969 \x3d G__28977;\nalis_28970__$1 \x3d G__28978;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n} else {\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27709_28965);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27708_28964);\n}}\n\nreturn null;\n});\ncljs.pprint.pprint_condp \x3d (function cljs$pprint$pprint_condp(alis){\nif((cljs.core.count(alis) \x3e (3))){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27730_28979 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27731_28980 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27732_28981 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27733_28982 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27732_28981);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27733_28982);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\ncljs.pprint.pprint_indent(new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),(1));\n\ncljs.core.apply.cljs$core$IFn$_invoke$arity$2((function (){var format_in__22023__auto__ \x3d \x22~w ~@_~w ~@_~w ~_\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__28984__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__28984 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__28991__i \x3d 0, G__28991__a \x3d new Array(arguments.length - 0);\nwhile (G__28991__i \x3c G__28991__a.length) {G__28991__a[G__28991__i] \x3d arguments[G__28991__i + 0]; ++G__28991__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__28991__a,0,null);\n} \nreturn G__28984__delegate.call(this,args__22025__auto__);};\nG__28984.cljs$lang$maxFixedArity \x3d 0;\nG__28984.cljs$lang$applyTo \x3d (function (arglist__28992){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__28992);\nreturn G__28984__delegate(args__22025__auto__);\n});\nG__28984.cljs$core$IFn$_invoke$arity$variadic \x3d G__28984__delegate;\nreturn G__28984;\n})()\n;\n})(),alis);\n\nvar length_count27734_28993 \x3d (0);\nvar alis_28994__$1 \x3d cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2((3),alis));\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27734_28993 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(alis_28994__$1){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27735_28995 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27736_28996 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27737_28997 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27738_28998 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27737_28997);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27738_28998);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,null,null,null);\n\n\ncljs.pprint.write_out(cljs.core.first(alis_28994__$1));\n\nif(cljs.core.next(alis_28994__$1)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22miser\x22,\x22miser\x22,-556060186));\n\ncljs.pprint.write_out(cljs.core.second(alis_28994__$1));\n} else {\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27736_28996);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27735_28995);\n}}\n\n\nif(cljs.core.next(cljs.core.rest(alis_28994__$1))){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__28999 \x3d (length_count27734_28993 + (1));\nvar G__29000 \x3d cljs.core.next(cljs.core.rest(alis_28994__$1));\nlength_count27734_28993 \x3d G__28999;\nalis_28994__$1 \x3d G__29000;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27731_28980);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27730_28979);\n}}\n\nreturn null;\n} else {\nreturn cljs.pprint.pprint_simple_code_list(alis);\n}\n});\ncljs.pprint._STAR_symbol_map_STAR_ \x3d cljs.core.PersistentArrayMap.EMPTY;\ncljs.pprint.pprint_anon_func \x3d (function cljs$pprint$pprint_anon_func(alis){\nvar args \x3d cljs.core.second(alis);\nvar nlis \x3d cljs.core.first(cljs.core.rest(cljs.core.rest(alis)));\nif(cljs.core.vector_QMARK_(args)){\nvar _STAR_symbol_map_STAR__orig_val__27744 \x3d cljs.pprint._STAR_symbol_map_STAR_;\nvar _STAR_symbol_map_STAR__temp_val__27745 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(args)))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.first(args),\x22%\x22]):cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (p1__27742_SHARP_,p2__27743_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__27742_SHARP_,[\x22%\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p2__27743_SHARP_)].join(\x27\x27)],null));\n}),args,cljs.core.range.cljs$core$IFn$_invoke$arity$2((1),(cljs.core.count(args) + (1))))));\n(cljs.pprint._STAR_symbol_map_STAR_ \x3d _STAR_symbol_map_STAR__temp_val__27745);\n\ntry{return (function (){var format_in__22023__auto__ \x3d \x22~\x3c#(~;~@{~w~^ ~_~}~;)~:\x3e\x22;\nvar cf__22024__auto__ \x3d ((typeof format_in__22023__auto__ \x3d\x3d\x3d \x27string\x27)?cljs.pprint.cached_compile(format_in__22023__auto__):format_in__22023__auto__);\nreturn (function() { \nvar G__29001__delegate \x3d function (args__22025__auto__){\nvar navigator__22026__auto__ \x3d cljs.pprint.init_navigator(args__22025__auto__);\nreturn cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(cf__22024__auto__,navigator__22026__auto__);\n};\nvar G__29001 \x3d function (var_args){\nvar args__22025__auto__ \x3d null;\nif (arguments.length \x3e 0) {\nvar G__29002__i \x3d 0, G__29002__a \x3d new Array(arguments.length - 0);\nwhile (G__29002__i \x3c G__29002__a.length) {G__29002__a[G__29002__i] \x3d arguments[G__29002__i + 0]; ++G__29002__i;}\n args__22025__auto__ \x3d new cljs.core.IndexedSeq(G__29002__a,0,null);\n} \nreturn G__29001__delegate.call(this,args__22025__auto__);};\nG__29001.cljs$lang$maxFixedArity \x3d 0;\nG__29001.cljs$lang$applyTo \x3d (function (arglist__29003){\nvar args__22025__auto__ \x3d cljs.core.seq(arglist__29003);\nreturn G__29001__delegate(args__22025__auto__);\n});\nG__29001.cljs$core$IFn$_invoke$arity$variadic \x3d G__29001__delegate;\nreturn G__29001;\n})()\n;\n})()(nlis);\n}finally {(cljs.pprint._STAR_symbol_map_STAR_ \x3d _STAR_symbol_map_STAR__orig_val__27744);\n}} else {\nreturn cljs.pprint.pprint_simple_code_list(alis);\n}\n});\ncljs.pprint.pprint_simple_code_list \x3d (function cljs$pprint$pprint_simple_code_list(alis){\nif(cljs.core.truth_(cljs.pprint.level_exceeded())){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22#\x22);\n} else {\nvar _STAR_current_level_STAR__orig_val__27746_29004 \x3d cljs.pprint._STAR_current_level_STAR_;\nvar _STAR_current_length_STAR__orig_val__27747_29005 \x3d cljs.pprint._STAR_current_length_STAR_;\nvar _STAR_current_level_STAR__temp_val__27748_29006 \x3d (cljs.pprint._STAR_current_level_STAR_ + (1));\nvar _STAR_current_length_STAR__temp_val__27749_29007 \x3d (0);\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__temp_val__27748_29006);\n\n(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__temp_val__27749_29007);\n\ntry{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,\x22(\x22,null,\x22)\x22);\n\ncljs.pprint.pprint_indent(new cljs.core.Keyword(null,\x22block\x22,\x22block\x22,664686210),(1));\n\nvar length_count27750_29008 \x3d (0);\nvar alis_29009__$1 \x3d cljs.core.seq(alis);\nwhile(true){\nif(((cljs.core.not(cljs.core._STAR_print_length_STAR_)) || ((length_count27750_29008 \x3c cljs.core._STAR_print_length_STAR_)))){\nif(alis_29009__$1){\ncljs.pprint.write_out(cljs.core.first(alis_29009__$1));\n\nif(cljs.core.next(alis_29009__$1)){\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22 \x22);\n\ncljs.pprint.pprint_newline(new cljs.core.Keyword(null,\x22linear\x22,\x22linear\x22,872268697));\n\nvar G__29010 \x3d (length_count27750_29008 + (1));\nvar G__29011 \x3d cljs.core.next(alis_29009__$1);\nlength_count27750_29008 \x3d G__29010;\nalis_29009__$1 \x3d G__29011;\ncontinue;\n} else {\n}\n} else {\n}\n} else {\ncljs.core._write(cljs.core._STAR_out_STAR_,\x22...\x22);\n}\nbreak;\n}\n\ncljs.pprint.end_block(cljs.core._STAR_out_STAR_);\n}finally {(cljs.pprint._STAR_current_length_STAR_ \x3d _STAR_current_length_STAR__orig_val__27747_29005);\n\n(cljs.pprint._STAR_current_level_STAR_ \x3d _STAR_current_level_STAR__orig_val__27746_29004);\n}}\n\nreturn null;\n});\ncljs.pprint.two_forms \x3d (function cljs$pprint$two_forms(amap){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.identity,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var iter__5480__auto__ \x3d (function cljs$pprint$two_forms_$_iter__27754(s__27755){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__27755__$1 \x3d s__27755;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__27755__$1);\nif(temp__5804__auto__){\nvar s__27755__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__27755__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__27755__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__27757 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__27756 \x3d (0);\nwhile(true){\nif((i__27756 \x3c size__5479__auto__)){\nvar x \x3d cljs.core._nth(c__5478__auto__,i__27756);\ncljs.core.chunk_append(b__27757,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(cljs.core.first(x))),cljs.core.second(x)], null)], null));\n\nvar G__29015 \x3d (i__27756 + (1));\ni__27756 \x3d G__29015;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__27757),cljs$pprint$two_forms_$_iter__27754(cljs.core.chunk_rest(s__27755__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__27757),null);\n}\n} else {\nvar x \x3d cljs.core.first(s__27755__$2);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(cljs.core.first(x))),cljs.core.second(x)], null)], null),cljs$pprint$two_forms_$_iter__27754(cljs.core.rest(s__27755__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(amap);\n})()], 0)));\n});\ncljs.pprint.add_core_ns \x3d (function cljs$pprint$add_core_ns(amap){\nvar core \x3d \x22clojure.core\x22;\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__27758_SHARP_){\nvar vec__27759 \x3d p1__27758_SHARP_;\nvar s \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27759,(0),null);\nvar f \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27759,(1),null);\nif(cljs.core.not((function (){var or__5002__auto__ \x3d cljs.core.namespace(s);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.special_symbol_QMARK_(s);\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(core,cljs.core.name(s)),f], null);\n} else {\nreturn p1__27758_SHARP_;\n}\n}),amap));\n});\ncljs.pprint._STAR_code_table_STAR_ \x3d cljs.pprint.two_forms(cljs.pprint.add_core_ns(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,\x22.\x22,\x22.\x22,1975675962,null),new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),new cljs.core.Symbol(null,\x22when-first\x22,\x22when-first\x22,821699168,null),new cljs.core.Symbol(null,\x22if\x22,\x22if\x22,1181717262,null),new cljs.core.Symbol(null,\x22condp\x22,\x22condp\x22,1054325175,null),new cljs.core.Symbol(null,\x22..\x22,\x22..\x22,-300507420,null),new cljs.core.Symbol(null,\x22defmacro\x22,\x22defmacro\x22,2054157304,null),new cljs.core.Symbol(null,\x22defn\x22,\x22defn\x22,-126010802,null),new cljs.core.Symbol(null,\x22loop\x22,\x22loop\x22,1244978678,null),new cljs.core.Symbol(null,\x22struct\x22,\x22struct\x22,325972931,null),new cljs.core.Symbol(null,\x22doseq\x22,\x22doseq\x22,221164135,null),new cljs.core.Symbol(null,\x22if-not\x22,\x22if-not\x22,-265415609,null),new cljs.core.Symbol(null,\x22when-not\x22,\x22when-not\x22,-1223136340,null),new cljs.core.Symbol(null,\x22def\x22,\x22def\x22,597100991,null),new cljs.core.Symbol(null,\x22when\x22,\x22when\x22,1064114221,null),new cljs.core.Symbol(null,\x22with-open\x22,\x22with-open\x22,172119667,null),new cljs.core.Symbol(null,\x22with-local-vars\x22,\x22with-local-vars\x22,837642072,null),new cljs.core.Symbol(null,\x22defonce\x22,\x22defonce\x22,-1681484013,null),new cljs.core.Symbol(null,\x22when-let\x22,\x22when-let\x22,-1383043480,null),new cljs.core.Symbol(null,\x22ns\x22,\x22ns\x22,2082130287,null),new cljs.core.Symbol(null,\x22dotimes\x22,\x22dotimes\x22,-818708397,null),new cljs.core.Symbol(null,\x22cond\x22,\x22cond\x22,1606708055,null),new cljs.core.Symbol(null,\x22let\x22,\x22let\x22,358118826,null),new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),new cljs.core.Symbol(null,\x22defn-\x22,\x22defn-\x22,1097765044,null),new cljs.core.Symbol(null,\x22locking\x22,\x22locking\x22,1542862874,null),new cljs.core.Symbol(null,\x22-\x3e\x22,\x22-\x3e\x22,-2139605430,null),new cljs.core.Symbol(null,\x22if-let\x22,\x22if-let\x22,1803593690,null),new cljs.core.Symbol(null,\x22binding\x22,\x22binding\x22,-2114503176,null),new cljs.core.Symbol(null,\x22struct-map\x22,\x22struct-map\x22,-1387540878,null)],[cljs.pprint.pprint_hold_first,cljs.pprint.pprint_anon_func,cljs.pprint.pprint_let,cljs.pprint.pprint_if,cljs.pprint.pprint_condp,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_defn,cljs.pprint.pprint_defn,cljs.pprint.pprint_let,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_let,cljs.pprint.pprint_if,cljs.pprint.pprint_if,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_if,cljs.pprint.pprint_let,cljs.pprint.pprint_let,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_let,cljs.pprint.pprint_ns,cljs.pprint.pprint_let,cljs.pprint.pprint_cond,cljs.pprint.pprint_let,cljs.pprint.pprint_defn,cljs.pprint.pprint_defn,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_let,cljs.pprint.pprint_let,cljs.pprint.pprint_hold_first])));\ncljs.pprint.pprint_code_list \x3d (function cljs$pprint$pprint_code_list(alis){\nif(cljs.core.not(cljs.pprint.pprint_reader_macro(alis))){\nvar temp__5802__auto__ \x3d cljs.pprint._STAR_code_table_STAR_.call(null, cljs.core.first(alis));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar special_form \x3d temp__5802__auto__;\nreturn (special_form.cljs$core$IFn$_invoke$arity$1 ? special_form.cljs$core$IFn$_invoke$arity$1(alis) : special_form.call(null, alis));\n} else {\nreturn cljs.pprint.pprint_simple_code_list(alis);\n}\n} else {\nreturn null;\n}\n});\ncljs.pprint.pprint_code_symbol \x3d (function cljs$pprint$pprint_code_symbol(sym){\nvar temp__5802__auto__ \x3d (sym.cljs$core$IFn$_invoke$arity$1 ? sym.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_symbol_map_STAR_) : sym.call(null, cljs.pprint._STAR_symbol_map_STAR_));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar arg_num \x3d temp__5802__auto__;\nreturn cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([arg_num], 0));\n} else {\nif(cljs.core.truth_(cljs.pprint._STAR_print_suppress_namespaces_STAR_)){\nreturn cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.name(sym)], 0));\n} else {\nreturn cljs.pprint.pr.call(null, sym);\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.pprint.code_dispatch !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * The pretty print dispatch function for pretty printing Clojure code.\n */\ncljs.pprint.code_dispatch \x3d (function (){var method_table__5599__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar prefer_table__5600__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar method_cache__5601__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar cached_hierarchy__5602__auto__ \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar hierarchy__5603__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22hierarchy\x22,\x22hierarchy\x22,-1053470341),(function (){var fexpr__27779 \x3d cljs.core.get_global_hierarchy;\nreturn (fexpr__27779.cljs$core$IFn$_invoke$arity$0 ? fexpr__27779.cljs$core$IFn$_invoke$arity$0() : fexpr__27779.call(null, ));\n})());\nreturn (new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(\x22cljs.pprint\x22,\x22code-dispatch\x22),cljs.pprint.type_dispatcher,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),hierarchy__5603__auto__,method_table__5599__auto__,prefer_table__5600__auto__,method_cache__5601__auto__,cached_hierarchy__5602__auto__));\n})();\n}\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),cljs.pprint.pprint_code_list);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696),cljs.pprint.pprint_code_symbol);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22vector\x22,\x22vector\x22,1902966158),cljs.pprint.pprint_vector);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),cljs.pprint.pprint_map);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),cljs.pprint.pprint_set);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879),cljs.pprint.pprint_pqueue);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22deref\x22,\x22deref\x22,-145586795),cljs.pprint.pprint_ideref);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,null,cljs.pprint.pr);\ncljs.pprint.use_method(cljs.pprint.code_dispatch,new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.pprint.pprint_simple_default);\ncljs.pprint.set_pprint_dispatch(cljs.pprint.simple_dispatch);\ncljs.pprint.add_padding \x3d (function cljs$pprint$add_padding(width,s){\nvar padding \x3d (function (){var x__5087__auto__ \x3d (0);\nvar y__5088__auto__ \x3d (width - cljs.core.count(s));\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})();\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.str,clojure.string.join.cljs$core$IFn$_invoke$arity$1(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(padding,\x22 \x22)),s);\n});\n/**\n * Prints a collection of maps in a textual table. Prints table headings\n * ks, and then a line of output for each row, corresponding to the keys\n * in ks. If ks are not specified, use the keys of the first item in rows.\n */\ncljs.pprint.print_table \x3d (function cljs$pprint$print_table(var_args){\nvar G__27788 \x3d arguments.length;\nswitch (G__27788) {\ncase 2:\nreturn cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 1:\nreturn cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2 \x3d (function (ks,rows){\nif(cljs.core.seq(rows)){\nvar widths \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (k){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max,((cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)).length),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__27783_SHARP_){\nreturn ((cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(p1__27783_SHARP_,k))).length);\n}),rows));\n}),ks);\nvar spacers \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__27784_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(p1__27784_SHARP_,\x22-\x22));\n}),widths);\nvar fmt_row \x3d (function (leader,divider,trailer,row){\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(leader),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(divider,(function (){var iter__5480__auto__ \x3d (function cljs$pprint$iter__27803(s__27804){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__27804__$1 \x3d s__27804;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__27804__$1);\nif(temp__5804__auto__){\nvar s__27804__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__27804__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__27804__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__27806 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__27805 \x3d (0);\nwhile(true){\nif((i__27805 \x3c size__5479__auto__)){\nvar vec__27807 \x3d cljs.core._nth(c__5478__auto__,i__27805);\nvar col \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27807,(0),null);\nvar width \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27807,(1),null);\ncljs.core.chunk_append(b__27806,cljs.pprint.add_padding(width,cljs.core.str.cljs$core$IFn$_invoke$arity$1(col)));\n\nvar G__29036 \x3d (i__27805 + (1));\ni__27805 \x3d G__29036;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__27806),cljs$pprint$iter__27803(cljs.core.chunk_rest(s__27804__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__27806),null);\n}\n} else {\nvar vec__27811 \x3d cljs.core.first(s__27804__$2);\nvar col \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27811,(0),null);\nvar width \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27811,(1),null);\nreturn cljs.core.cons(cljs.pprint.add_padding(width,cljs.core.str.cljs$core$IFn$_invoke$arity$1(col)),cljs$pprint$iter__27803(cljs.core.rest(s__27804__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__27785_SHARP_){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(row,p1__27785_SHARP_);\n}),ks),widths));\n})()))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(trailer)].join(\x27\x27);\n});\ncljs.core.println();\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([fmt_row(\x22| \x22,\x22 | \x22,\x22 |\x22,cljs.core.zipmap(ks,ks))], 0));\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([fmt_row(\x22|-\x22,\x22-+-\x22,\x22-|\x22,cljs.core.zipmap(ks,spacers))], 0));\n\nvar seq__27814 \x3d cljs.core.seq(rows);\nvar chunk__27815 \x3d null;\nvar count__27816 \x3d (0);\nvar i__27817 \x3d (0);\nwhile(true){\nif((i__27817 \x3c count__27816)){\nvar row \x3d chunk__27815.cljs$core$IIndexed$_nth$arity$2(null, i__27817);\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([fmt_row(\x22| \x22,\x22 | \x22,\x22 |\x22,row)], 0));\n\n\nvar G__29037 \x3d seq__27814;\nvar G__29038 \x3d chunk__27815;\nvar G__29039 \x3d count__27816;\nvar G__29040 \x3d (i__27817 + (1));\nseq__27814 \x3d G__29037;\nchunk__27815 \x3d G__29038;\ncount__27816 \x3d G__29039;\ni__27817 \x3d G__29040;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__27814);\nif(temp__5804__auto__){\nvar seq__27814__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__27814__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__27814__$1);\nvar G__29041 \x3d cljs.core.chunk_rest(seq__27814__$1);\nvar G__29042 \x3d c__5525__auto__;\nvar G__29043 \x3d cljs.core.count(c__5525__auto__);\nvar G__29044 \x3d (0);\nseq__27814 \x3d G__29041;\nchunk__27815 \x3d G__29042;\ncount__27816 \x3d G__29043;\ni__27817 \x3d G__29044;\ncontinue;\n} else {\nvar row \x3d cljs.core.first(seq__27814__$1);\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([fmt_row(\x22| \x22,\x22 | \x22,\x22 |\x22,row)], 0));\n\n\nvar G__29045 \x3d cljs.core.next(seq__27814__$1);\nvar G__29046 \x3d null;\nvar G__29047 \x3d (0);\nvar G__29048 \x3d (0);\nseq__27814 \x3d G__29045;\nchunk__27815 \x3d G__29046;\ncount__27816 \x3d G__29047;\ni__27817 \x3d G__29048;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n}));\n\n(cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$1 \x3d (function (rows){\nreturn cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(cljs.core.first(rows)),rows);\n}));\n\n(cljs.pprint.print_table.cljs$lang$maxFixedArity \x3d 2);\n\n");
SHADOW_ENV.evalLoad("clojure.walk.js", true, "goog.provide(\x27clojure.walk\x27);\n/**\n * Traverses form, an arbitrary data structure. inner and outer are\n * functions. Applies inner to each element of form, building up a\n * data structure of the same type, then applies outer to the result.\n * Recognizes all Clojure data structures. Consumes seqs as with doall.\n */\nclojure.walk.walk \x3d (function clojure$walk$walk(inner,outer,form){\nif(cljs.core.list_QMARK_(form)){\nvar G__22068 \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,cljs.core.map.cljs$core$IFn$_invoke$arity$2(inner,form));\nreturn (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__22068) : outer.call(null, G__22068));\n} else {\nif(cljs.core.map_entry_QMARK_(form)){\nvar G__22073 \x3d (new cljs.core.MapEntry((function (){var G__22074 \x3d cljs.core.key(form);\nreturn (inner.cljs$core$IFn$_invoke$arity$1 ? inner.cljs$core$IFn$_invoke$arity$1(G__22074) : inner.call(null, G__22074));\n})(),(function (){var G__22075 \x3d cljs.core.val(form);\nreturn (inner.cljs$core$IFn$_invoke$arity$1 ? inner.cljs$core$IFn$_invoke$arity$1(G__22075) : inner.call(null, G__22075));\n})(),null));\nreturn (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__22073) : outer.call(null, G__22073));\n} else {\nif(cljs.core.seq_QMARK_(form)){\nvar G__22081 \x3d cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(inner,form));\nreturn (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__22081) : outer.call(null, G__22081));\n} else {\nif(cljs.core.record_QMARK_(form)){\nvar G__22082 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,x){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(r,(inner.cljs$core$IFn$_invoke$arity$1 ? inner.cljs$core$IFn$_invoke$arity$1(x) : inner.call(null, x)));\n}),form,form);\nreturn (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__22082) : outer.call(null, G__22082));\n} else {\nif(cljs.core.coll_QMARK_(form)){\nvar G__22083 \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.empty(form),cljs.core.map.cljs$core$IFn$_invoke$arity$2(inner,form));\nreturn (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__22083) : outer.call(null, G__22083));\n} else {\nreturn (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(form) : outer.call(null, form));\n\n}\n}\n}\n}\n}\n});\n/**\n * Performs a depth-first, post-order traversal of form. Calls f on\n * each sub-form, uses f\x27s return value in place of the original.\n * Recognizes all Clojure data structures. Consumes seqs as with doall.\n */\nclojure.walk.postwalk \x3d (function clojure$walk$postwalk(f,form){\nreturn clojure.walk.walk(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.walk.postwalk,f),f,form);\n});\n/**\n * Like postwalk, but does pre-order traversal.\n */\nclojure.walk.prewalk \x3d (function clojure$walk$prewalk(f,form){\nreturn clojure.walk.walk(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.walk.prewalk,f),cljs.core.identity,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(form) : f.call(null, form)));\n});\n/**\n * Recursively transforms all map keys from strings to keywords.\n */\nclojure.walk.keywordize_keys \x3d (function clojure$walk$keywordize_keys(m){\nvar f \x3d (function (p__22109){\nvar vec__22110 \x3d p__22109;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22110,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22110,(1),null);\nif(typeof k \x3d\x3d\x3d \x27string\x27){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k),v], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null);\n}\n});\nreturn clojure.walk.postwalk((function (x){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(f,x));\n} else {\nreturn x;\n}\n}),m);\n});\n/**\n * Recursively transforms all map keys from keywords to strings.\n */\nclojure.walk.stringify_keys \x3d (function clojure$walk$stringify_keys(m){\nvar f \x3d (function (p__22119){\nvar vec__22120 \x3d p__22119;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22120,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__22120,(1),null);\nif((k instanceof cljs.core.Keyword)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.name(k),v], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null);\n}\n});\nreturn clojure.walk.postwalk((function (x){\nif(cljs.core.map_QMARK_(x)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(f,x));\n} else {\nreturn x;\n}\n}),m);\n});\n/**\n * Recursively transforms form by replacing keys in smap with their\n * values. Like clojure/replace but works on any data structure. Does\n * replacement at the root of the tree first.\n */\nclojure.walk.prewalk_replace \x3d (function clojure$walk$prewalk_replace(smap,form){\nreturn clojure.walk.prewalk((function (x){\nif(cljs.core.contains_QMARK_(smap,x)){\nreturn (smap.cljs$core$IFn$_invoke$arity$1 ? smap.cljs$core$IFn$_invoke$arity$1(x) : smap.call(null, x));\n} else {\nreturn x;\n}\n}),form);\n});\n/**\n * Recursively transforms form by replacing keys in smap with their\n * values. Like clojure/replace but works on any data structure. Does\n * replacement at the leaves of the tree first.\n */\nclojure.walk.postwalk_replace \x3d (function clojure$walk$postwalk_replace(smap,form){\nreturn clojure.walk.postwalk((function (x){\nif(cljs.core.contains_QMARK_(smap,x)){\nreturn (smap.cljs$core$IFn$_invoke$arity$1 ? smap.cljs$core$IFn$_invoke$arity$1(x) : smap.call(null, x));\n} else {\nreturn x;\n}\n}),form);\n});\n");
SHADOW_ENV.evalLoad("cljs.spec.gen.alpha.js", true, "goog.provide(\x27cljs.spec.gen.alpha\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IDeref}\n*/\ncljs.spec.gen.alpha.LazyVar \x3d (function (f,cached){\nthis.f \x3d f;\nthis.cached \x3d cached;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 32768;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.gen.alpha.LazyVar.prototype.cljs$core$IDeref$_deref$arity$1 \x3d (function (this$){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif((!((self__.cached \x3d\x3d null)))){\nreturn self__.cached;\n} else {\nvar x \x3d (self__.f.cljs$core$IFn$_invoke$arity$0 ? self__.f.cljs$core$IFn$_invoke$arity$0() : self__.f.call(null, ));\nif((x \x3d\x3d null)){\n} else {\n(self__.cached \x3d x);\n}\n\nreturn x;\n}\n}));\n\n(cljs.spec.gen.alpha.LazyVar.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22f\x22,\x22f\x22,43394975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\x22cached\x22,\x22cached\x22,-1216707864,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22mutable\x22,\x22mutable\x22,875778266),true], null))], null);\n}));\n\n(cljs.spec.gen.alpha.LazyVar.cljs$lang$type \x3d true);\n\n(cljs.spec.gen.alpha.LazyVar.cljs$lang$ctorStr \x3d \x22cljs.spec.gen.alpha/LazyVar\x22);\n\n(cljs.spec.gen.alpha.LazyVar.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.gen.alpha/LazyVar\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.gen.alpha/LazyVar.\n */\ncljs.spec.gen.alpha.__GT_LazyVar \x3d (function cljs$spec$gen$alpha$__GT_LazyVar(f,cached){\nreturn (new cljs.spec.gen.alpha.LazyVar(f,cached));\n});\n\ncljs.spec.gen.alpha.quick_check_ref \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.quick_check !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.quick_check;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check\x22,\x22quick-check\x22,\x22clojure.test.check/quick-check\x22,-810344251,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check\x22,\x22quick-check\x22,\x22clojure.test.check/quick-check\x22,-810344251,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\ncljs.spec.gen.alpha.quick_check \x3d (function cljs$spec$gen$alpha$quick_check(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22867 \x3d arguments.length;\nvar i__5727__auto___22868 \x3d (0);\nwhile(true){\nif((i__5727__auto___22868 \x3c len__5726__auto___22867)){\nargs__5732__auto__.push((arguments[i__5727__auto___22868]));\n\nvar G__22869 \x3d (i__5727__auto___22868 + (1));\ni__5727__auto___22868 \x3d G__22869;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.quick_check.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.quick_check.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.gen.alpha.quick_check_ref),args);\n}));\n\n(cljs.spec.gen.alpha.quick_check.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.quick_check.cljs$lang$applyTo \x3d (function (seq21904){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq21904));\n}));\n\ncljs.spec.gen.alpha.for_all_STAR__ref \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.properties !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.properties.for_all_STAR_ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.properties.for_all_STAR_;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.properties\x22,\x22for-all*\x22,\x22clojure.test.check.properties/for-all*\x22,67088845,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.properties\x22,\x22for-all*\x22,\x22clojure.test.check.properties/for-all*\x22,67088845,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Dynamically loaded clojure.test.check.properties/for-all*.\n */\ncljs.spec.gen.alpha.for_all_STAR_ \x3d (function cljs$spec$gen$alpha$for_all_STAR_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22874 \x3d arguments.length;\nvar i__5727__auto___22875 \x3d (0);\nwhile(true){\nif((i__5727__auto___22875 \x3c len__5726__auto___22874)){\nargs__5732__auto__.push((arguments[i__5727__auto___22875]));\n\nvar G__22876 \x3d (i__5727__auto___22875 + (1));\ni__5727__auto___22875 \x3d G__22876;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.gen.alpha.for_all_STAR__ref),args);\n}));\n\n(cljs.spec.gen.alpha.for_all_STAR_.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.for_all_STAR_.cljs$lang$applyTo \x3d (function (seq21918){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq21918));\n}));\n\nvar g_QMARK__22878 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.generator_QMARK_ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.generator_QMARK_;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22generator?\x22,\x22clojure.test.check.generators/generator?\x22,-1378210460,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22generator?\x22,\x22clojure.test.check.generators/generator?\x22,-1378210460,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\nvar g_22879 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.generate !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.generate;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22generate\x22,\x22clojure.test.check.generators/generate\x22,-690390711,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22generate\x22,\x22clojure.test.check.generators/generate\x22,-690390711,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\nvar mkg_22880 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.__GT_Generator !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.__GT_Generator;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22-\x3eGenerator\x22,\x22clojure.test.check.generators/-\x3eGenerator\x22,-1179475051,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22-\x3eGenerator\x22,\x22clojure.test.check.generators/-\x3eGenerator\x22,-1179475051,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\ncljs.spec.gen.alpha.generator_QMARK_ \x3d (function cljs$spec$gen$alpha$generator_QMARK_(x){\nvar fexpr__21954 \x3d cljs.core.deref(g_QMARK__22878);\nreturn (fexpr__21954.cljs$core$IFn$_invoke$arity$1 ? fexpr__21954.cljs$core$IFn$_invoke$arity$1(x) : fexpr__21954.call(null, x));\n});\n\ncljs.spec.gen.alpha.generator \x3d (function cljs$spec$gen$alpha$generator(gfn){\nvar fexpr__21963 \x3d cljs.core.deref(mkg_22880);\nreturn (fexpr__21963.cljs$core$IFn$_invoke$arity$1 ? fexpr__21963.cljs$core$IFn$_invoke$arity$1(gfn) : fexpr__21963.call(null, gfn));\n});\n\n/**\n * Generate a single value using generator.\n */\ncljs.spec.gen.alpha.generate \x3d (function cljs$spec$gen$alpha$generate(generator){\nvar fexpr__21972 \x3d cljs.core.deref(g_22879);\nreturn (fexpr__21972.cljs$core$IFn$_invoke$arity$1 ? fexpr__21972.cljs$core$IFn$_invoke$arity$1(generator) : fexpr__21972.call(null, generator));\n});\ncljs.spec.gen.alpha.delay_impl \x3d (function cljs$spec$gen$alpha$delay_impl(gfnd){\nreturn cljs.spec.gen.alpha.generator((function (rnd,size){\nvar fexpr__21984 \x3d new cljs.core.Keyword(null,\x22gen\x22,\x22gen\x22,142575302).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(gfnd));\nreturn (fexpr__21984.cljs$core$IFn$_invoke$arity$2 ? fexpr__21984.cljs$core$IFn$_invoke$arity$2(rnd,size) : fexpr__21984.call(null, rnd,size));\n}));\n});\nvar g__11604__auto___22900 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.hash_map !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.hash_map;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22hash-map\x22,\x22clojure.test.check.generators/hash-map\x22,1961346626,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22hash-map\x22,\x22clojure.test.check.generators/hash-map\x22,1961346626,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/hash-map\n */\ncljs.spec.gen.alpha.hash_map \x3d (function cljs$spec$gen$alpha$hash_map(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22908 \x3d arguments.length;\nvar i__5727__auto___22909 \x3d (0);\nwhile(true){\nif((i__5727__auto___22909 \x3c len__5726__auto___22908)){\nargs__5732__auto__.push((arguments[i__5727__auto___22909]));\n\nvar G__22912 \x3d (i__5727__auto___22909 + (1));\ni__5727__auto___22909 \x3d G__22912;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.hash_map.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.hash_map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22900),args);\n}));\n\n(cljs.spec.gen.alpha.hash_map.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.hash_map.cljs$lang$applyTo \x3d (function (seq21994){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq21994));\n}));\n\n\nvar g__11604__auto___22927 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.list !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.list;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22list\x22,\x22clojure.test.check.generators/list\x22,506971058,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22list\x22,\x22clojure.test.check.generators/list\x22,506971058,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/list\n */\ncljs.spec.gen.alpha.list \x3d (function cljs$spec$gen$alpha$list(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22930 \x3d arguments.length;\nvar i__5727__auto___22931 \x3d (0);\nwhile(true){\nif((i__5727__auto___22931 \x3c len__5726__auto___22930)){\nargs__5732__auto__.push((arguments[i__5727__auto___22931]));\n\nvar G__22932 \x3d (i__5727__auto___22931 + (1));\ni__5727__auto___22931 \x3d G__22932;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22927),args);\n}));\n\n(cljs.spec.gen.alpha.list.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.list.cljs$lang$applyTo \x3d (function (seq22015){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22015));\n}));\n\n\nvar g__11604__auto___22936 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.map !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.map;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22map\x22,\x22clojure.test.check.generators/map\x22,45738796,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22map\x22,\x22clojure.test.check.generators/map\x22,45738796,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/map\n */\ncljs.spec.gen.alpha.map \x3d (function cljs$spec$gen$alpha$map(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22938 \x3d arguments.length;\nvar i__5727__auto___22940 \x3d (0);\nwhile(true){\nif((i__5727__auto___22940 \x3c len__5726__auto___22938)){\nargs__5732__auto__.push((arguments[i__5727__auto___22940]));\n\nvar G__22941 \x3d (i__5727__auto___22940 + (1));\ni__5727__auto___22940 \x3d G__22941;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22936),args);\n}));\n\n(cljs.spec.gen.alpha.map.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.map.cljs$lang$applyTo \x3d (function (seq22038){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22038));\n}));\n\n\nvar g__11604__auto___22944 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.not_empty !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.not_empty;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22not-empty\x22,\x22clojure.test.check.generators/not-empty\x22,-876211682,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22not-empty\x22,\x22clojure.test.check.generators/not-empty\x22,-876211682,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/not-empty\n */\ncljs.spec.gen.alpha.not_empty \x3d (function cljs$spec$gen$alpha$not_empty(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22952 \x3d arguments.length;\nvar i__5727__auto___22953 \x3d (0);\nwhile(true){\nif((i__5727__auto___22953 \x3c len__5726__auto___22952)){\nargs__5732__auto__.push((arguments[i__5727__auto___22953]));\n\nvar G__22958 \x3d (i__5727__auto___22953 + (1));\ni__5727__auto___22953 \x3d G__22958;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.not_empty.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.not_empty.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22944),args);\n}));\n\n(cljs.spec.gen.alpha.not_empty.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.not_empty.cljs$lang$applyTo \x3d (function (seq22062){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22062));\n}));\n\n\nvar g__11604__auto___22962 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.set !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.set;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22set\x22,\x22clojure.test.check.generators/set\x22,-1027639543,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22set\x22,\x22clojure.test.check.generators/set\x22,-1027639543,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/set\n */\ncljs.spec.gen.alpha.set \x3d (function cljs$spec$gen$alpha$set(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22972 \x3d arguments.length;\nvar i__5727__auto___22973 \x3d (0);\nwhile(true){\nif((i__5727__auto___22973 \x3c len__5726__auto___22972)){\nargs__5732__auto__.push((arguments[i__5727__auto___22973]));\n\nvar G__22978 \x3d (i__5727__auto___22973 + (1));\ni__5727__auto___22973 \x3d G__22978;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22962),args);\n}));\n\n(cljs.spec.gen.alpha.set.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.set.cljs$lang$applyTo \x3d (function (seq22080){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22080));\n}));\n\n\nvar g__11604__auto___22985 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.vector !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.vector;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22vector\x22,\x22clojure.test.check.generators/vector\x22,1081775325,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22vector\x22,\x22clojure.test.check.generators/vector\x22,1081775325,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/vector\n */\ncljs.spec.gen.alpha.vector \x3d (function cljs$spec$gen$alpha$vector(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22986 \x3d arguments.length;\nvar i__5727__auto___22987 \x3d (0);\nwhile(true){\nif((i__5727__auto___22987 \x3c len__5726__auto___22986)){\nargs__5732__auto__.push((arguments[i__5727__auto___22987]));\n\nvar G__22988 \x3d (i__5727__auto___22987 + (1));\ni__5727__auto___22987 \x3d G__22988;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22985),args);\n}));\n\n(cljs.spec.gen.alpha.vector.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.vector.cljs$lang$applyTo \x3d (function (seq22085){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22085));\n}));\n\n\nvar g__11604__auto___22991 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.vector_distinct !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.vector_distinct;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22vector-distinct\x22,\x22clojure.test.check.generators/vector-distinct\x22,1656877834,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22vector-distinct\x22,\x22clojure.test.check.generators/vector-distinct\x22,1656877834,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/vector-distinct\n */\ncljs.spec.gen.alpha.vector_distinct \x3d (function cljs$spec$gen$alpha$vector_distinct(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___22994 \x3d arguments.length;\nvar i__5727__auto___22995 \x3d (0);\nwhile(true){\nif((i__5727__auto___22995 \x3c len__5726__auto___22994)){\nargs__5732__auto__.push((arguments[i__5727__auto___22995]));\n\nvar G__22996 \x3d (i__5727__auto___22995 + (1));\ni__5727__auto___22995 \x3d G__22996;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___22991),args);\n}));\n\n(cljs.spec.gen.alpha.vector_distinct.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.vector_distinct.cljs$lang$applyTo \x3d (function (seq22108){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22108));\n}));\n\n\nvar g__11604__auto___23001 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.fmap !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.fmap;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22fmap\x22,\x22clojure.test.check.generators/fmap\x22,1957997092,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22fmap\x22,\x22clojure.test.check.generators/fmap\x22,1957997092,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/fmap\n */\ncljs.spec.gen.alpha.fmap \x3d (function cljs$spec$gen$alpha$fmap(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23004 \x3d arguments.length;\nvar i__5727__auto___23007 \x3d (0);\nwhile(true){\nif((i__5727__auto___23007 \x3c len__5726__auto___23004)){\nargs__5732__auto__.push((arguments[i__5727__auto___23007]));\n\nvar G__23008 \x3d (i__5727__auto___23007 + (1));\ni__5727__auto___23007 \x3d G__23008;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23001),args);\n}));\n\n(cljs.spec.gen.alpha.fmap.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.fmap.cljs$lang$applyTo \x3d (function (seq22118){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22118));\n}));\n\n\nvar g__11604__auto___23015 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.elements !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.elements;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22elements\x22,\x22clojure.test.check.generators/elements\x22,438991326,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22elements\x22,\x22clojure.test.check.generators/elements\x22,438991326,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/elements\n */\ncljs.spec.gen.alpha.elements \x3d (function cljs$spec$gen$alpha$elements(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23017 \x3d arguments.length;\nvar i__5727__auto___23018 \x3d (0);\nwhile(true){\nif((i__5727__auto___23018 \x3c len__5726__auto___23017)){\nargs__5732__auto__.push((arguments[i__5727__auto___23018]));\n\nvar G__23019 \x3d (i__5727__auto___23018 + (1));\ni__5727__auto___23018 \x3d G__23019;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23015),args);\n}));\n\n(cljs.spec.gen.alpha.elements.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.elements.cljs$lang$applyTo \x3d (function (seq22124){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22124));\n}));\n\n\nvar g__11604__auto___23025 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.bind !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.bind;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22bind\x22,\x22clojure.test.check.generators/bind\x22,-361313906,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22bind\x22,\x22clojure.test.check.generators/bind\x22,-361313906,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/bind\n */\ncljs.spec.gen.alpha.bind \x3d (function cljs$spec$gen$alpha$bind(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23027 \x3d arguments.length;\nvar i__5727__auto___23028 \x3d (0);\nwhile(true){\nif((i__5727__auto___23028 \x3c len__5726__auto___23027)){\nargs__5732__auto__.push((arguments[i__5727__auto___23028]));\n\nvar G__23029 \x3d (i__5727__auto___23028 + (1));\ni__5727__auto___23028 \x3d G__23029;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23025),args);\n}));\n\n(cljs.spec.gen.alpha.bind.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.bind.cljs$lang$applyTo \x3d (function (seq22129){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22129));\n}));\n\n\nvar g__11604__auto___23035 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.choose !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.choose;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22choose\x22,\x22clojure.test.check.generators/choose\x22,909997832,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22choose\x22,\x22clojure.test.check.generators/choose\x22,909997832,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/choose\n */\ncljs.spec.gen.alpha.choose \x3d (function cljs$spec$gen$alpha$choose(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23038 \x3d arguments.length;\nvar i__5727__auto___23039 \x3d (0);\nwhile(true){\nif((i__5727__auto___23039 \x3c len__5726__auto___23038)){\nargs__5732__auto__.push((arguments[i__5727__auto___23039]));\n\nvar G__23040 \x3d (i__5727__auto___23039 + (1));\ni__5727__auto___23039 \x3d G__23040;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.choose.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.choose.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23035),args);\n}));\n\n(cljs.spec.gen.alpha.choose.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.choose.cljs$lang$applyTo \x3d (function (seq22142){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22142));\n}));\n\n\nvar g__11604__auto___23041 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.one_of !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.one_of;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22one-of\x22,\x22clojure.test.check.generators/one-of\x22,-183339191,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22one-of\x22,\x22clojure.test.check.generators/one-of\x22,-183339191,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/one-of\n */\ncljs.spec.gen.alpha.one_of \x3d (function cljs$spec$gen$alpha$one_of(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23042 \x3d arguments.length;\nvar i__5727__auto___23043 \x3d (0);\nwhile(true){\nif((i__5727__auto___23043 \x3c len__5726__auto___23042)){\nargs__5732__auto__.push((arguments[i__5727__auto___23043]));\n\nvar G__23044 \x3d (i__5727__auto___23043 + (1));\ni__5727__auto___23043 \x3d G__23044;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23041),args);\n}));\n\n(cljs.spec.gen.alpha.one_of.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.one_of.cljs$lang$applyTo \x3d (function (seq22162){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22162));\n}));\n\n\nvar g__11604__auto___23046 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.such_that !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.such_that;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22such-that\x22,\x22clojure.test.check.generators/such-that\x22,-1754178732,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22such-that\x22,\x22clojure.test.check.generators/such-that\x22,-1754178732,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/such-that\n */\ncljs.spec.gen.alpha.such_that \x3d (function cljs$spec$gen$alpha$such_that(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23050 \x3d arguments.length;\nvar i__5727__auto___23051 \x3d (0);\nwhile(true){\nif((i__5727__auto___23051 \x3c len__5726__auto___23050)){\nargs__5732__auto__.push((arguments[i__5727__auto___23051]));\n\nvar G__23052 \x3d (i__5727__auto___23051 + (1));\ni__5727__auto___23051 \x3d G__23052;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23046),args);\n}));\n\n(cljs.spec.gen.alpha.such_that.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.such_that.cljs$lang$applyTo \x3d (function (seq22182){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22182));\n}));\n\n\nvar g__11604__auto___23055 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.tuple !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.tuple;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22tuple\x22,\x22clojure.test.check.generators/tuple\x22,-143711557,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22tuple\x22,\x22clojure.test.check.generators/tuple\x22,-143711557,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/tuple\n */\ncljs.spec.gen.alpha.tuple \x3d (function cljs$spec$gen$alpha$tuple(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23056 \x3d arguments.length;\nvar i__5727__auto___23057 \x3d (0);\nwhile(true){\nif((i__5727__auto___23057 \x3c len__5726__auto___23056)){\nargs__5732__auto__.push((arguments[i__5727__auto___23057]));\n\nvar G__23058 \x3d (i__5727__auto___23057 + (1));\ni__5727__auto___23057 \x3d G__23058;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23055),args);\n}));\n\n(cljs.spec.gen.alpha.tuple.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.tuple.cljs$lang$applyTo \x3d (function (seq22207){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22207));\n}));\n\n\nvar g__11604__auto___23059 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.sample !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.sample;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22sample\x22,\x22clojure.test.check.generators/sample\x22,-382944992,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22sample\x22,\x22clojure.test.check.generators/sample\x22,-382944992,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/sample\n */\ncljs.spec.gen.alpha.sample \x3d (function cljs$spec$gen$alpha$sample(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23060 \x3d arguments.length;\nvar i__5727__auto___23061 \x3d (0);\nwhile(true){\nif((i__5727__auto___23061 \x3c len__5726__auto___23060)){\nargs__5732__auto__.push((arguments[i__5727__auto___23061]));\n\nvar G__23062 \x3d (i__5727__auto___23061 + (1));\ni__5727__auto___23061 \x3d G__23062;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.sample.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.sample.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23059),args);\n}));\n\n(cljs.spec.gen.alpha.sample.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.sample.cljs$lang$applyTo \x3d (function (seq22218){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22218));\n}));\n\n\nvar g__11604__auto___23063 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.return$ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.return$;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22return\x22,\x22clojure.test.check.generators/return\x22,1744522038,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22return\x22,\x22clojure.test.check.generators/return\x22,1744522038,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/return\n */\ncljs.spec.gen.alpha.return$ \x3d (function cljs$spec$gen$alpha$return(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23069 \x3d arguments.length;\nvar i__5727__auto___23070 \x3d (0);\nwhile(true){\nif((i__5727__auto___23070 \x3c len__5726__auto___23069)){\nargs__5732__auto__.push((arguments[i__5727__auto___23070]));\n\nvar G__23071 \x3d (i__5727__auto___23070 + (1));\ni__5727__auto___23070 \x3d G__23071;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23063),args);\n}));\n\n(cljs.spec.gen.alpha.return$.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.return$.cljs$lang$applyTo \x3d (function (seq22236){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22236));\n}));\n\n\nvar g__11604__auto___23076 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.large_integer_STAR_ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.large_integer_STAR_;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22large-integer*\x22,\x22clojure.test.check.generators/large-integer*\x22,-437830670,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22large-integer*\x22,\x22clojure.test.check.generators/large-integer*\x22,-437830670,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/large-integer*\n */\ncljs.spec.gen.alpha.large_integer_STAR_ \x3d (function cljs$spec$gen$alpha$large_integer_STAR_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23077 \x3d arguments.length;\nvar i__5727__auto___23078 \x3d (0);\nwhile(true){\nif((i__5727__auto___23078 \x3c len__5726__auto___23077)){\nargs__5732__auto__.push((arguments[i__5727__auto___23078]));\n\nvar G__23079 \x3d (i__5727__auto___23078 + (1));\ni__5727__auto___23078 \x3d G__23079;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23076),args);\n}));\n\n(cljs.spec.gen.alpha.large_integer_STAR_.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.large_integer_STAR_.cljs$lang$applyTo \x3d (function (seq22252){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22252));\n}));\n\n\nvar g__11604__auto___23080 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.double_STAR_ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.double_STAR_;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22double*\x22,\x22clojure.test.check.generators/double*\x22,841542265,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22double*\x22,\x22clojure.test.check.generators/double*\x22,841542265,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/double*\n */\ncljs.spec.gen.alpha.double_STAR_ \x3d (function cljs$spec$gen$alpha$double_STAR_(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23081 \x3d arguments.length;\nvar i__5727__auto___23082 \x3d (0);\nwhile(true){\nif((i__5727__auto___23082 \x3c len__5726__auto___23081)){\nargs__5732__auto__.push((arguments[i__5727__auto___23082]));\n\nvar G__23083 \x3d (i__5727__auto___23082 + (1));\ni__5727__auto___23082 \x3d G__23083;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.double_STAR_.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.double_STAR_.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23080),args);\n}));\n\n(cljs.spec.gen.alpha.double_STAR_.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.double_STAR_.cljs$lang$applyTo \x3d (function (seq22260){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22260));\n}));\n\n\nvar g__11604__auto___23085 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.frequency !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.frequency;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22frequency\x22,\x22clojure.test.check.generators/frequency\x22,2090703177,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22frequency\x22,\x22clojure.test.check.generators/frequency\x22,2090703177,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/frequency\n */\ncljs.spec.gen.alpha.frequency \x3d (function cljs$spec$gen$alpha$frequency(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23088 \x3d arguments.length;\nvar i__5727__auto___23089 \x3d (0);\nwhile(true){\nif((i__5727__auto___23089 \x3c len__5726__auto___23088)){\nargs__5732__auto__.push((arguments[i__5727__auto___23089]));\n\nvar G__23091 \x3d (i__5727__auto___23089 + (1));\ni__5727__auto___23089 \x3d G__23091;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.frequency.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.frequency.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23085),args);\n}));\n\n(cljs.spec.gen.alpha.frequency.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.frequency.cljs$lang$applyTo \x3d (function (seq22270){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22270));\n}));\n\n\nvar g__11604__auto___23096 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.shuffle !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.shuffle;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22shuffle\x22,\x22clojure.test.check.generators/shuffle\x22,1032401055,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22shuffle\x22,\x22clojure.test.check.generators/shuffle\x22,1032401055,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Lazy loaded version of clojure.test.check.generators/shuffle\n */\ncljs.spec.gen.alpha.shuffle \x3d (function cljs$spec$gen$alpha$shuffle(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23100 \x3d arguments.length;\nvar i__5727__auto___23101 \x3d (0);\nwhile(true){\nif((i__5727__auto___23101 \x3c len__5726__auto___23100)){\nargs__5732__auto__.push((arguments[i__5727__auto___23101]));\n\nvar G__23103 \x3d (i__5727__auto___23101 + (1));\ni__5727__auto___23101 \x3d G__23103;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.shuffle.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.shuffle.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11604__auto___23096),args);\n}));\n\n(cljs.spec.gen.alpha.shuffle.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.shuffle.cljs$lang$applyTo \x3d (function (seq22297){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22297));\n}));\n\nvar g__11609__auto___23108 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.any !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.any;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22any\x22,\x22clojure.test.check.generators/any\x22,1883743710,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22any\x22,\x22clojure.test.check.generators/any\x22,1883743710,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/any\n */\ncljs.spec.gen.alpha.any \x3d (function cljs$spec$gen$alpha$any(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23109 \x3d arguments.length;\nvar i__5727__auto___23110 \x3d (0);\nwhile(true){\nif((i__5727__auto___23110 \x3c len__5726__auto___23109)){\nargs__5732__auto__.push((arguments[i__5727__auto___23110]));\n\nvar G__23111 \x3d (i__5727__auto___23110 + (1));\ni__5727__auto___23110 \x3d G__23111;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.any.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.any.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23108);\n}));\n\n(cljs.spec.gen.alpha.any.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.any.cljs$lang$applyTo \x3d (function (seq22322){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22322));\n}));\n\n\nvar g__11609__auto___23113 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.any_printable !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.any_printable;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22any-printable\x22,\x22clojure.test.check.generators/any-printable\x22,-1570493991,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22any-printable\x22,\x22clojure.test.check.generators/any-printable\x22,-1570493991,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/any-printable\n */\ncljs.spec.gen.alpha.any_printable \x3d (function cljs$spec$gen$alpha$any_printable(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23115 \x3d arguments.length;\nvar i__5727__auto___23116 \x3d (0);\nwhile(true){\nif((i__5727__auto___23116 \x3c len__5726__auto___23115)){\nargs__5732__auto__.push((arguments[i__5727__auto___23116]));\n\nvar G__23117 \x3d (i__5727__auto___23116 + (1));\ni__5727__auto___23116 \x3d G__23117;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.any_printable.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.any_printable.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23113);\n}));\n\n(cljs.spec.gen.alpha.any_printable.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.any_printable.cljs$lang$applyTo \x3d (function (seq22336){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22336));\n}));\n\n\nvar g__11609__auto___23118 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.boolean$ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.boolean$;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22boolean\x22,\x22clojure.test.check.generators/boolean\x22,1586992347,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22boolean\x22,\x22clojure.test.check.generators/boolean\x22,1586992347,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/boolean\n */\ncljs.spec.gen.alpha.boolean$ \x3d (function cljs$spec$gen$alpha$boolean(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23121 \x3d arguments.length;\nvar i__5727__auto___23122 \x3d (0);\nwhile(true){\nif((i__5727__auto___23122 \x3c len__5726__auto___23121)){\nargs__5732__auto__.push((arguments[i__5727__auto___23122]));\n\nvar G__23125 \x3d (i__5727__auto___23122 + (1));\ni__5727__auto___23122 \x3d G__23125;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.boolean$.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.boolean$.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23118);\n}));\n\n(cljs.spec.gen.alpha.boolean$.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.boolean$.cljs$lang$applyTo \x3d (function (seq22354){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22354));\n}));\n\n\nvar g__11609__auto___23126 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.char$ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.char$;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char\x22,\x22clojure.test.check.generators/char\x22,-1426343459,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char\x22,\x22clojure.test.check.generators/char\x22,-1426343459,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/char\n */\ncljs.spec.gen.alpha.char$ \x3d (function cljs$spec$gen$alpha$char(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23128 \x3d arguments.length;\nvar i__5727__auto___23129 \x3d (0);\nwhile(true){\nif((i__5727__auto___23129 \x3c len__5726__auto___23128)){\nargs__5732__auto__.push((arguments[i__5727__auto___23129]));\n\nvar G__23130 \x3d (i__5727__auto___23129 + (1));\ni__5727__auto___23129 \x3d G__23130;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.char$.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.char$.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23126);\n}));\n\n(cljs.spec.gen.alpha.char$.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.char$.cljs$lang$applyTo \x3d (function (seq22379){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22379));\n}));\n\n\nvar g__11609__auto___23131 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.char_alpha !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.char_alpha;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char-alpha\x22,\x22clojure.test.check.generators/char-alpha\x22,615785796,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char-alpha\x22,\x22clojure.test.check.generators/char-alpha\x22,615785796,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/char-alpha\n */\ncljs.spec.gen.alpha.char_alpha \x3d (function cljs$spec$gen$alpha$char_alpha(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23132 \x3d arguments.length;\nvar i__5727__auto___23134 \x3d (0);\nwhile(true){\nif((i__5727__auto___23134 \x3c len__5726__auto___23132)){\nargs__5732__auto__.push((arguments[i__5727__auto___23134]));\n\nvar G__23135 \x3d (i__5727__auto___23134 + (1));\ni__5727__auto___23134 \x3d G__23135;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.char_alpha.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.char_alpha.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23131);\n}));\n\n(cljs.spec.gen.alpha.char_alpha.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.char_alpha.cljs$lang$applyTo \x3d (function (seq22423){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22423));\n}));\n\n\nvar g__11609__auto___23138 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.char_alphanumeric !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.char_alphanumeric;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char-alphanumeric\x22,\x22clojure.test.check.generators/char-alphanumeric\x22,1383091431,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char-alphanumeric\x22,\x22clojure.test.check.generators/char-alphanumeric\x22,1383091431,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/char-alphanumeric\n */\ncljs.spec.gen.alpha.char_alphanumeric \x3d (function cljs$spec$gen$alpha$char_alphanumeric(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23139 \x3d arguments.length;\nvar i__5727__auto___23140 \x3d (0);\nwhile(true){\nif((i__5727__auto___23140 \x3c len__5726__auto___23139)){\nargs__5732__auto__.push((arguments[i__5727__auto___23140]));\n\nvar G__23142 \x3d (i__5727__auto___23140 + (1));\ni__5727__auto___23140 \x3d G__23142;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.char_alphanumeric.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.char_alphanumeric.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23138);\n}));\n\n(cljs.spec.gen.alpha.char_alphanumeric.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.char_alphanumeric.cljs$lang$applyTo \x3d (function (seq22449){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22449));\n}));\n\n\nvar g__11609__auto___23143 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.char_ascii !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.char_ascii;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char-ascii\x22,\x22clojure.test.check.generators/char-ascii\x22,-899908538,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22char-ascii\x22,\x22clojure.test.check.generators/char-ascii\x22,-899908538,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/char-ascii\n */\ncljs.spec.gen.alpha.char_ascii \x3d (function cljs$spec$gen$alpha$char_ascii(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23148 \x3d arguments.length;\nvar i__5727__auto___23149 \x3d (0);\nwhile(true){\nif((i__5727__auto___23149 \x3c len__5726__auto___23148)){\nargs__5732__auto__.push((arguments[i__5727__auto___23149]));\n\nvar G__23151 \x3d (i__5727__auto___23149 + (1));\ni__5727__auto___23149 \x3d G__23151;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.char_ascii.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.char_ascii.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23143);\n}));\n\n(cljs.spec.gen.alpha.char_ascii.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.char_ascii.cljs$lang$applyTo \x3d (function (seq22477){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22477));\n}));\n\n\nvar g__11609__auto___23152 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.double$ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.double$;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22double\x22,\x22clojure.test.check.generators/double\x22,668331090,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22double\x22,\x22clojure.test.check.generators/double\x22,668331090,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/double\n */\ncljs.spec.gen.alpha.double$ \x3d (function cljs$spec$gen$alpha$double(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23156 \x3d arguments.length;\nvar i__5727__auto___23157 \x3d (0);\nwhile(true){\nif((i__5727__auto___23157 \x3c len__5726__auto___23156)){\nargs__5732__auto__.push((arguments[i__5727__auto___23157]));\n\nvar G__23158 \x3d (i__5727__auto___23157 + (1));\ni__5727__auto___23157 \x3d G__23158;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.double$.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.double$.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23152);\n}));\n\n(cljs.spec.gen.alpha.double$.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.double$.cljs$lang$applyTo \x3d (function (seq22505){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22505));\n}));\n\n\nvar g__11609__auto___23163 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.int$ !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.int$;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22int\x22,\x22clojure.test.check.generators/int\x22,1756228469,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22int\x22,\x22clojure.test.check.generators/int\x22,1756228469,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/int\n */\ncljs.spec.gen.alpha.int$ \x3d (function cljs$spec$gen$alpha$int(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23165 \x3d arguments.length;\nvar i__5727__auto___23166 \x3d (0);\nwhile(true){\nif((i__5727__auto___23166 \x3c len__5726__auto___23165)){\nargs__5732__auto__.push((arguments[i__5727__auto___23166]));\n\nvar G__23167 \x3d (i__5727__auto___23166 + (1));\ni__5727__auto___23166 \x3d G__23167;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.int$.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.int$.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23163);\n}));\n\n(cljs.spec.gen.alpha.int$.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.int$.cljs$lang$applyTo \x3d (function (seq22515){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22515));\n}));\n\n\nvar g__11609__auto___23169 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.keyword !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.keyword;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22keyword\x22,\x22clojure.test.check.generators/keyword\x22,24530530,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22keyword\x22,\x22clojure.test.check.generators/keyword\x22,24530530,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/keyword\n */\ncljs.spec.gen.alpha.keyword \x3d (function cljs$spec$gen$alpha$keyword(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23170 \x3d arguments.length;\nvar i__5727__auto___23171 \x3d (0);\nwhile(true){\nif((i__5727__auto___23171 \x3c len__5726__auto___23170)){\nargs__5732__auto__.push((arguments[i__5727__auto___23171]));\n\nvar G__23172 \x3d (i__5727__auto___23171 + (1));\ni__5727__auto___23171 \x3d G__23172;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.keyword.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.keyword.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23169);\n}));\n\n(cljs.spec.gen.alpha.keyword.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.keyword.cljs$lang$applyTo \x3d (function (seq22530){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22530));\n}));\n\n\nvar g__11609__auto___23174 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.keyword_ns !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.keyword_ns;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22keyword-ns\x22,\x22clojure.test.check.generators/keyword-ns\x22,-1492628482,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22keyword-ns\x22,\x22clojure.test.check.generators/keyword-ns\x22,-1492628482,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/keyword-ns\n */\ncljs.spec.gen.alpha.keyword_ns \x3d (function cljs$spec$gen$alpha$keyword_ns(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23177 \x3d arguments.length;\nvar i__5727__auto___23178 \x3d (0);\nwhile(true){\nif((i__5727__auto___23178 \x3c len__5726__auto___23177)){\nargs__5732__auto__.push((arguments[i__5727__auto___23178]));\n\nvar G__23180 \x3d (i__5727__auto___23178 + (1));\ni__5727__auto___23178 \x3d G__23180;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.keyword_ns.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.keyword_ns.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23174);\n}));\n\n(cljs.spec.gen.alpha.keyword_ns.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.keyword_ns.cljs$lang$applyTo \x3d (function (seq22546){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22546));\n}));\n\n\nvar g__11609__auto___23185 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.large_integer !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.large_integer;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22large-integer\x22,\x22clojure.test.check.generators/large-integer\x22,-865967138,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22large-integer\x22,\x22clojure.test.check.generators/large-integer\x22,-865967138,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/large-integer\n */\ncljs.spec.gen.alpha.large_integer \x3d (function cljs$spec$gen$alpha$large_integer(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23186 \x3d arguments.length;\nvar i__5727__auto___23188 \x3d (0);\nwhile(true){\nif((i__5727__auto___23188 \x3c len__5726__auto___23186)){\nargs__5732__auto__.push((arguments[i__5727__auto___23188]));\n\nvar G__23189 \x3d (i__5727__auto___23188 + (1));\ni__5727__auto___23188 \x3d G__23189;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.large_integer.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.large_integer.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23185);\n}));\n\n(cljs.spec.gen.alpha.large_integer.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.large_integer.cljs$lang$applyTo \x3d (function (seq22551){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22551));\n}));\n\n\nvar g__11609__auto___23196 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.ratio !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.ratio;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22ratio\x22,\x22clojure.test.check.generators/ratio\x22,1540966915,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22ratio\x22,\x22clojure.test.check.generators/ratio\x22,1540966915,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/ratio\n */\ncljs.spec.gen.alpha.ratio \x3d (function cljs$spec$gen$alpha$ratio(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23202 \x3d arguments.length;\nvar i__5727__auto___23203 \x3d (0);\nwhile(true){\nif((i__5727__auto___23203 \x3c len__5726__auto___23202)){\nargs__5732__auto__.push((arguments[i__5727__auto___23203]));\n\nvar G__23204 \x3d (i__5727__auto___23203 + (1));\ni__5727__auto___23203 \x3d G__23204;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.ratio.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.ratio.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23196);\n}));\n\n(cljs.spec.gen.alpha.ratio.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.ratio.cljs$lang$applyTo \x3d (function (seq22574){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22574));\n}));\n\n\nvar g__11609__auto___23205 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.simple_type !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.simple_type;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22simple-type\x22,\x22clojure.test.check.generators/simple-type\x22,892572284,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22simple-type\x22,\x22clojure.test.check.generators/simple-type\x22,892572284,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/simple-type\n */\ncljs.spec.gen.alpha.simple_type \x3d (function cljs$spec$gen$alpha$simple_type(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23206 \x3d arguments.length;\nvar i__5727__auto___23207 \x3d (0);\nwhile(true){\nif((i__5727__auto___23207 \x3c len__5726__auto___23206)){\nargs__5732__auto__.push((arguments[i__5727__auto___23207]));\n\nvar G__23208 \x3d (i__5727__auto___23207 + (1));\ni__5727__auto___23207 \x3d G__23208;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.simple_type.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.simple_type.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23205);\n}));\n\n(cljs.spec.gen.alpha.simple_type.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.simple_type.cljs$lang$applyTo \x3d (function (seq22580){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22580));\n}));\n\n\nvar g__11609__auto___23209 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.simple_type_printable !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.simple_type_printable;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22simple-type-printable\x22,\x22clojure.test.check.generators/simple-type-printable\x22,-58489962,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22simple-type-printable\x22,\x22clojure.test.check.generators/simple-type-printable\x22,-58489962,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/simple-type-printable\n */\ncljs.spec.gen.alpha.simple_type_printable \x3d (function cljs$spec$gen$alpha$simple_type_printable(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23210 \x3d arguments.length;\nvar i__5727__auto___23211 \x3d (0);\nwhile(true){\nif((i__5727__auto___23211 \x3c len__5726__auto___23210)){\nargs__5732__auto__.push((arguments[i__5727__auto___23211]));\n\nvar G__23212 \x3d (i__5727__auto___23211 + (1));\ni__5727__auto___23211 \x3d G__23212;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.simple_type_printable.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.simple_type_printable.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23209);\n}));\n\n(cljs.spec.gen.alpha.simple_type_printable.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.simple_type_printable.cljs$lang$applyTo \x3d (function (seq22588){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22588));\n}));\n\n\nvar g__11609__auto___23213 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.string !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.string;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22string\x22,\x22clojure.test.check.generators/string\x22,-1704750979,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22string\x22,\x22clojure.test.check.generators/string\x22,-1704750979,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/string\n */\ncljs.spec.gen.alpha.string \x3d (function cljs$spec$gen$alpha$string(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23215 \x3d arguments.length;\nvar i__5727__auto___23216 \x3d (0);\nwhile(true){\nif((i__5727__auto___23216 \x3c len__5726__auto___23215)){\nargs__5732__auto__.push((arguments[i__5727__auto___23216]));\n\nvar G__23218 \x3d (i__5727__auto___23216 + (1));\ni__5727__auto___23216 \x3d G__23218;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.string.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.string.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23213);\n}));\n\n(cljs.spec.gen.alpha.string.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.string.cljs$lang$applyTo \x3d (function (seq22623){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22623));\n}));\n\n\nvar g__11609__auto___23220 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.string_ascii !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.string_ascii;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22string-ascii\x22,\x22clojure.test.check.generators/string-ascii\x22,-2009877640,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22string-ascii\x22,\x22clojure.test.check.generators/string-ascii\x22,-2009877640,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/string-ascii\n */\ncljs.spec.gen.alpha.string_ascii \x3d (function cljs$spec$gen$alpha$string_ascii(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23226 \x3d arguments.length;\nvar i__5727__auto___23227 \x3d (0);\nwhile(true){\nif((i__5727__auto___23227 \x3c len__5726__auto___23226)){\nargs__5732__auto__.push((arguments[i__5727__auto___23227]));\n\nvar G__23228 \x3d (i__5727__auto___23227 + (1));\ni__5727__auto___23227 \x3d G__23228;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.string_ascii.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.string_ascii.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23220);\n}));\n\n(cljs.spec.gen.alpha.string_ascii.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.string_ascii.cljs$lang$applyTo \x3d (function (seq22650){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22650));\n}));\n\n\nvar g__11609__auto___23230 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.string_alphanumeric !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.string_alphanumeric;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22string-alphanumeric\x22,\x22clojure.test.check.generators/string-alphanumeric\x22,836374939,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22string-alphanumeric\x22,\x22clojure.test.check.generators/string-alphanumeric\x22,836374939,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/string-alphanumeric\n */\ncljs.spec.gen.alpha.string_alphanumeric \x3d (function cljs$spec$gen$alpha$string_alphanumeric(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23232 \x3d arguments.length;\nvar i__5727__auto___23234 \x3d (0);\nwhile(true){\nif((i__5727__auto___23234 \x3c len__5726__auto___23232)){\nargs__5732__auto__.push((arguments[i__5727__auto___23234]));\n\nvar G__23235 \x3d (i__5727__auto___23234 + (1));\ni__5727__auto___23234 \x3d G__23235;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.string_alphanumeric.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.string_alphanumeric.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23230);\n}));\n\n(cljs.spec.gen.alpha.string_alphanumeric.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.string_alphanumeric.cljs$lang$applyTo \x3d (function (seq22656){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22656));\n}));\n\n\nvar g__11609__auto___23237 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.symbol !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.symbol;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22symbol\x22,\x22clojure.test.check.generators/symbol\x22,-1305461065,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22symbol\x22,\x22clojure.test.check.generators/symbol\x22,-1305461065,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/symbol\n */\ncljs.spec.gen.alpha.symbol \x3d (function cljs$spec$gen$alpha$symbol(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23242 \x3d arguments.length;\nvar i__5727__auto___23243 \x3d (0);\nwhile(true){\nif((i__5727__auto___23243 \x3c len__5726__auto___23242)){\nargs__5732__auto__.push((arguments[i__5727__auto___23243]));\n\nvar G__23244 \x3d (i__5727__auto___23243 + (1));\ni__5727__auto___23243 \x3d G__23244;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.symbol.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.symbol.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23237);\n}));\n\n(cljs.spec.gen.alpha.symbol.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.symbol.cljs$lang$applyTo \x3d (function (seq22685){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22685));\n}));\n\n\nvar g__11609__auto___23250 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.symbol_ns !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.symbol_ns;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22symbol-ns\x22,\x22clojure.test.check.generators/symbol-ns\x22,-862629490,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22symbol-ns\x22,\x22clojure.test.check.generators/symbol-ns\x22,-862629490,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/symbol-ns\n */\ncljs.spec.gen.alpha.symbol_ns \x3d (function cljs$spec$gen$alpha$symbol_ns(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23257 \x3d arguments.length;\nvar i__5727__auto___23258 \x3d (0);\nwhile(true){\nif((i__5727__auto___23258 \x3c len__5726__auto___23257)){\nargs__5732__auto__.push((arguments[i__5727__auto___23258]));\n\nvar G__23259 \x3d (i__5727__auto___23258 + (1));\ni__5727__auto___23258 \x3d G__23259;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.symbol_ns.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.symbol_ns.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23250);\n}));\n\n(cljs.spec.gen.alpha.symbol_ns.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.symbol_ns.cljs$lang$applyTo \x3d (function (seq22724){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22724));\n}));\n\n\nvar g__11609__auto___23263 \x3d (new cljs.spec.gen.alpha.LazyVar((function (){\nif((typeof clojure !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof clojure.test.check.generators.uuid !\x3d\x3d \x27undefined\x27)){\nreturn clojure.test.check.generators.uuid;\n} else {\nthrow (new Error([\x22Var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22uuid\x22,\x22clojure.test.check.generators/uuid\x22,1589373144,null)),\x22 does not exist, \x22,cljs.core.namespace(new cljs.core.Symbol(\x22clojure.test.check.generators\x22,\x22uuid\x22,\x22clojure.test.check.generators/uuid\x22,1589373144,null)),\x22 never required\x22].join(\x27\x27)));\n}\n}),null));\n/**\n * Fn returning clojure.test.check.generators/uuid\n */\ncljs.spec.gen.alpha.uuid \x3d (function cljs$spec$gen$alpha$uuid(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23266 \x3d arguments.length;\nvar i__5727__auto___23269 \x3d (0);\nwhile(true){\nif((i__5727__auto___23269 \x3c len__5726__auto___23266)){\nargs__5732__auto__.push((arguments[i__5727__auto___23269]));\n\nvar G__23272 \x3d (i__5727__auto___23269 + (1));\ni__5727__auto___23269 \x3d G__23272;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.uuid.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.uuid.cljs$core$IFn$_invoke$arity$variadic \x3d (function (args){\nreturn cljs.core.deref(g__11609__auto___23263);\n}));\n\n(cljs.spec.gen.alpha.uuid.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.uuid.cljs$lang$applyTo \x3d (function (seq22752){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22752));\n}));\n\n/**\n * Returns a generator of a sequence catenated from results of\n * gens, each of which should generate something sequential.\n */\ncljs.spec.gen.alpha.cat \x3d (function cljs$spec$gen$alpha$cat(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___23279 \x3d arguments.length;\nvar i__5727__auto___23281 \x3d (0);\nwhile(true){\nif((i__5727__auto___23281 \x3c len__5726__auto___23279)){\nargs__5732__auto__.push((arguments[i__5727__auto___23281]));\n\nvar G__23282 \x3d (i__5727__auto___23281 + (1));\ni__5727__auto___23281 \x3d G__23282;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.gen.alpha.cat.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.gen.alpha.cat.cljs$core$IFn$_invoke$arity$variadic \x3d (function (gens){\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__22758_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,p1__22758_SHARP_);\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,gens)], 0));\n}));\n\n(cljs.spec.gen.alpha.cat.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.gen.alpha.cat.cljs$lang$applyTo \x3d (function (seq22759){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq22759));\n}));\n\ncljs.spec.gen.alpha.qualified_QMARK_ \x3d (function cljs$spec$gen$alpha$qualified_QMARK_(ident){\nreturn (!((cljs.core.namespace(ident) \x3d\x3d null)));\n});\ncljs.spec.gen.alpha.gen_builtins \x3d (new cljs.core.Delay((function (){\nvar simple \x3d cljs.spec.gen.alpha.simple_type_printable();\nreturn cljs.core.PersistentHashMap.fromArrays([cljs.core.qualified_keyword_QMARK_,cljs.core.seq_QMARK_,cljs.core.vector_QMARK_,cljs.core.any_QMARK_,cljs.core.boolean_QMARK_,cljs.core.char_QMARK_,cljs.core.some_QMARK_,cljs.core.inst_QMARK_,cljs.core.simple_symbol_QMARK_,cljs.core.sequential_QMARK_,cljs.core.float_QMARK_,cljs.core.set_QMARK_,cljs.core.map_QMARK_,cljs.core.empty_QMARK_,cljs.core.string_QMARK_,cljs.core.uri_QMARK_,cljs.core.double_QMARK_,cljs.core.int_QMARK_,cljs.core.associative_QMARK_,cljs.core.keyword_QMARK_,cljs.core.indexed_QMARK_,cljs.core.zero_QMARK_,cljs.core.simple_keyword_QMARK_,cljs.core.neg_int_QMARK_,cljs.core.nil_QMARK_,cljs.core.ident_QMARK_,cljs.core.qualified_ident_QMARK_,cljs.core.true_QMARK_,cljs.core.integer_QMARK_,cljs.core.nat_int_QMARK_,cljs.core.pos_int_QMARK_,cljs.core.uuid_QMARK_,cljs.core.false_QMARK_,cljs.core.list_QMARK_,cljs.core.simple_ident_QMARK_,cljs.core.number_QMARK_,cljs.core.qualified_symbol_QMARK_,cljs.core.seqable_QMARK_,cljs.core.symbol_QMARK_,cljs.core.coll_QMARK_],[cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.qualified_QMARK_,cljs.spec.gen.alpha.keyword_ns()], 0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null], 0)),cljs.spec.gen.alpha.any_printable()], null)], 0)),cljs.spec.gen.alpha.boolean$(),cljs.spec.gen.alpha.char$(),cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.some_QMARK_,cljs.spec.gen.alpha.any_printable()], 0)),cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__22783_SHARP_){\nreturn (new Date(p1__22783_SHARP_));\n}),cljs.spec.gen.alpha.large_integer()], 0)),cljs.spec.gen.alpha.symbol(),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0))], null)], 0)),cljs.spec.gen.alpha.double$(),cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple,simple], 0)),cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.core.List.EMPTY,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentHashSet.EMPTY], null)], 0)),cljs.spec.gen.alpha.string_alphanumeric(),cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__22782_SHARP_){\nreturn (new goog.Uri([\x22http://\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__22782_SHARP_),\x22.com\x22].join(\x27\x27)));\n}),cljs.spec.gen.alpha.uuid()], 0)),cljs.spec.gen.alpha.double$(),cljs.spec.gen.alpha.large_integer(),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple,simple], 0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0))], null)], 0)),cljs.spec.gen.alpha.keyword_ns(),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(0)], 0)),cljs.spec.gen.alpha.keyword(),cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22max\x22,\x22max\x22,61366548),(-1)], null)], 0)),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null], 0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.keyword_ns(),cljs.spec.gen.alpha.symbol_ns()], null)], 0)),cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.qualified_QMARK_,cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.keyword_ns(),cljs.spec.gen.alpha.symbol_ns()], null)], 0))], 0)),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([true], 0)),cljs.spec.gen.alpha.large_integer(),cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(0)], null)], 0)),cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22min\x22,\x22min\x22,444991522),(1)], null)], 0)),cljs.spec.gen.alpha.uuid(),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([false], 0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.keyword(),cljs.spec.gen.alpha.symbol()], null)], 0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.large_integer(),cljs.spec.gen.alpha.double$()], null)], 0)),cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.qualified_QMARK_,cljs.spec.gen.alpha.symbol_ns()], 0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null], 0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple,simple], 0)),cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.string_alphanumeric()], null)], 0)),cljs.spec.gen.alpha.symbol_ns(),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple,simple], 0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0)),cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([simple], 0))], null)], 0))]);\n}),null));\n/**\n * Given a predicate, returns a built-in generator if one exists.\n */\ncljs.spec.gen.alpha.gen_for_pred \x3d (function cljs$spec$gen$alpha$gen_for_pred(pred){\nif(cljs.core.set_QMARK_(pred)){\nreturn cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pred], 0));\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.gen.alpha.gen_builtins),pred);\n}\n});\n");
SHADOW_ENV.evalLoad("cljs.spec.alpha.js", true, "goog.provide(\x27cljs.spec.alpha\x27);\ngoog.scope(function(){\n cljs.spec.alpha.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\ncljs.spec.alpha.MAX_INT \x3d (9007199254740991);\n/**\n * A soft limit on how many times a branching spec (or/alt/* /opt-keys/multi-spec)\n * can be recursed through during generation. After this a\n * non-recursive branch will be chosen.\n */\ncljs.spec.alpha._STAR_recursion_limit_STAR_ \x3d (4);\n/**\n * The number of times an anonymous fn specified by fspec will be (generatively) tested during conform\n */\ncljs.spec.alpha._STAR_fspec_iterations_STAR_ \x3d (21);\n/**\n * The number of items validated in a collection spec\x27ed with \x27every\x27\n */\ncljs.spec.alpha._STAR_coll_check_limit_STAR_ \x3d (101);\n/**\n * The number of errors reported by explain in a collection spec\x27ed with \x27every\x27\n */\ncljs.spec.alpha._STAR_coll_error_limit_STAR_ \x3d (20);\n\n/**\n * @interface\n */\ncljs.spec.alpha.Spec \x3d function(){};\n\nvar cljs$spec$alpha$Spec$conform_STAR_$dyn_26127 \x3d (function (spec,x){\nvar x__5350__auto__ \x3d (((spec \x3d\x3d null))?null:spec);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.conform_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(spec,x) : m__5351__auto__.call(null, spec,x));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.conform_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(spec,x) : m__5349__auto__.call(null, spec,x));\n} else {\nthrow cljs.core.missing_protocol(\x22Spec.conform*\x22,spec);\n}\n}\n});\ncljs.spec.alpha.conform_STAR_ \x3d (function cljs$spec$alpha$conform_STAR_(spec,x){\nif((((!((spec \x3d\x3d null)))) \x26\x26 ((!((spec.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d\x3d null)))))){\nreturn spec.cljs$spec$alpha$Spec$conform_STAR_$arity$2(spec,x);\n} else {\nreturn cljs$spec$alpha$Spec$conform_STAR_$dyn_26127(spec,x);\n}\n});\n\nvar cljs$spec$alpha$Spec$unform_STAR_$dyn_26129 \x3d (function (spec,y){\nvar x__5350__auto__ \x3d (((spec \x3d\x3d null))?null:spec);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.unform_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(spec,y) : m__5351__auto__.call(null, spec,y));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.unform_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(spec,y) : m__5349__auto__.call(null, spec,y));\n} else {\nthrow cljs.core.missing_protocol(\x22Spec.unform*\x22,spec);\n}\n}\n});\ncljs.spec.alpha.unform_STAR_ \x3d (function cljs$spec$alpha$unform_STAR_(spec,y){\nif((((!((spec \x3d\x3d null)))) \x26\x26 ((!((spec.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d\x3d null)))))){\nreturn spec.cljs$spec$alpha$Spec$unform_STAR_$arity$2(spec,y);\n} else {\nreturn cljs$spec$alpha$Spec$unform_STAR_$dyn_26129(spec,y);\n}\n});\n\nvar cljs$spec$alpha$Spec$explain_STAR_$dyn_26131 \x3d (function (spec,path,via,in$,x){\nvar x__5350__auto__ \x3d (((spec \x3d\x3d null))?null:spec);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.explain_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$5(spec,path,via,in$,x) : m__5351__auto__.call(null, spec,path,via,in$,x));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.explain_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$5 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$5(spec,path,via,in$,x) : m__5349__auto__.call(null, spec,path,via,in$,x));\n} else {\nthrow cljs.core.missing_protocol(\x22Spec.explain*\x22,spec);\n}\n}\n});\ncljs.spec.alpha.explain_STAR_ \x3d (function cljs$spec$alpha$explain_STAR_(spec,path,via,in$,x){\nif((((!((spec \x3d\x3d null)))) \x26\x26 ((!((spec.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d\x3d null)))))){\nreturn spec.cljs$spec$alpha$Spec$explain_STAR_$arity$5(spec,path,via,in$,x);\n} else {\nreturn cljs$spec$alpha$Spec$explain_STAR_$dyn_26131(spec,path,via,in$,x);\n}\n});\n\nvar cljs$spec$alpha$Spec$gen_STAR_$dyn_26140 \x3d (function (spec,overrides,path,rmap){\nvar x__5350__auto__ \x3d (((spec \x3d\x3d null))?null:spec);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.gen_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$4(spec,overrides,path,rmap) : m__5351__auto__.call(null, spec,overrides,path,rmap));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.gen_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$4(spec,overrides,path,rmap) : m__5349__auto__.call(null, spec,overrides,path,rmap));\n} else {\nthrow cljs.core.missing_protocol(\x22Spec.gen*\x22,spec);\n}\n}\n});\ncljs.spec.alpha.gen_STAR_ \x3d (function cljs$spec$alpha$gen_STAR_(spec,overrides,path,rmap){\nif((((!((spec \x3d\x3d null)))) \x26\x26 ((!((spec.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d\x3d null)))))){\nreturn spec.cljs$spec$alpha$Spec$gen_STAR_$arity$4(spec,overrides,path,rmap);\n} else {\nreturn cljs$spec$alpha$Spec$gen_STAR_$dyn_26140(spec,overrides,path,rmap);\n}\n});\n\nvar cljs$spec$alpha$Spec$with_gen_STAR_$dyn_26142 \x3d (function (spec,gfn){\nvar x__5350__auto__ \x3d (((spec \x3d\x3d null))?null:spec);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.with_gen_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(spec,gfn) : m__5351__auto__.call(null, spec,gfn));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.with_gen_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(spec,gfn) : m__5349__auto__.call(null, spec,gfn));\n} else {\nthrow cljs.core.missing_protocol(\x22Spec.with-gen*\x22,spec);\n}\n}\n});\ncljs.spec.alpha.with_gen_STAR_ \x3d (function cljs$spec$alpha$with_gen_STAR_(spec,gfn){\nif((((!((spec \x3d\x3d null)))) \x26\x26 ((!((spec.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d\x3d null)))))){\nreturn spec.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2(spec,gfn);\n} else {\nreturn cljs$spec$alpha$Spec$with_gen_STAR_$dyn_26142(spec,gfn);\n}\n});\n\nvar cljs$spec$alpha$Spec$describe_STAR_$dyn_26144 \x3d (function (spec){\nvar x__5350__auto__ \x3d (((spec \x3d\x3d null))?null:spec);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.describe_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(spec) : m__5351__auto__.call(null, spec));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.describe_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(spec) : m__5349__auto__.call(null, spec));\n} else {\nthrow cljs.core.missing_protocol(\x22Spec.describe*\x22,spec);\n}\n}\n});\ncljs.spec.alpha.describe_STAR_ \x3d (function cljs$spec$alpha$describe_STAR_(spec){\nif((((!((spec \x3d\x3d null)))) \x26\x26 ((!((spec.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d\x3d null)))))){\nreturn spec.cljs$spec$alpha$Spec$describe_STAR_$arity$1(spec);\n} else {\nreturn cljs$spec$alpha$Spec$describe_STAR_$dyn_26144(spec);\n}\n});\n\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec.alpha !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec.alpha.registry_ref !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.spec.alpha.registry_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}\ncljs.spec.alpha.deep_resolve \x3d (function cljs$spec$alpha$deep_resolve(reg,k){\nvar spec \x3d k;\nwhile(true){\nif(cljs.core.ident_QMARK_(spec)){\nvar G__26150 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(reg,spec);\nspec \x3d G__26150;\ncontinue;\n} else {\nreturn spec;\n}\nbreak;\n}\n});\n/**\n * returns the spec/regex at end of alias chain starting with k, nil if not found, k if k not ident\n */\ncljs.spec.alpha.reg_resolve \x3d (function cljs$spec$alpha$reg_resolve(k){\nif(cljs.core.ident_QMARK_(k)){\nvar reg \x3d cljs.core.deref(cljs.spec.alpha.registry_ref);\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(reg,k);\nif((!(cljs.core.ident_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.spec.alpha.deep_resolve(reg,spec);\n}\n} else {\nreturn k;\n}\n});\n/**\n * returns the spec/regex at end of alias chain starting with k, throws if not found, k if k not ident\n */\ncljs.spec.alpha.reg_resolve_BANG_ \x3d (function cljs$spec$alpha$reg_resolve_BANG_(k){\nif(cljs.core.ident_QMARK_(k)){\nvar or__5002__auto__ \x3d cljs.spec.alpha.reg_resolve(k);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nthrow (new Error([\x22Unable to resolve spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join(\x27\x27)));\n}\n} else {\nreturn k;\n}\n});\n/**\n * returns x if x is a spec object, else logical false\n */\ncljs.spec.alpha.spec_QMARK_ \x3d (function cljs$spec$alpha$spec_QMARK_(x){\nif((((!((x \x3d\x3d null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d x.cljs$spec$alpha$Spec$))))?true:false):false)){\nreturn x;\n} else {\nreturn null;\n}\n});\n/**\n * returns x if x is a (cljs.spec.alpha) regex op, else logical false\n */\ncljs.spec.alpha.regex_QMARK_ \x3d (function cljs$spec$alpha$regex_QMARK_(x){\nvar and__5000__auto__ \x3d new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252).cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn x;\n} else {\nreturn and__5000__auto__;\n}\n});\ncljs.spec.alpha.with_name \x3d (function cljs$spec$alpha$with_name(spec,name){\nif(cljs.core.ident_QMARK_(spec)){\nreturn spec;\n} else {\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(spec))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(spec,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22name\x22,\x22cljs.spec.alpha/name\x22,205233570),name);\n} else {\nif((((!((spec \x3d\x3d null))))?(((((spec.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d spec.cljs$core$IMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(spec,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(spec),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22name\x22,\x22cljs.spec.alpha/name\x22,205233570),name));\n} else {\nreturn null;\n}\n}\n}\n});\ncljs.spec.alpha.spec_name \x3d (function cljs$spec$alpha$spec_name(spec){\nif(cljs.core.ident_QMARK_(spec)){\nreturn spec;\n} else {\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(spec))){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22name\x22,\x22cljs.spec.alpha/name\x22,205233570).cljs$core$IFn$_invoke$arity$1(spec);\n} else {\nif((((!((spec \x3d\x3d null))))?(((((spec.cljs$lang$protocol_mask$partition0$ \x26 (131072))) || ((cljs.core.PROTOCOL_SENTINEL \x3d\x3d\x3d spec.cljs$core$IMeta$))))?true:false):false)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22name\x22,\x22cljs.spec.alpha/name\x22,205233570).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(spec));\n} else {\nreturn null;\n}\n}\n}\n});\n/**\n * spec-or-k must be a spec, regex or resolvable kw/sym, else returns nil.\n */\ncljs.spec.alpha.maybe_spec \x3d (function cljs$spec$alpha$maybe_spec(spec_or_k){\nvar s \x3d (function (){var or__5002__auto__ \x3d (function (){var and__5000__auto__ \x3d cljs.core.ident_QMARK_(spec_or_k);\nif(and__5000__auto__){\nreturn cljs.spec.alpha.reg_resolve(spec_or_k);\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.spec.alpha.spec_QMARK_(spec_or_k);\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nvar or__5002__auto____$2 \x3d cljs.spec.alpha.regex_QMARK_(spec_or_k);\nif(cljs.core.truth_(or__5002__auto____$2)){\nreturn or__5002__auto____$2;\n} else {\nreturn null;\n}\n}\n}\n})();\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(s))){\nreturn cljs.spec.alpha.with_name(cljs.spec.alpha.regex_spec_impl(s,null),cljs.spec.alpha.spec_name(s));\n} else {\nreturn s;\n}\n});\n/**\n * spec-or-k must be a spec, regex or kw/sym, else returns nil. Throws if unresolvable kw/sym\n */\ncljs.spec.alpha.the_spec \x3d (function cljs$spec$alpha$the_spec(spec_or_k){\nvar or__5002__auto__ \x3d cljs.spec.alpha.maybe_spec(spec_or_k);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nif(cljs.core.ident_QMARK_(spec_or_k)){\nthrow (new Error([\x22Unable to resolve spec: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec_or_k)].join(\x27\x27)));\n} else {\nreturn null;\n}\n}\n});\ncljs.spec.alpha.fn_sym \x3d (function cljs$spec$alpha$fn_sym(f_n){\nif(clojure.string.blank_QMARK_(f_n)){\nreturn null;\n} else {\nvar xs \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.demunge,clojure.string.split.cljs$core$IFn$_invoke$arity$2(f_n,\x22$\x22));\nif(((((2) \x3c\x3d cljs.core.count(xs))) \x26\x26 (cljs.core.every_QMARK_((function (p1__23179_SHARP_){\nreturn (!(clojure.string.blank_QMARK_(p1__23179_SHARP_)));\n}),xs)))){\nvar vec__23193 \x3d cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.last)(xs);\nvar xs__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23193,(0),null);\nvar y \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23193,(1),null);\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22.\x22,xs__$1),\x22/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(\x27\x27));\n} else {\nreturn null;\n}\n}\n});\n\n/**\n * @interface\n */\ncljs.spec.alpha.Specize \x3d function(){};\n\nvar cljs$spec$alpha$Specize$specize_STAR_$dyn_26171 \x3d (function() {\nvar G__26174 \x3d null;\nvar G__26174__1 \x3d (function (_){\nvar x__5350__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.specize_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5351__auto__.call(null, _));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.specize_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5349__auto__.call(null, _));\n} else {\nthrow cljs.core.missing_protocol(\x22Specize.specize*\x22,_);\n}\n}\n});\nvar G__26174__2 \x3d (function (_,form){\nvar x__5350__auto__ \x3d (((_ \x3d\x3d null))?null:_);\nvar m__5351__auto__ \x3d (cljs.spec.alpha.specize_STAR_[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(_,form) : m__5351__auto__.call(null, _,form));\n} else {\nvar m__5349__auto__ \x3d (cljs.spec.alpha.specize_STAR_[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(_,form) : m__5349__auto__.call(null, _,form));\n} else {\nthrow cljs.core.missing_protocol(\x22Specize.specize*\x22,_);\n}\n}\n});\nG__26174 \x3d function(_,form){\nswitch(arguments.length){\ncase 1:\nreturn G__26174__1.call(this,_);\ncase 2:\nreturn G__26174__2.call(this,_,form);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__26174.cljs$core$IFn$_invoke$arity$1 \x3d G__26174__1;\nG__26174.cljs$core$IFn$_invoke$arity$2 \x3d G__26174__2;\nreturn G__26174;\n})()\n;\ncljs.spec.alpha.specize_STAR_ \x3d (function cljs$spec$alpha$specize_STAR_(var_args){\nvar G__23224 \x3d arguments.length;\nswitch (G__23224) {\ncase 1:\nreturn cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1 \x3d (function (_){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d\x3d null)))))){\nreturn _.cljs$spec$alpha$Specize$specize_STAR_$arity$1(_);\n} else {\nreturn cljs$spec$alpha$Specize$specize_STAR_$dyn_26171(_);\n}\n}));\n\n(cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2 \x3d (function (_,form){\nif((((!((_ \x3d\x3d null)))) \x26\x26 ((!((_.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d\x3d null)))))){\nreturn _.cljs$spec$alpha$Specize$specize_STAR_$arity$2(_,form);\n} else {\nreturn cljs$spec$alpha$Specize$specize_STAR_$dyn_26171(_,form);\n}\n}));\n\n(cljs.spec.alpha.specize_STAR_.cljs$lang$maxFixedArity \x3d 2);\n\n\n(cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (k){\nvar k__$1 \x3d this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(k__$1));\n}));\n\n(cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (k,_){\nvar k__$1 \x3d this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(k__$1));\n}));\n\n(cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar s__$1 \x3d this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(s__$1));\n}));\n\n(cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar s__$1 \x3d this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(s__$1));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar s__$1 \x3d this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(s__$1,s__$1,null,null);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,form){\nvar s__$1 \x3d this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,s__$1,null,null);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar s__$1 \x3d this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(s__$1,s__$1,null,null);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,form){\nvar s__$1 \x3d this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,s__$1,null,null);\n}));\n\n(cljs.spec.alpha.Specize[\x22_\x22] \x3d true);\n\n(cljs.spec.alpha.specize_STAR_[\x22_\x22] \x3d (function() {\nvar G__26185 \x3d null;\nvar G__26185__1 \x3d (function (o){\nvar temp__5802__auto__ \x3d (function (){var and__5000__auto__ \x3d cljs.core.fn_QMARK_(o);\nif(and__5000__auto__){\nreturn cljs.spec.alpha.fn_sym(o.name);\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(temp__5802__auto__)){\nvar f_n \x3d temp__5802__auto__;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(f_n,o,null,null);\n} else {\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22unknown\x22,\x22cljs.spec.alpha/unknown\x22,651034818),o,null,null);\n}\n});\nvar G__26185__2 \x3d (function (o,form){\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,o,null,null);\n});\nG__26185 \x3d function(o,form){\nswitch(arguments.length){\ncase 1:\nreturn G__26185__1.call(this,o);\ncase 2:\nreturn G__26185__2.call(this,o,form);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nG__26185.cljs$core$IFn$_invoke$arity$1 \x3d G__26185__1;\nG__26185.cljs$core$IFn$_invoke$arity$2 \x3d G__26185__2;\nreturn G__26185;\n})()\n);\ncljs.spec.alpha.specize \x3d (function cljs$spec$alpha$specize(var_args){\nvar G__23301 \x3d arguments.length;\nswitch (G__23301) {\ncase 1:\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nvar or__5002__auto__ \x3d cljs.spec.alpha.spec_QMARK_(s);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.spec.alpha.specize_STAR_(s);\n}\n}));\n\n(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2 \x3d (function (s,form){\nvar or__5002__auto__ \x3d cljs.spec.alpha.spec_QMARK_(s);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.spec.alpha.specize_STAR_(s,form);\n}\n}));\n\n(cljs.spec.alpha.specize.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * tests the validity of a conform return value\n */\ncljs.spec.alpha.invalid_QMARK_ \x3d (function cljs$spec$alpha$invalid_QMARK_(ret){\nreturn cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119),ret);\n});\n/**\n * Given a spec and a value, returns :cljs.spec.alpha/invalid if value does\n * not match spec, else the (possibly destructured) value.\n */\ncljs.spec.alpha.conform \x3d (function cljs$spec$alpha$conform(spec,x){\nreturn cljs.spec.alpha.conform_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec),x);\n});\n/**\n * Given a spec and a value created by or compliant with a call to\n * \x27conform\x27 with the same spec, returns a value with all conform\n * destructuring undone.\n */\ncljs.spec.alpha.unform \x3d (function cljs$spec$alpha$unform(spec,x){\nreturn cljs.spec.alpha.unform_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec),x);\n});\n/**\n * returns the spec as data\n */\ncljs.spec.alpha.form \x3d (function cljs$spec$alpha$form(spec){\nreturn cljs.spec.alpha.describe_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec));\n});\ncljs.spec.alpha.abbrev \x3d (function cljs$spec$alpha$abbrev(form){\nif(cljs.core.seq_QMARK_(form)){\nreturn clojure.walk.postwalk((function (form__$1){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d (form__$1 instanceof cljs.core.Symbol);\nif(and__5000__auto__){\nreturn cljs.core.namespace(form__$1);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(form__$1));\n} else {\nif(((cljs.core.seq_QMARK_(form__$1)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null),cljs.core.first(form__$1))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.second(form__$1))))))){\nreturn cljs.core.last(form__$1);\n} else {\nreturn form__$1;\n\n}\n}\n}),form);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d (form instanceof cljs.core.Symbol);\nif(and__5000__auto__){\nreturn cljs.core.namespace(form);\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(form));\n} else {\nreturn form;\n\n}\n}\n});\n/**\n * returns an abbreviated description of the spec as data\n */\ncljs.spec.alpha.describe \x3d (function cljs$spec$alpha$describe(spec){\nreturn cljs.spec.alpha.abbrev(cljs.spec.alpha.form(spec));\n});\n/**\n * Takes a spec and a no-arg, generator-returning fn and returns a version of that spec that uses that generator\n */\ncljs.spec.alpha.with_gen \x3d (function cljs$spec$alpha$with_gen(spec,gen_fn){\nvar spec__$1 \x3d cljs.spec.alpha.reg_resolve(spec);\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(spec__$1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(spec__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22gfn\x22,\x22cljs.spec.alpha/gfn\x22,-593120375),gen_fn);\n} else {\nreturn cljs.spec.alpha.with_gen_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec__$1),gen_fn);\n}\n});\ncljs.spec.alpha.explain_data_STAR_ \x3d (function cljs$spec$alpha$explain_data_STAR_(spec,path,via,in$,x){\nvar temp__5804__auto__ \x3d cljs.spec.alpha.explain_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec),path,via,in$,x);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar probs \x3d temp__5804__auto__;\nif(cljs.core.empty_QMARK_(probs)){\nreturn null;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22problems\x22,\x22cljs.spec.alpha/problems\x22,447400814),probs,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22spec\x22,\x22cljs.spec.alpha/spec\x22,1947137578),spec,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22value\x22,\x22cljs.spec.alpha/value\x22,1974786274),x], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a spec and a value x which ought to conform, returns nil if x\n * conforms, else a map with at least the key ::problems whose value is\n * a collection of problem-maps, where problem-map has at least :path :pred and :val\n * keys describing the predicate and the value that failed at that\n * path.\n */\ncljs.spec.alpha.explain_data \x3d (function cljs$spec$alpha$explain_data(spec,x){\nreturn cljs.spec.alpha.explain_data_STAR_(spec,cljs.core.PersistentVector.EMPTY,(function (){var temp__5802__auto__ \x3d cljs.spec.alpha.spec_name(spec);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar name \x3d temp__5802__auto__;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name], null);\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),cljs.core.PersistentVector.EMPTY,x);\n});\n/**\n * Default printer for explain-data. nil indicates a successful validation.\n */\ncljs.spec.alpha.explain_printer \x3d (function cljs$spec$alpha$explain_printer(ed){\nif(cljs.core.truth_(ed)){\nvar problems \x3d cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2((function (p1__23412_SHARP_){\nreturn (- cljs.core.count(new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168).cljs$core$IFn$_invoke$arity$1(p1__23412_SHARP_)));\n}),cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2((function (p1__23411_SHARP_){\nreturn (- cljs.core.count(new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865).cljs$core$IFn$_invoke$arity$1(p1__23411_SHARP_)));\n}),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22problems\x22,\x22cljs.spec.alpha/problems\x22,447400814).cljs$core$IFn$_invoke$arity$1(ed)));\nreturn cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var sb__5647__auto__ \x3d (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__23429_26215 \x3d cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__23430_26216 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__23432_26217 \x3d true;\nvar _STAR_print_fn_STAR__temp_val__23433_26218 \x3d (function (x__5648__auto__){\nreturn sb__5647__auto__.append(x__5648__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__temp_val__23432_26217);\n\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__23433_26218);\n\ntry{var seq__23441_26220 \x3d cljs.core.seq(problems);\nvar chunk__23442_26221 \x3d null;\nvar count__23443_26222 \x3d (0);\nvar i__23444_26223 \x3d (0);\nwhile(true){\nif((i__23444_26223 \x3c count__23443_26222)){\nvar map__23538_26224 \x3d chunk__23442_26221.cljs$core$IIndexed$_nth$arity$2(null, i__23444_26223);\nvar map__23538_26225__$1 \x3d cljs.core.__destructure_map(map__23538_26224);\nvar prob_26226 \x3d map__23538_26225__$1;\nvar path_26227 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23538_26225__$1,new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168));\nvar pred_26228 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23538_26225__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar val_26229 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23538_26225__$1,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612));\nvar reason_26230 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23538_26225__$1,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759));\nvar via_26231 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23538_26225__$1,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336));\nvar in_26232 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23538_26225__$1,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865));\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val_26229], 0));\n\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 - failed: \x22], 0));\n\nif(cljs.core.truth_(reason_26230)){\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([reason_26230], 0));\n} else {\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.abbrev(pred_26228)], 0));\n}\n\nif(cljs.core.empty_QMARK_(in_26232)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22 in: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([in_26232], 0))].join(\x27\x27)], 0));\n}\n\nif(cljs.core.empty_QMARK_(path_26227)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22 at: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_26227], 0))].join(\x27\x27)], 0));\n}\n\nif(cljs.core.empty_QMARK_(via_26231)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22 spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.last(via_26231)], 0))].join(\x27\x27)], 0));\n}\n\nvar seq__23541_26237 \x3d cljs.core.seq(prob_26226);\nvar chunk__23542_26238 \x3d null;\nvar count__23543_26239 \x3d (0);\nvar i__23544_26240 \x3d (0);\nwhile(true){\nif((i__23544_26240 \x3c count__23543_26239)){\nvar vec__23560_26241 \x3d chunk__23542_26238.cljs$core$IIndexed$_nth$arity$2(null, i__23544_26240);\nvar k_26242 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23560_26241,(0),null);\nvar v_26243 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23560_26241,(1),null);\nif(cljs.core.truth_((function (){var fexpr__23564 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),null,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),null,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),null,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),null], null), null);\nreturn (fexpr__23564.cljs$core$IFn$_invoke$arity$1 ? fexpr__23564.cljs$core$IFn$_invoke$arity$1(k_26242) : fexpr__23564.call(null, k_26242));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\n\\t\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_26242], 0)),\x22 \x22], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_26243], 0));\n}\n\n\nvar G__26248 \x3d seq__23541_26237;\nvar G__26249 \x3d chunk__23542_26238;\nvar G__26250 \x3d count__23543_26239;\nvar G__26251 \x3d (i__23544_26240 + (1));\nseq__23541_26237 \x3d G__26248;\nchunk__23542_26238 \x3d G__26249;\ncount__23543_26239 \x3d G__26250;\ni__23544_26240 \x3d G__26251;\ncontinue;\n} else {\nvar temp__5804__auto___26252 \x3d cljs.core.seq(seq__23541_26237);\nif(temp__5804__auto___26252){\nvar seq__23541_26253__$1 \x3d temp__5804__auto___26252;\nif(cljs.core.chunked_seq_QMARK_(seq__23541_26253__$1)){\nvar c__5525__auto___26254 \x3d cljs.core.chunk_first(seq__23541_26253__$1);\nvar G__26255 \x3d cljs.core.chunk_rest(seq__23541_26253__$1);\nvar G__26256 \x3d c__5525__auto___26254;\nvar G__26257 \x3d cljs.core.count(c__5525__auto___26254);\nvar G__26258 \x3d (0);\nseq__23541_26237 \x3d G__26255;\nchunk__23542_26238 \x3d G__26256;\ncount__23543_26239 \x3d G__26257;\ni__23544_26240 \x3d G__26258;\ncontinue;\n} else {\nvar vec__23565_26259 \x3d cljs.core.first(seq__23541_26253__$1);\nvar k_26260 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23565_26259,(0),null);\nvar v_26261 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23565_26259,(1),null);\nif(cljs.core.truth_((function (){var fexpr__23568 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),null,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),null,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),null,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),null], null), null);\nreturn (fexpr__23568.cljs$core$IFn$_invoke$arity$1 ? fexpr__23568.cljs$core$IFn$_invoke$arity$1(k_26260) : fexpr__23568.call(null, k_26260));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\n\\t\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_26260], 0)),\x22 \x22], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_26261], 0));\n}\n\n\nvar G__26266 \x3d cljs.core.next(seq__23541_26253__$1);\nvar G__26267 \x3d null;\nvar G__26268 \x3d (0);\nvar G__26269 \x3d (0);\nseq__23541_26237 \x3d G__26266;\nchunk__23542_26238 \x3d G__26267;\ncount__23543_26239 \x3d G__26268;\ni__23544_26240 \x3d G__26269;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.core.newline.cljs$core$IFn$_invoke$arity$0();\n\n\nvar G__26270 \x3d seq__23441_26220;\nvar G__26271 \x3d chunk__23442_26221;\nvar G__26272 \x3d count__23443_26222;\nvar G__26273 \x3d (i__23444_26223 + (1));\nseq__23441_26220 \x3d G__26270;\nchunk__23442_26221 \x3d G__26271;\ncount__23443_26222 \x3d G__26272;\ni__23444_26223 \x3d G__26273;\ncontinue;\n} else {\nvar temp__5804__auto___26274 \x3d cljs.core.seq(seq__23441_26220);\nif(temp__5804__auto___26274){\nvar seq__23441_26275__$1 \x3d temp__5804__auto___26274;\nif(cljs.core.chunked_seq_QMARK_(seq__23441_26275__$1)){\nvar c__5525__auto___26276 \x3d cljs.core.chunk_first(seq__23441_26275__$1);\nvar G__26277 \x3d cljs.core.chunk_rest(seq__23441_26275__$1);\nvar G__26278 \x3d c__5525__auto___26276;\nvar G__26279 \x3d cljs.core.count(c__5525__auto___26276);\nvar G__26280 \x3d (0);\nseq__23441_26220 \x3d G__26277;\nchunk__23442_26221 \x3d G__26278;\ncount__23443_26222 \x3d G__26279;\ni__23444_26223 \x3d G__26280;\ncontinue;\n} else {\nvar map__23569_26281 \x3d cljs.core.first(seq__23441_26275__$1);\nvar map__23569_26282__$1 \x3d cljs.core.__destructure_map(map__23569_26281);\nvar prob_26283 \x3d map__23569_26282__$1;\nvar path_26284 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23569_26282__$1,new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168));\nvar pred_26285 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23569_26282__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397));\nvar val_26286 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23569_26282__$1,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612));\nvar reason_26287 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23569_26282__$1,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759));\nvar via_26288 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23569_26282__$1,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336));\nvar in_26289 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23569_26282__$1,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865));\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val_26286], 0));\n\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 - failed: \x22], 0));\n\nif(cljs.core.truth_(reason_26287)){\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([reason_26287], 0));\n} else {\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.abbrev(pred_26285)], 0));\n}\n\nif(cljs.core.empty_QMARK_(in_26289)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22 in: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([in_26289], 0))].join(\x27\x27)], 0));\n}\n\nif(cljs.core.empty_QMARK_(path_26284)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22 at: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_26284], 0))].join(\x27\x27)], 0));\n}\n\nif(cljs.core.empty_QMARK_(via_26288)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22 spec: \x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.last(via_26288)], 0))].join(\x27\x27)], 0));\n}\n\nvar seq__23576_26296 \x3d cljs.core.seq(prob_26283);\nvar chunk__23577_26297 \x3d null;\nvar count__23578_26298 \x3d (0);\nvar i__23579_26299 \x3d (0);\nwhile(true){\nif((i__23579_26299 \x3c count__23578_26298)){\nvar vec__23588_26300 \x3d chunk__23577_26297.cljs$core$IIndexed$_nth$arity$2(null, i__23579_26299);\nvar k_26301 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23588_26300,(0),null);\nvar v_26302 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23588_26300,(1),null);\nif(cljs.core.truth_((function (){var fexpr__23595 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),null,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),null,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),null,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),null], null), null);\nreturn (fexpr__23595.cljs$core$IFn$_invoke$arity$1 ? fexpr__23595.cljs$core$IFn$_invoke$arity$1(k_26301) : fexpr__23595.call(null, k_26301));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\n\\t\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_26301], 0)),\x22 \x22], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_26302], 0));\n}\n\n\nvar G__26303 \x3d seq__23576_26296;\nvar G__26304 \x3d chunk__23577_26297;\nvar G__26305 \x3d count__23578_26298;\nvar G__26306 \x3d (i__23579_26299 + (1));\nseq__23576_26296 \x3d G__26303;\nchunk__23577_26297 \x3d G__26304;\ncount__23578_26298 \x3d G__26305;\ni__23579_26299 \x3d G__26306;\ncontinue;\n} else {\nvar temp__5804__auto___26307__$1 \x3d cljs.core.seq(seq__23576_26296);\nif(temp__5804__auto___26307__$1){\nvar seq__23576_26308__$1 \x3d temp__5804__auto___26307__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__23576_26308__$1)){\nvar c__5525__auto___26309 \x3d cljs.core.chunk_first(seq__23576_26308__$1);\nvar G__26311 \x3d cljs.core.chunk_rest(seq__23576_26308__$1);\nvar G__26312 \x3d c__5525__auto___26309;\nvar G__26313 \x3d cljs.core.count(c__5525__auto___26309);\nvar G__26314 \x3d (0);\nseq__23576_26296 \x3d G__26311;\nchunk__23577_26297 \x3d G__26312;\ncount__23578_26298 \x3d G__26313;\ni__23579_26299 \x3d G__26314;\ncontinue;\n} else {\nvar vec__23599_26315 \x3d cljs.core.first(seq__23576_26308__$1);\nvar k_26316 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23599_26315,(0),null);\nvar v_26317 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23599_26315,(1),null);\nif(cljs.core.truth_((function (){var fexpr__23602 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),null,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),null,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),null,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),null,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),null,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),null], null), null);\nreturn (fexpr__23602.cljs$core$IFn$_invoke$arity$1 ? fexpr__23602.cljs$core$IFn$_invoke$arity$1(k_26316) : fexpr__23602.call(null, k_26316));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22\\n\\t\x22,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_26316], 0)),\x22 \x22], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_26317], 0));\n}\n\n\nvar G__26318 \x3d cljs.core.next(seq__23576_26308__$1);\nvar G__26319 \x3d null;\nvar G__26320 \x3d (0);\nvar G__26321 \x3d (0);\nseq__23576_26296 \x3d G__26318;\nchunk__23577_26297 \x3d G__26319;\ncount__23578_26298 \x3d G__26320;\ni__23579_26299 \x3d G__26321;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.core.newline.cljs$core$IFn$_invoke$arity$0();\n\n\nvar G__26322 \x3d cljs.core.next(seq__23441_26275__$1);\nvar G__26323 \x3d null;\nvar G__26324 \x3d (0);\nvar G__26325 \x3d (0);\nseq__23441_26220 \x3d G__26322;\nchunk__23442_26221 \x3d G__26323;\ncount__23443_26222 \x3d G__26324;\ni__23444_26223 \x3d G__26325;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__23430_26216);\n\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__orig_val__23429_26215);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5647__auto__);\n})()], 0));\n} else {\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Success!\x22], 0));\n}\n});\ncljs.spec.alpha._STAR_explain_out_STAR_ \x3d cljs.spec.alpha.explain_printer;\n/**\n * Prints explanation data (per \x27explain-data\x27) to *out* using the printer in *explain-out*,\n * by default explain-printer.\n */\ncljs.spec.alpha.explain_out \x3d (function cljs$spec$alpha$explain_out(ed){\nreturn cljs.spec.alpha._STAR_explain_out_STAR_.call(null, ed);\n});\n/**\n * Given a spec and a value that fails to conform, prints an explanation to *out*.\n */\ncljs.spec.alpha.explain \x3d (function cljs$spec$alpha$explain(spec,x){\nreturn cljs.spec.alpha.explain_out(cljs.spec.alpha.explain_data(spec,x));\n});\n/**\n * Given a spec and a value that fails to conform, returns an explanation as a string.\n */\ncljs.spec.alpha.explain_str \x3d (function cljs$spec$alpha$explain_str(spec,x){\nvar sb__5647__auto__ \x3d (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__23605_26329 \x3d cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__23606_26330 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__23607_26331 \x3d true;\nvar _STAR_print_fn_STAR__temp_val__23608_26332 \x3d (function (x__5648__auto__){\nreturn sb__5647__auto__.append(x__5648__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__temp_val__23607_26331);\n\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__23608_26332);\n\ntry{cljs.spec.alpha.explain(spec,x);\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__23606_26330);\n\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__orig_val__23605_26329);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5647__auto__);\n});\ncljs.spec.alpha.gensub \x3d (function cljs$spec$alpha$gensub(spec,overrides,path,rmap,form){\nvar spec__$1 \x3d cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec);\nvar temp__5802__auto__ \x3d (function (){var or__5002__auto__ \x3d (function (){var temp__5804__auto__ \x3d (function (){var or__5002__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,(function (){var or__5002__auto__ \x3d cljs.spec.alpha.spec_name(spec__$1);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn spec__$1;\n}\n})());\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,path);\n}\n})();\nif(cljs.core.truth_(temp__5804__auto__)){\nvar gfn \x3d temp__5804__auto__;\nreturn (gfn.cljs$core$IFn$_invoke$arity$0 ? gfn.cljs$core$IFn$_invoke$arity$0() : gfn.call(null, ));\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.spec.alpha.gen_STAR_(spec__$1,overrides,path,rmap);\n}\n})();\nif(cljs.core.truth_(temp__5802__auto__)){\nvar g \x3d temp__5802__auto__;\nreturn cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__23614_SHARP_){\nreturn cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(spec__$1,p1__23614_SHARP_);\n}),g,(100)], 0));\n} else {\nthrow (new Error([\x22Unable to construct gen at: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(path),\x22 for: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.abbrev(form))].join(\x27\x27)));\n}\n});\n/**\n * Given a spec, returns the generator for it, or throws if none can\n * be constructed. Optionally an overrides map can be provided which\n * should map spec names or paths (vectors of keywords) to no-arg\n * generator-creating fns. These will be used instead of the generators at those\n * names/paths. Note that parent generator (in the spec or overrides\n * map) will supersede those of any subtrees. A generator for a regex\n * op must always return a sequential collection (i.e. a generator for\n * s/? should return either an empty sequence/vector or a\n * sequence/vector with one item in it)\n */\ncljs.spec.alpha.gen \x3d (function cljs$spec$alpha$gen(var_args){\nvar G__23640 \x3d arguments.length;\nswitch (G__23640) {\ncase 1:\nreturn cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1 \x3d (function (spec){\nreturn cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(spec,null);\n}));\n\n(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2 \x3d (function (spec,overrides){\nreturn cljs.spec.alpha.gensub(spec,overrides,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22recursion-limit\x22,\x22cljs.spec.alpha/recursion-limit\x22,601284994),cljs.spec.alpha._STAR_recursion_limit_STAR_], null),spec);\n}));\n\n(cljs.spec.alpha.gen.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * Do not call this directly, use \x27def\x27\n */\ncljs.spec.alpha.def_impl \x3d (function cljs$spec$alpha$def_impl(k,form,spec){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.ident_QMARK_(k);\nif(and__5000__auto__){\nreturn cljs.core.namespace(k);\n} else {\nreturn and__5000__auto__;\n}\n})())){\n} else {\nthrow (new Error([\x22Assert failed: \x22,\x22k must be namespaced keyword or resolveable symbol\x22,\x22\\n\x22,\x22(c/and (ident? k) (namespace k))\x22].join(\x27\x27)));\n}\n\nif((spec \x3d\x3d null)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.registry_ref,cljs.core.dissoc,k);\n} else {\nvar spec_26334__$1 \x3d (cljs.core.truth_((function (){var or__5002__auto__ \x3d cljs.spec.alpha.spec_QMARK_(spec);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.spec.alpha.regex_QMARK_(spec);\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.alpha.registry_ref),spec);\n}\n}\n})())?spec:cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,spec,null,null));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.spec.alpha.registry_ref,cljs.core.assoc,k,cljs.spec.alpha.with_name(spec_26334__$1,k));\n}\n\nreturn k;\n});\n/**\n * returns the registry map, prefer \x27get-spec\x27 to lookup a spec by name\n */\ncljs.spec.alpha.registry \x3d (function cljs$spec$alpha$registry(){\nreturn cljs.core.deref(cljs.spec.alpha.registry_ref);\n});\n/**\n * Returns a symbol from a symbol or var\n */\ncljs.spec.alpha.__GT_sym \x3d (function cljs$spec$alpha$__GT_sym(x){\nif(cljs.core.var_QMARK_(x)){\nreturn x.sym;\n} else {\nreturn x;\n}\n});\n/**\n * Returns spec registered for keyword/symbol/var k, or nil.\n */\ncljs.spec.alpha.get_spec \x3d (function cljs$spec$alpha$get_spec(k){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.registry(),(((k instanceof cljs.core.Keyword))?k:cljs.spec.alpha.__GT_sym(k)));\n});\ncljs.spec.alpha.macroexpand_check \x3d (function cljs$spec$alpha$macroexpand_check(v,args){\nvar specs \x3d cljs.spec.alpha.get_spec(v);\nvar temp__5804__auto__ \x3d new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(specs);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar arg_spec \x3d temp__5804__auto__;\nif(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform(arg_spec,args))){\nvar ed \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.explain_data_STAR_(arg_spec,cljs.core.PersistentVector.EMPTY,(function (){var temp__5802__auto__ \x3d cljs.spec.alpha.spec_name(arg_spec);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar name \x3d temp__5802__auto__;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name], null);\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),cljs.core.PersistentVector.EMPTY,args),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22args\x22,\x22cljs.spec.alpha/args\x22,1870769783),args);\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22Call to \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.__GT_sym(v)),\x22 did not conform to spec.\x22].join(\x27\x27),ed);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.recur_limit_QMARK_ \x3d (function cljs$spec$alpha$recur_limit_QMARK_(rmap,id,path,k){\nreturn (((cljs.core.get.cljs$core$IFn$_invoke$arity$2(rmap,id) \x3e new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22recursion-limit\x22,\x22cljs.spec.alpha/recursion-limit\x22,601284994).cljs$core$IFn$_invoke$arity$1(rmap))) \x26\x26 (cljs.core.contains_QMARK_(cljs.core.set(path),k)));\n});\ncljs.spec.alpha.inck \x3d (function cljs$spec$alpha$inck(m,k){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,((function (){var or__5002__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (0);\n}\n})() + (1)));\n});\ncljs.spec.alpha.dt \x3d (function cljs$spec$alpha$dt(var_args){\nvar G__23755 \x3d arguments.length;\nswitch (G__23755) {\ncase 3:\nreturn cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3 \x3d (function (pred,x,form){\nreturn cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(pred,x,form,null);\n}));\n\n(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4 \x3d (function (pred,x,form,cpred_QMARK_){\nif(cljs.core.truth_(pred)){\nvar temp__5802__auto__ \x3d cljs.spec.alpha.the_spec(pred);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar spec \x3d temp__5802__auto__;\nreturn cljs.spec.alpha.conform(spec,x);\n} else {\nif(cljs.core.ifn_QMARK_(pred)){\nif(cljs.core.truth_(cpred_QMARK_)){\nreturn (pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null, x));\n} else {\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null, x)))){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}\n} else {\nthrow (new Error([cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([form], 0)),\x22 is not a fn, expected predicate fn\x22].join(\x27\x27)));\n}\n}\n} else {\nreturn x;\n}\n}));\n\n(cljs.spec.alpha.dt.cljs$lang$maxFixedArity \x3d 4);\n\n/**\n * Helper function that returns true when x is valid for spec.\n */\ncljs.spec.alpha.valid_QMARK_ \x3d (function cljs$spec$alpha$valid_QMARK_(var_args){\nvar G__23791 \x3d arguments.length;\nswitch (G__23791) {\ncase 2:\nreturn cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (spec,x){\nvar spec__$1 \x3d cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec);\nreturn (!(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform_STAR_(spec__$1,x))));\n}));\n\n(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (spec,x,form){\nvar spec__$1 \x3d cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2(spec,form);\nreturn (!(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform_STAR_(spec__$1,x))));\n}));\n\n(cljs.spec.alpha.valid_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * internal helper function that returns true when x is valid for spec.\n */\ncljs.spec.alpha.pvalid_QMARK_ \x3d (function cljs$spec$alpha$pvalid_QMARK_(var_args){\nvar G__23801 \x3d arguments.length;\nswitch (G__23801) {\ncase 2:\nreturn cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2 \x3d (function (pred,x){\nreturn (!(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(pred,x,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22unknown\x22,\x22cljs.spec.alpha/unknown\x22,651034818)))));\n}));\n\n(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3 \x3d (function (pred,x,form){\nreturn (!(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(pred,x,form))));\n}));\n\n(cljs.spec.alpha.pvalid_QMARK_.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.spec.alpha.explain_1 \x3d (function cljs$spec$alpha$explain_1(form,pred,path,via,in$,v){\nvar pred__$1 \x3d cljs.spec.alpha.maybe_spec(pred);\nif(cljs.core.truth_(cljs.spec.alpha.spec_QMARK_(pred__$1))){\nreturn cljs.spec.alpha.explain_STAR_(pred__$1,path,(function (){var temp__5802__auto__ \x3d cljs.spec.alpha.spec_name(pred__$1);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar name \x3d temp__5802__auto__;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(via,name);\n} else {\nreturn via;\n}\n})(),in$,v);\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),form,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),v,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n}\n});\n\n/**\n * returns a generator for form f, which can be a keyword or a list\n * starting with \x27or or \x27and.\n */\ncljs.spec.alpha.k_gen \x3d (function cljs$spec$alpha$k_gen(f){\nif((f instanceof cljs.core.Keyword)){\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f], 0));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22or\x22,\x22or\x22,1876275696,null),cljs.core.first(f))){\nreturn cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2((1),cljs.core.rest(f));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22and\x22,\x22and\x22,668631710,null),cljs.core.first(f))){\nreturn cljs.spec.alpha.and_k_gen(cljs.core.rest(f));\n} else {\nreturn null;\n}\n}\n}\n});\n/**\n * returns a tuple generator made up of generators for a random subset\n * of min-count (default 0) to all elements in s.\n */\ncljs.spec.alpha.or_k_gen \x3d (function cljs$spec$alpha$or_k_gen(var_args){\nvar G__23884 \x3d arguments.length;\nswitch (G__23884) {\ncase 1:\nreturn cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1 \x3d (function (s){\nreturn cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2((0),s);\n}));\n\n(cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2 \x3d (function (min_count,s){\nreturn cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.choose.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([min_count,cljs.core.count(s)], 0)),cljs.spec.gen.alpha.shuffle.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.k_gen,s)], 0))], 0)),(function (p__23914){\nvar vec__23915 \x3d p__23914;\nvar n \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23915,(0),null);\nvar gens \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23915,(1),null);\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,cljs.core.take.cljs$core$IFn$_invoke$arity$2(n,gens));\n})], 0));\n}));\n\n(cljs.spec.alpha.or_k_gen.cljs$lang$maxFixedArity \x3d 2);\n\n/**\n * returns a tuple generator made up of generators for every element\n * in s.\n */\ncljs.spec.alpha.and_k_gen \x3d (function cljs$spec$alpha$and_k_gen(s){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.k_gen,s));\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha23943 \x3d (function (map__23935,keys__GT_specnames,p__23934,opt,req_un,opt_un,gfn,pred_exprs,keys_pred,argm,opt_keys,req_specs,req,id,req_keys,opt_specs,k__GT_s,pred_forms,meta23944){\nthis.map__23935 \x3d map__23935;\nthis.keys__GT_specnames \x3d keys__GT_specnames;\nthis.p__23934 \x3d p__23934;\nthis.opt \x3d opt;\nthis.req_un \x3d req_un;\nthis.opt_un \x3d opt_un;\nthis.gfn \x3d gfn;\nthis.pred_exprs \x3d pred_exprs;\nthis.keys_pred \x3d keys_pred;\nthis.argm \x3d argm;\nthis.opt_keys \x3d opt_keys;\nthis.req_specs \x3d req_specs;\nthis.req \x3d req;\nthis.id \x3d id;\nthis.req_keys \x3d req_keys;\nthis.opt_specs \x3d opt_specs;\nthis.k__GT_s \x3d k__GT_s;\nthis.pred_forms \x3d pred_forms;\nthis.meta23944 \x3d meta23944;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_23945,meta23944__$1){\nvar self__ \x3d this;\nvar _23945__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha23943(self__.map__23935,self__.keys__GT_specnames,self__.p__23934,self__.opt,self__.req_un,self__.opt_un,self__.gfn,self__.pred_exprs,self__.keys_pred,self__.argm,self__.opt_keys,self__.req_specs,self__.req,self__.id,self__.req_keys,self__.opt_specs,self__.k__GT_s,self__.pred_forms,meta23944__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_23945){\nvar self__ \x3d this;\nvar _23945__$1 \x3d this;\nreturn self__.meta23944;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,m){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_((self__.keys_pred.cljs$core$IFn$_invoke$arity$1 ? self__.keys_pred.cljs$core$IFn$_invoke$arity$1(m) : self__.keys_pred.call(null, m)))){\nvar reg \x3d cljs.spec.alpha.registry();\nvar ret \x3d m;\nvar G__23970 \x3d m;\nvar vec__23972 \x3d G__23970;\nvar seq__23973 \x3d cljs.core.seq(vec__23972);\nvar first__23974 \x3d cljs.core.first(seq__23973);\nvar seq__23973__$1 \x3d cljs.core.next(seq__23973);\nvar vec__23975 \x3d first__23974;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23975,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23975,(1),null);\nvar ks \x3d seq__23973__$1;\nvar keys \x3d vec__23972;\nvar ret__$1 \x3d ret;\nvar G__23970__$1 \x3d G__23970;\nwhile(true){\nvar ret__$2 \x3d ret__$1;\nvar vec__23980 \x3d G__23970__$1;\nvar seq__23981 \x3d cljs.core.seq(vec__23980);\nvar first__23982 \x3d cljs.core.first(seq__23981);\nvar seq__23981__$1 \x3d cljs.core.next(seq__23981);\nvar vec__23983 \x3d first__23982;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23983,(0),null);\nvar v__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__23983,(1),null);\nvar ks__$1 \x3d seq__23981__$1;\nvar keys__$1 \x3d vec__23980;\nif(cljs.core.truth_(keys__$1)){\nvar sname \x3d (self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k__$1) : self__.keys__GT_specnames.call(null, k__$1));\nvar temp__5802__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(reg,sname);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar s \x3d temp__5802__auto__;\nvar cv \x3d cljs.spec.alpha.conform(s,v__$1);\nif(cljs.spec.alpha.invalid_QMARK_(cv)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar G__26388 \x3d (((cv \x3d\x3d\x3d v__$1))?ret__$2:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret__$2,k__$1,cv));\nvar G__26389 \x3d ks__$1;\nret__$1 \x3d G__26388;\nG__23970__$1 \x3d G__26389;\ncontinue;\n}\n} else {\nvar G__26390 \x3d ret__$2;\nvar G__26391 \x3d ks__$1;\nret__$1 \x3d G__26390;\nG__23970__$1 \x3d G__26391;\ncontinue;\n}\n} else {\nreturn ret__$2;\n}\nbreak;\n}\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,m){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar reg \x3d cljs.spec.alpha.registry();\nvar ret \x3d m;\nvar G__24005 \x3d cljs.core.keys(m);\nvar vec__24008 \x3d G__24005;\nvar seq__24009 \x3d cljs.core.seq(vec__24008);\nvar first__24010 \x3d cljs.core.first(seq__24009);\nvar seq__24009__$1 \x3d cljs.core.next(seq__24009);\nvar k \x3d first__24010;\nvar ks \x3d seq__24009__$1;\nvar keys \x3d vec__24008;\nvar ret__$1 \x3d ret;\nvar G__24005__$1 \x3d G__24005;\nwhile(true){\nvar ret__$2 \x3d ret__$1;\nvar vec__24028 \x3d G__24005__$1;\nvar seq__24029 \x3d cljs.core.seq(vec__24028);\nvar first__24030 \x3d cljs.core.first(seq__24029);\nvar seq__24029__$1 \x3d cljs.core.next(seq__24029);\nvar k__$1 \x3d first__24030;\nvar ks__$1 \x3d seq__24029__$1;\nvar keys__$1 \x3d vec__24028;\nif(cljs.core.truth_(keys__$1)){\nif(cljs.core.contains_QMARK_(reg,(self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k__$1) : self__.keys__GT_specnames.call(null, k__$1)))){\nvar cv \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k__$1);\nvar v \x3d cljs.spec.alpha.unform((self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k__$1) : self__.keys__GT_specnames.call(null, k__$1)),cv);\nvar G__26397 \x3d (((cv \x3d\x3d\x3d v))?ret__$2:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret__$2,k__$1,v));\nvar G__26398 \x3d ks__$1;\nret__$1 \x3d G__26397;\nG__24005__$1 \x3d G__26398;\ncontinue;\n} else {\nvar G__26400 \x3d ret__$2;\nvar G__26401 \x3d ks__$1;\nret__$1 \x3d G__26400;\nG__24005__$1 \x3d G__26401;\ncontinue;\n}\n} else {\nreturn ret__$2;\n}\nbreak;\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!(cljs.core.map_QMARK_(x)))){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nvar reg \x3d cljs.spec.alpha.registry();\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.concat,(function (){var temp__5804__auto__ \x3d cljs.core.seq(cljs.core.keep.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (pred,form){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(x) : pred.call(null, x)))){\nreturn null;\n} else {\nreturn form;\n}\n}),self__.pred_exprs,self__.pred_forms)));\nif(temp__5804__auto__){\nvar probs \x3d temp__5804__auto__;\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__23924_SHARP_){\nreturn cljs.core.identity(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),p1__23924_SHARP_,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null));\n}),probs);\n} else {\nreturn null;\n}\n})(),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__24050){\nvar vec__24051 \x3d p__24050;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24051,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24051,(1),null);\nif((((!(cljs.core.contains_QMARK_(reg,(self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k) : self__.keys__GT_specnames.call(null, k)))))) || (cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3((self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k) : self__.keys__GT_specnames.call(null, k)),v,k)))){\nreturn null;\n} else {\nreturn cljs.spec.alpha.explain_1((self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k) : self__.keys__GT_specnames.call(null, k)),(self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1 ? self__.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(k) : self__.keys__GT_specnames.call(null, k)),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),via,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,k),v);\n}\n}),cljs.core.seq(x)));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nvar rmap__$1 \x3d cljs.spec.alpha.inck(rmap,self__.id);\nvar rgen \x3d (function (k,s){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.spec.alpha.gensub(s,overrides,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),rmap__$1,k)], null);\n});\nvar ogen \x3d (function (k,s){\nif(cljs.spec.alpha.recur_limit_QMARK_(rmap__$1,self__.id,path,k)){\nreturn null;\n} else {\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,cljs.spec.gen.alpha.delay_impl((new cljs.core.Delay((function (){\nreturn cljs.spec.alpha.gensub(s,overrides,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),rmap__$1,k);\n}),null)))], null);\n}\n});\nvar reqs \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$3(rgen,self__.req_keys,self__.req_specs);\nvar opts \x3d cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$3(ogen,self__.opt_keys,self__.opt_specs));\nif(cljs.core.every_QMARK_(cljs.core.identity,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,reqs),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,opts)))){\nreturn cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.and_k_gen(self__.req),cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1(self__.opt),cljs.spec.alpha.and_k_gen(self__.req_un),cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1(self__.opt_un)], 0)),(function (p__24155){\nvar vec__24162 \x3d p__24155;\nvar req_ks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24162,(0),null);\nvar opt_ks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24162,(1),null);\nvar req_un_ks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24162,(2),null);\nvar opt_un_ks \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24162,(3),null);\nvar qks \x3d cljs.core.flatten(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(req_ks,opt_ks));\nvar unqks \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword,cljs.core.name),cljs.core.flatten(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(req_un_ks,opt_un_ks)));\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.hash_map,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__23928_SHARP_){\nvar G__24200 \x3d cljs.core.first(p1__23928_SHARP_);\nvar fexpr__24199 \x3d cljs.core.set(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(qks,unqks));\nreturn (fexpr__24199.cljs$core$IFn$_invoke$arity$1 ? fexpr__24199.cljs$core$IFn$_invoke$arity$1(G__24200) : fexpr__24199.call(null, G__24200));\n}),cljs.core.into.cljs$core$IFn$_invoke$arity$2(reqs,opts))));\n})], 0));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__24206 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.argm,new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474),gfn__$1);\nreturn (cljs.spec.alpha.map_spec_impl.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.map_spec_impl.cljs$core$IFn$_invoke$arity$1(G__24206) : cljs.spec.alpha.map_spec_impl.call(null, G__24206));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.cons(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22keys\x22,\x22cljs.spec.alpha/keys\x22,1109346032,null),(function (){var G__24208 \x3d cljs.core.PersistentVector.EMPTY;\nvar G__24208__$1 \x3d (cljs.core.truth_(self__.req)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__24208,new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.req], 0)):G__24208);\nvar G__24208__$2 \x3d (cljs.core.truth_(self__.opt)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__24208__$1,new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.opt], 0)):G__24208__$1);\nvar G__24208__$3 \x3d (cljs.core.truth_(self__.req_un)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__24208__$2,new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.req_un], 0)):G__24208__$2);\nif(cljs.core.truth_(self__.opt_un)){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(G__24208__$3,new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.opt_un], 0));\n} else {\nreturn G__24208__$3;\n}\n})());\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 19, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22map__23935\x22,\x22map__23935\x22,-1901261663,null),new cljs.core.Symbol(null,\x22keys-\x3especnames\x22,\x22keys-\x3especnames\x22,1791294693,null),new cljs.core.Symbol(null,\x22p__23934\x22,\x22p__23934\x22,522563718,null),new cljs.core.Symbol(null,\x22opt\x22,\x22opt\x22,845825158,null),new cljs.core.Symbol(null,\x22req-un\x22,\x22req-un\x22,-1579864761,null),new cljs.core.Symbol(null,\x22opt-un\x22,\x22opt-un\x22,-1770993273,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22pred-exprs\x22,\x22pred-exprs\x22,-862164374,null),new cljs.core.Symbol(null,\x22keys-pred\x22,\x22keys-pred\x22,-1795451030,null),new cljs.core.Symbol(null,\x22argm\x22,\x22argm\x22,-181546357,null),new cljs.core.Symbol(null,\x22opt-keys\x22,\x22opt-keys\x22,-1391747508,null),new cljs.core.Symbol(null,\x22req-specs\x22,\x22req-specs\x22,-2100473456,null),new cljs.core.Symbol(null,\x22req\x22,\x22req\x22,1314083224,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22req-keys\x22,\x22req-keys\x22,-2140116548,null),new cljs.core.Symbol(null,\x22opt-specs\x22,\x22opt-specs\x22,1255626077,null),new cljs.core.Symbol(null,\x22k-\x3es\x22,\x22k-\x3es\x22,-1685112801,null),new cljs.core.Symbol(null,\x22pred-forms\x22,\x22pred-forms\x22,1813143359,null),new cljs.core.Symbol(null,\x22meta23944\x22,\x22meta23944\x22,613551638,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha23943\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha23943.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha23943\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha23943.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha23943 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha23943(map__23935,keys__GT_specnames,p__23934,opt,req_un,opt_un,gfn,pred_exprs,keys_pred,argm,opt_keys,req_specs,req,id,req_keys,opt_specs,k__GT_s,pred_forms,meta23944){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha23943(map__23935,keys__GT_specnames,p__23934,opt,req_un,opt_un,gfn,pred_exprs,keys_pred,argm,opt_keys,req_specs,req,id,req_keys,opt_specs,k__GT_s,pred_forms,meta23944));\n});\n\n\n/**\n * Do not call this directly, use \x27spec\x27 with a map argument\n */\ncljs.spec.alpha.map_spec_impl \x3d (function cljs$spec$alpha$map_spec_impl(p__23934){\nvar map__23935 \x3d p__23934;\nvar map__23935__$1 \x3d cljs.core.__destructure_map(map__23935);\nvar argm \x3d map__23935__$1;\nvar opt \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22opt\x22,\x22opt\x22,-794706369));\nvar req_un \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22req-un\x22,\x22req-un\x22,1074571008));\nvar opt_un \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22opt-un\x22,\x22opt-un\x22,883442496));\nvar gfn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22gfn\x22,\x22gfn\x22,791517474));\nvar pred_exprs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22pred-exprs\x22,\x22pred-exprs\x22,1792271395));\nvar keys_pred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22keys-pred\x22,\x22keys-pred\x22,858984739));\nvar opt_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22opt-keys\x22,\x22opt-keys\x22,1262688261));\nvar req_specs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22req-specs\x22,\x22req-specs\x22,553962313));\nvar req \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22req\x22,\x22req\x22,-326448303));\nvar req_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22req-keys\x22,\x22req-keys\x22,514319221));\nvar opt_specs \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22opt-specs\x22,\x22opt-specs\x22,-384905450));\nvar pred_forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__23935__$1,new cljs.core.Keyword(null,\x22pred-forms\x22,\x22pred-forms\x22,172611832));\nvar k__GT_s \x3d cljs.core.zipmap(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(req_keys,opt_keys),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(req_specs,opt_specs));\nvar keys__GT_specnames \x3d (function (p1__23923_SHARP_){\nvar or__5002__auto__ \x3d (k__GT_s.cljs$core$IFn$_invoke$arity$1 ? k__GT_s.cljs$core$IFn$_invoke$arity$1(p1__23923_SHARP_) : k__GT_s.call(null, p1__23923_SHARP_));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn p1__23923_SHARP_;\n}\n});\nvar id \x3d cljs.core.random_uuid();\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha23943(map__23935__$1,keys__GT_specnames,p__23934,opt,req_un,opt_un,gfn,pred_exprs,keys_pred,argm,opt_keys,req_specs,req,id,req_keys,opt_specs,k__GT_s,pred_forms,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24251 \x3d (function (form,pred,gfn,cpred_QMARK_,unc,meta24252){\nthis.form \x3d form;\nthis.pred \x3d pred;\nthis.gfn \x3d gfn;\nthis.cpred_QMARK_ \x3d cpred_QMARK_;\nthis.unc \x3d unc;\nthis.meta24252 \x3d meta24252;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24253,meta24252__$1){\nvar self__ \x3d this;\nvar _24253__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24251(self__.form,self__.pred,self__.gfn,self__.cpred_QMARK_,self__.unc,meta24252__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24253){\nvar self__ \x3d this;\nvar _24253__$1 \x3d this;\nreturn self__.meta24252;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar ret \x3d (self__.pred.cljs$core$IFn$_invoke$arity$1 ? self__.pred.cljs$core$IFn$_invoke$arity$1(x) : self__.pred.call(null, x));\nif(cljs.core.truth_(self__.cpred_QMARK_)){\nreturn ret;\n} else {\nif(cljs.core.truth_(ret)){\nreturn x;\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.cpred_QMARK_)){\nif(cljs.core.truth_(self__.unc)){\nreturn (self__.unc.cljs$core$IFn$_invoke$arity$1 ? self__.unc.cljs$core$IFn$_invoke$arity$1(x) : self__.unc.call(null, x));\n} else {\nthrow (new Error(\x22no unform fn for conformer\x22));\n}\n} else {\nreturn x;\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(self__.pred,x,self__.form,self__.cpred_QMARK_))){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.form,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nreturn null;\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,___$1,___$2,___$3){\nvar self__ \x3d this;\nvar ___$4 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nreturn cljs.spec.gen.alpha.gen_for_pred(self__.pred);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(self__.form,self__.pred,gfn__$1,self__.cpred_QMARK_,self__.unc);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn self__.form;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22cpred?\x22,\x22cpred?\x22,35589515,null),new cljs.core.Symbol(null,\x22unc\x22,\x22unc\x22,-465250751,null),new cljs.core.Symbol(null,\x22meta24252\x22,\x22meta24252\x22,1176173086,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24251\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24251.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24251\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24251.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24251 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24251(form,pred,gfn,cpred_QMARK_,unc,meta24252){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24251(form,pred,gfn,cpred_QMARK_,unc,meta24252));\n});\n\n\n/**\n * Do not call this directly, use \x27spec\x27\n */\ncljs.spec.alpha.spec_impl \x3d (function cljs$spec$alpha$spec_impl(var_args){\nvar G__24238 \x3d arguments.length;\nswitch (G__24238) {\ncase 4:\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4 \x3d (function (form,pred,gfn,cpred_QMARK_){\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(form,pred,gfn,cpred_QMARK_,null);\n}));\n\n(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5 \x3d (function (form,pred,gfn,cpred_QMARK_,unc){\nif(cljs.core.truth_(cljs.spec.alpha.spec_QMARK_(pred))){\nvar G__24244 \x3d pred;\nif(cljs.core.truth_(gfn)){\nreturn cljs.spec.alpha.with_gen(G__24244,gfn);\n} else {\nreturn G__24244;\n}\n} else {\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(pred))){\nreturn cljs.spec.alpha.regex_spec_impl(pred,gfn);\n} else {\nif(cljs.core.ident_QMARK_(pred)){\nvar G__24247 \x3d cljs.spec.alpha.the_spec(pred);\nif(cljs.core.truth_(gfn)){\nreturn cljs.spec.alpha.with_gen(G__24247,gfn);\n} else {\nreturn G__24247;\n}\n} else {\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24251(form,pred,gfn,cpred_QMARK_,unc,cljs.core.PersistentArrayMap.EMPTY));\n\n}\n}\n}\n}));\n\n(cljs.spec.alpha.spec_impl.cljs$lang$maxFixedArity \x3d 5);\n\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24325 \x3d (function (form,mmvar,retag,gfn,id,predx,dval,tag,meta24326){\nthis.form \x3d form;\nthis.mmvar \x3d mmvar;\nthis.retag \x3d retag;\nthis.gfn \x3d gfn;\nthis.id \x3d id;\nthis.predx \x3d predx;\nthis.dval \x3d dval;\nthis.tag \x3d tag;\nthis.meta24326 \x3d meta24326;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24327,meta24326__$1){\nvar self__ \x3d this;\nvar _24327__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24325(self__.form,self__.mmvar,self__.retag,self__.gfn,self__.id,self__.predx,self__.dval,self__.tag,meta24326__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24327){\nvar self__ \x3d this;\nvar _24327__$1 \x3d this;\nreturn self__.meta24326;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar temp__5802__auto__ \x3d (self__.predx.cljs$core$IFn$_invoke$arity$1 ? self__.predx.cljs$core$IFn$_invoke$arity$1(x) : self__.predx.call(null, x));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar pred \x3d temp__5802__auto__;\nreturn cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(pred,x,self__.form);\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar temp__5802__auto__ \x3d (self__.predx.cljs$core$IFn$_invoke$arity$1 ? self__.predx.cljs$core$IFn$_invoke$arity$1(x) : self__.predx.call(null, x));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar pred \x3d temp__5802__auto__;\nreturn cljs.spec.alpha.unform(pred,x);\n} else {\nthrow (new Error([\x22No method of: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.form),\x22 for dispatch value: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((self__.dval.cljs$core$IFn$_invoke$arity$1 ? self__.dval.cljs$core$IFn$_invoke$arity$1(x) : self__.dval.call(null, x)))].join(\x27\x27)));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar dv \x3d (self__.dval.cljs$core$IFn$_invoke$arity$1 ? self__.dval.cljs$core$IFn$_invoke$arity$1(x) : self__.dval.call(null, x));\nvar path__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,dv);\nvar temp__5802__auto__ \x3d (self__.predx.cljs$core$IFn$_invoke$arity$1 ? self__.predx.cljs$core$IFn$_invoke$arity$1(x) : self__.predx.call(null, x));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar pred \x3d temp__5802__auto__;\nreturn cljs.spec.alpha.explain_1(self__.form,pred,path__$1,via,in$,x);\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path__$1,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),self__.form,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),\x22no method\x22,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nvar gen \x3d (function (p__24374){\nvar vec__24377 \x3d p__24374;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24377,(0),null);\nvar f \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24377,(1),null);\nvar p \x3d (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(null) : f.call(null, null));\nvar rmap__$1 \x3d cljs.spec.alpha.inck(rmap,self__.id);\nif(cljs.spec.alpha.recur_limit_QMARK_(rmap__$1,self__.id,path,k)){\nreturn null;\n} else {\nreturn cljs.spec.gen.alpha.delay_impl((new cljs.core.Delay((function (){\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__24304_SHARP_){\nreturn (self__.tag.cljs$core$IFn$_invoke$arity$2 ? self__.tag.cljs$core$IFn$_invoke$arity$2(p1__24304_SHARP_,k) : self__.tag.call(null, p1__24304_SHARP_,k));\n}),cljs.spec.alpha.gensub(p,overrides,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),rmap__$1,(new cljs.core.List(null,new cljs.core.Symbol(null,\x22method\x22,\x22method\x22,1696235119,null),(new cljs.core.List(null,self__.form,(new cljs.core.List(null,k,null,(1),null)),(2),null)),(3),null)))], 0));\n}),null)));\n}\n});\nvar gs \x3d cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(gen,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__24385){\nvar vec__24386 \x3d p__24385;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24386,(0),null);\nreturn cljs.spec.alpha.invalid_QMARK_(k);\n}),cljs.core.methods$(cljs.core.deref(self__.mmvar)))));\nif(cljs.core.every_QMARK_(cljs.core.identity,gs)){\nreturn cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([gs], 0));\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(self__.form,self__.mmvar,self__.retag,gfn__$1);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22multi-spec\x22,\x22cljs.spec.alpha/multi-spec\x22,175821274,null),null,(1),null)),(new cljs.core.List(null,self__.form,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,self__.retag,null,(1),null))], 0))));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22mmvar\x22,\x22mmvar\x22,-1714325675,null),new cljs.core.Symbol(null,\x22retag\x22,\x22retag\x22,528972725,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22predx\x22,\x22predx\x22,2063470948,null),new cljs.core.Symbol(null,\x22dval\x22,\x22dval\x22,835211877,null),new cljs.core.Symbol(null,\x22tag\x22,\x22tag\x22,350170304,null),new cljs.core.Symbol(null,\x22meta24326\x22,\x22meta24326\x22,-412396611,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24325\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24325.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24325\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24325.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24325 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24325(form,mmvar,retag,gfn,id,predx,dval,tag,meta24326){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24325(form,mmvar,retag,gfn,id,predx,dval,tag,meta24326));\n});\n\n\n/**\n * Do not call this directly, use \x27multi-spec\x27\n */\ncljs.spec.alpha.multi_spec_impl \x3d (function cljs$spec$alpha$multi_spec_impl(var_args){\nvar G__24309 \x3d arguments.length;\nswitch (G__24309) {\ncase 3:\nreturn cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3 \x3d (function (form,mmvar,retag){\nreturn cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(form,mmvar,retag,null);\n}));\n\n(cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4 \x3d (function (form,mmvar,retag,gfn){\nvar id \x3d cljs.core.random_uuid();\nvar predx \x3d (function (p1__24299_SHARP_){\nvar mm \x3d cljs.core.deref(mmvar);\nvar and__5000__auto__ \x3d cljs.core._get_method(mm,(function (){var fexpr__24315 \x3d cljs.core._dispatch_fn(mm);\nreturn (fexpr__24315.cljs$core$IFn$_invoke$arity$1 ? fexpr__24315.cljs$core$IFn$_invoke$arity$1(p1__24299_SHARP_) : fexpr__24315.call(null, p1__24299_SHARP_));\n})());\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (mm.cljs$core$IFn$_invoke$arity$1 ? mm.cljs$core$IFn$_invoke$arity$1(p1__24299_SHARP_) : mm.call(null, p1__24299_SHARP_));\n} else {\nreturn and__5000__auto__;\n}\n});\nvar dval \x3d (function (p1__24300_SHARP_){\nvar fexpr__24317 \x3d cljs.core._dispatch_fn(cljs.core.deref(mmvar));\nreturn (fexpr__24317.cljs$core$IFn$_invoke$arity$1 ? fexpr__24317.cljs$core$IFn$_invoke$arity$1(p1__24300_SHARP_) : fexpr__24317.call(null, p1__24300_SHARP_));\n});\nvar tag \x3d (((retag instanceof cljs.core.Keyword))?(function (p1__24301_SHARP_,p2__24302_SHARP_){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__24301_SHARP_,retag,p2__24302_SHARP_);\n}):retag);\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24325(form,mmvar,retag,gfn,id,predx,dval,tag,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cljs.spec.alpha.multi_spec_impl.cljs$lang$maxFixedArity \x3d 4);\n\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24413 \x3d (function (forms,preds,gfn,specs,cnt,meta24414){\nthis.forms \x3d forms;\nthis.preds \x3d preds;\nthis.gfn \x3d gfn;\nthis.specs \x3d specs;\nthis.cnt \x3d cnt;\nthis.meta24414 \x3d meta24414;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24415,meta24414__$1){\nvar self__ \x3d this;\nvar _24415__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24413(self__.forms,self__.preds,self__.gfn,self__.specs,self__.cnt,meta24414__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24415){\nvar self__ \x3d this;\nvar _24415__$1 \x3d this;\nreturn self__.meta24414;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar specs__$1 \x3d cljs.core.deref(self__.specs);\nif((!(((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),self__.cnt)))))){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar ret \x3d x;\nvar i \x3d (0);\nwhile(true){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(i,self__.cnt)){\nreturn ret;\n} else {\nvar v \x3d (x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(i) : x.call(null, i));\nvar cv \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1(i) : specs__$1.call(null, i)),v);\nif(cljs.spec.alpha.invalid_QMARK_(cv)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar G__26599 \x3d (((cv \x3d\x3d\x3d v))?ret:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,i,cv));\nvar G__26600 \x3d (i + (1));\nret \x3d G__26599;\ni \x3d G__26600;\ncontinue;\n}\n}\nbreak;\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(((cljs.core.vector_QMARK_(x)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),cljs.core.count(self__.preds))))){\n} else {\nthrow (new Error(\x22Assert failed: (c/and (vector? x) (\x3d (count x) (count preds)))\x22));\n}\n\nvar ret \x3d x;\nvar i \x3d (0);\nwhile(true){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(i,cljs.core.count(x))){\nreturn ret;\n} else {\nvar cv \x3d (x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(i) : x.call(null, i));\nvar v \x3d cljs.spec.alpha.unform((self__.preds.cljs$core$IFn$_invoke$arity$1 ? self__.preds.cljs$core$IFn$_invoke$arity$1(i) : self__.preds.call(null, i)),cv);\nvar G__26606 \x3d (((cv \x3d\x3d\x3d v))?ret:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,i,v));\nvar G__26607 \x3d (i + (1));\nret \x3d G__26606;\ni \x3d G__26607;\ncontinue;\n}\nbreak;\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((!(cljs.core.vector_QMARK_(x)))){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Symbol(\x22cljs.core\x22,\x22vector?\x22,\x22cljs.core/vector?\x22,-1550392028,null),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(x),cljs.core.count(self__.preds))){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22\x3d\x22,\x22cljs.core/\x3d\x22,-1891498332,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22count\x22,\x22cljs.core/count\x22,-921270233,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.count(self__.preds),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.map.cljs$core$IFn$_invoke$arity$4((function (i,form,pred){\nvar v \x3d (x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(i) : x.call(null, i));\nif(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(pred,v)){\nreturn null;\n} else {\nreturn cljs.spec.alpha.explain_1(form,pred,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i),via,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,i),v);\n}\n}),cljs.core.range.cljs$core$IFn$_invoke$arity$1(cljs.core.count(self__.preds)),self__.forms,self__.preds));\n\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nvar gen \x3d (function (i,p,f){\nreturn cljs.spec.alpha.gensub(p,overrides,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,i),rmap,f);\n});\nvar gs \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$4(gen,cljs.core.range.cljs$core$IFn$_invoke$arity$1(cljs.core.count(self__.preds)),self__.preds,self__.forms);\nif(cljs.core.every_QMARK_(cljs.core.identity,gs)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,gs);\n} else {\nreturn null;\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(self__.forms,self__.preds,gfn__$1);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22tuple\x22,\x22cljs.spec.alpha/tuple\x22,-415901908,null),null,(1),null)),self__.forms)));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22forms\x22,\x22forms\x22,-608443419,null),new cljs.core.Symbol(null,\x22preds\x22,\x22preds\x22,150921777,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22specs\x22,\x22specs\x22,-1227865028,null),new cljs.core.Symbol(null,\x22cnt\x22,\x22cnt\x22,1924510325,null),new cljs.core.Symbol(null,\x22meta24414\x22,\x22meta24414\x22,-2063964322,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24413\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24413.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24413\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24413.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24413 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24413(forms,preds,gfn,specs,cnt,meta24414){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24413(forms,preds,gfn,specs,cnt,meta24414));\n});\n\n\n/**\n * Do not call this directly, use \x27tuple\x27\n */\ncljs.spec.alpha.tuple_impl \x3d (function cljs$spec$alpha$tuple_impl(var_args){\nvar G__24406 \x3d arguments.length;\nswitch (G__24406) {\ncase 2:\nreturn cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2 \x3d (function (forms,preds){\nreturn cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(forms,preds,null);\n}));\n\n(cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3 \x3d (function (forms,preds,gfn){\nvar specs \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.specize,preds,forms);\n}),null));\nvar cnt \x3d cljs.core.count(preds);\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24413(forms,preds,gfn,specs,cnt,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cljs.spec.alpha.tuple_impl.cljs$lang$maxFixedArity \x3d 3);\n\ncljs.spec.alpha.tagged_ret \x3d (function cljs$spec$alpha$tagged_ret(tag,ret){\nreturn (new cljs.core.MapEntry(tag,ret,null));\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24537 \x3d (function (keys,forms,preds,gfn,id,kps,specs,cform,meta24538){\nthis.keys \x3d keys;\nthis.forms \x3d forms;\nthis.preds \x3d preds;\nthis.gfn \x3d gfn;\nthis.id \x3d id;\nthis.kps \x3d kps;\nthis.specs \x3d specs;\nthis.cform \x3d cform;\nthis.meta24538 \x3d meta24538;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24539,meta24538__$1){\nvar self__ \x3d this;\nvar _24539__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24537(self__.keys,self__.forms,self__.preds,self__.gfn,self__.id,self__.kps,self__.specs,self__.cform,meta24538__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24539){\nvar self__ \x3d this;\nvar _24539__$1 \x3d this;\nreturn self__.meta24538;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.cform.cljs$core$IFn$_invoke$arity$1 ? self__.cform.cljs$core$IFn$_invoke$arity$1(x) : self__.cform.call(null, x));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,p__24541){\nvar self__ \x3d this;\nvar vec__24543 \x3d p__24541;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24543,(0),null);\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24543,(1),null);\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.unform((self__.kps.cljs$core$IFn$_invoke$arity$1 ? self__.kps.cljs$core$IFn$_invoke$arity$1(k) : self__.kps.call(null, k)),x);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (this$,path,via,in$,x){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nif(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(this$__$1,x)){\nreturn null;\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.map.cljs$core$IFn$_invoke$arity$4((function (k,form,pred){\nif(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(pred,x)){\nreturn null;\n} else {\nreturn cljs.spec.alpha.explain_1(form,pred,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),via,in$,x);\n}\n}),self__.keys,self__.forms,self__.preds));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nvar gen \x3d (function (k,p,f){\nvar rmap__$1 \x3d cljs.spec.alpha.inck(rmap,self__.id);\nif(cljs.spec.alpha.recur_limit_QMARK_(rmap__$1,self__.id,path,k)){\nreturn null;\n} else {\nreturn cljs.spec.gen.alpha.delay_impl((new cljs.core.Delay((function (){\nreturn cljs.spec.alpha.gensub(p,overrides,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k),rmap__$1,f);\n}),null)));\n}\n});\nvar gs \x3d cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$4(gen,self__.keys,self__.preds,self__.forms));\nif(cljs.core.empty_QMARK_(gs)){\nreturn null;\n} else {\nreturn cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([gs], 0));\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (cljs.spec.alpha.or_spec_impl.cljs$core$IFn$_invoke$arity$4 ? cljs.spec.alpha.or_spec_impl.cljs$core$IFn$_invoke$arity$4(self__.keys,self__.forms,self__.preds,gfn__$1) : cljs.spec.alpha.or_spec_impl.call(null, self__.keys,self__.forms,self__.preds,gfn__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22or\x22,\x22cljs.spec.alpha/or\x22,-831679639,null),null,(1),null)),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.keys,self__.forms], 0)))));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22keys\x22,\x22keys\x22,-1586012071,null),new cljs.core.Symbol(null,\x22forms\x22,\x22forms\x22,-608443419,null),new cljs.core.Symbol(null,\x22preds\x22,\x22preds\x22,150921777,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22id\x22,\x22id\x22,252129435,null),new cljs.core.Symbol(null,\x22kps\x22,\x22kps\x22,-1157342767,null),new cljs.core.Symbol(null,\x22specs\x22,\x22specs\x22,-1227865028,null),new cljs.core.Symbol(null,\x22cform\x22,\x22cform\x22,1319506748,null),new cljs.core.Symbol(null,\x22meta24538\x22,\x22meta24538\x22,-2092730871,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24537\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24537.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24537\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24537.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24537 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24537(keys,forms,preds,gfn,id,kps,specs,cform,meta24538){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24537(keys,forms,preds,gfn,id,kps,specs,cform,meta24538));\n});\n\n\n/**\n * Do not call this directly, use \x27or\x27\n */\ncljs.spec.alpha.or_spec_impl \x3d (function cljs$spec$alpha$or_spec_impl(keys,forms,preds,gfn){\nvar id \x3d cljs.core.random_uuid();\nvar kps \x3d cljs.core.zipmap(keys,preds);\nvar specs \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.specize,preds,forms);\n}),null));\nvar cform \x3d (function (){var G__24520 \x3d cljs.core.count(preds);\nswitch (G__24520) {\ncase (2):\nreturn (function (x){\nvar specs__$1 \x3d cljs.core.deref(specs);\nvar ret \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((0)) : specs__$1.call(null, (0))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret)){\nvar ret__$1 \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((1)) : specs__$1.call(null, (1))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret__$1)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nreturn cljs.spec.alpha.tagged_ret((keys.cljs$core$IFn$_invoke$arity$1 ? keys.cljs$core$IFn$_invoke$arity$1((1)) : keys.call(null, (1))),ret__$1);\n}\n} else {\nreturn cljs.spec.alpha.tagged_ret((keys.cljs$core$IFn$_invoke$arity$1 ? keys.cljs$core$IFn$_invoke$arity$1((0)) : keys.call(null, (0))),ret);\n}\n});\n\nbreak;\ncase (3):\nreturn (function (x){\nvar specs__$1 \x3d cljs.core.deref(specs);\nvar ret \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((0)) : specs__$1.call(null, (0))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret)){\nvar ret__$1 \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((1)) : specs__$1.call(null, (1))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret__$1)){\nvar ret__$2 \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((2)) : specs__$1.call(null, (2))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret__$2)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nreturn cljs.spec.alpha.tagged_ret((keys.cljs$core$IFn$_invoke$arity$1 ? keys.cljs$core$IFn$_invoke$arity$1((2)) : keys.call(null, (2))),ret__$2);\n}\n} else {\nreturn cljs.spec.alpha.tagged_ret((keys.cljs$core$IFn$_invoke$arity$1 ? keys.cljs$core$IFn$_invoke$arity$1((1)) : keys.call(null, (1))),ret__$1);\n}\n} else {\nreturn cljs.spec.alpha.tagged_ret((keys.cljs$core$IFn$_invoke$arity$1 ? keys.cljs$core$IFn$_invoke$arity$1((0)) : keys.call(null, (0))),ret);\n}\n});\n\nbreak;\ndefault:\nreturn (function (x){\nvar specs__$1 \x3d cljs.core.deref(specs);\nvar i \x3d (0);\nwhile(true){\nif((i \x3c cljs.core.count(specs__$1))){\nvar spec \x3d (specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1(i) : specs__$1.call(null, i));\nvar ret \x3d cljs.spec.alpha.conform_STAR_(spec,x);\nif(cljs.spec.alpha.invalid_QMARK_(ret)){\nvar G__26655 \x3d (i + (1));\ni \x3d G__26655;\ncontinue;\n} else {\nreturn cljs.spec.alpha.tagged_ret((keys.cljs$core$IFn$_invoke$arity$1 ? keys.cljs$core$IFn$_invoke$arity$1(i) : keys.call(null, i)),ret);\n}\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\nbreak;\n}\n});\n\n}\n})();\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24537(keys,forms,preds,gfn,id,kps,specs,cform,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.spec.alpha.and_preds \x3d (function cljs$spec$alpha$and_preds(x,preds,forms){\nvar ret \x3d x;\nvar G__24599 \x3d preds;\nvar vec__24602 \x3d G__24599;\nvar seq__24603 \x3d cljs.core.seq(vec__24602);\nvar first__24604 \x3d cljs.core.first(seq__24603);\nvar seq__24603__$1 \x3d cljs.core.next(seq__24603);\nvar pred \x3d first__24604;\nvar preds__$1 \x3d seq__24603__$1;\nvar G__24600 \x3d forms;\nvar vec__24605 \x3d G__24600;\nvar seq__24606 \x3d cljs.core.seq(vec__24605);\nvar first__24607 \x3d cljs.core.first(seq__24606);\nvar seq__24606__$1 \x3d cljs.core.next(seq__24606);\nvar form \x3d first__24607;\nvar forms__$1 \x3d seq__24606__$1;\nvar ret__$1 \x3d ret;\nvar G__24599__$1 \x3d G__24599;\nvar G__24600__$1 \x3d G__24600;\nwhile(true){\nvar ret__$2 \x3d ret__$1;\nvar vec__24611 \x3d G__24599__$1;\nvar seq__24612 \x3d cljs.core.seq(vec__24611);\nvar first__24613 \x3d cljs.core.first(seq__24612);\nvar seq__24612__$1 \x3d cljs.core.next(seq__24612);\nvar pred__$1 \x3d first__24613;\nvar preds__$2 \x3d seq__24612__$1;\nvar vec__24614 \x3d G__24600__$1;\nvar seq__24615 \x3d cljs.core.seq(vec__24614);\nvar first__24616 \x3d cljs.core.first(seq__24615);\nvar seq__24615__$1 \x3d cljs.core.next(seq__24615);\nvar form__$1 \x3d first__24616;\nvar forms__$2 \x3d seq__24615__$1;\nif(cljs.core.truth_(pred__$1)){\nvar nret \x3d cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(pred__$1,ret__$2,form__$1);\nif(cljs.spec.alpha.invalid_QMARK_(nret)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar G__26659 \x3d nret;\nvar G__26660 \x3d preds__$2;\nvar G__26661 \x3d forms__$2;\nret__$1 \x3d G__26659;\nG__24599__$1 \x3d G__26660;\nG__24600__$1 \x3d G__26661;\ncontinue;\n}\n} else {\nreturn ret__$2;\n}\nbreak;\n}\n});\ncljs.spec.alpha.explain_pred_list \x3d (function cljs$spec$alpha$explain_pred_list(forms,preds,path,via,in$,x){\nvar ret \x3d x;\nvar G__24634 \x3d forms;\nvar vec__24636 \x3d G__24634;\nvar seq__24637 \x3d cljs.core.seq(vec__24636);\nvar first__24638 \x3d cljs.core.first(seq__24637);\nvar seq__24637__$1 \x3d cljs.core.next(seq__24637);\nvar form \x3d first__24638;\nvar forms__$1 \x3d seq__24637__$1;\nvar G__24635 \x3d preds;\nvar vec__24639 \x3d G__24635;\nvar seq__24640 \x3d cljs.core.seq(vec__24639);\nvar first__24641 \x3d cljs.core.first(seq__24640);\nvar seq__24640__$1 \x3d cljs.core.next(seq__24640);\nvar pred \x3d first__24641;\nvar preds__$1 \x3d seq__24640__$1;\nvar ret__$1 \x3d ret;\nvar G__24634__$1 \x3d G__24634;\nvar G__24635__$1 \x3d G__24635;\nwhile(true){\nvar ret__$2 \x3d ret__$1;\nvar vec__24649 \x3d G__24634__$1;\nvar seq__24650 \x3d cljs.core.seq(vec__24649);\nvar first__24651 \x3d cljs.core.first(seq__24650);\nvar seq__24650__$1 \x3d cljs.core.next(seq__24650);\nvar form__$1 \x3d first__24651;\nvar forms__$2 \x3d seq__24650__$1;\nvar vec__24652 \x3d G__24635__$1;\nvar seq__24653 \x3d cljs.core.seq(vec__24652);\nvar first__24654 \x3d cljs.core.first(seq__24653);\nvar seq__24653__$1 \x3d cljs.core.next(seq__24653);\nvar pred__$1 \x3d first__24654;\nvar preds__$2 \x3d seq__24653__$1;\nif(cljs.core.truth_(pred__$1)){\nvar nret \x3d cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(pred__$1,ret__$2,form__$1);\nif(cljs.spec.alpha.invalid_QMARK_(nret)){\nreturn cljs.spec.alpha.explain_1(form__$1,pred__$1,path,via,in$,ret__$2);\n} else {\nvar G__26664 \x3d nret;\nvar G__26665 \x3d forms__$2;\nvar G__26666 \x3d preds__$2;\nret__$1 \x3d G__26664;\nG__24634__$1 \x3d G__26665;\nG__24635__$1 \x3d G__26666;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24666 \x3d (function (forms,preds,gfn,specs,cform,meta24667){\nthis.forms \x3d forms;\nthis.preds \x3d preds;\nthis.gfn \x3d gfn;\nthis.specs \x3d specs;\nthis.cform \x3d cform;\nthis.meta24667 \x3d meta24667;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24668,meta24667__$1){\nvar self__ \x3d this;\nvar _24668__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24666(self__.forms,self__.preds,self__.gfn,self__.specs,self__.cform,meta24667__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24668){\nvar self__ \x3d this;\nvar _24668__$1 \x3d this;\nreturn self__.meta24667;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (self__.cform.cljs$core$IFn$_invoke$arity$1 ? self__.cform.cljs$core$IFn$_invoke$arity$1(x) : self__.cform.call(null, x));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__24656_SHARP_,p2__24655_SHARP_){\nreturn cljs.spec.alpha.unform(p2__24655_SHARP_,p1__24656_SHARP_);\n}),x,cljs.core.reverse(self__.preds));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.explain_pred_list(self__.forms,self__.preds,path,via,in$,x);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nreturn cljs.spec.alpha.gensub(cljs.core.first(self__.preds),overrides,path,rmap,cljs.core.first(self__.forms));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (cljs.spec.alpha.and_spec_impl.cljs$core$IFn$_invoke$arity$3 ? cljs.spec.alpha.and_spec_impl.cljs$core$IFn$_invoke$arity$3(self__.forms,self__.preds,gfn__$1) : cljs.spec.alpha.and_spec_impl.call(null, self__.forms,self__.preds,gfn__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22and\x22,\x22cljs.spec.alpha/and\x22,-2060279705,null),null,(1),null)),self__.forms)));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22forms\x22,\x22forms\x22,-608443419,null),new cljs.core.Symbol(null,\x22preds\x22,\x22preds\x22,150921777,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22specs\x22,\x22specs\x22,-1227865028,null),new cljs.core.Symbol(null,\x22cform\x22,\x22cform\x22,1319506748,null),new cljs.core.Symbol(null,\x22meta24667\x22,\x22meta24667\x22,-772361745,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24666\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24666.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24666\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24666.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24666 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24666(forms,preds,gfn,specs,cform,meta24667){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24666(forms,preds,gfn,specs,cform,meta24667));\n});\n\n\n/**\n * Do not call this directly, use \x27and\x27\n */\ncljs.spec.alpha.and_spec_impl \x3d (function cljs$spec$alpha$and_spec_impl(forms,preds,gfn){\nvar specs \x3d (new cljs.core.Delay((function (){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.specize,preds,forms);\n}),null));\nvar cform \x3d (function (){var G__24661 \x3d cljs.core.count(preds);\nswitch (G__24661) {\ncase (2):\nreturn (function (x){\nvar specs__$1 \x3d cljs.core.deref(specs);\nvar ret \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((0)) : specs__$1.call(null, (0))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nreturn cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((1)) : specs__$1.call(null, (1))),ret);\n}\n});\n\nbreak;\ncase (3):\nreturn (function (x){\nvar specs__$1 \x3d cljs.core.deref(specs);\nvar ret \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((0)) : specs__$1.call(null, (0))),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar ret__$1 \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((1)) : specs__$1.call(null, (1))),ret);\nif(cljs.spec.alpha.invalid_QMARK_(ret__$1)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nreturn cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1((2)) : specs__$1.call(null, (2))),ret__$1);\n}\n}\n});\n\nbreak;\ndefault:\nreturn (function (x){\nvar specs__$1 \x3d cljs.core.deref(specs);\nvar ret \x3d x;\nvar i \x3d (0);\nwhile(true){\nif((i \x3c cljs.core.count(specs__$1))){\nvar nret \x3d cljs.spec.alpha.conform_STAR_((specs__$1.cljs$core$IFn$_invoke$arity$1 ? specs__$1.cljs$core$IFn$_invoke$arity$1(i) : specs__$1.call(null, i)),ret);\nif(cljs.spec.alpha.invalid_QMARK_(nret)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar G__26683 \x3d nret;\nvar G__26684 \x3d (i + (1));\nret \x3d G__26683;\ni \x3d G__26684;\ncontinue;\n}\n} else {\nreturn ret;\n}\nbreak;\n}\n});\n\n}\n})();\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24666(forms,preds,gfn,specs,cform,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.spec.alpha.coll_prob \x3d (function cljs$spec$alpha$coll_prob(x,kfn,kform,distinct,count,min_count,max_count,path,via,in$){\nvar pred \x3d (function (){var or__5002__auto__ \x3d kfn;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.coll_QMARK_;\n}\n})();\nvar kform__$1 \x3d (function (){var or__5002__auto__ \x3d kform;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn new cljs.core.Symbol(\x22cljs.core\x22,\x22coll?\x22,\x22cljs.core/coll?\x22,1208130522,null);\n}\n})();\nif((!(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(pred,x)))){\nreturn cljs.spec.alpha.explain_1(kform__$1,pred,path,via,in$,x);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d count;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(count,cljs.core.bounded_count(count,x));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22\x3d\x22,\x22cljs.core/\x3d\x22,-1891498332,null),null,(1),null)),(new cljs.core.List(null,count,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22count\x22,\x22cljs.core/count\x22,-921270233,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),null,(1),null))))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d (function (){var or__5002__auto__ \x3d min_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn max_count;\n}\n})();\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (!(((((function (){var or__5002__auto__ \x3d min_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (0);\n}\n})() \x3c\x3d cljs.core.bounded_count((cljs.core.truth_(max_count)?(max_count + (1)):min_count),x))) \x26\x26 ((cljs.core.bounded_count((cljs.core.truth_(max_count)?(max_count + (1)):min_count),x) \x3c\x3d (function (){var or__5002__auto__ \x3d max_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (9007199254740991);\n}\n})())))));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22\x3c\x3d\x22,\x22cljs.core/\x3c\x3d\x22,1677001748,null),null,(1),null)),(new cljs.core.List(null,(function (){var or__5002__auto__ \x3d min_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (0);\n}\n})(),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22count\x22,\x22cljs.core/count\x22,-921270233,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),null,(1),null))))),null,(1),null)),(new cljs.core.List(null,(function (){var or__5002__auto__ \x3d max_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (9007199254740991);\n}\n})(),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d distinct;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn (((!(cljs.core.empty_QMARK_(x)))) \x26\x26 (cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct_QMARK_,x))));\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Symbol(null,\x22distinct?\x22,\x22distinct?\x22,-1684357959,null),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nreturn null;\n}\n}\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24767 \x3d (function (forms,preds,gfn,meta24768){\nthis.forms \x3d forms;\nthis.preds \x3d preds;\nthis.gfn \x3d gfn;\nthis.meta24768 \x3d meta24768;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24769,meta24768__$1){\nvar self__ \x3d this;\nvar _24769__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24767(self__.forms,self__.preds,self__.gfn,meta24768__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24769){\nvar self__ \x3d this;\nvar _24769__$1 \x3d this;\nreturn self__.meta24768;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar ms \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (p1__24758_SHARP_,p2__24759_SHARP_){\nreturn cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(p1__24758_SHARP_,x,p2__24759_SHARP_);\n}),self__.preds,self__.forms);\nif(cljs.core.truth_(cljs.core.some(cljs.spec.alpha.invalid_QMARK_,ms))){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,ms);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__24761_SHARP_){\nreturn cljs.spec.alpha.unform(p1__24761_SHARP_,x);\n}),cljs.core.reverse(self__.preds)));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (p1__24762_SHARP_,p2__24763_SHARP_){\nreturn cljs.spec.alpha.explain_1(p1__24762_SHARP_,p2__24763_SHARP_,path,via,in$,x);\n}),self__.forms,self__.preds));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__24764_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,p1__24764_SHARP_);\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (p1__24765_SHARP_,p2__24766_SHARP_){\nreturn cljs.spec.alpha.gensub(p1__24765_SHARP_,overrides,path,rmap,p2__24766_SHARP_);\n}),self__.preds,self__.forms))], 0));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (cljs.spec.alpha.merge_spec_impl.cljs$core$IFn$_invoke$arity$3 ? cljs.spec.alpha.merge_spec_impl.cljs$core$IFn$_invoke$arity$3(self__.forms,self__.preds,gfn__$1) : cljs.spec.alpha.merge_spec_impl.call(null, self__.forms,self__.preds,gfn__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22merge\x22,\x22cljs.spec.alpha/merge\x22,1420080689,null),null,(1),null)),self__.forms)));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22forms\x22,\x22forms\x22,-608443419,null),new cljs.core.Symbol(null,\x22preds\x22,\x22preds\x22,150921777,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22meta24768\x22,\x22meta24768\x22,1573926671,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24767\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24767.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24767\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24767.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24767 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24767(forms,preds,gfn,meta24768){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24767(forms,preds,gfn,meta24768));\n});\n\n\n/**\n * Do not call this directly, use \x27merge\x27\n */\ncljs.spec.alpha.merge_spec_impl \x3d (function cljs$spec$alpha$merge_spec_impl(forms,preds,gfn){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24767(forms,preds,gfn,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.spec.alpha.empty_coll \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Symbol(\x22cljs.core\x22,\x22vector?\x22,\x22cljs.core/vector?\x22,-1550392028,null),cljs.core.PersistentVector.EMPTY,new cljs.core.Symbol(\x22cljs.core\x22,\x22set?\x22,\x22cljs.core/set?\x22,-1176684971,null),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Symbol(\x22cljs.core\x22,\x22list?\x22,\x22cljs.core/list?\x22,-684796618,null),cljs.core.List.EMPTY,new cljs.core.Symbol(\x22cljs.core\x22,\x22map?\x22,\x22cljs.core/map?\x22,-1390345523,null),cljs.core.PersistentArrayMap.EMPTY], null);\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha24951 \x3d (function (form,max_count,check_QMARK_,gfn,gen_max,pred,cpred,conform_keys,kind_form,addcv,cfns,describe_form,distinct,map__24816,p__24815,spec,kfn,gen_into,count,min_count,opts,kind,conform_all,conform_into,meta24952){\nthis.form \x3d form;\nthis.max_count \x3d max_count;\nthis.check_QMARK_ \x3d check_QMARK_;\nthis.gfn \x3d gfn;\nthis.gen_max \x3d gen_max;\nthis.pred \x3d pred;\nthis.cpred \x3d cpred;\nthis.conform_keys \x3d conform_keys;\nthis.kind_form \x3d kind_form;\nthis.addcv \x3d addcv;\nthis.cfns \x3d cfns;\nthis.describe_form \x3d describe_form;\nthis.distinct \x3d distinct;\nthis.map__24816 \x3d map__24816;\nthis.p__24815 \x3d p__24815;\nthis.spec \x3d spec;\nthis.kfn \x3d kfn;\nthis.gen_into \x3d gen_into;\nthis.count \x3d count;\nthis.min_count \x3d min_count;\nthis.opts \x3d opts;\nthis.kind \x3d kind;\nthis.conform_all \x3d conform_all;\nthis.conform_into \x3d conform_into;\nthis.meta24952 \x3d meta24952;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_24953,meta24952__$1){\nvar self__ \x3d this;\nvar _24953__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24951(self__.form,self__.max_count,self__.check_QMARK_,self__.gfn,self__.gen_max,self__.pred,self__.cpred,self__.conform_keys,self__.kind_form,self__.addcv,self__.cfns,self__.describe_form,self__.distinct,self__.map__24816,self__.p__24815,self__.spec,self__.kfn,self__.gen_into,self__.count,self__.min_count,self__.opts,self__.kind,self__.conform_all,self__.conform_into,meta24952__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_24953){\nvar self__ \x3d this;\nvar _24953__$1 \x3d this;\nreturn self__.meta24952;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar spec__$1 \x3d cljs.core.deref(self__.spec);\nif(cljs.core.not((self__.cpred.cljs$core$IFn$_invoke$arity$1 ? self__.cpred.cljs$core$IFn$_invoke$arity$1(x) : self__.cpred.call(null, x)))){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nif(cljs.core.truth_(self__.conform_all)){\nvar vec__24986 \x3d (self__.cfns.cljs$core$IFn$_invoke$arity$1 ? self__.cfns.cljs$core$IFn$_invoke$arity$1(x) : self__.cfns.call(null, x));\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24986,(0),null);\nvar add \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24986,(1),null);\nvar complete \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__24986,(2),null);\nvar ret \x3d (init.cljs$core$IFn$_invoke$arity$1 ? init.cljs$core$IFn$_invoke$arity$1(x) : init.call(null, x));\nvar i \x3d (0);\nvar G__24993 \x3d cljs.core.seq(x);\nvar vec__24995 \x3d G__24993;\nvar seq__24996 \x3d cljs.core.seq(vec__24995);\nvar first__24997 \x3d cljs.core.first(seq__24996);\nvar seq__24996__$1 \x3d cljs.core.next(seq__24996);\nvar v \x3d first__24997;\nvar vs \x3d seq__24996__$1;\nvar vseq \x3d vec__24995;\nvar ret__$1 \x3d ret;\nvar i__$1 \x3d i;\nvar G__24993__$1 \x3d G__24993;\nwhile(true){\nvar ret__$2 \x3d ret__$1;\nvar i__$2 \x3d i__$1;\nvar vec__25000 \x3d G__24993__$1;\nvar seq__25001 \x3d cljs.core.seq(vec__25000);\nvar first__25002 \x3d cljs.core.first(seq__25001);\nvar seq__25001__$1 \x3d cljs.core.next(seq__25001);\nvar v__$1 \x3d first__25002;\nvar vs__$1 \x3d seq__25001__$1;\nvar vseq__$1 \x3d vec__25000;\nif(vseq__$1){\nvar cv \x3d cljs.spec.alpha.conform_STAR_(spec__$1,v__$1);\nif(cljs.spec.alpha.invalid_QMARK_(cv)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nvar G__26718 \x3d (add.cljs$core$IFn$_invoke$arity$4 ? add.cljs$core$IFn$_invoke$arity$4(ret__$2,i__$2,v__$1,cv) : add.call(null, ret__$2,i__$2,v__$1,cv));\nvar G__26719 \x3d (i__$2 + (1));\nvar G__26720 \x3d vs__$1;\nret__$1 \x3d G__26718;\ni__$1 \x3d G__26719;\nG__24993__$1 \x3d G__26720;\ncontinue;\n}\n} else {\nreturn (complete.cljs$core$IFn$_invoke$arity$1 ? complete.cljs$core$IFn$_invoke$arity$1(ret__$2) : complete.call(null, ret__$2));\n}\nbreak;\n}\n} else {\nif(cljs.core.indexed_QMARK_(x)){\nvar step \x3d (function (){var x__5087__auto__ \x3d (1);\nvar y__5088__auto__ \x3d cljs.core.long$((cljs.core.count(x) / cljs.spec.alpha._STAR_coll_check_limit_STAR_));\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n})();\nvar i \x3d (0);\nwhile(true){\nif((i \x3e\x3d cljs.core.count(x))){\nreturn x;\n} else {\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(spec__$1,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(x,i))){\nvar G__26728 \x3d (i + step);\ni \x3d G__26728;\ncontinue;\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}\nbreak;\n}\n} else {\nvar limit \x3d cljs.spec.alpha._STAR_coll_check_limit_STAR_;\nvar i \x3d (0);\nvar G__25014 \x3d cljs.core.seq(x);\nvar vec__25015 \x3d G__25014;\nvar seq__25016 \x3d cljs.core.seq(vec__25015);\nvar first__25017 \x3d cljs.core.first(seq__25016);\nvar seq__25016__$1 \x3d cljs.core.next(seq__25016);\nvar v \x3d first__25017;\nvar vs \x3d seq__25016__$1;\nvar vseq \x3d vec__25015;\nvar i__$1 \x3d i;\nvar G__25014__$1 \x3d G__25014;\nwhile(true){\nvar i__$2 \x3d i__$1;\nvar vec__25029 \x3d G__25014__$1;\nvar seq__25030 \x3d cljs.core.seq(vec__25029);\nvar first__25031 \x3d cljs.core.first(seq__25030);\nvar seq__25030__$1 \x3d cljs.core.next(seq__25030);\nvar v__$1 \x3d first__25031;\nvar vs__$1 \x3d seq__25030__$1;\nvar vseq__$1 \x3d vec__25029;\nif((((vseq__$1 \x3d\x3d null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(i__$2,limit)))){\nreturn x;\n} else {\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(spec__$1,v__$1)){\nvar G__26729 \x3d (i__$2 + (1));\nvar G__26730 \x3d vs__$1;\ni__$1 \x3d G__26729;\nG__25014__$1 \x3d G__26730;\ncontinue;\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n\n}\n}\nbreak;\n}\n}\n\n}\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.conform_all)){\nvar spec__$1 \x3d cljs.core.deref(self__.spec);\nvar vec__25037 \x3d (self__.cfns.cljs$core$IFn$_invoke$arity$1 ? self__.cfns.cljs$core$IFn$_invoke$arity$1(x) : self__.cfns.call(null, x));\nvar init \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25037,(0),null);\nvar add \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25037,(1),null);\nvar complete \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25037,(2),null);\nvar ret \x3d (init.cljs$core$IFn$_invoke$arity$1 ? init.cljs$core$IFn$_invoke$arity$1(x) : init.call(null, x));\nvar i \x3d (0);\nvar G__25044 \x3d cljs.core.seq(x);\nvar vec__25046 \x3d G__25044;\nvar seq__25047 \x3d cljs.core.seq(vec__25046);\nvar first__25048 \x3d cljs.core.first(seq__25047);\nvar seq__25047__$1 \x3d cljs.core.next(seq__25047);\nvar v \x3d first__25048;\nvar vs \x3d seq__25047__$1;\nvar vseq \x3d vec__25046;\nvar ret__$1 \x3d ret;\nvar i__$1 \x3d i;\nvar G__25044__$1 \x3d G__25044;\nwhile(true){\nvar ret__$2 \x3d ret__$1;\nvar i__$2 \x3d i__$1;\nvar vec__25053 \x3d G__25044__$1;\nvar seq__25054 \x3d cljs.core.seq(vec__25053);\nvar first__25055 \x3d cljs.core.first(seq__25054);\nvar seq__25054__$1 \x3d cljs.core.next(seq__25054);\nvar v__$1 \x3d first__25055;\nvar vs__$1 \x3d seq__25054__$1;\nvar vseq__$1 \x3d vec__25053;\nif((i__$2 \x3e\x3d cljs.core.count(x))){\nreturn (complete.cljs$core$IFn$_invoke$arity$1 ? complete.cljs$core$IFn$_invoke$arity$1(ret__$2) : complete.call(null, ret__$2));\n} else {\nvar G__26737 \x3d (function (){var G__25058 \x3d ret__$2;\nvar G__25059 \x3d i__$2;\nvar G__25060 \x3d v__$1;\nvar G__25061 \x3d cljs.spec.alpha.unform_STAR_(spec__$1,v__$1);\nreturn (add.cljs$core$IFn$_invoke$arity$4 ? add.cljs$core$IFn$_invoke$arity$4(G__25058,G__25059,G__25060,G__25061) : add.call(null, G__25058,G__25059,G__25060,G__25061));\n})();\nvar G__26738 \x3d (i__$2 + (1));\nvar G__26739 \x3d vs__$1;\nret__$1 \x3d G__26737;\ni__$1 \x3d G__26738;\nG__25044__$1 \x3d G__26739;\ncontinue;\n}\nbreak;\n}\n} else {\nreturn x;\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar or__5002__auto__ \x3d cljs.spec.alpha.coll_prob(x,self__.kind,self__.kind_form,self__.distinct,self__.count,self__.min_count,self__.max_count,path,via,in$);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,(function (){var G__25066 \x3d cljs.core.keep.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (i,v){\nvar k \x3d (self__.kfn.cljs$core$IFn$_invoke$arity$2 ? self__.kfn.cljs$core$IFn$_invoke$arity$2(i,v) : self__.kfn.call(null, i,v));\nif(cljs.core.truth_((self__.check_QMARK_.cljs$core$IFn$_invoke$arity$1 ? self__.check_QMARK_.cljs$core$IFn$_invoke$arity$1(v) : self__.check_QMARK_.call(null, v)))){\nreturn null;\n} else {\nvar prob \x3d cljs.spec.alpha.explain_1(self__.form,self__.pred,path,via,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,k),v);\nreturn prob;\n}\n}),cljs.core.range.cljs$core$IFn$_invoke$arity$0(),x));\nvar fexpr__25065 \x3d (cljs.core.truth_(self__.conform_all)?cljs.core.identity:cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.take,cljs.spec.alpha._STAR_coll_error_limit_STAR_));\nreturn (fexpr__25065.cljs$core$IFn$_invoke$arity$1 ? fexpr__25065.cljs$core$IFn$_invoke$arity$1(G__25066) : fexpr__25065.call(null, G__25066));\n})());\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nvar pgen \x3d cljs.spec.alpha.gensub(self__.pred,overrides,path,rmap,self__.form);\nreturn cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(self__.gen_into)?cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.gen_into], 0)):(cljs.core.truth_(self__.kind)?cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__24805_SHARP_){\nif(cljs.core.empty_QMARK_(p1__24805_SHARP_)){\nreturn p1__24805_SHARP_;\n} else {\nreturn cljs.core.empty(p1__24805_SHARP_);\n}\n}),cljs.spec.alpha.gensub(self__.kind,overrides,path,rmap,self__.form)], 0)):cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentVector.EMPTY], 0))\n)),(function (init){\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__24806_SHARP_){\nif(cljs.core.vector_QMARK_(init)){\nreturn p1__24806_SHARP_;\n} else {\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(init,p1__24806_SHARP_);\n}\n}),(cljs.core.truth_(self__.distinct)?(cljs.core.truth_(self__.count)?cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pgen,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22num-elements\x22,\x22num-elements\x22,1960422107),self__.count,new cljs.core.Keyword(null,\x22max-tries\x22,\x22max-tries\x22,-1824441792),(100)], null)], 0)):cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pgen,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22min-elements\x22,\x22min-elements\x22,949370780),(function (){var or__5002__auto__ \x3d self__.min_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (0);\n}\n})(),new cljs.core.Keyword(null,\x22max-elements\x22,\x22max-elements\x22,433034073),(function (){var or__5002__auto__ \x3d self__.max_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar x__5087__auto__ \x3d self__.gen_max;\nvar y__5088__auto__ \x3d ((2) * (function (){var or__5002__auto____$1 \x3d self__.min_count;\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn (0);\n}\n})());\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n}\n})(),new cljs.core.Keyword(null,\x22max-tries\x22,\x22max-tries\x22,-1824441792),(100)], null)], 0))):(cljs.core.truth_(self__.count)?cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pgen,self__.count], 0)):(cljs.core.truth_((function (){var or__5002__auto__ \x3d self__.min_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn self__.max_count;\n}\n})())?cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pgen,(function (){var or__5002__auto__ \x3d self__.min_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (0);\n}\n})(),(function (){var or__5002__auto__ \x3d self__.max_count;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar x__5087__auto__ \x3d self__.gen_max;\nvar y__5088__auto__ \x3d ((2) * (function (){var or__5002__auto____$1 \x3d self__.min_count;\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn (0);\n}\n})());\nreturn ((x__5087__auto__ \x3e y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);\n}\n})()], 0)):cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([pgen,(0),self__.gen_max], 0))\n)))], 0));\n})], 0));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(self__.form,self__.pred,self__.opts,gfn__$1);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar or__5002__auto__ \x3d self__.describe_form;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22every\x22,\x22cljs.spec.alpha/every\x22,123912744,null),null,(1),null)),(new cljs.core.List(null,self__.form,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.identity,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.opts], 0))], 0))));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 25, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22max-count\x22,\x22max-count\x22,-1115250464,null),new cljs.core.Symbol(null,\x22check?\x22,\x22check?\x22,409539557,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22gen-max\x22,\x22gen-max\x22,846851082,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22cpred\x22,\x22cpred\x22,-540353554,null),new cljs.core.Symbol(null,\x22conform-keys\x22,\x22conform-keys\x22,-159510287,null),new cljs.core.Symbol(null,\x22kind-form\x22,\x22kind-form\x22,1155997457,null),new cljs.core.Symbol(null,\x22addcv\x22,\x22addcv\x22,-1552991247,null),new cljs.core.Symbol(null,\x22cfns\x22,\x22cfns\x22,1335482066,null),new cljs.core.Symbol(null,\x22describe-form\x22,\x22describe-form\x22,-1410156588,null),new cljs.core.Symbol(null,\x22distinct\x22,\x22distinct\x22,-148347594,null),new cljs.core.Symbol(null,\x22map__24816\x22,\x22map__24816\x22,-478940682,null),new cljs.core.Symbol(null,\x22p__24815\x22,\x22p__24815\x22,-65818922,null),new cljs.core.Symbol(null,\x22spec\x22,\x22spec\x22,1988051928,null),new cljs.core.Symbol(null,\x22kfn\x22,\x22kfn\x22,729311001,null),new cljs.core.Symbol(null,\x22gen-into\x22,\x22gen-into\x22,592640985,null),new cljs.core.Symbol(null,\x22count\x22,\x22count\x22,-514511684,null),new cljs.core.Symbol(null,\x22min-count\x22,\x22min-count\x22,-1059726756,null),new cljs.core.Symbol(null,\x22opts\x22,\x22opts\x22,1795607228,null),new cljs.core.Symbol(null,\x22kind\x22,\x22kind\x22,923265724,null),new cljs.core.Symbol(null,\x22conform-all\x22,\x22conform-all\x22,-980179459,null),new cljs.core.Symbol(null,\x22conform-into\x22,\x22conform-into\x22,-1039113729,null),new cljs.core.Symbol(null,\x22meta24952\x22,\x22meta24952\x22,-1861806193,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha24951\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha24951.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha24951\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha24951.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha24951 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha24951(form,max_count,check_QMARK_,gfn,gen_max,pred,cpred,conform_keys,kind_form,addcv,cfns,describe_form,distinct,map__24816,p__24815,spec,kfn,gen_into,count,min_count,opts,kind,conform_all,conform_into,meta24952){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24951(form,max_count,check_QMARK_,gfn,gen_max,pred,cpred,conform_keys,kind_form,addcv,cfns,describe_form,distinct,map__24816,p__24815,spec,kfn,gen_into,count,min_count,opts,kind,conform_all,conform_into,meta24952));\n});\n\n\n/**\n * Do not call this directly, use \x27every\x27, \x27every-kv\x27, \x27coll-of\x27 or \x27map-of\x27\n */\ncljs.spec.alpha.every_impl \x3d (function cljs$spec$alpha$every_impl(var_args){\nvar G__24811 \x3d arguments.length;\nswitch (G__24811) {\ncase 3:\nreturn cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$3 \x3d (function (form,pred,opts){\nreturn cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(form,pred,opts,null);\n}));\n\n(cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4 \x3d (function (form,pred,p__24815,gfn){\nvar map__24816 \x3d p__24815;\nvar map__24816__$1 \x3d cljs.core.__destructure_map(map__24816);\nvar opts \x3d map__24816__$1;\nvar max_count \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22max-count\x22,\x22max-count\x22,1539185305));\nvar kind_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kind-form\x22,\x22cljs.spec.alpha/kind-form\x22,-1047104697));\nvar gen_max \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__24816__$1,new cljs.core.Keyword(null,\x22gen-max\x22,\x22gen-max\x22,-793680445),(20));\nvar cpred \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22cpred\x22,\x22cljs.spec.alpha/cpred\x22,-693471218));\nvar conform_keys \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22conform-keys\x22,\x22conform-keys\x22,-1800041814));\nvar describe_form \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22describe\x22,\x22cljs.spec.alpha/describe\x22,1883026911));\nvar distinct \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22distinct\x22,\x22distinct\x22,-1788879121));\nvar kfn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kfn\x22,\x22cljs.spec.alpha/kfn\x22,672643897));\nvar count \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22count\x22,\x22count\x22,2139924085));\nvar min_count \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22min-count\x22,\x22min-count\x22,1594709013));\nvar kind \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22kind\x22,\x22kind\x22,-717265803));\nvar conform_all \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22conform-all\x22,\x22cljs.spec.alpha/conform-all\x22,45201917));\nvar conform_into \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__24816__$1,new cljs.core.Keyword(null,\x22into\x22,\x22into\x22,-150836029));\nvar gen_into \x3d (cljs.core.truth_(conform_into)?cljs.core.empty(conform_into):cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.empty_coll,kind_form));\nvar spec \x3d (new cljs.core.Delay((function (){\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(pred);\n}),null));\nvar check_QMARK_ \x3d (function (p1__24803_SHARP_){\nreturn cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(spec),p1__24803_SHARP_);\n});\nvar kfn__$1 \x3d (function (){var or__5002__auto__ \x3d kfn;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (function (i,v){\nreturn i;\n});\n}\n})();\nvar addcv \x3d (function (ret,i,v,cv){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,cv);\n});\nvar cfns \x3d (function (x){\nif(((cljs.core.vector_QMARK_(x)) \x26\x26 (((cljs.core.not(conform_into)) || (cljs.core.vector_QMARK_(conform_into)))))){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.identity,(function (ret,i,v,cv){\nif((v \x3d\x3d\x3d cv)){\nreturn ret;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,i,cv);\n}\n}),cljs.core.identity], null);\n} else {\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.map_QMARK_(x);\nif(and__5000__auto__){\nvar or__5002__auto__ \x3d (function (){var and__5000__auto____$1 \x3d kind;\nif(cljs.core.truth_(and__5000__auto____$1)){\nreturn cljs.core.not(conform_into);\n} else {\nreturn and__5000__auto____$1;\n}\n})();\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.map_QMARK_(conform_into);\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(conform_keys)?cljs.core.empty:cljs.core.identity),(function (ret,i,v,cv){\nif((((v \x3d\x3d\x3d cv)) \x26\x26 (cljs.core.not(conform_keys)))){\nreturn ret;\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ret,cljs.core.nth.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(conform_keys)?cv:v),(0)),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cv,(1)));\n}\n}),cljs.core.identity], null);\n} else {\nif(((cljs.core.list_QMARK_(conform_into)) || (((cljs.core.seq_QMARK_(conform_into)) || (((cljs.core.not(conform_into)) \x26\x26 (((cljs.core.list_QMARK_(x)) || (cljs.core.seq_QMARK_(x)))))))))){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.empty,addcv,cljs.core.reverse], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (p1__24804_SHARP_){\nreturn cljs.core.empty((function (){var or__5002__auto__ \x3d conform_into;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn p1__24804_SHARP_;\n}\n})());\n}),addcv,cljs.core.identity], null);\n\n}\n}\n}\n});\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha24951(form,max_count,check_QMARK_,gfn,gen_max,pred,cpred,conform_keys,kind_form,addcv,cfns,describe_form,distinct,map__24816__$1,p__24815,spec,kfn__$1,gen_into,count,min_count,opts,kind,conform_all,conform_into,cljs.core.PersistentArrayMap.EMPTY));\n}));\n\n(cljs.spec.alpha.every_impl.cljs$lang$maxFixedArity \x3d 4);\n\ncljs.spec.alpha.accept \x3d (function cljs$spec$alpha$accept(x){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),x], null);\n});\ncljs.spec.alpha.accept_QMARK_ \x3d (function cljs$spec$alpha$accept_QMARK_(p__25141){\nvar map__25142 \x3d p__25141;\nvar map__25142__$1 \x3d cljs.core.__destructure_map(map__25142);\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25142__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),op);\n});\ncljs.spec.alpha.pcat_STAR_ \x3d (function cljs$spec$alpha$pcat_STAR_(p__25151){\nvar map__25153 \x3d p__25151;\nvar map__25153__$1 \x3d cljs.core.__destructure_map(map__25153);\nvar vec__25154 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar seq__25155 \x3d cljs.core.seq(vec__25154);\nvar first__25156 \x3d cljs.core.first(seq__25155);\nvar seq__25155__$1 \x3d cljs.core.next(seq__25155);\nvar p1 \x3d first__25156;\nvar pr \x3d seq__25155__$1;\nvar ps \x3d vec__25154;\nvar vec__25157 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar seq__25158 \x3d cljs.core.seq(vec__25157);\nvar first__25159 \x3d cljs.core.first(seq__25158);\nvar seq__25158__$1 \x3d cljs.core.next(seq__25158);\nvar k1 \x3d first__25159;\nvar kr \x3d seq__25158__$1;\nvar ks \x3d vec__25157;\nvar vec__25160 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar seq__25161 \x3d cljs.core.seq(vec__25160);\nvar first__25162 \x3d cljs.core.first(seq__25161);\nvar seq__25161__$1 \x3d cljs.core.next(seq__25161);\nvar f1 \x3d first__25162;\nvar fr \x3d seq__25161__$1;\nvar forms \x3d vec__25160;\nvar ret \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814));\nvar rep_PLUS_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\x22rep+\x22,\x22rep+\x22,-281382396));\nif(cljs.core.every_QMARK_(cljs.core.identity,ps)){\nif(cljs.spec.alpha.accept_QMARK_(p1)){\nvar rp \x3d new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(p1);\nvar ret__$1 \x3d cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,(cljs.core.truth_(ks)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k1,rp]):rp));\nif(pr){\nvar G__25168 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),pr,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942),kr,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),fr,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret__$1], null);\nreturn (cljs.spec.alpha.pcat_STAR_.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.pcat_STAR_.cljs$core$IFn$_invoke$arity$1(G__25168) : cljs.spec.alpha.pcat_STAR_.call(null, G__25168));\n} else {\nreturn cljs.spec.alpha.accept(ret__$1);\n}\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),ps,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942),ks,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms,new cljs.core.Keyword(null,\x22rep+\x22,\x22rep+\x22,-281382396),rep_PLUS_], null);\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.pcat \x3d (function cljs$spec$alpha$pcat(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___26806 \x3d arguments.length;\nvar i__5727__auto___26807 \x3d (0);\nwhile(true){\nif((i__5727__auto___26807 \x3c len__5726__auto___26806)){\nargs__5732__auto__.push((arguments[i__5727__auto___26807]));\n\nvar G__26809 \x3d (i__5727__auto___26807 + (1));\ni__5727__auto___26807 \x3d G__26809;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.alpha.pcat.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.alpha.pcat.cljs$core$IFn$_invoke$arity$variadic \x3d (function (ps){\nreturn cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),ps,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cljs.core.PersistentVector.EMPTY], null));\n}));\n\n(cljs.spec.alpha.pcat.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.alpha.pcat.cljs$lang$applyTo \x3d (function (seq25174){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25174));\n}));\n\n/**\n * Do not call this directly, use \x27cat\x27\n */\ncljs.spec.alpha.cat_impl \x3d (function cljs$spec$alpha$cat_impl(ks,ps,forms){\nreturn cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942),ks,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),ps,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cljs.core.PersistentArrayMap.EMPTY], null));\n});\ncljs.spec.alpha.rep_STAR_ \x3d (function cljs$spec$alpha$rep_STAR_(p1,p2,ret,splice,form){\nif(cljs.core.truth_(p1)){\nvar r \x3d new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),new cljs.core.Keyword(null,\x22p2\x22,\x22p2\x22,905500641),p2,new cljs.core.Keyword(null,\x22splice\x22,\x22splice\x22,449588165),splice,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),form,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.random_uuid()], null);\nif(cljs.spec.alpha.accept_QMARK_(p1)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(r,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954),p2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(p1))], 0));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(r,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954),p1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret], 0));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Do not call this directly, use \x27*\x27\n */\ncljs.spec.alpha.rep_impl \x3d (function cljs$spec$alpha$rep_impl(form,p){\nreturn cljs.spec.alpha.rep_STAR_(p,p,cljs.core.PersistentVector.EMPTY,false,form);\n});\n/**\n * Do not call this directly, use \x27+\x27\n */\ncljs.spec.alpha.rep_PLUS_impl \x3d (function cljs$spec$alpha$rep_PLUS_impl(form,p){\nreturn cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [p,cljs.spec.alpha.rep_STAR_(p,p,cljs.core.PersistentVector.EMPTY,true,form)], null),new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,form,null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22*\x22,\x22cljs.spec.alpha/*\x22,-1238084288,null),null,(1),null)),(new cljs.core.List(null,form,null,(1),null))))),null,(1),null)))))),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,\x22rep+\x22,\x22rep+\x22,-281382396),form], null));\n});\n/**\n * Do not call this directly, use \x27\x26\x27\n */\ncljs.spec.alpha.amp_impl \x3d (function cljs$spec$alpha$amp_impl(re,re_form,preds,pred_forms){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954),re,new cljs.core.Keyword(null,\x22amp\x22,\x22amp\x22,271690571),re_form,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),preds,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),pred_forms], null);\n});\ncljs.spec.alpha.filter_alt \x3d (function cljs$spec$alpha$filter_alt(ps,ks,forms,f){\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d ks;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn forms;\n}\n})())){\nvar pks \x3d cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__25197_SHARP_){\nvar G__25200 \x3d cljs.core.first(p1__25197_SHARP_);\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__25200) : f.call(null, G__25200));\n}),cljs.core.map.cljs$core$IFn$_invoke$arity$4(cljs.core.vector,ps,(function (){var or__5002__auto__ \x3d cljs.core.seq(ks);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})(),(function (){var or__5002__auto__ \x3d cljs.core.seq(forms);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})()));\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,pks)),(cljs.core.truth_(ks)?cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,pks)):null),(cljs.core.truth_(forms)?cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__25198_SHARP_){\nreturn cljs.core.nth.cljs$core$IFn$_invoke$arity$2(p1__25198_SHARP_,(2));\n}),pks)):null)], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(f,ps)),ks,forms], null);\n}\n});\ncljs.spec.alpha.alt_STAR_ \x3d (function cljs$spec$alpha$alt_STAR_(ps,ks,forms){\nvar vec__25206 \x3d cljs.spec.alpha.filter_alt(ps,ks,forms,cljs.core.identity);\nvar vec__25209 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25206,(0),null);\nvar seq__25210 \x3d cljs.core.seq(vec__25209);\nvar first__25211 \x3d cljs.core.first(seq__25210);\nvar seq__25210__$1 \x3d cljs.core.next(seq__25210);\nvar p1 \x3d first__25211;\nvar pr \x3d seq__25210__$1;\nvar ps__$1 \x3d vec__25209;\nvar vec__25212 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25206,(1),null);\nvar k1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25212,(0),null);\nvar ks__$1 \x3d vec__25212;\nvar forms__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25206,(2),null);\nif(cljs.core.truth_(ps__$1)){\nvar ret \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),ps__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942),ks__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms__$1], null);\nif((pr \x3d\x3d null)){\nif(cljs.core.truth_(k1)){\nif(cljs.spec.alpha.accept_QMARK_(p1)){\nreturn cljs.spec.alpha.accept(cljs.spec.alpha.tagged_ret(k1,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(p1)));\n} else {\nreturn ret;\n}\n} else {\nreturn p1;\n}\n} else {\nreturn ret;\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.alts \x3d (function cljs$spec$alpha$alts(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___26828 \x3d arguments.length;\nvar i__5727__auto___26829 \x3d (0);\nwhile(true){\nif((i__5727__auto___26829 \x3c len__5726__auto___26828)){\nargs__5732__auto__.push((arguments[i__5727__auto___26829]));\n\nvar G__26830 \x3d (i__5727__auto___26829 + (1));\ni__5727__auto___26829 \x3d G__26830;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((0) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);\nreturn cljs.spec.alpha.alts.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);\n});\n\n(cljs.spec.alpha.alts.cljs$core$IFn$_invoke$arity$variadic \x3d (function (ps){\nreturn cljs.spec.alpha.alt_STAR_(ps,null,null);\n}));\n\n(cljs.spec.alpha.alts.cljs$lang$maxFixedArity \x3d (0));\n\n/** @this {Function} */\n(cljs.spec.alpha.alts.cljs$lang$applyTo \x3d (function (seq25217){\nvar self__5712__auto__ \x3d this;\nreturn self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25217));\n}));\n\ncljs.spec.alpha.alt2 \x3d (function cljs$spec$alpha$alt2(p1,p2){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d p1;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn p2;\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn cljs.spec.alpha.alts.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1,p2], 0));\n} else {\nvar or__5002__auto__ \x3d p1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn p2;\n}\n}\n});\n/**\n * Do not call this directly, use \x27alt\x27\n */\ncljs.spec.alpha.alt_impl \x3d (function cljs$spec$alpha$alt_impl(ks,ps,forms){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.alt_STAR_(ps,ks,forms),new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),cljs.core.random_uuid());\n});\n/**\n * Do not call this directly, use \x27?\x27\n */\ncljs.spec.alpha.maybe_impl \x3d (function cljs$spec$alpha$maybe_impl(p,form){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.alt_STAR_(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [p,cljs.spec.alpha.accept(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950))], null),null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [form,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950)], null)),new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560),form);\n});\ncljs.spec.alpha.noret_QMARK_ \x3d (function cljs$spec$alpha$noret_QMARK_(p1,pret){\nvar or__5002__auto__ \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(pret,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950));\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (function (){var and__5000__auto__ \x3d (function (){var G__25225 \x3d new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252).cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.reg_resolve_BANG_(p1));\nvar fexpr__25224 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),null,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),null], null), null);\nreturn (fexpr__25224.cljs$core$IFn$_invoke$arity$1 ? fexpr__25224.cljs$core$IFn$_invoke$arity$1(G__25225) : fexpr__25224.call(null, G__25225));\n})();\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.empty_QMARK_(pret);\n} else {\nreturn and__5000__auto__;\n}\n})();\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn null;\n}\n}\n});\ncljs.spec.alpha.accept_nil_QMARK_ \x3d (function cljs$spec$alpha$accept_nil_QMARK_(p){\nvar map__25226 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25226__$1 \x3d cljs.core.__destructure_map(map__25226);\nvar p__$1 \x3d map__25226__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25226__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar ps \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25226__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25226__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nvar p2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25226__$1,new cljs.core.Keyword(null,\x22p2\x22,\x22p2\x22,905500641));\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25226__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar G__25232 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25232)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25232)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25232)){\nvar and__5000__auto__ \x3d (cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1(p1) : cljs.spec.alpha.accept_nil_QMARK_.call(null, p1));\nif(cljs.core.truth_(and__5000__auto__)){\nvar ret \x3d cljs.spec.alpha.and_preds(cljs.spec.alpha.preturn(p1),ps,cljs.core.next(forms));\nreturn (!(cljs.spec.alpha.invalid_QMARK_(ret)));\n} else {\nreturn and__5000__auto__;\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25232)){\nvar or__5002__auto__ \x3d (p1 \x3d\x3d\x3d p2);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn (cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1(p1) : cljs.spec.alpha.accept_nil_QMARK_.call(null, p1));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25232)){\nreturn cljs.core.every_QMARK_(cljs.spec.alpha.accept_nil_QMARK_,ps);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25232)){\nreturn cljs.core.some(cljs.spec.alpha.accept_nil_QMARK_,ps);\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25232)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n});\ncljs.spec.alpha.preturn \x3d (function cljs$spec$alpha$preturn(p){\nvar map__25242 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25242__$1 \x3d cljs.core.__destructure_map(map__25242);\nvar p__$1 \x3d map__25242__$1;\nvar vec__25243 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25242__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar seq__25244 \x3d cljs.core.seq(vec__25243);\nvar first__25245 \x3d cljs.core.first(seq__25244);\nvar seq__25244__$1 \x3d cljs.core.next(seq__25244);\nvar p0 \x3d first__25245;\nvar pr \x3d seq__25244__$1;\nvar ps \x3d vec__25243;\nvar vec__25246 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25242__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25246,(0),null);\nvar ks \x3d vec__25246;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25242__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25242__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nvar ret \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25242__$1,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814));\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25242__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar G__25249 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25249)){\nreturn ret;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25249)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25249)){\nvar pret \x3d (cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1(p1) : cljs.spec.alpha.preturn.call(null, p1));\nif(cljs.core.truth_(cljs.spec.alpha.noret_QMARK_(p1,pret))){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950);\n} else {\nreturn cljs.spec.alpha.and_preds(pret,ps,forms);\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25249)){\nreturn cljs.spec.alpha.add_ret(p1,ret,k);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25249)){\nreturn cljs.spec.alpha.add_ret(p0,ret,k);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25249)){\nvar vec__25251 \x3d cljs.spec.alpha.filter_alt(ps,ks,forms,cljs.spec.alpha.accept_nil_QMARK_);\nvar vec__25254 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25251,(0),null);\nvar p0__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25254,(0),null);\nvar vec__25257 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25251,(1),null);\nvar k0 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25257,(0),null);\nvar r \x3d (((p0__$1 \x3d\x3d null))?new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950):(cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1(p0__$1) : cljs.spec.alpha.preturn.call(null, p0__$1)));\nif(cljs.core.truth_(k0)){\nreturn cljs.spec.alpha.tagged_ret(k0,r);\n} else {\nreturn r;\n}\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25249)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n});\ncljs.spec.alpha.op_unform \x3d (function cljs$spec$alpha$op_unform(p,x){\nvar map__25273 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25273__$1 \x3d cljs.core.__destructure_map(map__25273);\nvar p__$1 \x3d map__25273__$1;\nvar vec__25275 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar seq__25276 \x3d cljs.core.seq(vec__25275);\nvar first__25277 \x3d cljs.core.first(seq__25276);\nvar seq__25276__$1 \x3d cljs.core.next(seq__25276);\nvar p0 \x3d first__25277;\nvar pr \x3d seq__25276__$1;\nvar ps \x3d vec__25275;\nvar vec__25278 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25278,(0),null);\nvar ks \x3d vec__25278;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nvar ret \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814));\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar rep_PLUS_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22rep+\x22,\x22rep+\x22,-281382396));\nvar maybe \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25273__$1,new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560));\nvar kps \x3d cljs.core.zipmap(ks,ps);\nvar G__25285 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25285)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [ret], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25285)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.alpha.unform(p__$1,x)], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25285)){\nvar px \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__25265_SHARP_,p2__25264_SHARP_){\nreturn cljs.spec.alpha.unform(p2__25264_SHARP_,p1__25265_SHARP_);\n}),x,cljs.core.reverse(ps));\nreturn (cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(p1,px) : cljs.spec.alpha.op_unform.call(null, p1,px));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25285)){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p1__25266_SHARP_){\nreturn (cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(p1,p1__25266_SHARP_) : cljs.spec.alpha.op_unform.call(null, p1,p1__25266_SHARP_));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25285)){\nif(cljs.core.truth_(rep_PLUS_)){\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p1__25268_SHARP_){\nreturn (cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(p0,p1__25268_SHARP_) : cljs.spec.alpha.op_unform.call(null, p0,p1__25268_SHARP_));\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([x], 0));\n} else {\nreturn cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (k__$1){\nif(cljs.core.contains_QMARK_(x,k__$1)){\nvar G__25292 \x3d (kps.cljs$core$IFn$_invoke$arity$1 ? kps.cljs$core$IFn$_invoke$arity$1(k__$1) : kps.call(null, k__$1));\nvar G__25293 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,k__$1);\nreturn (cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(G__25292,G__25293) : cljs.spec.alpha.op_unform.call(null, G__25292,G__25293));\n} else {\nreturn null;\n}\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ks], 0));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25285)){\nif(cljs.core.truth_(maybe)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.spec.alpha.unform(p0,x)], null);\n} else {\nvar vec__25295 \x3d x;\nvar k__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25295,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25295,(1),null);\nvar G__25300 \x3d (kps.cljs$core$IFn$_invoke$arity$1 ? kps.cljs$core$IFn$_invoke$arity$1(k__$1) : kps.call(null, k__$1));\nvar G__25301 \x3d v;\nreturn (cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(G__25300,G__25301) : cljs.spec.alpha.op_unform.call(null, G__25300,G__25301));\n}\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25285)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n});\ncljs.spec.alpha.add_ret \x3d (function cljs$spec$alpha$add_ret(p,r,k){\nvar map__25308 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25308__$1 \x3d cljs.core.__destructure_map(map__25308);\nvar p__$1 \x3d map__25308__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25308__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar ps \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25308__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar splice \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25308__$1,new cljs.core.Keyword(null,\x22splice\x22,\x22splice\x22,449588165));\nvar prop \x3d (function (){\nvar ret \x3d cljs.spec.alpha.preturn(p__$1);\nif(cljs.core.empty_QMARK_(ret)){\nreturn r;\n} else {\nvar G__25313 \x3d r;\nvar G__25314 \x3d (cljs.core.truth_(k)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ret]):ret);\nvar fexpr__25312 \x3d (cljs.core.truth_(splice)?cljs.core.into:cljs.core.conj);\nreturn (fexpr__25312.cljs$core$IFn$_invoke$arity$2 ? fexpr__25312.cljs$core$IFn$_invoke$arity$2(G__25313,G__25314) : fexpr__25312.call(null, G__25313,G__25314));\n}\n});\nvar G__25318 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25318)){\nreturn r;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25318)){\nvar ret \x3d cljs.spec.alpha.preturn(p__$1);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950))){\nreturn r;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(r,(cljs.core.truth_(k)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ret]):ret));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25318)){\nvar ret \x3d cljs.spec.alpha.preturn(p__$1);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950))){\nreturn r;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(r,(cljs.core.truth_(k)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ret]):ret));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25318)){\nvar ret \x3d cljs.spec.alpha.preturn(p__$1);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950))){\nreturn r;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(r,(cljs.core.truth_(k)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ret]):ret));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25318)){\nreturn prop();\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25318)){\nreturn prop();\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25318)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n});\ncljs.spec.alpha.deriv \x3d (function cljs$spec$alpha$deriv(p,x){\nvar map__25388 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25388__$1 \x3d cljs.core.__destructure_map(map__25388);\nvar p__$1 \x3d map__25388__$1;\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar p2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22p2\x22,\x22p2\x22,905500641));\nvar vec__25389 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar seq__25390 \x3d cljs.core.seq(vec__25389);\nvar first__25391 \x3d cljs.core.first(seq__25390);\nvar seq__25390__$1 \x3d cljs.core.next(seq__25390);\nvar p0 \x3d first__25391;\nvar pr \x3d seq__25390__$1;\nvar ps \x3d vec__25389;\nvar ret \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814));\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar splice \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22splice\x22,\x22splice\x22,449588165));\nvar vec__25392 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar seq__25393 \x3d cljs.core.seq(vec__25392);\nvar first__25394 \x3d cljs.core.first(seq__25393);\nvar seq__25393__$1 \x3d cljs.core.next(seq__25393);\nvar k0 \x3d first__25394;\nvar kr \x3d seq__25393__$1;\nvar ks \x3d vec__25392;\nvar amp \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22amp\x22,\x22amp\x22,271690571));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25388__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nif(cljs.core.truth_(p__$1)){\nvar G__25407 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25407)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25407)){\nvar ret__$1 \x3d cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(p__$1,x,p__$1);\nif(cljs.spec.alpha.invalid_QMARK_(ret__$1)){\nreturn null;\n} else {\nreturn cljs.spec.alpha.accept(ret__$1);\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25407)){\nvar temp__5804__auto__ \x3d (cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(p1,x) : cljs.spec.alpha.deriv.call(null, p1,x));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar p1__$1 \x3d temp__5804__auto__;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252).cljs$core$IFn$_invoke$arity$1(p1__$1))){\nvar ret__$1 \x3d cljs.spec.alpha.and_preds(cljs.spec.alpha.preturn(p1__$1),ps,cljs.core.next(forms));\nif(cljs.spec.alpha.invalid_QMARK_(ret__$1)){\nreturn null;\n} else {\nreturn cljs.spec.alpha.accept(ret__$1);\n}\n} else {\nreturn cljs.spec.alpha.amp_impl(p1__$1,amp,ps,forms);\n}\n} else {\nreturn null;\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25407)){\nreturn cljs.spec.alpha.alt2(cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),cljs.core.cons((cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(p0,x) : cljs.spec.alpha.deriv.call(null, p0,x)),pr),new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942),ks,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),forms,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),ret], null)),(cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(p0))?(function (){var G__25427 \x3d cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046),pr,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942),kr,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350),cljs.core.next(forms),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cljs.spec.alpha.add_ret(p0,ret,k0)], null));\nvar G__25428 \x3d x;\nreturn (cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(G__25427,G__25428) : cljs.spec.alpha.deriv.call(null, G__25427,G__25428));\n})():null));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25407)){\nreturn cljs.spec.alpha.alt_STAR_(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__25358_SHARP_){\nreturn (cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(p1__25358_SHARP_,x) : cljs.spec.alpha.deriv.call(null, p1__25358_SHARP_,x));\n}),ps),ks,forms);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25407)){\nreturn cljs.spec.alpha.alt2(cljs.spec.alpha.rep_STAR_((cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(p1,x) : cljs.spec.alpha.deriv.call(null, p1,x)),p2,ret,splice,forms),(cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(p1))?(function (){var G__25434 \x3d cljs.spec.alpha.rep_STAR_(p2,p2,cljs.spec.alpha.add_ret(p1,ret,null),splice,forms);\nvar G__25435 \x3d x;\nreturn (cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(G__25434,G__25435) : cljs.spec.alpha.deriv.call(null, G__25434,G__25435));\n})():null));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25407)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.op_describe \x3d (function cljs$spec$alpha$op_describe(p){\nvar map__25444 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25444__$1 \x3d cljs.core.__destructure_map(map__25444);\nvar p__$1 \x3d map__25444__$1;\nvar ps \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar rep_PLUS_ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22rep+\x22,\x22rep+\x22,-281382396));\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar splice \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22splice\x22,\x22splice\x22,449588165));\nvar ks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar maybe \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22maybe\x22,\x22maybe\x22,-314397560));\nvar amp \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22amp\x22,\x22amp\x22,271690571));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25444__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nif(cljs.core.truth_(p__$1)){\nvar G__25448 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25448)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25448)){\nreturn p__$1;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25448)){\nreturn cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22\x26\x22,\x22cljs.spec.alpha/\x26\x22,1635809823,null),amp,forms);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25448)){\nif(cljs.core.truth_(rep_PLUS_)){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22+\x22,\x22cljs.spec.alpha/+\x22,2101263265,null),(new cljs.core.List(null,rep_PLUS_,null,(1),null)),(2),null));\n} else {\nreturn cljs.core.cons(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22cat\x22,\x22cljs.spec.alpha/cat\x22,-1471398329,null),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var or__5002__auto__ \x3d cljs.core.seq(ks);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22_\x22,\x22_\x22,1453416199));\n}\n})(),forms], 0)));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25448)){\nif(cljs.core.truth_(maybe)){\nreturn (new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22?\x22,\x22cljs.spec.alpha/?\x22,1605136319,null),(new cljs.core.List(null,maybe,null,(1),null)),(2),null));\n} else {\nreturn cljs.core.cons(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,-2130750332,null),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ks,forms], 0)));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25448)){\nreturn (new cljs.core.List(null,(cljs.core.truth_(splice)?new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22+\x22,\x22cljs.spec.alpha/+\x22,2101263265,null):new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22*\x22,\x22cljs.spec.alpha/*\x22,-1238084288,null)),(new cljs.core.List(null,forms,null,(1),null)),(2),null));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25448)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.op_explain \x3d (function cljs$spec$alpha$op_explain(form,p,path,via,in$,input){\nvar vec__25461 \x3d input;\nvar x \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25461,(0),null);\nvar input__$1 \x3d vec__25461;\nvar map__25464 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25464__$1 \x3d cljs.core.__destructure_map(map__25464);\nvar p__$1 \x3d map__25464__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar ps \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar ks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar splice \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(null,\x22splice\x22,\x22splice\x22,449588165));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nvar p2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25464__$1,new cljs.core.Keyword(null,\x22p2\x22,\x22p2\x22,905500641));\nvar via__$1 \x3d (function (){var temp__5802__auto__ \x3d cljs.spec.alpha.spec_name(p__$1);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar name \x3d temp__5802__auto__;\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(via,name);\n} else {\nreturn via;\n}\n})();\nvar insufficient \x3d (function (path__$1,form__$1){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path__$1,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),\x22Insufficient input\x22,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),form__$1,new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),cljs.core.List.EMPTY,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via__$1,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n});\nif(cljs.core.truth_(p__$1)){\nvar G__25478 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25478)){\nreturn null;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25478)){\nif(cljs.core.empty_QMARK_(input__$1)){\nreturn insufficient(path,form);\n} else {\nreturn cljs.spec.alpha.explain_1(form,p__$1,path,via__$1,in$,x);\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25478)){\nif(cljs.core.empty_QMARK_(input__$1)){\nif(cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(p1))){\nreturn cljs.spec.alpha.explain_pred_list(forms,ps,path,via__$1,in$,cljs.spec.alpha.preturn(p1));\n} else {\nreturn insufficient(path,new cljs.core.Keyword(null,\x22amp\x22,\x22amp\x22,271690571).cljs$core$IFn$_invoke$arity$1(p__$1));\n}\n} else {\nvar temp__5802__auto__ \x3d cljs.spec.alpha.deriv(p1,x);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar p1__$1 \x3d temp__5802__auto__;\nreturn cljs.spec.alpha.explain_pred_list(forms,ps,path,via__$1,in$,cljs.spec.alpha.preturn(p1__$1));\n} else {\nvar G__25489 \x3d new cljs.core.Keyword(null,\x22amp\x22,\x22amp\x22,271690571).cljs$core$IFn$_invoke$arity$1(p__$1);\nvar G__25490 \x3d p1;\nvar G__25491 \x3d path;\nvar G__25492 \x3d via__$1;\nvar G__25493 \x3d in$;\nvar G__25494 \x3d input__$1;\nreturn (cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6 ? cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(G__25489,G__25490,G__25491,G__25492,G__25493,G__25494) : cljs.spec.alpha.op_explain.call(null, G__25489,G__25490,G__25491,G__25492,G__25493,G__25494));\n}\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25478)){\nvar pkfs \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$4(cljs.core.vector,ps,(function (){var or__5002__auto__ \x3d cljs.core.seq(ks);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})(),(function (){var or__5002__auto__ \x3d cljs.core.seq(forms);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})());\nvar vec__25498 \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(pkfs)))?cljs.core.first(pkfs):cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__25508){\nvar vec__25511 \x3d p__25508;\nvar p__$2 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25511,(0),null);\nreturn cljs.spec.alpha.accept_nil_QMARK_(p__$2);\n}),pkfs)));\nvar pred \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25498,(0),null);\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25498,(1),null);\nvar form__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25498,(2),null);\nvar path__$1 \x3d (cljs.core.truth_(k)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k):path);\nvar form__$2 \x3d (function (){var or__5002__auto__ \x3d form__$1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.spec.alpha.op_describe(pred);\n}\n})();\nif(((cljs.core.empty_QMARK_(input__$1)) \x26\x26 (cljs.core.not(pred)))){\nreturn insufficient(path__$1,form__$2);\n} else {\nreturn (cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6 ? cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(form__$2,pred,path__$1,via__$1,in$,input__$1) : cljs.spec.alpha.op_explain.call(null, form__$2,pred,path__$1,via__$1,in$,input__$1));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25478)){\nif(cljs.core.empty_QMARK_(input__$1)){\nreturn insufficient(path,cljs.spec.alpha.op_describe(p__$1));\n} else {\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.map.cljs$core$IFn$_invoke$arity$4((function (k,form__$1,pred){\nvar G__25525 \x3d (function (){var or__5002__auto__ \x3d form__$1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn cljs.spec.alpha.op_describe(pred);\n}\n})();\nvar G__25526 \x3d pred;\nvar G__25527 \x3d (cljs.core.truth_(k)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k):path);\nvar G__25528 \x3d via__$1;\nvar G__25529 \x3d in$;\nvar G__25530 \x3d input__$1;\nreturn (cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6 ? cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(G__25525,G__25526,G__25527,G__25528,G__25529,G__25530) : cljs.spec.alpha.op_explain.call(null, G__25525,G__25526,G__25527,G__25528,G__25529,G__25530));\n}),(function (){var or__5002__auto__ \x3d cljs.core.seq(ks);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})(),(function (){var or__5002__auto__ \x3d cljs.core.seq(forms);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})(),ps));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25478)){\nvar G__25541 \x3d (((p1 \x3d\x3d\x3d p2))?forms:cljs.spec.alpha.op_describe(p1));\nvar G__25542 \x3d p1;\nvar G__25543 \x3d path;\nvar G__25544 \x3d via__$1;\nvar G__25545 \x3d in$;\nvar G__25546 \x3d input__$1;\nreturn (cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6 ? cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(G__25541,G__25542,G__25543,G__25544,G__25545,G__25546) : cljs.spec.alpha.op_explain.call(null, G__25541,G__25542,G__25543,G__25544,G__25545,G__25546));\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25478)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.re_gen \x3d (function cljs$spec$alpha$re_gen(p,overrides,path,rmap,f){\nvar origp \x3d p;\nvar map__25558 \x3d cljs.spec.alpha.reg_resolve_BANG_(p);\nvar map__25558__$1 \x3d cljs.core.__destructure_map(map__25558);\nvar p__$1 \x3d map__25558__$1;\nvar ps \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22ps\x22,\x22ps\x22,292358046));\nvar forms \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350));\nvar p2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22p2\x22,\x22p2\x22,905500641));\nvar ret \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814));\nvar gfn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22gfn\x22,\x22cljs.spec.alpha/gfn\x22,-593120375));\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252));\nvar splice \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22splice\x22,\x22splice\x22,449588165));\nvar ks \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22ks\x22,\x22ks\x22,1900203942));\nvar p1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22p1\x22,\x22p1\x22,-936759954));\nvar id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25558__$1,new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092));\nvar rmap__$1 \x3d (cljs.core.truth_(id)?cljs.spec.alpha.inck(rmap,id):rmap);\nvar ggens \x3d (function (ps__$1,ks__$1,forms__$1){\nvar gen \x3d (function (p__$2,k,f__$1){\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d rmap__$1;\nif(cljs.core.truth_(and__5000__auto__)){\nvar and__5000__auto____$1 \x3d id;\nif(cljs.core.truth_(and__5000__auto____$1)){\nvar and__5000__auto____$2 \x3d k;\nif(cljs.core.truth_(and__5000__auto____$2)){\nreturn cljs.spec.alpha.recur_limit_QMARK_(rmap__$1,id,path,k);\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\nreturn null;\n} else {\nif(cljs.core.truth_(id)){\nreturn cljs.spec.gen.alpha.delay_impl((new cljs.core.Delay((function (){\nvar G__25559 \x3d p__$2;\nvar G__25560 \x3d overrides;\nvar G__25561 \x3d (cljs.core.truth_(k)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k):path);\nvar G__25562 \x3d rmap__$1;\nvar G__25563 \x3d (function (){var or__5002__auto__ \x3d f__$1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn p__$2;\n}\n})();\nreturn (cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5 ? cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(G__25559,G__25560,G__25561,G__25562,G__25563) : cljs.spec.alpha.re_gen.call(null, G__25559,G__25560,G__25561,G__25562,G__25563));\n}),null)));\n} else {\nvar G__25564 \x3d p__$2;\nvar G__25565 \x3d overrides;\nvar G__25566 \x3d (cljs.core.truth_(k)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,k):path);\nvar G__25567 \x3d rmap__$1;\nvar G__25568 \x3d (function (){var or__5002__auto__ \x3d f__$1;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn p__$2;\n}\n})();\nreturn (cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5 ? cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(G__25564,G__25565,G__25566,G__25567,G__25568) : cljs.spec.alpha.re_gen.call(null, G__25564,G__25565,G__25566,G__25567,G__25568));\n}\n}\n});\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$4(gen,ps__$1,(function (){var or__5002__auto__ \x3d cljs.core.seq(ks__$1);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})(),(function (){var or__5002__auto__ \x3d cljs.core.seq(forms__$1);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nreturn cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null);\n}\n})());\n});\nvar or__5002__auto__ \x3d (function (){var temp__5804__auto__ \x3d (function (){var or__5002__auto__ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,cljs.spec.alpha.spec_name(origp));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,cljs.spec.alpha.spec_name(p__$1));\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,path);\n}\n}\n})();\nif(cljs.core.truth_(temp__5804__auto__)){\nvar gfn__$1 \x3d temp__5804__auto__;\nvar G__25569 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22accept\x22,\x22accept\x22,1874130431),G__25569)){\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.vector,(gfn__$1.cljs$core$IFn$_invoke$arity$0 ? gfn__$1.cljs$core$IFn$_invoke$arity$0() : gfn__$1.call(null, ))], 0));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25569)){\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.vector,(gfn__$1.cljs$core$IFn$_invoke$arity$0 ? gfn__$1.cljs$core$IFn$_invoke$arity$0() : gfn__$1.call(null, ))], 0));\n} else {\nreturn (gfn__$1.cljs$core$IFn$_invoke$arity$0 ? gfn__$1.cljs$core$IFn$_invoke$arity$0() : gfn__$1.call(null, ));\n\n}\n}\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar or__5002__auto____$1 \x3d (cljs.core.truth_(gfn)?(gfn.cljs$core$IFn$_invoke$arity$0 ? gfn.cljs$core$IFn$_invoke$arity$0() : gfn.call(null, )):null);\nif(cljs.core.truth_(or__5002__auto____$1)){\nreturn or__5002__auto____$1;\n} else {\nif(cljs.core.truth_(p__$1)){\nvar G__25570 \x3d op;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22accept\x22,\x22cljs.spec.alpha/accept\x22,370988198),G__25570)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950))){\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentVector.EMPTY], 0));\n} else {\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [ret], null)], 0));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,G__25570)){\nvar temp__5804__auto__ \x3d cljs.spec.alpha.gensub(p__$1,overrides,path,rmap__$1,f);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar g \x3d temp__5804__auto__;\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.vector,g], 0));\n} else {\nreturn null;\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22amp\x22,\x22cljs.spec.alpha/amp\x22,831147508),G__25570)){\nvar G__25571 \x3d p1;\nvar G__25572 \x3d overrides;\nvar G__25573 \x3d path;\nvar G__25574 \x3d rmap__$1;\nvar G__25575 \x3d cljs.spec.alpha.op_describe(p1);\nreturn (cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5 ? cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(G__25571,G__25572,G__25573,G__25574,G__25575) : cljs.spec.alpha.re_gen.call(null, G__25571,G__25572,G__25573,G__25574,G__25575));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623),G__25570)){\nvar gens \x3d ggens(ps,ks,forms);\nif(cljs.core.every_QMARK_(cljs.core.identity,gens)){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.cat,gens);\n} else {\nreturn null;\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22alt\x22,\x22cljs.spec.alpha/alt\x22,523685437),G__25570)){\nvar gens \x3d cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,ggens(ps,ks,forms));\nif(cljs.core.empty_QMARK_(gens)){\nreturn null;\n} else {\nreturn cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([gens], 0));\n}\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22rep\x22,\x22cljs.spec.alpha/rep\x22,1483217317),G__25570)){\nif(cljs.spec.alpha.recur_limit_QMARK_(rmap__$1,id,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [id], null),id)){\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentVector.EMPTY], 0));\n} else {\nvar temp__5804__auto__ \x3d (cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5 ? cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(p2,overrides,path,rmap__$1,forms) : cljs.spec.alpha.re_gen.call(null, p2,overrides,path,rmap__$1,forms));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar g \x3d temp__5804__auto__;\nreturn cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__25557_SHARP_){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,p1__25557_SHARP_);\n}),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([g], 0))], 0));\n} else {\nreturn null;\n}\n}\n} else {\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__25570)].join(\x27\x27)));\n\n}\n}\n}\n}\n}\n}\n} else {\nreturn null;\n}\n}\n}\n});\ncljs.spec.alpha.re_conform \x3d (function cljs$spec$alpha$re_conform(p,p__25581){\nwhile(true){\nvar vec__25582 \x3d p__25581;\nvar seq__25583 \x3d cljs.core.seq(vec__25582);\nvar first__25584 \x3d cljs.core.first(seq__25583);\nvar seq__25583__$1 \x3d cljs.core.next(seq__25583);\nvar x \x3d first__25584;\nvar xs \x3d seq__25583__$1;\nvar data \x3d vec__25582;\nif(cljs.core.empty_QMARK_(data)){\nif(cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(p))){\nvar ret \x3d cljs.spec.alpha.preturn(p);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ret,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950))){\nreturn null;\n} else {\nreturn ret;\n}\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n} else {\nvar temp__5802__auto__ \x3d cljs.spec.alpha.deriv(p,x);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar dp \x3d temp__5802__auto__;\nvar G__26974 \x3d dp;\nvar G__26975 \x3d xs;\np \x3d G__26974;\np__25581 \x3d G__26975;\ncontinue;\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}\nbreak;\n}\n});\ncljs.spec.alpha.re_explain \x3d (function cljs$spec$alpha$re_explain(path,via,in$,re,input){\nvar p \x3d re;\nvar G__25591 \x3d input;\nvar vec__25592 \x3d G__25591;\nvar seq__25593 \x3d cljs.core.seq(vec__25592);\nvar first__25594 \x3d cljs.core.first(seq__25593);\nvar seq__25593__$1 \x3d cljs.core.next(seq__25593);\nvar x \x3d first__25594;\nvar xs \x3d seq__25593__$1;\nvar data \x3d vec__25592;\nvar i \x3d (0);\nvar p__$1 \x3d p;\nvar G__25591__$1 \x3d G__25591;\nvar i__$1 \x3d i;\nwhile(true){\nvar p__$2 \x3d p__$1;\nvar vec__25595 \x3d G__25591__$1;\nvar seq__25596 \x3d cljs.core.seq(vec__25595);\nvar first__25597 \x3d cljs.core.first(seq__25596);\nvar seq__25596__$1 \x3d cljs.core.next(seq__25596);\nvar x__$1 \x3d first__25597;\nvar xs__$1 \x3d seq__25596__$1;\nvar data__$1 \x3d vec__25595;\nvar i__$2 \x3d i__$1;\nif(cljs.core.empty_QMARK_(data__$1)){\nif(cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(p__$2))){\nreturn null;\n} else {\nreturn cljs.spec.alpha.op_explain(cljs.spec.alpha.op_describe(p__$2),p__$2,path,via,in$,null);\n}\n} else {\nvar temp__5802__auto__ \x3d cljs.spec.alpha.deriv(p__$2,x__$1);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar dp \x3d temp__5802__auto__;\nvar G__26976 \x3d dp;\nvar G__26977 \x3d xs__$1;\nvar G__26978 \x3d (i__$2 + (1));\np__$1 \x3d G__26976;\nG__25591__$1 \x3d G__26977;\ni__$1 \x3d G__26978;\ncontinue;\n} else {\nif(cljs.spec.alpha.accept_QMARK_(p__$2)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22op\x22,\x22cljs.spec.alpha/op\x22,-1269055252).cljs$core$IFn$_invoke$arity$1(p__$2),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pcat\x22,\x22cljs.spec.alpha/pcat\x22,26406623))){\nreturn cljs.spec.alpha.op_explain(cljs.spec.alpha.op_describe(p__$2),p__$2,path,via,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,i__$2),cljs.core.seq(data__$1));\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),\x22Extra input\x22,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.spec.alpha.op_describe(re),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),data__$1,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,i__$2)], null)], null);\n}\n} else {\nvar or__5002__auto__ \x3d cljs.spec.alpha.op_explain(cljs.spec.alpha.op_describe(p__$2),p__$2,path,via,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,i__$2),cljs.core.seq(data__$1));\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),\x22Extra input\x22,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.spec.alpha.op_describe(p__$2),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),data__$1,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(in$,i__$2)], null)], null);\n}\n}\n}\n}\nbreak;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha25601 \x3d (function (re,gfn,meta25602){\nthis.re \x3d re;\nthis.gfn \x3d gfn;\nthis.meta25602 \x3d meta25602;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_25603,meta25602__$1){\nvar self__ \x3d this;\nvar _25603__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25601(self__.re,self__.gfn,meta25602__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_25603){\nvar self__ \x3d this;\nvar _25603__$1 \x3d this;\nreturn self__.meta25602;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((((x \x3d\x3d null)) || (cljs.core.sequential_QMARK_(x)))){\nreturn cljs.spec.alpha.re_conform(self__.re,cljs.core.seq(x));\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.op_unform(self__.re,x);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((((x \x3d\x3d null)) || (cljs.core.sequential_QMARK_(x)))){\nreturn cljs.spec.alpha.re_explain(path,via,in$,self__.re,cljs.core.seq(x));\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22or\x22,\x22cljs.core/or\x22,1201033885,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22nil?\x22,\x22cljs.core/nil?\x22,945071861,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.core\x22,\x22sequential?\x22,\x22cljs.core/sequential?\x22,1777854658,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null),null,(1),null))))),null,(1),null))], 0)))),null,(1),null))], 0)))),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nreturn cljs.spec.alpha.re_gen(self__.re,overrides,path,rmap,cljs.spec.alpha.op_describe(self__.re));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (cljs.spec.alpha.regex_spec_impl.cljs$core$IFn$_invoke$arity$2 ? cljs.spec.alpha.regex_spec_impl.cljs$core$IFn$_invoke$arity$2(self__.re,gfn__$1) : cljs.spec.alpha.regex_spec_impl.call(null, self__.re,gfn__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.op_describe(self__.re);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22re\x22,\x22re\x22,1869207729,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22meta25602\x22,\x22meta25602\x22,-1305128584,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha25601\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25601.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha25601\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha25601.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha25601 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha25601(re,gfn,meta25602){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25601(re,gfn,meta25602));\n});\n\n\n/**\n * Do not call this directly, use \x27spec\x27 with a regex op argument\n */\ncljs.spec.alpha.regex_spec_impl \x3d (function cljs$spec$alpha$regex_spec_impl(re,gfn){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25601(re,gfn,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.spec.alpha.call_valid_QMARK_ \x3d (function cljs$spec$alpha$call_valid_QMARK_(f,specs,args){\nvar cargs \x3d cljs.spec.alpha.conform(new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(specs),args);\nif(cljs.spec.alpha.invalid_QMARK_(cargs)){\nreturn null;\n} else {\nvar ret \x3d cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\nvar cret \x3d cljs.spec.alpha.conform(new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814).cljs$core$IFn$_invoke$arity$1(specs),ret);\nvar and__5000__auto__ \x3d (!(cljs.spec.alpha.invalid_QMARK_(cret)));\nif(and__5000__auto__){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(specs))){\nreturn cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204).cljs$core$IFn$_invoke$arity$1(specs),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cargs,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cret], null));\n} else {\nreturn true;\n}\n} else {\nreturn and__5000__auto__;\n}\n}\n});\n/**\n * returns f if valid, else smallest\n */\ncljs.spec.alpha.validate_fn \x3d (function cljs$spec$alpha$validate_fn(f,specs,iters){\nvar g \x3d cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576).cljs$core$IFn$_invoke$arity$1(specs));\nvar prop \x3d cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [g], null),(function (p1__25712_SHARP_){\nreturn cljs.spec.alpha.call_valid_QMARK_(f,specs,p1__25712_SHARP_);\n})], 0));\nvar ret \x3d cljs.spec.gen.alpha.quick_check.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([iters,prop], 0));\nvar temp__5802__auto__ \x3d new cljs.core.Keyword(null,\x22smallest\x22,\x22smallest\x22,-152623883).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22shrunk\x22,\x22shrunk\x22,-2041664412).cljs$core$IFn$_invoke$arity$1(ret));\nif(cljs.core.truth_(temp__5802__auto__)){\nvar vec__25719 \x3d temp__5802__auto__;\nvar smallest \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25719,(0),null);\nreturn smallest;\n} else {\nreturn f;\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.ILookup}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha25735 \x3d (function (argspec,aform,retspec,rform,fnspec,fform,gfn,specs,meta25736){\nthis.argspec \x3d argspec;\nthis.aform \x3d aform;\nthis.retspec \x3d retspec;\nthis.rform \x3d rform;\nthis.fnspec \x3d fnspec;\nthis.fform \x3d fform;\nthis.gfn \x3d gfn;\nthis.specs \x3d specs;\nthis.meta25736 \x3d meta25736;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393472;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_25737,meta25736__$1){\nvar self__ \x3d this;\nvar _25737__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25735(self__.argspec,self__.aform,self__.retspec,self__.rform,self__.fnspec,self__.fform,self__.gfn,self__.specs,meta25736__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_25737){\nvar self__ \x3d this;\nvar _25737__$1 \x3d this;\nreturn self__.meta25736;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this$,k){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(self__.specs,k);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (_,k,not_found){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.specs,k,not_found);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.ifn_QMARK_(f)){\nif((f \x3d\x3d\x3d cljs.spec.alpha.validate_fn(f,self__.specs,cljs.spec.alpha._STAR_fspec_iterations_STAR_))){\nreturn f;\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n} else {\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn f;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,f){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.ifn_QMARK_(f)){\nvar args \x3d cljs.spec.alpha.validate_fn(f,self__.specs,(100));\nif((f \x3d\x3d\x3d args)){\nreturn null;\n} else {\nvar ret \x3d (function (){try{return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,args);\n}catch (e25759){if((e25759 instanceof Error)){\nvar t \x3d e25759;\nreturn t;\n} else {\nthrow e25759;\n\n}\n}})();\nif((ret instanceof Error)){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),cljs.core.list(new cljs.core.Symbol(null,\x22apply\x22,\x22apply\x22,-1334050276,null),new cljs.core.Symbol(null,\x22fn\x22,\x22fn\x22,465265323,null)),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),args,new cljs.core.Keyword(null,\x22reason\x22,\x22reason\x22,-2070751759),ret.message,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n} else {\nvar cret \x3d cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(self__.retspec,ret,self__.rform);\nif(cljs.spec.alpha.invalid_QMARK_(cret)){\nreturn cljs.spec.alpha.explain_1(self__.rform,self__.retspec,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814)),via,in$,ret);\n} else {\nif(cljs.core.truth_(self__.fnspec)){\nvar cargs \x3d cljs.spec.alpha.conform(self__.argspec,args);\nreturn cljs.spec.alpha.explain_1(self__.fform,self__.fnspec,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204)),via,in$,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),cargs,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),cret], null));\n} else {\nreturn null;\n}\n}\n}\n}\n} else {\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),path,new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Symbol(null,\x22ifn?\x22,\x22ifn?\x22,-2106461064,null),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),f,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null)], null);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,___$1,___$2){\nvar self__ \x3d this;\nvar ___$3 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function() { \nvar G__26982__delegate \x3d function (args){\nif(cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(self__.argspec,args)){\n} else {\nthrow (new Error([\x22Assert failed: \x22,(function (){var sb__5647__auto__ \x3d (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__25829_26983 \x3d cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__25830_26984 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__25831_26985 \x3d true;\nvar _STAR_print_fn_STAR__temp_val__25832_26986 \x3d (function (x__5648__auto__){\nreturn sb__5647__auto__.append(x__5648__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__temp_val__25831_26985);\n\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__25832_26986);\n\ntry{cljs.spec.alpha.explain(self__.argspec,args);\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__25830_26984);\n\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__orig_val__25829_26983);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5647__auto__);\n})(),\x22\\n\x22,\x22(pvalid? argspec args)\x22].join(\x27\x27)));\n}\n\nreturn cljs.spec.gen.alpha.generate(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(self__.retspec,overrides));\n};\nvar G__26982 \x3d function (var_args){\nvar args \x3d null;\nif (arguments.length \x3e 0) {\nvar G__26987__i \x3d 0, G__26987__a \x3d new Array(arguments.length - 0);\nwhile (G__26987__i \x3c G__26987__a.length) {G__26987__a[G__26987__i] \x3d arguments[G__26987__i + 0]; ++G__26987__i;}\n args \x3d new cljs.core.IndexedSeq(G__26987__a,0,null);\n} \nreturn G__26982__delegate.call(this,args);};\nG__26982.cljs$lang$maxFixedArity \x3d 0;\nG__26982.cljs$lang$applyTo \x3d (function (arglist__26988){\nvar args \x3d cljs.core.seq(arglist__26988);\nreturn G__26982__delegate(args);\n});\nG__26982.cljs$core$IFn$_invoke$arity$variadic \x3d G__26982__delegate;\nreturn G__26982;\n})()\n], 0));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (cljs.spec.alpha.fspec_impl.cljs$core$IFn$_invoke$arity$7 ? cljs.spec.alpha.fspec_impl.cljs$core$IFn$_invoke$arity$7(self__.argspec,self__.aform,self__.retspec,self__.rform,self__.fnspec,self__.fform,gfn__$1) : cljs.spec.alpha.fspec_impl.call(null, self__.argspec,self__.aform,self__.retspec,self__.rform,self__.fnspec,self__.fform,gfn__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22fspec\x22,\x22cljs.spec.alpha/fspec\x22,-1289128341,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,self__.aform,null,(1),null)),(new cljs.core.List(null,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),null,(1),null)),(new cljs.core.List(null,self__.rform,null,(1),null)),(new cljs.core.List(null,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),null,(1),null)),(new cljs.core.List(null,self__.fform,null,(1),null))], 0))));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22argspec\x22,\x22argspec\x22,-1207762746,null),new cljs.core.Symbol(null,\x22aform\x22,\x22aform\x22,531303525,null),new cljs.core.Symbol(null,\x22retspec\x22,\x22retspec\x22,-920025354,null),new cljs.core.Symbol(null,\x22rform\x22,\x22rform\x22,-1420499912,null),new cljs.core.Symbol(null,\x22fnspec\x22,\x22fnspec\x22,-1865712406,null),new cljs.core.Symbol(null,\x22fform\x22,\x22fform\x22,-176049972,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22specs\x22,\x22specs\x22,-1227865028,null),new cljs.core.Symbol(null,\x22meta25736\x22,\x22meta25736\x22,-2111894359,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha25735\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25735.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha25735\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha25735.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha25735 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha25735(argspec,aform,retspec,rform,fnspec,fform,gfn,specs,meta25736){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25735(argspec,aform,retspec,rform,fnspec,fform,gfn,specs,meta25736));\n});\n\n\n/**\n * Do not call this directly, use \x27fspec\x27\n */\ncljs.spec.alpha.fspec_impl \x3d (function cljs$spec$alpha$fspec_impl(argspec,aform,retspec,rform,fnspec,fform,gfn){\nvar specs \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),argspec,new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),retspec,new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204),fnspec], null);\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25735(argspec,aform,retspec,rform,fnspec,fform,gfn,specs,cljs.core.PersistentArrayMap.EMPTY));\n});\ncljs.spec.alpha.def_impl(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22kvs-\x3emap\x22,\x22cljs.spec.alpha/kvs-\x3emap\x22,579713455),cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22conformer\x22,\x22cljs.spec.alpha/conformer\x22,2140085535,null),cljs.core.list(new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22p1__25855#\x22,\x22p1__25855#\x22,-705400790,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22zipmap\x22,\x22cljs.core/zipmap\x22,-1902130674,null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map\x22,\x22cljs.core/map\x22,-338988913,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22k\x22,\x22cljs.spec.alpha/k\x22,-1602615178),new cljs.core.Symbol(null,\x22p1__25855#\x22,\x22p1__25855#\x22,-705400790,null)),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map\x22,\x22cljs.core/map\x22,-338988913,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22v\x22,\x22cljs.spec.alpha/v\x22,552625740),new cljs.core.Symbol(null,\x22p1__25855#\x22,\x22p1__25855#\x22,-705400790,null)))),cljs.core.list(new cljs.core.Symbol(null,\x22fn*\x22,\x22fn*\x22,-752876845,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22p1__25856#\x22,\x22p1__25856#\x22,1370864625,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map\x22,\x22cljs.core/map\x22,-338988913,null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22k\x22,\x22cljs.spec.alpha/k\x22,-1602615178),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22v\x22,\x22cljs.spec.alpha/v\x22,552625740),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)], null)),new cljs.core.Symbol(null,\x22p1__25856#\x22,\x22p1__25856#\x22,1370864625,null)))),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(cljs.core.list(new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22conformer\x22,\x22cljs.spec.alpha/conformer\x22,2140085535,null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22zipmap\x22,\x22cljs.core/zipmap\x22,-1902130674,null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map\x22,\x22cljs.core/map\x22,-338988913,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22k\x22,\x22cljs.spec.alpha/k\x22,-1602615178),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map\x22,\x22cljs.core/map\x22,-338988913,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22v\x22,\x22cljs.spec.alpha/v\x22,552625740),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)))),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)], null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22map\x22,\x22cljs.core/map\x22,-338988913,null),cljs.core.list(new cljs.core.Symbol(\x22cljs.core\x22,\x22fn\x22,\x22cljs.core/fn\x22,-1065745098,null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)], null)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22k\x22,\x22cljs.spec.alpha/k\x22,-1602615178),new cljs.core.Symbol(null,\x22k\x22,\x22k\x22,-505765866,null),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22v\x22,\x22cljs.spec.alpha/v\x22,552625740),new cljs.core.Symbol(null,\x22v\x22,\x22v\x22,1661996586,null)], null)),new cljs.core.Symbol(null,\x22%\x22,\x22%\x22,-950237169,null)))),(function (p1__25855_SHARP_){\nreturn cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22k\x22,\x22cljs.spec.alpha/k\x22,-1602615178),p1__25855_SHARP_),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22v\x22,\x22cljs.spec.alpha/v\x22,552625740),p1__25855_SHARP_));\n}),null,true,(function (p1__25856_SHARP_){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__25884){\nvar vec__25885 \x3d p__25884;\nvar k \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25885,(0),null);\nvar v \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25885,(1),null);\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22k\x22,\x22cljs.spec.alpha/k\x22,-1602615178),k,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22v\x22,\x22cljs.spec.alpha/v\x22,552625740),v], null);\n}),p1__25856_SHARP_);\n})));\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha25895 \x3d (function (spec,meta25896){\nthis.spec \x3d spec;\nthis.meta25896 \x3d meta25896;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_25897,meta25896__$1){\nvar self__ \x3d this;\nvar _25897__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25895(self__.spec,meta25896__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_25897){\nvar self__ \x3d this;\nvar _25897__$1 \x3d this;\nreturn self__.meta25896;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar ret \x3d cljs.spec.alpha.conform_STAR_(cljs.core.deref(self__.spec),x);\nif(cljs.spec.alpha.invalid_QMARK_(ret)){\nreturn new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22invalid\x22,\x22cljs.spec.alpha/invalid\x22,-1220295119);\n} else {\nreturn x;\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.unform_STAR_(cljs.core.deref(self__.spec),x);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.explain_STAR_(cljs.core.deref(self__.spec),path,via,in$,x);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.spec.alpha.gen_STAR_(cljs.core.deref(self__.spec),overrides,path,rmap);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nvar G__25942 \x3d cljs.spec.alpha.with_gen_STAR_(cljs.core.deref(self__.spec),gfn);\nreturn (cljs.spec.alpha.nonconforming.cljs$core$IFn$_invoke$arity$1 ? cljs.spec.alpha.nonconforming.cljs$core$IFn$_invoke$arity$1(G__25942) : cljs.spec.alpha.nonconforming.call(null, G__25942));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22nonconforming\x22,\x22cljs.spec.alpha/nonconforming\x22,-1009218508,null),null,(1),null)),(new cljs.core.List(null,cljs.spec.alpha.describe_STAR_(cljs.core.deref(self__.spec)),null,(1),null)))));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22spec\x22,\x22spec\x22,1988051928,null),new cljs.core.Symbol(null,\x22meta25896\x22,\x22meta25896\x22,-1279944343,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha25895\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25895.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha25895\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha25895.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha25895 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha25895(spec,meta25896){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25895(spec,meta25896));\n});\n\n\n/**\n * takes a spec and returns a spec that has the same properties except\n * \x27conform\x27 returns the original (not the conformed) value. Note, will specize regex ops.\n */\ncljs.spec.alpha.nonconforming \x3d (function cljs$spec$alpha$nonconforming(spec){\nvar spec__$1 \x3d (new cljs.core.Delay((function (){\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec);\n}),null));\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25895(spec__$1,cljs.core.PersistentArrayMap.EMPTY));\n});\n\n/**\n* @constructor\n * @implements {cljs.spec.alpha.Spec}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.spec.alpha.Specize}\n * @implements {cljs.core.IWithMeta}\n*/\ncljs.spec.alpha.t_cljs$spec$alpha25969 \x3d (function (form,pred,gfn,spec,meta25970){\nthis.form \x3d form;\nthis.pred \x3d pred;\nthis.gfn \x3d gfn;\nthis.spec \x3d spec;\nthis.meta25970 \x3d meta25970;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 393216;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (_25971,meta25970__$1){\nvar self__ \x3d this;\nvar _25971__$1 \x3d this;\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25969(self__.form,self__.pred,self__.gfn,self__.spec,meta25970__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (_25971){\nvar self__ \x3d this;\nvar _25971__$1 \x3d this;\nreturn self__.meta25970;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Specize$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 \x3d (function (s){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 \x3d (function (s,_){\nvar self__ \x3d this;\nvar s__$1 \x3d this;\nreturn s__$1;\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((x \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.spec.alpha.conform_STAR_(cljs.core.deref(self__.spec),x);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2 \x3d (function (_,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif((x \x3d\x3d null)){\nreturn null;\n} else {\nreturn cljs.spec.alpha.unform_STAR_(cljs.core.deref(self__.spec),x);\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5 \x3d (function (_,path,via,in$,x){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(((cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.spec),x)) || ((x \x3d\x3d null)))){\nreturn null;\n} else {\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_1(self__.form,self__.pred,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pred\x22,\x22cljs.spec.alpha/pred\x22,-798342594)),via,in$,x),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22nil\x22,\x22cljs.spec.alpha/nil\x22,1733813950)),new cljs.core.Keyword(null,\x22pred\x22,\x22pred\x22,1927423397),new cljs.core.Symbol(null,\x22nil?\x22,\x22nil?\x22,1612038930,null),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),x,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336),via,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865),in$], null));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4 \x3d (function (_,overrides,path,rmap){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nif(cljs.core.truth_(self__.gfn)){\nreturn (self__.gfn.cljs$core$IFn$_invoke$arity$0 ? self__.gfn.cljs$core$IFn$_invoke$arity$0() : self__.gfn.call(null, ));\n} else {\nreturn cljs.spec.gen.alpha.frequency.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),cljs.spec.gen.alpha.delay_impl((new cljs.core.Delay((function (){\nreturn cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null], 0));\n}),null)))], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(9),cljs.spec.gen.alpha.delay_impl((new cljs.core.Delay((function (){\nreturn cljs.spec.alpha.gensub(self__.pred,overrides,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(path,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22pred\x22,\x22cljs.spec.alpha/pred\x22,-798342594)),rmap,self__.form);\n}),null)))], null)], null)], 0));\n}\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 \x3d (function (_,gfn__$1){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn (cljs.spec.alpha.nilable_impl.cljs$core$IFn$_invoke$arity$3 ? cljs.spec.alpha.nilable_impl.cljs$core$IFn$_invoke$arity$3(self__.form,self__.pred,gfn__$1) : cljs.spec.alpha.nilable_impl.call(null, self__.form,self__.pred,gfn__$1));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(\x22cljs.spec.alpha\x22,\x22nilable\x22,\x22cljs.spec.alpha/nilable\x22,1628308748,null),null,(1),null)),(new cljs.core.List(null,self__.form,null,(1),null)))));\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22form\x22,\x22form\x22,16469056,null),new cljs.core.Symbol(null,\x22pred\x22,\x22pred\x22,-727012372,null),new cljs.core.Symbol(null,\x22gfn\x22,\x22gfn\x22,-1862918295,null),new cljs.core.Symbol(null,\x22spec\x22,\x22spec\x22,1988051928,null),new cljs.core.Symbol(null,\x22meta25970\x22,\x22meta25970\x22,2077635742,null)], null);\n}));\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.cljs$lang$type \x3d true);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.cljs$lang$ctorStr \x3d \x22cljs.spec.alpha/t_cljs$spec$alpha25969\x22);\n\n(cljs.spec.alpha.t_cljs$spec$alpha25969.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22cljs.spec.alpha/t_cljs$spec$alpha25969\x22);\n}));\n\n/**\n * Positional factory function for cljs.spec.alpha/t_cljs$spec$alpha25969.\n */\ncljs.spec.alpha.__GT_t_cljs$spec$alpha25969 \x3d (function cljs$spec$alpha$__GT_t_cljs$spec$alpha25969(form,pred,gfn,spec,meta25970){\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25969(form,pred,gfn,spec,meta25970));\n});\n\n\n/**\n * Do not call this directly, use \x27nilable\x27\n */\ncljs.spec.alpha.nilable_impl \x3d (function cljs$spec$alpha$nilable_impl(form,pred,gfn){\nvar spec \x3d (new cljs.core.Delay((function (){\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2(pred,form);\n}),null));\nreturn (new cljs.spec.alpha.t_cljs$spec$alpha25969(form,pred,gfn,spec,cljs.core.PersistentArrayMap.EMPTY));\n});\n/**\n * generates a number (default 10) of values compatible with spec and maps conform over them,\n * returning a sequence of [val conformed-val] tuples. Optionally takes\n * a generator overrides map as per gen\n */\ncljs.spec.alpha.exercise \x3d (function cljs$spec$alpha$exercise(var_args){\nvar G__26011 \x3d arguments.length;\nswitch (G__26011) {\ncase 1:\nreturn cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$1 \x3d (function (spec){\nreturn cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$2(spec,(10));\n}));\n\n(cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$2 \x3d (function (spec,n){\nreturn cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$3(spec,n,null);\n}));\n\n(cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$3 \x3d (function (spec,n,overrides){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26003_SHARP_){\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__26003_SHARP_,cljs.spec.alpha.conform(spec,p1__26003_SHARP_)],null));\n}),cljs.spec.gen.alpha.sample.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(spec,overrides),n], 0)));\n}));\n\n(cljs.spec.alpha.exercise.cljs$lang$maxFixedArity \x3d 3);\n\n/**\n * Return true if inst at or after start and before end\n */\ncljs.spec.alpha.inst_in_range_QMARK_ \x3d (function cljs$spec$alpha$inst_in_range_QMARK_(start,end,inst){\nvar and__5000__auto__ \x3d cljs.core.inst_QMARK_(inst);\nif(and__5000__auto__){\nvar t \x3d cljs.core.inst_ms(inst);\nreturn (((cljs.core.inst_ms(start) \x3c\x3d t)) \x26\x26 ((t \x3c cljs.core.inst_ms(end))));\n} else {\nreturn and__5000__auto__;\n}\n});\n/**\n * Return true if start \x3c\x3d val, val \x3c end and val is a fixed\n * precision integer.\n */\ncljs.spec.alpha.int_in_range_QMARK_ \x3d (function cljs$spec$alpha$int_in_range_QMARK_(start,end,val){\nif(cljs.core.integer_QMARK_(val)){\nreturn (((start \x3c\x3d val)) \x26\x26 ((val \x3c end)));\n} else {\nif((val instanceof cljs.spec.alpha.goog$module$goog$math$Long)){\nvar and__5000__auto__ \x3d start.lessThanOrEqual(val);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn val.lessThan(end);\n} else {\nreturn and__5000__auto__;\n}\n} else {\nif((val instanceof goog.math.Integer)){\nvar and__5000__auto__ \x3d start.lessThanOrEqual(val);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn val.lessThan(end);\n} else {\nreturn and__5000__auto__;\n}\n} else {\nreturn false;\n\n}\n}\n}\n});\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec.alpha !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec.alpha._STAR_compile_asserts_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\n/**\n * If true, compiler will enable spec asserts, which are then\n * subject to runtime control via check-asserts? If false, compiler\n * will eliminate all spec assert overhead. See \x27assert\x27.\n * Initially set to the negation of the \x27:elide-asserts\x27 compiler option.\n * Defaults to true.\n */\ncljs.spec.alpha._STAR_compile_asserts_STAR_ \x3d true;\n}\nif((typeof cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec.alpha !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof cljs.spec.alpha._STAR_runtime_asserts_STAR_ !\x3d\x3d \x27undefined\x27)){\n} else {\ncljs.spec.alpha._STAR_runtime_asserts_STAR_ \x3d false;\n}\n/**\n * Returns the value set by check-asserts.\n */\ncljs.spec.alpha.check_asserts_QMARK_ \x3d (function cljs$spec$alpha$check_asserts_QMARK_(){\nreturn cljs.spec.alpha._STAR_runtime_asserts_STAR_;\n});\n/**\n * Enable or disable spec asserts that have been compiled\n * with \x27*compile-asserts*\x27 true. See \x27assert\x27.\n * Initially set to boolean value of cljs.spec.alpha/*runtime-asserts*.\n * Defaults to false.\n */\ncljs.spec.alpha.check_asserts \x3d (function cljs$spec$alpha$check_asserts(flag){\nreturn (cljs.spec.alpha._STAR_runtime_asserts_STAR_ \x3d flag);\n});\n/**\n * Do not call this directly, use \x27assert\x27.\n */\ncljs.spec.alpha.assert_STAR_ \x3d (function cljs$spec$alpha$assert_STAR_(spec,x){\nif(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(spec,x)){\nreturn x;\n} else {\nvar ed \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.explain_data_STAR_(spec,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,x),new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22failure\x22,\x22cljs.spec.alpha/failure\x22,188258592),new cljs.core.Keyword(null,\x22assertion-failed\x22,\x22assertion-failed\x22,-970534477))], 0));\nthrow (new Error([\x22Spec assertion failed\\n\x22,(function (){var sb__5647__auto__ \x3d (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__26064_27009 \x3d cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__26065_27010 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__26066_27011 \x3d true;\nvar _STAR_print_fn_STAR__temp_val__26067_27012 \x3d (function (x__5648__auto__){\nreturn sb__5647__auto__.append(x__5648__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__temp_val__26066_27011);\n\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__26067_27012);\n\ntry{cljs.spec.alpha.explain_out(ed);\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__26065_27010);\n\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__orig_val__26064_27009);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5647__auto__);\n})()].join(\x27\x27)));\n}\n});\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.writer.js", true, "goog.provide(\x27shadow.remote.runtime.writer\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IWriter}\n*/\nshadow.remote.runtime.writer.LimitWriter \x3d (function (sb,limit){\nthis.sb \x3d sb;\nthis.limit \x3d limit;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 1073741824;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 0;\n});\n(shadow.remote.runtime.writer.LimitWriter.prototype.getString \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nreturn self__.sb.toString();\n}));\n\n(shadow.remote.runtime.writer.LimitWriter.prototype.cljs$core$IWriter$_write$arity$2 \x3d (function (_,s){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nself__.sb.append(s);\n\nif((self__.sb.getLength() \x3e\x3d self__.limit)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\x22The limit of \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.limit),\x22 bytes was reached while printing.\x22].join(\x27\x27),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Keyword(\x22shadow.remote.runtime.writer\x22,\x22limit-reached\x22,\x22shadow.remote.runtime.writer/limit-reached\x22,1304350996),new cljs.core.Keyword(null,\x22limit\x22,\x22limit\x22,-1355822363),self__.limit], null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.remote.runtime.writer.LimitWriter.prototype.cljs$core$IWriter$_flush$arity$1 \x3d (function (_){\nvar self__ \x3d this;\nvar ___$1 \x3d this;\nreturn null;\n}));\n\n(shadow.remote.runtime.writer.LimitWriter.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\x22sb\x22,\x22sb\x22,-1249746442,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223),new cljs.core.Symbol(null,\x22StringBuffer\x22,\x22StringBuffer\x22,864531538,null)], null)),new cljs.core.Symbol(null,\x22limit\x22,\x22limit\x22,284709164,null)], null);\n}));\n\n(shadow.remote.runtime.writer.LimitWriter.cljs$lang$type \x3d true);\n\n(shadow.remote.runtime.writer.LimitWriter.cljs$lang$ctorStr \x3d \x22shadow.remote.runtime.writer/LimitWriter\x22);\n\n(shadow.remote.runtime.writer.LimitWriter.cljs$lang$ctorPrWriter \x3d (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){\nreturn cljs.core._write(writer__5288__auto__,\x22shadow.remote.runtime.writer/LimitWriter\x22);\n}));\n\n/**\n * Positional factory function for shadow.remote.runtime.writer/LimitWriter.\n */\nshadow.remote.runtime.writer.__GT_LimitWriter \x3d (function shadow$remote$runtime$writer$__GT_LimitWriter(sb,limit){\nreturn (new shadow.remote.runtime.writer.LimitWriter(sb,limit));\n});\n\nshadow.remote.runtime.writer.pr_str_limit \x3d (function shadow$remote$runtime$writer$pr_str_limit(obj,limit){\nvar sb \x3d (new goog.string.StringBuffer());\nvar writer \x3d (new shadow.remote.runtime.writer.LimitWriter(sb,limit));\ntry{cljs.core.pr_writer(obj,writer,cljs.core.pr_opts());\n\nreturn [\x220,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb.toString())].join(\x27\x27);\n}catch (e22084){var e \x3d e22084;\nif((!(cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(\x22shadow.remote.runtime.writer\x22,\x22limit-reached\x22,\x22shadow.remote.runtime.writer/limit-reached\x22,1304350996),new cljs.core.Keyword(null,\x22tag\x22,\x22tag\x22,-1290361223).cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(e)))))){\nthrow e;\n} else {\nreturn [\x221,\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var s \x3d sb.toString();\nif((s.length \x3e limit)){\nreturn cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),limit);\n} else {\nreturn s;\n}\n})())].join(\x27\x27);\n}\n}});\nshadow.remote.runtime.writer.limit_writer \x3d (function shadow$remote$runtime$writer$limit_writer(limit){\nvar sb \x3d (new goog.string.StringBuffer());\nreturn (new shadow.remote.runtime.writer.LimitWriter(sb,limit));\n});\nshadow.remote.runtime.writer.get_string \x3d (function shadow$remote$runtime$writer$get_string(lw){\nreturn lw.getString();\n});\n");
SHADOW_ENV.evalLoad("goog.string.stringformat.js", true, "goog.provide(\x22goog.string.format\x22);\ngoog.require(\x22goog.string\x22);\ngoog.string.format \x3d function(formatString, var_args) {\n function replacerDemuxer(match, flags, width, dotp, precision, type, offset, wholeString) {\n if (type \x3d\x3d \x22%\x22) {\n return \x22%\x22;\n }\n const value \x3d args.shift();\n if (typeof value \x3d\x3d \x22undefined\x22) {\n throw new Error(\x22[goog.string.format] Not enough arguments\x22);\n }\n arguments[0] \x3d value;\n return goog.string.format.demuxes_[type].apply(null, arguments);\n }\n const args \x3d Array.prototype.slice.call(arguments);\n const template \x3d args.shift();\n if (typeof template \x3d\x3d \x22undefined\x22) {\n throw new Error(\x22[goog.string.format] Template required\x22);\n }\n const formatRe \x3d /%([0\\- \\+]*)(\\d+)?(\\.(\\d+))?([%sfdiu])/g;\n return template.replace(formatRe, replacerDemuxer);\n};\ngoog.string.format.demuxes_ \x3d {};\ngoog.string.format.demuxes_[\x22s\x22] \x3d function(value, flags, width, dotp, precision, type, offset, wholeString) {\n let replacement \x3d value;\n if (isNaN(width) || width \x3d\x3d \x22\x22 || replacement.length \x3e\x3d Number(width)) {\n return replacement;\n }\n if (flags.indexOf(\x22-\x22, 0) \x3e -1) {\n replacement \x3d replacement + goog.string.repeat(\x22 \x22, Number(width) - replacement.length);\n } else {\n replacement \x3d goog.string.repeat(\x22 \x22, Number(width) - replacement.length) + replacement;\n }\n return replacement;\n};\ngoog.string.format.demuxes_[\x22f\x22] \x3d function(value, flags, width, dotp, precision, type, offset, wholeString) {\n let replacement \x3d value.toString();\n if (!(isNaN(precision) || precision \x3d\x3d \x22\x22)) {\n replacement \x3d parseFloat(value).toFixed(precision);\n }\n let sign;\n if (Number(value) \x3c 0) {\n sign \x3d \x22-\x22;\n } else if (flags.indexOf(\x22+\x22) \x3e\x3d 0) {\n sign \x3d \x22+\x22;\n } else if (flags.indexOf(\x22 \x22) \x3e\x3d 0) {\n sign \x3d \x22 \x22;\n } else {\n sign \x3d \x22\x22;\n }\n if (Number(value) \x3e\x3d 0) {\n replacement \x3d sign + replacement;\n }\n if (isNaN(width) || replacement.length \x3e\x3d Number(width)) {\n return replacement;\n }\n replacement \x3d isNaN(precision) ? Math.abs(Number(value)).toString() : Math.abs(Number(value)).toFixed(precision);\n const padCount \x3d Number(width) - replacement.length - sign.length;\n if (flags.indexOf(\x22-\x22, 0) \x3e\x3d 0) {\n replacement \x3d sign + replacement + goog.string.repeat(\x22 \x22, padCount);\n } else {\n const paddingChar \x3d flags.indexOf(\x220\x22, 0) \x3e\x3d 0 ? \x220\x22 : \x22 \x22;\n replacement \x3d sign + goog.string.repeat(paddingChar, padCount) + replacement;\n }\n return replacement;\n};\ngoog.string.format.demuxes_[\x22d\x22] \x3d function(value, flags, width, dotp, precision, type, offset, wholeString) {\n return goog.string.format.demuxes_[\x22f\x22](parseInt(value, 10), flags, width, dotp, 0, type, offset, wholeString);\n};\ngoog.string.format.demuxes_[\x22i\x22] \x3d goog.string.format.demuxes_[\x22d\x22];\ngoog.string.format.demuxes_[\x22u\x22] \x3d goog.string.format.demuxes_[\x22d\x22];\n");
SHADOW_ENV.evalLoad("cljs.repl.js", true, "goog.provide(\x27cljs.repl\x27);\ncljs.repl.print_doc \x3d (function cljs$repl$print_doc(p__26145){\nvar map__26146 \x3d p__26145;\nvar map__26146__$1 \x3d cljs.core.__destructure_map(map__26146);\nvar m \x3d map__26146__$1;\nvar n \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26146__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar nm \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26146__$1,new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177));\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22-------------------------\x22], 0));\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn [(function (){var temp__5804__auto__ \x3d new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(temp__5804__auto__)){\nvar ns \x3d temp__5804__auto__;\nreturn [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),\x22/\x22].join(\x27\x27);\n} else {\nreturn null;\n}\n})(),cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(m))].join(\x27\x27);\n}\n})()], 0));\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(m))){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Protocol\x22], 0));\n} else {\n}\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(m))){\nvar seq__26155_26532 \x3d cljs.core.seq(new cljs.core.Keyword(null,\x22forms\x22,\x22forms\x22,2045992350).cljs$core$IFn$_invoke$arity$1(m));\nvar chunk__26156_26533 \x3d null;\nvar count__26157_26534 \x3d (0);\nvar i__26158_26535 \x3d (0);\nwhile(true){\nif((i__26158_26535 \x3c count__26157_26534)){\nvar f_26536 \x3d chunk__26156_26533.cljs$core$IIndexed$_nth$arity$2(null, i__26158_26535);\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,f_26536], 0));\n\n\nvar G__26540 \x3d seq__26155_26532;\nvar G__26541 \x3d chunk__26156_26533;\nvar G__26542 \x3d count__26157_26534;\nvar G__26543 \x3d (i__26158_26535 + (1));\nseq__26155_26532 \x3d G__26540;\nchunk__26156_26533 \x3d G__26541;\ncount__26157_26534 \x3d G__26542;\ni__26158_26535 \x3d G__26543;\ncontinue;\n} else {\nvar temp__5804__auto___26544 \x3d cljs.core.seq(seq__26155_26532);\nif(temp__5804__auto___26544){\nvar seq__26155_26545__$1 \x3d temp__5804__auto___26544;\nif(cljs.core.chunked_seq_QMARK_(seq__26155_26545__$1)){\nvar c__5525__auto___26546 \x3d cljs.core.chunk_first(seq__26155_26545__$1);\nvar G__26547 \x3d cljs.core.chunk_rest(seq__26155_26545__$1);\nvar G__26548 \x3d c__5525__auto___26546;\nvar G__26549 \x3d cljs.core.count(c__5525__auto___26546);\nvar G__26550 \x3d (0);\nseq__26155_26532 \x3d G__26547;\nchunk__26156_26533 \x3d G__26548;\ncount__26157_26534 \x3d G__26549;\ni__26158_26535 \x3d G__26550;\ncontinue;\n} else {\nvar f_26551 \x3d cljs.core.first(seq__26155_26545__$1);\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,f_26551], 0));\n\n\nvar G__26553 \x3d cljs.core.next(seq__26155_26545__$1);\nvar G__26554 \x3d null;\nvar G__26555 \x3d (0);\nvar G__26556 \x3d (0);\nseq__26155_26532 \x3d G__26553;\nchunk__26156_26533 \x3d G__26554;\ncount__26157_26534 \x3d G__26555;\ni__26158_26535 \x3d G__26556;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(m))){\nvar arglists_26558 \x3d new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_((function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(m);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn new cljs.core.Keyword(null,\x22repl-special-function\x22,\x22repl-special-function\x22,1262603725).cljs$core$IFn$_invoke$arity$1(m);\n}\n})())){\ncljs.core.prn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([arglists_26558], 0));\n} else {\ncljs.core.prn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\x22quote\x22,\x22quote\x22,1377916282,null),cljs.core.first(arglists_26558)))?cljs.core.second(arglists_26558):arglists_26558)], 0));\n}\n} else {\n}\n}\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22special-form\x22,\x22special-form\x22,-1326536374).cljs$core$IFn$_invoke$arity$1(m))){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Special Form\x22], 0));\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(m)], 0));\n\nif(cljs.core.contains_QMARK_(m,new cljs.core.Keyword(null,\x22url\x22,\x22url\x22,276297046))){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22url\x22,\x22url\x22,276297046).cljs$core$IFn$_invoke$arity$1(m))){\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22\\n Please see http://clojure.org/\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22url\x22,\x22url\x22,276297046).cljs$core$IFn$_invoke$arity$1(m))].join(\x27\x27)], 0));\n} else {\nreturn null;\n}\n} else {\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22\\n Please see http://clojure.org/special_forms#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22name\x22,\x22name\x22,1843675177).cljs$core$IFn$_invoke$arity$1(m))].join(\x27\x27)], 0));\n}\n} else {\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22macro\x22,\x22macro\x22,-867863404).cljs$core$IFn$_invoke$arity$1(m))){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Macro\x22], 0));\n} else {\n}\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22spec\x22,\x22spec\x22,347520401).cljs$core$IFn$_invoke$arity$1(m))){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Spec\x22], 0));\n} else {\n}\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22repl-special-function\x22,\x22repl-special-function\x22,1262603725).cljs$core$IFn$_invoke$arity$1(m))){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22REPL Special Function\x22], 0));\n} else {\n}\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891).cljs$core$IFn$_invoke$arity$1(m)], 0));\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22protocol\x22,\x22protocol\x22,652470118).cljs$core$IFn$_invoke$arity$1(m))){\nvar seq__26186_26562 \x3d cljs.core.seq(new cljs.core.Keyword(null,\x22methods\x22,\x22methods\x22,453930866).cljs$core$IFn$_invoke$arity$1(m));\nvar chunk__26187_26563 \x3d null;\nvar count__26188_26564 \x3d (0);\nvar i__26189_26565 \x3d (0);\nwhile(true){\nif((i__26189_26565 \x3c count__26188_26564)){\nvar vec__26209_26570 \x3d chunk__26187_26563.cljs$core$IIndexed$_nth$arity$2(null, i__26189_26565);\nvar name_26571 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26209_26570,(0),null);\nvar map__26212_26572 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26209_26570,(1),null);\nvar map__26212_26573__$1 \x3d cljs.core.__destructure_map(map__26212_26572);\nvar doc_26574 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26212_26573__$1,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891));\nvar arglists_26575 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26212_26573__$1,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754));\ncljs.core.println();\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,name_26571], 0));\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,arglists_26575], 0));\n\nif(cljs.core.truth_(doc_26574)){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,doc_26574], 0));\n} else {\n}\n\n\nvar G__26581 \x3d seq__26186_26562;\nvar G__26582 \x3d chunk__26187_26563;\nvar G__26583 \x3d count__26188_26564;\nvar G__26584 \x3d (i__26189_26565 + (1));\nseq__26186_26562 \x3d G__26581;\nchunk__26187_26563 \x3d G__26582;\ncount__26188_26564 \x3d G__26583;\ni__26189_26565 \x3d G__26584;\ncontinue;\n} else {\nvar temp__5804__auto___26586 \x3d cljs.core.seq(seq__26186_26562);\nif(temp__5804__auto___26586){\nvar seq__26186_26587__$1 \x3d temp__5804__auto___26586;\nif(cljs.core.chunked_seq_QMARK_(seq__26186_26587__$1)){\nvar c__5525__auto___26588 \x3d cljs.core.chunk_first(seq__26186_26587__$1);\nvar G__26589 \x3d cljs.core.chunk_rest(seq__26186_26587__$1);\nvar G__26590 \x3d c__5525__auto___26588;\nvar G__26591 \x3d cljs.core.count(c__5525__auto___26588);\nvar G__26592 \x3d (0);\nseq__26186_26562 \x3d G__26589;\nchunk__26187_26563 \x3d G__26590;\ncount__26188_26564 \x3d G__26591;\ni__26189_26565 \x3d G__26592;\ncontinue;\n} else {\nvar vec__26233_26593 \x3d cljs.core.first(seq__26186_26587__$1);\nvar name_26594 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26233_26593,(0),null);\nvar map__26236_26595 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26233_26593,(1),null);\nvar map__26236_26596__$1 \x3d cljs.core.__destructure_map(map__26236_26595);\nvar doc_26597 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26236_26596__$1,new cljs.core.Keyword(null,\x22doc\x22,\x22doc\x22,1913296891));\nvar arglists_26598 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26236_26596__$1,new cljs.core.Keyword(null,\x22arglists\x22,\x22arglists\x22,1661989754));\ncljs.core.println();\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,name_26594], 0));\n\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,arglists_26598], 0));\n\nif(cljs.core.truth_(doc_26597)){\ncljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22 \x22,doc_26597], 0));\n} else {\n}\n\n\nvar G__26602 \x3d cljs.core.next(seq__26186_26587__$1);\nvar G__26603 \x3d null;\nvar G__26604 \x3d (0);\nvar G__26605 \x3d (0);\nseq__26186_26562 \x3d G__26602;\nchunk__26187_26563 \x3d G__26603;\ncount__26188_26564 \x3d G__26604;\ni__26189_26565 \x3d G__26605;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nif(cljs.core.truth_(n)){\nvar temp__5804__auto__ \x3d cljs.spec.alpha.get_spec(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.ns_name(n)),cljs.core.name(nm)));\nif(cljs.core.truth_(temp__5804__auto__)){\nvar fnspec \x3d temp__5804__auto__;\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22Spec\x22], 0));\n\nvar seq__26262 \x3d cljs.core.seq(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22args\x22,\x22args\x22,1315556576),new cljs.core.Keyword(null,\x22ret\x22,\x22ret\x22,-468222814),new cljs.core.Keyword(null,\x22fn\x22,\x22fn\x22,-1175266204)], null));\nvar chunk__26263 \x3d null;\nvar count__26264 \x3d (0);\nvar i__26265 \x3d (0);\nwhile(true){\nif((i__26265 \x3c count__26264)){\nvar role \x3d chunk__26263.cljs$core$IIndexed$_nth$arity$2(null, i__26265);\nvar temp__5804__auto___26609__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(fnspec,role);\nif(cljs.core.truth_(temp__5804__auto___26609__$1)){\nvar spec_26610 \x3d temp__5804__auto___26609__$1;\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22\\n \x22,cljs.core.name(role),\x22:\x22].join(\x27\x27),cljs.spec.alpha.describe(spec_26610)], 0));\n} else {\n}\n\n\nvar G__26612 \x3d seq__26262;\nvar G__26613 \x3d chunk__26263;\nvar G__26614 \x3d count__26264;\nvar G__26615 \x3d (i__26265 + (1));\nseq__26262 \x3d G__26612;\nchunk__26263 \x3d G__26613;\ncount__26264 \x3d G__26614;\ni__26265 \x3d G__26615;\ncontinue;\n} else {\nvar temp__5804__auto____$1 \x3d cljs.core.seq(seq__26262);\nif(temp__5804__auto____$1){\nvar seq__26262__$1 \x3d temp__5804__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(seq__26262__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__26262__$1);\nvar G__26616 \x3d cljs.core.chunk_rest(seq__26262__$1);\nvar G__26617 \x3d c__5525__auto__;\nvar G__26618 \x3d cljs.core.count(c__5525__auto__);\nvar G__26619 \x3d (0);\nseq__26262 \x3d G__26616;\nchunk__26263 \x3d G__26617;\ncount__26264 \x3d G__26618;\ni__26265 \x3d G__26619;\ncontinue;\n} else {\nvar role \x3d cljs.core.first(seq__26262__$1);\nvar temp__5804__auto___26621__$2 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(fnspec,role);\nif(cljs.core.truth_(temp__5804__auto___26621__$2)){\nvar spec_26622 \x3d temp__5804__auto___26621__$2;\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\x22\\n \x22,cljs.core.name(role),\x22:\x22].join(\x27\x27),cljs.spec.alpha.describe(spec_26622)], 0));\n} else {\n}\n\n\nvar G__26623 \x3d cljs.core.next(seq__26262__$1);\nvar G__26624 \x3d null;\nvar G__26625 \x3d (0);\nvar G__26626 \x3d (0);\nseq__26262 \x3d G__26623;\nchunk__26263 \x3d G__26624;\ncount__26264 \x3d G__26625;\ni__26265 \x3d G__26626;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n}\n});\n/**\n * Constructs a data representation for a Error with keys:\n * :cause - root cause message\n * :phase - error phase\n * :via - cause chain, with cause keys:\n * :type - exception class symbol\n * :message - exception message\n * :data - ex-data\n * :at - top stack element\n * :trace - root cause stack elements\n */\ncljs.repl.Error__GT_map \x3d (function cljs$repl$Error__GT_map(o){\nreturn cljs.core.Throwable__GT_map(o);\n});\n/**\n * Returns an analysis of the phase, error, cause, and location of an error that occurred\n * based on Throwable data, as returned by Throwable-\x3emap. All attributes other than phase\n * are optional:\n * :clojure.error/phase - keyword phase indicator, one of:\n * :read-source :compile-syntax-check :compilation :macro-syntax-check :macroexpansion\n * :execution :read-eval-result :print-eval-result\n * :clojure.error/source - file name (no path)\n * :clojure.error/line - integer line number\n * :clojure.error/column - integer column number\n * :clojure.error/symbol - symbol being expanded/compiled/invoked\n * :clojure.error/class - cause exception class symbol\n * :clojure.error/cause - cause exception message\n * :clojure.error/spec - explain-data for spec error\n */\ncljs.repl.ex_triage \x3d (function cljs$repl$ex_triage(datafied_throwable){\nvar map__26337 \x3d datafied_throwable;\nvar map__26337__$1 \x3d cljs.core.__destructure_map(map__26337);\nvar via \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26337__$1,new cljs.core.Keyword(null,\x22via\x22,\x22via\x22,-1904457336));\nvar trace \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26337__$1,new cljs.core.Keyword(null,\x22trace\x22,\x22trace\x22,-1082747415));\nvar phase \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__26337__$1,new cljs.core.Keyword(null,\x22phase\x22,\x22phase\x22,575722892),new cljs.core.Keyword(null,\x22execution\x22,\x22execution\x22,253283524));\nvar map__26338 \x3d cljs.core.last(via);\nvar map__26338__$1 \x3d cljs.core.__destructure_map(map__26338);\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26338__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar message \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26338__$1,new cljs.core.Keyword(null,\x22message\x22,\x22message\x22,-406056002));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26338__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar map__26339 \x3d data;\nvar map__26339__$1 \x3d cljs.core.__destructure_map(map__26339);\nvar problems \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26339__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22problems\x22,\x22cljs.spec.alpha/problems\x22,447400814));\nvar fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26339__$1,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22fn\x22,\x22cljs.spec.alpha/fn\x22,408600443));\nvar caller \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26339__$1,new cljs.core.Keyword(\x22cljs.spec.test.alpha\x22,\x22caller\x22,\x22cljs.spec.test.alpha/caller\x22,-398302390));\nvar map__26340 \x3d new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(cljs.core.first(via));\nvar map__26340__$1 \x3d cljs.core.__destructure_map(map__26340);\nvar top_data \x3d map__26340__$1;\nvar source \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26340__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397));\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3((function (){var G__26342 \x3d phase;\nvar G__26342__$1 \x3d (((G__26342 instanceof cljs.core.Keyword))?G__26342.fqn:null);\nswitch (G__26342__$1) {\ncase \x22read-source\x22:\nvar map__26343 \x3d data;\nvar map__26343__$1 \x3d cljs.core.__destructure_map(map__26343);\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26343__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26343__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553));\nvar G__26344 \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(cljs.core.second(via)),top_data], 0));\nvar G__26344__$1 \x3d (cljs.core.truth_(source)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26344,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),source):G__26344);\nvar G__26344__$2 \x3d (cljs.core.truth_((function (){var fexpr__26349 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22NO_SOURCE_PATH\x22,null,\x22NO_SOURCE_FILE\x22,null], null), null);\nreturn (fexpr__26349.cljs$core$IFn$_invoke$arity$1 ? fexpr__26349.cljs$core$IFn$_invoke$arity$1(source) : fexpr__26349.call(null, source));\n})())?cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__26344__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397)):G__26344__$1);\nif(cljs.core.truth_(message)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26344__$2,new cljs.core.Keyword(\x22clojure.error\x22,\x22cause\x22,\x22clojure.error/cause\x22,-1879175742),message);\n} else {\nreturn G__26344__$2;\n}\n\nbreak;\ncase \x22compile-syntax-check\x22:\ncase \x22compilation\x22:\ncase \x22macro-syntax-check\x22:\ncase \x22macroexpansion\x22:\nvar G__26350 \x3d top_data;\nvar G__26350__$1 \x3d (cljs.core.truth_(source)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26350,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),source):G__26350);\nvar G__26350__$2 \x3d (cljs.core.truth_((function (){var fexpr__26354 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22NO_SOURCE_PATH\x22,null,\x22NO_SOURCE_FILE\x22,null], null), null);\nreturn (fexpr__26354.cljs$core$IFn$_invoke$arity$1 ? fexpr__26354.cljs$core$IFn$_invoke$arity$1(source) : fexpr__26354.call(null, source));\n})())?cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__26350__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397)):G__26350__$1);\nvar G__26350__$3 \x3d (cljs.core.truth_(type)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26350__$2,new cljs.core.Keyword(\x22clojure.error\x22,\x22class\x22,\x22clojure.error/class\x22,278435890),type):G__26350__$2);\nvar G__26350__$4 \x3d (cljs.core.truth_(message)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26350__$3,new cljs.core.Keyword(\x22clojure.error\x22,\x22cause\x22,\x22clojure.error/cause\x22,-1879175742),message):G__26350__$3);\nif(cljs.core.truth_(problems)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26350__$4,new cljs.core.Keyword(\x22clojure.error\x22,\x22spec\x22,\x22clojure.error/spec\x22,2055032595),data);\n} else {\nreturn G__26350__$4;\n}\n\nbreak;\ncase \x22read-eval-result\x22:\ncase \x22print-eval-result\x22:\nvar vec__26355 \x3d cljs.core.first(trace);\nvar source__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26355,(0),null);\nvar method \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26355,(1),null);\nvar file \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26355,(2),null);\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26355,(3),null);\nvar G__26358 \x3d top_data;\nvar G__26358__$1 \x3d (cljs.core.truth_(line)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26358,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),line):G__26358);\nvar G__26358__$2 \x3d (cljs.core.truth_(file)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26358__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file):G__26358__$1);\nvar G__26358__$3 \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d source__$1;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn method;\n} else {\nreturn and__5000__auto__;\n}\n})())?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26358__$2,new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[source__$1,method],null))):G__26358__$2);\nvar G__26358__$4 \x3d (cljs.core.truth_(type)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26358__$3,new cljs.core.Keyword(\x22clojure.error\x22,\x22class\x22,\x22clojure.error/class\x22,278435890),type):G__26358__$3);\nif(cljs.core.truth_(message)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26358__$4,new cljs.core.Keyword(\x22clojure.error\x22,\x22cause\x22,\x22clojure.error/cause\x22,-1879175742),message);\n} else {\nreturn G__26358__$4;\n}\n\nbreak;\ncase \x22execution\x22:\nvar vec__26382 \x3d cljs.core.first(trace);\nvar source__$1 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26382,(0),null);\nvar method \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26382,(1),null);\nvar file \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26382,(2),null);\nvar line \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26382,(3),null);\nvar file__$1 \x3d cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__26336_SHARP_){\nvar or__5002__auto__ \x3d (p1__26336_SHARP_ \x3d\x3d null);\nif(or__5002__auto__){\nreturn or__5002__auto__;\n} else {\nvar fexpr__26387 \x3d new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22NO_SOURCE_PATH\x22,null,\x22NO_SOURCE_FILE\x22,null], null), null);\nreturn (fexpr__26387.cljs$core$IFn$_invoke$arity$1 ? fexpr__26387.cljs$core$IFn$_invoke$arity$1(p1__26336_SHARP_) : fexpr__26387.call(null, p1__26336_SHARP_));\n}\n}),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878).cljs$core$IFn$_invoke$arity$1(caller),file], null)));\nvar err_line \x3d (function (){var or__5002__auto__ \x3d new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235).cljs$core$IFn$_invoke$arity$1(caller);\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn line;\n}\n})();\nvar G__26395 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\x22clojure.error\x22,\x22class\x22,\x22clojure.error/class\x22,278435890),type], null);\nvar G__26395__$1 \x3d (cljs.core.truth_(err_line)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26395,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471),err_line):G__26395);\nvar G__26395__$2 \x3d (cljs.core.truth_(message)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26395__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22cause\x22,\x22clojure.error/cause\x22,-1879175742),message):G__26395__$1);\nvar G__26395__$3 \x3d (cljs.core.truth_((function (){var or__5002__auto__ \x3d fn;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar and__5000__auto__ \x3d source__$1;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn method;\n} else {\nreturn and__5000__auto__;\n}\n}\n})())?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26395__$2,new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994),(function (){var or__5002__auto__ \x3d fn;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[source__$1,method],null));\n}\n})()):G__26395__$2);\nvar G__26395__$4 \x3d (cljs.core.truth_(file__$1)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26395__$3,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397),file__$1):G__26395__$3);\nif(cljs.core.truth_(problems)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__26395__$4,new cljs.core.Keyword(\x22clojure.error\x22,\x22spec\x22,\x22clojure.error/spec\x22,2055032595),data);\n} else {\nreturn G__26395__$4;\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__26342__$1)].join(\x27\x27)));\n\n}\n})(),new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358),phase);\n});\n/**\n * Returns a string from exception data, as produced by ex-triage.\n * The first line summarizes the exception phase and location.\n * The subsequent lines describe the cause.\n */\ncljs.repl.ex_str \x3d (function cljs$repl$ex_str(p__26409){\nvar map__26410 \x3d p__26409;\nvar map__26410__$1 \x3d cljs.core.__destructure_map(map__26410);\nvar triage_data \x3d map__26410__$1;\nvar phase \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22phase\x22,\x22clojure.error/phase\x22,275140358));\nvar source \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22source\x22,\x22clojure.error/source\x22,-2011936397));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22line\x22,\x22clojure.error/line\x22,-1816287471));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22column\x22,\x22clojure.error/column\x22,304721553));\nvar symbol \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22symbol\x22,\x22clojure.error/symbol\x22,1544821994));\nvar class$ \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22class\x22,\x22clojure.error/class\x22,278435890));\nvar cause \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22cause\x22,\x22clojure.error/cause\x22,-1879175742));\nvar spec \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26410__$1,new cljs.core.Keyword(\x22clojure.error\x22,\x22spec\x22,\x22clojure.error/spec\x22,2055032595));\nvar loc \x3d [cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5002__auto__ \x3d source;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn \x22\x3ccljs repl\x3e\x22;\n}\n})()),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var or__5002__auto__ \x3d line;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (1);\n}\n})()),(cljs.core.truth_(column)?[\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(\x27\x27):\x22\x22)].join(\x27\x27);\nvar class_name \x3d cljs.core.name((function (){var or__5002__auto__ \x3d class$;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn \x22\x22;\n}\n})());\nvar simple_class \x3d class_name;\nvar cause_type \x3d ((cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [\x22RuntimeException\x22,null,\x22Exception\x22,null], null), null),simple_class))?\x22\x22:[\x22 (\x22,simple_class,\x22)\x22].join(\x27\x27));\nvar format \x3d goog.string.format;\nvar G__26418 \x3d phase;\nvar G__26418__$1 \x3d (((G__26418 instanceof cljs.core.Keyword))?G__26418.fqn:null);\nswitch (G__26418__$1) {\ncase \x22read-source\x22:\nreturn (format.cljs$core$IFn$_invoke$arity$3 ? format.cljs$core$IFn$_invoke$arity$3(\x22Syntax error reading source at (%s).\\n%s\\n\x22,loc,cause) : format.call(null, \x22Syntax error reading source at (%s).\\n%s\\n\x22,loc,cause));\n\nbreak;\ncase \x22macro-syntax-check\x22:\nvar G__26420 \x3d \x22Syntax error macroexpanding %sat (%s).\\n%s\x22;\nvar G__26421 \x3d (cljs.core.truth_(symbol)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(symbol),\x22 \x22].join(\x27\x27):\x22\x22);\nvar G__26422 \x3d loc;\nvar G__26423 \x3d (cljs.core.truth_(spec)?(function (){var sb__5647__auto__ \x3d (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__26425_26667 \x3d cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__26426_26668 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__26427_26669 \x3d true;\nvar _STAR_print_fn_STAR__temp_val__26428_26670 \x3d (function (x__5648__auto__){\nreturn sb__5647__auto__.append(x__5648__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__temp_val__26427_26669);\n\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__26428_26670);\n\ntry{cljs.spec.alpha.explain_out(cljs.core.update.cljs$core$IFn$_invoke$arity$3(spec,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22problems\x22,\x22cljs.spec.alpha/problems\x22,447400814),(function (probs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26405_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__26405_SHARP_,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865));\n}),probs);\n}))\n);\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__26426_26668);\n\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__orig_val__26425_26667);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5647__auto__);\n})():(format.cljs$core$IFn$_invoke$arity$2 ? format.cljs$core$IFn$_invoke$arity$2(\x22%s\\n\x22,cause) : format.call(null, \x22%s\\n\x22,cause)));\nreturn (format.cljs$core$IFn$_invoke$arity$4 ? format.cljs$core$IFn$_invoke$arity$4(G__26420,G__26421,G__26422,G__26423) : format.call(null, G__26420,G__26421,G__26422,G__26423));\n\nbreak;\ncase \x22macroexpansion\x22:\nvar G__26433 \x3d \x22Unexpected error%s macroexpanding %sat (%s).\\n%s\\n\x22;\nvar G__26434 \x3d cause_type;\nvar G__26435 \x3d (cljs.core.truth_(symbol)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(symbol),\x22 \x22].join(\x27\x27):\x22\x22);\nvar G__26436 \x3d loc;\nvar G__26437 \x3d cause;\nreturn (format.cljs$core$IFn$_invoke$arity$5 ? format.cljs$core$IFn$_invoke$arity$5(G__26433,G__26434,G__26435,G__26436,G__26437) : format.call(null, G__26433,G__26434,G__26435,G__26436,G__26437));\n\nbreak;\ncase \x22compile-syntax-check\x22:\nvar G__26438 \x3d \x22Syntax error%s compiling %sat (%s).\\n%s\\n\x22;\nvar G__26439 \x3d cause_type;\nvar G__26440 \x3d (cljs.core.truth_(symbol)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(symbol),\x22 \x22].join(\x27\x27):\x22\x22);\nvar G__26441 \x3d loc;\nvar G__26442 \x3d cause;\nreturn (format.cljs$core$IFn$_invoke$arity$5 ? format.cljs$core$IFn$_invoke$arity$5(G__26438,G__26439,G__26440,G__26441,G__26442) : format.call(null, G__26438,G__26439,G__26440,G__26441,G__26442));\n\nbreak;\ncase \x22compilation\x22:\nvar G__26443 \x3d \x22Unexpected error%s compiling %sat (%s).\\n%s\\n\x22;\nvar G__26444 \x3d cause_type;\nvar G__26445 \x3d (cljs.core.truth_(symbol)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(symbol),\x22 \x22].join(\x27\x27):\x22\x22);\nvar G__26446 \x3d loc;\nvar G__26447 \x3d cause;\nreturn (format.cljs$core$IFn$_invoke$arity$5 ? format.cljs$core$IFn$_invoke$arity$5(G__26443,G__26444,G__26445,G__26446,G__26447) : format.call(null, G__26443,G__26444,G__26445,G__26446,G__26447));\n\nbreak;\ncase \x22read-eval-result\x22:\nreturn (format.cljs$core$IFn$_invoke$arity$5 ? format.cljs$core$IFn$_invoke$arity$5(\x22Error reading eval result%s at %s (%s).\\n%s\\n\x22,cause_type,symbol,loc,cause) : format.call(null, \x22Error reading eval result%s at %s (%s).\\n%s\\n\x22,cause_type,symbol,loc,cause));\n\nbreak;\ncase \x22print-eval-result\x22:\nreturn (format.cljs$core$IFn$_invoke$arity$5 ? format.cljs$core$IFn$_invoke$arity$5(\x22Error printing return value%s at %s (%s).\\n%s\\n\x22,cause_type,symbol,loc,cause) : format.call(null, \x22Error printing return value%s at %s (%s).\\n%s\\n\x22,cause_type,symbol,loc,cause));\n\nbreak;\ncase \x22execution\x22:\nif(cljs.core.truth_(spec)){\nvar G__26448 \x3d \x22Execution error - invalid arguments to %s at (%s).\\n%s\x22;\nvar G__26449 \x3d symbol;\nvar G__26450 \x3d loc;\nvar G__26451 \x3d (function (){var sb__5647__auto__ \x3d (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__26455_26677 \x3d cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__26456_26678 \x3d cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__26457_26679 \x3d true;\nvar _STAR_print_fn_STAR__temp_val__26458_26680 \x3d (function (x__5648__auto__){\nreturn sb__5647__auto__.append(x__5648__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__temp_val__26457_26679);\n\n(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__temp_val__26458_26680);\n\ntry{cljs.spec.alpha.explain_out(cljs.core.update.cljs$core$IFn$_invoke$arity$3(spec,new cljs.core.Keyword(\x22cljs.spec.alpha\x22,\x22problems\x22,\x22cljs.spec.alpha/problems\x22,447400814),(function (probs){\nreturn cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26407_SHARP_){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__26407_SHARP_,new cljs.core.Keyword(null,\x22in\x22,\x22in\x22,-1531184865));\n}),probs);\n}))\n);\n}finally {(cljs.core._STAR_print_fn_STAR_ \x3d _STAR_print_fn_STAR__orig_val__26456_26678);\n\n(cljs.core._STAR_print_newline_STAR_ \x3d _STAR_print_newline_STAR__orig_val__26455_26677);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5647__auto__);\n})();\nreturn (format.cljs$core$IFn$_invoke$arity$4 ? format.cljs$core$IFn$_invoke$arity$4(G__26448,G__26449,G__26450,G__26451) : format.call(null, G__26448,G__26449,G__26450,G__26451));\n} else {\nvar G__26487 \x3d \x22Execution error%s at %s(%s).\\n%s\\n\x22;\nvar G__26488 \x3d cause_type;\nvar G__26489 \x3d (cljs.core.truth_(symbol)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(symbol),\x22 \x22].join(\x27\x27):\x22\x22);\nvar G__26490 \x3d loc;\nvar G__26491 \x3d cause;\nreturn (format.cljs$core$IFn$_invoke$arity$5 ? format.cljs$core$IFn$_invoke$arity$5(G__26487,G__26488,G__26489,G__26490,G__26491) : format.call(null, G__26487,G__26488,G__26489,G__26490,G__26491));\n}\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__26418__$1)].join(\x27\x27)));\n\n}\n});\ncljs.repl.error__GT_str \x3d (function cljs$repl$error__GT_str(error){\nreturn cljs.repl.ex_str(cljs.repl.ex_triage(cljs.repl.Error__GT_map(error)));\n});\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.obj_support.js", true, "goog.provide(\x27shadow.remote.runtime.obj_support\x27);\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\nshadow.remote.runtime.obj_support.Reference \x3d (function (obj,extra,__meta,__extmap,__hash){\nthis.obj \x3d obj;\nthis.extra \x3d extra;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k27838,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__27857 \x3d k27838;\nvar G__27857__$1 \x3d (((G__27857 instanceof cljs.core.Keyword))?G__27857.fqn:null);\nswitch (G__27857__$1) {\ncase \x22obj\x22:\nreturn self__.obj;\n\nbreak;\ncase \x22extra\x22:\nreturn self__.extra;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k27838,else__5303__auto__);\n\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__27868){\nvar vec__27873 \x3d p__27868;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27873,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27873,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#shadow.remote.runtime.obj-support.Reference{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),self__.obj],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067),self__.extra],null))], null),self__.__extmap));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__27837){\nvar self__ \x3d this;\nvar G__27837__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__27837__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.extra,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (1775716890 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this27839,other27840){\nvar self__ \x3d this;\nvar this27839__$1 \x3d this;\nreturn (((!((other27840 \x3d\x3d null)))) \x26\x26 ((((this27839__$1.constructor \x3d\x3d\x3d other27840.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27839__$1.obj,other27840.obj)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27839__$1.extra,other27840.extra)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27839__$1.__extmap,other27840.__extmap)))))))));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067),null,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.extra,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k27838){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__27902 \x3d k27838;\nvar G__27902__$1 \x3d (((G__27902 instanceof cljs.core.Keyword))?G__27902.fqn:null);\nswitch (G__27902__$1) {\ncase \x22obj\x22:\ncase \x22extra\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k27838);\n\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__27837){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__27905 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__27906 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__27905.cljs$core$IFn$_invoke$arity$2 ? pred__27905.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),expr__27906) : pred__27905.call(null, new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),expr__27906)))){\nreturn (new shadow.remote.runtime.obj_support.Reference(G__27837,self__.extra,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__27905.cljs$core$IFn$_invoke$arity$2 ? pred__27905.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067),expr__27906) : pred__27905.call(null, new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067),expr__27906)))){\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,G__27837,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.extra,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__27837),null));\n}\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),self__.obj,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067),self__.extra,null))], null),self__.__extmap));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__27837){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new shadow.remote.runtime.obj_support.Reference(self__.obj,self__.extra,G__27837,self__.__extmap,self__.__hash));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(shadow.remote.runtime.obj_support.Reference.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22obj\x22,\x22obj\x22,-1672671807,null),new cljs.core.Symbol(null,\x22extra\x22,\x22extra\x22,-1041866702,null)], null);\n}));\n\n(shadow.remote.runtime.obj_support.Reference.cljs$lang$type \x3d true);\n\n(shadow.remote.runtime.obj_support.Reference.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22shadow.remote.runtime.obj-support/Reference\x22,null,(1),null));\n}));\n\n(shadow.remote.runtime.obj_support.Reference.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22shadow.remote.runtime.obj-support/Reference\x22);\n}));\n\n/**\n * Positional factory function for shadow.remote.runtime.obj-support/Reference.\n */\nshadow.remote.runtime.obj_support.__GT_Reference \x3d (function shadow$remote$runtime$obj_support$__GT_Reference(obj,extra){\nreturn (new shadow.remote.runtime.obj_support.Reference(obj,extra,null,null,null));\n});\n\n/**\n * Factory function for shadow.remote.runtime.obj-support/Reference, taking a map of keywords to field values.\n */\nshadow.remote.runtime.obj_support.map__GT_Reference \x3d (function shadow$remote$runtime$obj_support$map__GT_Reference(G__27845){\nvar extmap__5342__auto__ \x3d (function (){var G__27918 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__27845,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067)], 0));\nif(cljs.core.record_QMARK_(G__27845)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__27918);\n} else {\nreturn G__27918;\n}\n})();\nreturn (new shadow.remote.runtime.obj_support.Reference(new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(G__27845),new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067).cljs$core$IFn$_invoke$arity$1(G__27845),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\nshadow.remote.runtime.obj_support.obj_ref \x3d (function shadow$remote$runtime$obj_support$obj_ref(var_args){\nvar G__27921 \x3d arguments.length;\nswitch (G__27921) {\ncase 1:\nreturn shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$1 \x3d (function (obj){\nreturn shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$2(obj,null);\n}));\n\n(shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$2 \x3d (function (obj,extra){\nif((!((obj \x3d\x3d null)))){\nreturn (new shadow.remote.runtime.obj_support.Reference(obj,extra,null,null,null));\n} else {\nreturn null;\n}\n}));\n\n(shadow.remote.runtime.obj_support.obj_ref.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.remote.runtime.obj_support.obj_ref_QMARK_ \x3d (function shadow$remote$runtime$obj_support$obj_ref_QMARK_(result){\nreturn (result instanceof shadow.remote.runtime.obj_support.Reference);\n});\nshadow.remote.runtime.obj_support.now \x3d (function shadow$remote$runtime$obj_support$now(){\nreturn Date.now();\n});\nshadow.remote.runtime.obj_support.next_oid \x3d (function shadow$remote$runtime$obj_support$next_oid(){\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n});\nshadow.remote.runtime.obj_support.register_STAR_ \x3d (function shadow$remote$runtime$obj_support$register_STAR_(state,oid,obj,obj_info){\nvar ts \x3d shadow.remote.runtime.obj_support.now();\nvar entry \x3d new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962),obj,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377),clojure.datafy.datafy(obj),new cljs.core.Keyword(null,\x22obj-info\x22,\x22obj-info\x22,-373842651),obj_info,new cljs.core.Keyword(null,\x22added-at\x22,\x22added-at\x22,-352499434),ts,new cljs.core.Keyword(null,\x22access-at\x22,\x22access-at\x22,-1487162729),ts,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid], null);\nreturn cljs.core.assoc_in(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),oid], null),entry);\n});\nshadow.remote.runtime.obj_support.obj_type_string \x3d (function shadow$remote$runtime$obj_support$obj_type_string(obj){\nif((obj \x3d\x3d null)){\nreturn \x22nil\x22;\n} else {\nreturn cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(obj)], 0));\n}\n});\nshadow.remote.runtime.obj_support.get_data_type \x3d (function shadow$remote$runtime$obj_support$get_data_type(summary,p__27967){\nvar map__27969 \x3d p__27967;\nvar map__27969__$1 \x3d cljs.core.__destructure_map(map__27969);\nvar entry \x3d map__27969__$1;\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27969__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\ntry{if((data \x3d\x3d null)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22nil\x22,\x22nil\x22,99600501));\n} else {\nif(typeof data \x3d\x3d\x3d \x27string\x27){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22string\x22,\x22string\x22,-1989541586),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data-count\x22,\x22data-count\x22,1898198662),((data).length)], 0));\n} else {\nif(cljs.core.boolean_QMARK_(data)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22boolean\x22,\x22boolean\x22,-1919418404));\n} else {\nif(typeof data \x3d\x3d\x3d \x27number\x27){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22number\x22,\x22number\x22,1570378438));\n} else {\nif((data instanceof cljs.core.Keyword)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22keyword\x22,\x22keyword\x22,811389747));\n} else {\nif((data instanceof cljs.core.Symbol)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22symbol\x22,\x22symbol\x22,-1038572696));\n} else {\nif(cljs.core.map_QMARK_(data)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22map\x22,\x22map\x22,1371690461),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data-count\x22,\x22data-count\x22,1898198662),cljs.core.count(data)], 0));\n} else {\nif(cljs.core.vector_QMARK_(data)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22vec\x22,\x22vec\x22,-657847931),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data-count\x22,\x22data-count\x22,1898198662),cljs.core.count(data)], 0));\n} else {\nif(cljs.core.set_QMARK_(data)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22set\x22,\x22set\x22,304602554),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data-count\x22,\x22data-count\x22,1898198662),cljs.core.count(data)], 0));\n} else {\nif(cljs.core.list_QMARK_(data)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22list\x22,\x22list\x22,765357683),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data-count\x22,\x22data-count\x22,1898198662),cljs.core.count(data)], 0));\n} else {\nif(cljs.core.seq_QMARK_(data)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22seq\x22,\x22seq\x22,-1817803783));\n} else {\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22unsupported\x22,\x22unsupported\x22,-1045607016));\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}\n}catch (e27971){var e \x3d e27971;\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(summary,new cljs.core.Keyword(null,\x22data-type\x22,\x22data-type\x22,-326421468),new cljs.core.Keyword(null,\x22unsupported\x22,\x22unsupported\x22,-1045607016),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22data-type-fail\x22,\x22data-type-fail\x22,1917235450),true], 0));\n}});\nshadow.remote.runtime.obj_support.merge_source_info \x3d (function shadow$remote$runtime$obj_support$merge_source_info(summary,p__27984){\nvar map__27985 \x3d p__27984;\nvar map__27985__$1 \x3d cljs.core.__destructure_map(map__27985);\nvar obj_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27985__$1,new cljs.core.Keyword(null,\x22obj-info\x22,\x22obj-info\x22,-373842651));\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([summary,cljs.core.select_keys(obj_info,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),new cljs.core.Keyword(null,\x22label\x22,\x22label\x22,1718410804)], null))], 0));\n});\nshadow.remote.runtime.obj_support.inspect_entry_BANG_ \x3d (function shadow$remote$runtime$obj_support$inspect_entry_BANG_(p__27986,p__27987){\nvar map__27988 \x3d p__27986;\nvar map__27988__$1 \x3d cljs.core.__destructure_map(map__27988);\nvar this$ \x3d map__27988__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27988__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__27989 \x3d p__27987;\nvar map__27989__$1 \x3d cljs.core.__destructure_map(map__27989);\nvar entry \x3d map__27989__$1;\nvar obj \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27989__$1,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962));\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27989__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar added_at \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27989__$1,new cljs.core.Keyword(null,\x22added-at\x22,\x22added-at\x22,-352499434));\nvar $ \x3d shadow.remote.runtime.obj_support.merge_source_info(shadow.remote.runtime.obj_support.get_data_type(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22added-at\x22,\x22added-at\x22,-352499434),added_at,new cljs.core.Keyword(null,\x22datafied\x22,\x22datafied\x22,2076148104),(!((data \x3d\x3d\x3d obj))),new cljs.core.Keyword(null,\x22obj-type\x22,\x22obj-type\x22,-1658555496),shadow.remote.runtime.obj_support.obj_type_string(obj),new cljs.core.Keyword(null,\x22preview\x22,\x22preview\x22,451279890),shadow.remote.runtime.writer.pr_str_limit(obj,(250)),new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.PersistentHashSet.EMPTY], null),entry),entry);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (summary,inspect_fn){\nreturn (inspect_fn.cljs$core$IFn$_invoke$arity$2 ? inspect_fn.cljs$core$IFn$_invoke$arity$2(summary,entry) : inspect_fn.call(null, summary,entry));\n}),$,new cljs.core.Keyword(null,\x22inspectors\x22,\x22inspectors\x22,-426448246).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)));\n});\nshadow.remote.runtime.obj_support.obj_describe_STAR_ \x3d (function shadow$remote$runtime$obj_support$obj_describe_STAR_(p__27996,oid){\nvar map__27997 \x3d p__27996;\nvar map__27997__$1 \x3d cljs.core.__destructure_map(map__27997);\nvar this$ \x3d map__27997__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27997__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar temp__5808__auto__ \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state_ref),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),oid], null));\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar entry \x3d temp__5808__auto__;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),oid,new cljs.core.Keyword(null,\x22access-at\x22,\x22access-at\x22,-1487162729)], null),shadow.remote.runtime.obj_support.now());\n\nreturn shadow.remote.runtime.obj_support.inspect_entry_BANG_(this$,entry);\n}\n});\nshadow.remote.runtime.obj_support.handler_with_object \x3d (function shadow$remote$runtime$obj_support$handler_with_object(handler_fn){\nreturn (function (p__28016,p__28017){\nvar map__28020 \x3d p__28016;\nvar map__28020__$1 \x3d cljs.core.__destructure_map(map__28020);\nvar this$ \x3d map__28020__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28020__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28020__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar map__28021 \x3d p__28017;\nvar map__28021__$1 \x3d cljs.core.__destructure_map(map__28021);\nvar msg \x3d map__28021__$1;\nvar op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28021__$1,new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955));\nvar oid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28021__$1,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334));\nvar entry \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state_ref),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),oid], null));\nif(cljs.core.not(entry)){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22obj-not-found\x22,\x22obj-not-found\x22,1577257696),new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid], null));\n} else {\ntry{cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),oid,new cljs.core.Keyword(null,\x22access-at\x22,\x22access-at\x22,-1487162729)], null),shadow.remote.runtime.obj_support.now());\n\nvar result \x3d (handler_fn.cljs$core$IFn$_invoke$arity$3 ? handler_fn.cljs$core$IFn$_invoke$arity$3(this$,entry,msg) : handler_fn.call(null, this$,entry,msg));\nif((!(shadow.remote.runtime.obj_support.obj_ref_QMARK_(result)))){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22obj-result\x22,\x22obj-result\x22,-486300152),new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),result], null));\n} else {\nvar new_oid \x3d (function (){var G__28029 \x3d this$;\nvar G__28030 \x3d new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(result);\nvar G__28031 \x3d cljs.core.PersistentArrayMap.EMPTY;\nreturn (shadow.remote.runtime.obj_support.register.cljs$core$IFn$_invoke$arity$3 ? shadow.remote.runtime.obj_support.register.cljs$core$IFn$_invoke$arity$3(G__28029,G__28030,G__28031) : shadow.remote.runtime.obj_support.register.call(null, G__28029,G__28030,G__28031));\n})();\nvar reply_msg \x3d (function (){var G__28034 \x3d new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22obj-result-ref\x22,\x22obj-result-ref\x22,1537374891),new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid,new cljs.core.Keyword(null,\x22ref-oid\x22,\x22ref-oid\x22,-526648644),new_oid], null);\nvar G__28034__$1 \x3d (cljs.core.truth_(new cljs.core.Keyword(null,\x22summary\x22,\x22summary\x22,380847952).cljs$core$IFn$_invoke$arity$1(msg))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__28034,new cljs.core.Keyword(null,\x22summary\x22,\x22summary\x22,380847952),shadow.remote.runtime.obj_support.obj_describe_STAR_(this$,new_oid)):G__28034);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067).cljs$core$IFn$_invoke$arity$1(result))){\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([G__28034__$1,new cljs.core.Keyword(null,\x22extra\x22,\x22extra\x22,1612569067).cljs$core$IFn$_invoke$arity$1(result)], 0));\n} else {\nreturn G__28034__$1;\n}\n})();\nreturn shadow.remote.runtime.shared.reply(runtime,msg,reply_msg);\n}\n}catch (e28022){var e \x3d e28022;\nconsole.warn(\x22action-request-action failed\x22,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(entry),e);\n\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22obj-request-failed\x22,\x22obj-request-failed\x22,-1782005406),new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg,new cljs.core.Keyword(null,\x22ex-oid\x22,\x22ex-oid\x22,-650256737),(function (){var G__28023 \x3d this$;\nvar G__28024 \x3d e;\nvar G__28025 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null);\nreturn (shadow.remote.runtime.obj_support.register.cljs$core$IFn$_invoke$arity$3 ? shadow.remote.runtime.obj_support.register.cljs$core$IFn$_invoke$arity$3(G__28023,G__28024,G__28025) : shadow.remote.runtime.obj_support.register.call(null, G__28023,G__28024,G__28025));\n})()], null));\n}}\n});\n});\nshadow.remote.runtime.obj_support.obj_get_value \x3d shadow.remote.runtime.obj_support.handler_with_object((function (this$,p__28038,msg){\nvar map__28039 \x3d p__28038;\nvar map__28039__$1 \x3d cljs.core.__destructure_map(map__28039);\nvar entry \x3d map__28039__$1;\nvar obj \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28039__$1,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962));\nreturn obj;\n}));\nshadow.remote.runtime.obj_support.default_max_print_size \x3d (((1) * (1024)) * (1024));\nshadow.remote.runtime.obj_support.pick_target \x3d (function shadow$remote$runtime$obj_support$pick_target(entry,msg){\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22original\x22,\x22original\x22,-445386197).cljs$core$IFn$_invoke$arity$1(msg))){\nreturn new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(entry);\n} else {\nreturn new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377).cljs$core$IFn$_invoke$arity$1(entry);\n}\n});\nshadow.remote.runtime.obj_support.obj_edn \x3d shadow.remote.runtime.obj_support.handler_with_object((function (this$,entry,p__28042){\nvar map__28043 \x3d p__28042;\nvar map__28043__$1 \x3d cljs.core.__destructure_map(map__28043);\nvar msg \x3d map__28043__$1;\nvar limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28043__$1,new cljs.core.Keyword(null,\x22limit\x22,\x22limit\x22,-1355822363),shadow.remote.runtime.obj_support.default_max_print_size);\nvar target \x3d shadow.remote.runtime.obj_support.pick_target(entry,msg);\nvar lw \x3d shadow.remote.runtime.writer.limit_writer(limit);\ncljs.core.pr_writer(target,lw,cljs.core.pr_opts());\n\nreturn shadow.remote.runtime.writer.get_string(lw);\n}));\nshadow.remote.runtime.obj_support.obj_pprint \x3d shadow.remote.runtime.obj_support.handler_with_object((function (this$,entry,p__28044){\nvar map__28046 \x3d p__28044;\nvar map__28046__$1 \x3d cljs.core.__destructure_map(map__28046);\nvar msg \x3d map__28046__$1;\nvar limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28046__$1,new cljs.core.Keyword(null,\x22limit\x22,\x22limit\x22,-1355822363),shadow.remote.runtime.obj_support.default_max_print_size);\nvar target \x3d shadow.remote.runtime.obj_support.pick_target(entry,msg);\nvar lw \x3d shadow.remote.runtime.writer.limit_writer(limit);\ncljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2(target,lw);\n\nreturn shadow.remote.runtime.writer.get_string(lw);\n}));\nshadow.remote.runtime.obj_support.obj_edn_limit \x3d shadow.remote.runtime.obj_support.handler_with_object((function (this$,entry,p__28047){\nvar map__28048 \x3d p__28047;\nvar map__28048__$1 \x3d cljs.core.__destructure_map(map__28048);\nvar msg \x3d map__28048__$1;\nvar limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28048__$1,new cljs.core.Keyword(null,\x22limit\x22,\x22limit\x22,-1355822363));\nreturn shadow.remote.runtime.writer.pr_str_limit(shadow.remote.runtime.obj_support.pick_target(entry,msg),limit);\n}));\nshadow.remote.runtime.obj_support.obj_str \x3d shadow.remote.runtime.obj_support.handler_with_object((function (this$,p__28050,msg){\nvar map__28051 \x3d p__28050;\nvar map__28051__$1 \x3d cljs.core.__destructure_map(map__28051);\nvar entry \x3d map__28051__$1;\nvar obj \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28051__$1,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962));\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(obj);\n}));\nshadow.remote.runtime.obj_support.obj_ex_str \x3d shadow.remote.runtime.obj_support.handler_with_object((function (this$,p__28052,msg){\nvar map__28053 \x3d p__28052;\nvar map__28053__$1 \x3d cljs.core.__destructure_map(map__28053);\nvar entry \x3d map__28053__$1;\nvar ex \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28053__$1,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962));\nif((ex instanceof Error)){\nreturn cljs.repl.error__GT_str(ex);\n} else {\nreturn [\x22Execution error:\\n\x22,\x22 \x22,cljs.core.subs.cljs$core$IFn$_invoke$arity$2(shadow.remote.runtime.writer.pr_str_limit(ex,(200)),(2)),\x22\\n\x22,\x22\\n\x22].join(\x27\x27);\n}\n}));\nshadow.remote.runtime.obj_support.exception_QMARK_ \x3d (function shadow$remote$runtime$obj_support$exception_QMARK_(x){\nreturn true;\n});\nshadow.remote.runtime.obj_support.simple_value_QMARK_ \x3d (function shadow$remote$runtime$obj_support$simple_value_QMARK_(val){\nreturn (((val \x3d\x3d null)) || (((cljs.core.boolean_QMARK_(val)) || (((typeof val \x3d\x3d\x3d \x27number\x27) || ((((val instanceof cljs.core.Keyword)) || ((((((val instanceof cljs.core.Symbol)) \x26\x26 ((cljs.core.meta(val) \x3d\x3d null)))) || (((((typeof val \x3d\x3d\x3d \x27string\x27) \x26\x26 (((64) \x3e cljs.core.count(val))))) || (((cljs.core.coll_QMARK_(val)) \x26\x26 (((cljs.core.empty_QMARK_(val)) \x26\x26 ((cljs.core.meta(val) \x3d\x3d null)))))))))))))))));\n});\nshadow.remote.runtime.obj_support.rank_predicates \x3d new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.nil_QMARK_,cljs.core.boolean_QMARK_,cljs.core.number_QMARK_,cljs.core.string_QMARK_,cljs.core.keyword_QMARK_,cljs.core.symbol_QMARK_,cljs.core.vector_QMARK_,cljs.core.map_QMARK_,cljs.core.list_QMARK_], null);\nshadow.remote.runtime.obj_support.rank_val \x3d (function shadow$remote$runtime$obj_support$rank_val(val){\nreturn cljs.core.reduce_kv((function (res,idx,pred){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(val) : pred.call(null, val)))){\nreturn cljs.core.reduced(idx);\n} else {\nreturn res;\n}\n}),(-1),shadow.remote.runtime.obj_support.rank_predicates);\n});\nshadow.remote.runtime.obj_support.smart_comp \x3d (function shadow$remote$runtime$obj_support$smart_comp(a,b){\ntry{return cljs.core.compare(a,b);\n}catch (e28064){if((e28064 instanceof Error)){\nvar e \x3d e28064;\nvar ar \x3d shadow.remote.runtime.obj_support.rank_val(a);\nvar br \x3d shadow.remote.runtime.obj_support.rank_val(b);\nreturn cljs.core.compare(ar,br);\n} else {\nthrow e28064;\n\n}\n}});\nshadow.remote.runtime.obj_support.attempt_to_sort \x3d (function shadow$remote$runtime$obj_support$attempt_to_sort(coll){\nreturn cljs.core.vec((function (){try{return cljs.core.sort.cljs$core$IFn$_invoke$arity$2(shadow.remote.runtime.obj_support.smart_comp,coll);\n}catch (e28079){var e \x3d e28079;\nreturn coll;\n}})());\n});\nshadow.remote.runtime.obj_support.cache_view_order \x3d (function shadow$remote$runtime$obj_support$cache_view_order(state_ref,p__28093,coll){\nvar map__28098 \x3d p__28093;\nvar map__28098__$1 \x3d cljs.core.__destructure_map(map__28098);\nvar oid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28098__$1,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334));\nvar view_order \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28098__$1,new cljs.core.Keyword(null,\x22view-order\x22,\x22view-order\x22,566761574));\nvar or__5002__auto__ \x3d view_order;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nvar view_order__$1 \x3d shadow.remote.runtime.obj_support.attempt_to_sort(coll);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),oid,new cljs.core.Keyword(null,\x22view-order\x22,\x22view-order\x22,566761574)], null),view_order__$1);\n\nreturn view_order__$1;\n}\n});\nshadow.remote.runtime.obj_support.obj_nav \x3d shadow.remote.runtime.obj_support.handler_with_object((function (p__28100,p__28101,p__28102){\nvar map__28103 \x3d p__28100;\nvar map__28103__$1 \x3d cljs.core.__destructure_map(map__28103);\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28103__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__28104 \x3d p__28101;\nvar map__28104__$1 \x3d cljs.core.__destructure_map(map__28104);\nvar entry \x3d map__28104__$1;\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28104__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar map__28105 \x3d p__28102;\nvar map__28105__$1 \x3d cljs.core.__destructure_map(map__28105);\nvar msg \x3d map__28105__$1;\nvar idx \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28105__$1,new cljs.core.Keyword(null,\x22idx\x22,\x22idx\x22,1053688473));\nif(((cljs.core.vector_QMARK_(data)) || (cljs.core.list_QMARK_(data)))){\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(data,idx);\nvar nav \x3d clojure.datafy.nav(data,idx,val);\nreturn shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$2(nav,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22nav?\x22,\x22nav?\x22,1269039770),cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(val,nav)], null));\n} else {\nif(cljs.core.map_QMARK_(data)){\nvar view_order \x3d shadow.remote.runtime.obj_support.cache_view_order(state_ref,entry,cljs.core.keys(data));\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nvar val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(data,key);\nvar nav \x3d clojure.datafy.nav(data,key,val);\nreturn shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$2(nav,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22nav?\x22,\x22nav?\x22,1269039770),cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(val,nav)], null));\n} else {\nif(cljs.core.set_QMARK_(data)){\nvar view_order \x3d shadow.remote.runtime.obj_support.cache_view_order(state_ref,entry,data);\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nvar nav \x3d clojure.datafy.nav(data,idx,val);\nreturn shadow.remote.runtime.obj_support.obj_ref.cljs$core$IFn$_invoke$arity$2(nav,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22nav?\x22,\x22nav?\x22,1269039770),cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(val,nav)], null));\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22nav not supported?\x22,entry);\n\n}\n}\n}\n}));\nshadow.remote.runtime.obj_support.obj_fragment \x3d shadow.remote.runtime.obj_support.handler_with_object((function (p__28114,p__28115,p__28116){\nvar map__28118 \x3d p__28114;\nvar map__28118__$1 \x3d cljs.core.__destructure_map(map__28118);\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28118__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__28119 \x3d p__28115;\nvar map__28119__$1 \x3d cljs.core.__destructure_map(map__28119);\nvar entry \x3d map__28119__$1;\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28119__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nvar map__28120 \x3d p__28116;\nvar map__28120__$1 \x3d cljs.core.__destructure_map(map__28120);\nvar msg \x3d map__28120__$1;\nvar start \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28120__$1,new cljs.core.Keyword(null,\x22start\x22,\x22start\x22,-355208981));\nvar num \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28120__$1,new cljs.core.Keyword(null,\x22num\x22,\x22num\x22,1985240673));\nvar val_limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28120__$1,new cljs.core.Keyword(null,\x22val-limit\x22,\x22val-limit\x22,1428666181),(100));\nif(cljs.core.map_QMARK_(data)){\nvar map__28130 \x3d msg;\nvar map__28130__$1 \x3d cljs.core.__destructure_map(map__28130);\nvar key_limit \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28130__$1,new cljs.core.Keyword(null,\x22key-limit\x22,\x22key-limit\x22,259239169),(100));\nvar view_order \x3d shadow.remote.runtime.obj_support.cache_view_order(state_ref,entry,cljs.core.keys(data));\nvar end \x3d (function (){var x__5090__auto__ \x3d cljs.core.count(view_order);\nvar y__5091__auto__ \x3d (start + num);\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})();\nvar idxs \x3d cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar key \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nvar val \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(data,key);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22key\x22,\x22key\x22,-1516042587),(function (){try{return shadow.remote.runtime.writer.pr_str_limit(key,key_limit);\n}catch (e28148){var e \x3d e28148;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,\x22... print failed ...\x22], null);\n}})(),new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),(function (){try{return shadow.remote.runtime.writer.pr_str_limit(val,val_limit);\n}catch (e28149){var e \x3d e28149;\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,\x22... print failed ...\x22], null);\n}})()], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n} else {\nif(cljs.core.vector_QMARK_(data)){\nvar end \x3d (function (){var x__5090__auto__ \x3d cljs.core.count(data);\nvar y__5091__auto__ \x3d (start + num);\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})();\nvar idxs \x3d cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(data,idx);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),shadow.remote.runtime.writer.pr_str_limit(val,val_limit)], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n} else {\nif(cljs.core.list_QMARK_(data)){\nvar end \x3d (function (){var x__5090__auto__ \x3d cljs.core.count(data);\nvar y__5091__auto__ \x3d (start + num);\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})();\nvar idxs \x3d cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(data,idx);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),shadow.remote.runtime.writer.pr_str_limit(val,val_limit)], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n} else {\nif(cljs.core.set_QMARK_(data)){\nvar view_order \x3d shadow.remote.runtime.obj_support.cache_view_order(state_ref,entry,data);\nvar end \x3d (function (){var x__5090__auto__ \x3d cljs.core.count(view_order);\nvar y__5091__auto__ \x3d (start + num);\nreturn ((x__5090__auto__ \x3c y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);\n})();\nvar idxs \x3d cljs.core.range.cljs$core$IFn$_invoke$arity$2(start,end);\nvar fragment \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,idx){\nvar val \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$2(view_order,idx);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,idx,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22val\x22,\x22val\x22,128701612),shadow.remote.runtime.writer.pr_str_limit(val,val_limit)], null));\n}),cljs.core.PersistentArrayMap.EMPTY,idxs);\nreturn fragment;\n} else {\nreturn null;\n}\n}\n}\n}\n}));\nshadow.remote.runtime.obj_support.obj_request \x3d (function shadow$remote$runtime$obj_support$obj_request(this$,p__28180){\nvar map__28181 \x3d p__28180;\nvar map__28181__$1 \x3d cljs.core.__destructure_map(map__28181);\nvar msg \x3d map__28181__$1;\nvar request_op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28181__$1,new cljs.core.Keyword(null,\x22request-op\x22,\x22request-op\x22,1472997246));\nvar real_handler \x3d (function (){var G__28184 \x3d request_op;\nvar G__28184__$1 \x3d (((G__28184 instanceof cljs.core.Keyword))?G__28184.fqn:null);\nswitch (G__28184__$1) {\ncase \x22str\x22:\nreturn shadow.remote.runtime.obj_support.obj_str;\n\nbreak;\ncase \x22ex-str\x22:\nreturn shadow.remote.runtime.obj_support.obj_ex_str;\n\nbreak;\ncase \x22edn\x22:\nreturn shadow.remote.runtime.obj_support.obj_edn;\n\nbreak;\ncase \x22edn-limit\x22:\nreturn shadow.remote.runtime.obj_support.obj_edn;\n\nbreak;\ncase \x22pprint\x22:\nreturn this$;\n\nbreak;\ncase \x22nav\x22:\nreturn this$;\n\nbreak;\ncase \x22fragment\x22:\nreturn shadow.remote.runtime.obj_support.obj_fragment;\n\nbreak;\ndefault:\nthrow (new Error([\x22No matching clause: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__28184__$1)].join(\x27\x27)));\n\n}\n})();\nreturn (real_handler.cljs$core$IFn$_invoke$arity$2 ? real_handler.cljs$core$IFn$_invoke$arity$2(this$,msg) : real_handler.call(null, this$,msg));\n});\nshadow.remote.runtime.obj_support.obj_describe \x3d (function shadow$remote$runtime$obj_support$obj_describe(p__28216,p__28217){\nvar map__28220 \x3d p__28216;\nvar map__28220__$1 \x3d cljs.core.__destructure_map(map__28220);\nvar this$ \x3d map__28220__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28220__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar map__28221 \x3d p__28217;\nvar map__28221__$1 \x3d cljs.core.__destructure_map(map__28221);\nvar msg \x3d map__28221__$1;\nvar oid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28221__$1,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334));\nvar temp__5802__auto__ \x3d shadow.remote.runtime.obj_support.obj_describe_STAR_(this$,oid);\nif(cljs.core.truth_(temp__5802__auto__)){\nvar summary \x3d temp__5802__auto__;\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22obj-summary\x22,\x22obj-summary\x22,-1372191064),new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid,new cljs.core.Keyword(null,\x22summary\x22,\x22summary\x22,380847952),summary], null));\n} else {\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22obj-not-found\x22,\x22obj-not-found\x22,1577257696),new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid], null));\n}\n});\nshadow.remote.runtime.obj_support.obj_forget \x3d (function shadow$remote$runtime$obj_support$obj_forget(p__28244,p__28245){\nvar map__28246 \x3d p__28244;\nvar map__28246__$1 \x3d cljs.core.__destructure_map(map__28246);\nvar svc \x3d map__28246__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28246__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__28247 \x3d p__28245;\nvar map__28247__$1 \x3d cljs.core.__destructure_map(map__28247);\nvar msg \x3d map__28247__$1;\nvar oid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28247__$1,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,cljs.core.update,new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([oid], 0));\n});\nshadow.remote.runtime.obj_support.obj_forget_all \x3d (function shadow$remote$runtime$obj_support$obj_forget_all(p__28258,msg){\nvar map__28259 \x3d p__28258;\nvar map__28259__$1 \x3d cljs.core.__destructure_map(map__28259);\nvar svc \x3d map__28259__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28259__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc,new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),cljs.core.PersistentArrayMap.EMPTY);\n});\nshadow.remote.runtime.obj_support.basic_gc_BANG_ \x3d (function shadow$remote$runtime$obj_support$basic_gc_BANG_(state){\nvar objs_to_drop \x3d cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((100),cljs.core.reverse(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22access-at\x22,\x22access-at\x22,-1487162729),cljs.core.vals(new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734).cljs$core$IFn$_invoke$arity$1(state))))));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (state__$1,oid){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(state__$1,new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),cljs.core.dissoc,oid);\n}),state,objs_to_drop);\n});\nshadow.remote.runtime.obj_support.add_inspector \x3d (function shadow$remote$runtime$obj_support$add_inspector(p__28300,inspect_fn){\nvar map__28301 \x3d p__28300;\nvar map__28301__$1 \x3d cljs.core.__destructure_map(map__28301);\nvar this$ \x3d map__28301__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28301__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nif(cljs.core.fn_QMARK_(inspect_fn)){\n} else {\nthrow (new Error(\x22Assert failed: (fn? inspect-fn)\x22));\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,cljs.core.update,new cljs.core.Keyword(null,\x22inspectors\x22,\x22inspectors\x22,-426448246),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([inspect_fn], 0));\n\nreturn this$;\n});\nshadow.remote.runtime.obj_support.start \x3d (function shadow$remote$runtime$obj_support$start(runtime){\nvar state_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,\x22inspectors\x22,\x22inspectors\x22,-426448246),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,\x22id-seq-ref\x22,\x22id-seq-ref\x22,-98357047),(0)], null));\nvar svc \x3d shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(shadow.remote.runtime.obj_support.add_inspector(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952),state_ref], null),(function (summary,p__28333){\nvar map__28334 \x3d p__28333;\nvar map__28334__$1 \x3d cljs.core.__destructure_map(map__28334);\nvar entry \x3d map__28334__$1;\nvar obj \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28334__$1,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962));\nif((!(shadow.remote.runtime.obj_support.simple_value_QMARK_(obj)))){\nreturn summary;\n} else {\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-get-value\x22,\x22obj-get-value\x22,281897170));\n}\n})),(function (summary,entry){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-str\x22,\x22obj-str\x22,1815115325));\n})),(function (summary,p__28335){\nvar map__28336 \x3d p__28335;\nvar map__28336__$1 \x3d cljs.core.__destructure_map(map__28336);\nvar entry \x3d map__28336__$1;\nvar obj \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28336__$1,new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962));\nif(shadow.remote.runtime.obj_support.exception_QMARK_(obj)){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-ex-str\x22,\x22obj-ex-str\x22,-639656467));\n} else {\nreturn summary;\n}\n})),(function (summary,entry){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-edn\x22,\x22obj-edn\x22,809365133));\n})),(function (summary,entry){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-edn-limit\x22,\x22obj-edn-limit\x22,-1550136004));\n})),(function (summary,p__28337){\nvar map__28338 \x3d p__28337;\nvar map__28338__$1 \x3d cljs.core.__destructure_map(map__28338);\nvar entry \x3d map__28338__$1;\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28338__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nif(((cljs.core.coll_QMARK_(data)) || (cljs.core.seq_QMARK_(data)))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-pprint\x22,\x22obj-pprint\x22,-1831226802));\n} else {\nreturn summary;\n}\n})),(function (summary,p__28340){\nvar map__28341 \x3d p__28340;\nvar map__28341__$1 \x3d cljs.core.__destructure_map(map__28341);\nvar entry \x3d map__28341__$1;\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28341__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nif(((((cljs.core.map_QMARK_(data)) || (((cljs.core.vector_QMARK_(data)) || (((cljs.core.set_QMARK_(data)) || (cljs.core.list_QMARK_(data)))))))) \x26\x26 (cljs.core.seq(data)))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-nav\x22,\x22obj-nav\x22,1248750622));\n} else {\nreturn summary;\n}\n})),(function (summary,p__28343){\nvar map__28344 \x3d p__28343;\nvar map__28344__$1 \x3d cljs.core.__destructure_map(map__28344);\nvar entry \x3d map__28344__$1;\nvar data \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28344__$1,new cljs.core.Keyword(null,\x22data\x22,\x22data\x22,-232669377));\nif(((((cljs.core.map_QMARK_(data)) || (((cljs.core.vector_QMARK_(data)) || (((cljs.core.set_QMARK_(data)) || (cljs.core.list_QMARK_(data)))))))) \x26\x26 (cljs.core.seq(data)))){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(summary,new cljs.core.Keyword(null,\x22supports\x22,\x22supports\x22,1501242067),cljs.core.conj,new cljs.core.Keyword(null,\x22obj-fragment\x22,\x22obj-fragment\x22,1857463161));\n} else {\nreturn summary;\n}\n}));\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.obj-support\x22,\x22ext\x22,\x22shadow.remote.runtime.obj-support/ext\x22,-1896569346),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22obj-forget\x22,\x22obj-forget\x22,2003566115),new cljs.core.Keyword(null,\x22obj-describe\x22,\x22obj-describe\x22,-34922904),new cljs.core.Keyword(null,\x22obj-ex-str\x22,\x22obj-ex-str\x22,-639656467),new cljs.core.Keyword(null,\x22obj-request\x22,\x22obj-request\x22,-1709325811),new cljs.core.Keyword(null,\x22obj-edn\x22,\x22obj-edn\x22,809365133),new cljs.core.Keyword(null,\x22obj-pprint\x22,\x22obj-pprint\x22,-1831226802),new cljs.core.Keyword(null,\x22obj-get-value\x22,\x22obj-get-value\x22,281897170),new cljs.core.Keyword(null,\x22obj-forget-all\x22,\x22obj-forget-all\x22,1418682131),new cljs.core.Keyword(null,\x22obj-fragment\x22,\x22obj-fragment\x22,1857463161),new cljs.core.Keyword(null,\x22obj-edn-limit\x22,\x22obj-edn-limit\x22,-1550136004),new cljs.core.Keyword(null,\x22obj-str\x22,\x22obj-str\x22,1815115325),new cljs.core.Keyword(null,\x22obj-nav\x22,\x22obj-nav\x22,1248750622)],[(function (p1__28331_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_forget(svc,p1__28331_SHARP_);\n}),(function (p1__28321_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_describe(svc,p1__28321_SHARP_);\n}),(function (p1__28327_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_ex_str(svc,p1__28327_SHARP_);\n}),(function (p1__28322_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_request(svc,p1__28322_SHARP_);\n}),(function (p1__28323_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_edn(svc,p1__28323_SHARP_);\n}),(function (p1__28328_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_pprint(svc,p1__28328_SHARP_);\n}),(function (p1__28324_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_get_value(svc,p1__28324_SHARP_);\n}),(function (p1__28332_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_forget_all(svc,p1__28332_SHARP_);\n}),(function (p1__28330_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_fragment(svc,p1__28330_SHARP_);\n}),(function (p1__28325_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_edn_limit(svc,p1__28325_SHARP_);\n}),(function (p1__28326_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_str(svc,p1__28326_SHARP_);\n}),(function (p1__28329_SHARP_){\nreturn shadow.remote.runtime.obj_support.obj_nav(svc,p1__28329_SHARP_);\n})]),new cljs.core.Keyword(null,\x22on-idle\x22,\x22on-idle\x22,2044706602),(function (){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(state_ref,shadow.remote.runtime.obj_support.basic_gc_BANG_);\n})], null));\n\nreturn svc;\n});\nshadow.remote.runtime.obj_support.get_tap_history \x3d (function shadow$remote$runtime$obj_support$get_tap_history(p__28349,num){\nvar map__28350 \x3d p__28349;\nvar map__28350__$1 \x3d cljs.core.__destructure_map(map__28350);\nvar svc \x3d map__28350__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28350__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),cljs.core.take.cljs$core$IFn$_invoke$arity$2(num,cljs.core.reverse(cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22added-at\x22,\x22added-at\x22,-352499434),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__28346_SHARP_){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22tap\x22,\x22tap\x22,-1086702463),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(p1__28346_SHARP_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22obj-info\x22,\x22obj-info\x22,-373842651),new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044)], null)));\n}),cljs.core.vals(new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)))))))));\n});\nshadow.remote.runtime.obj_support.register \x3d (function shadow$remote$runtime$obj_support$register(p__28376,obj,obj_info){\nvar map__28377 \x3d p__28376;\nvar map__28377__$1 \x3d cljs.core.__destructure_map(map__28377);\nvar svc \x3d map__28377__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28377__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar oid \x3d shadow.remote.runtime.obj_support.next_oid();\nif((!(((cljs.core.vector_QMARK_(obj)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(\x22shadow.remote\x22,\x22wrap\x22,\x22shadow.remote/wrap\x22,996267199),cljs.core.first(obj))) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(obj),(3))))))))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,shadow.remote.runtime.obj_support.register_STAR_,oid,obj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj_info], 0));\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,shadow.remote.runtime.obj_support.register_STAR_,oid,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(obj,(1)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj_info,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(obj,(2))], 0))], 0));\n}\n\nreturn oid;\n});\nshadow.remote.runtime.obj_support.get_ref \x3d (function shadow$remote$runtime$obj_support$get_ref(p__28378,obj_id){\nvar map__28379 \x3d p__28378;\nvar map__28379__$1 \x3d cljs.core.__destructure_map(map__28379);\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28379__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(state_ref),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22objects\x22,\x22objects\x22,2099713734),obj_id], null));\n});\nshadow.remote.runtime.obj_support.stop \x3d (function shadow$remote$runtime$obj_support$stop(p__28380){\nvar map__28381 \x3d p__28380;\nvar map__28381__$1 \x3d cljs.core.__destructure_map(map__28381);\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28381__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.obj-support\x22,\x22ext\x22,\x22shadow.remote.runtime.obj-support/ext\x22,-1896569346));\n});\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.tap_support.js", true, "goog.provide(\x27shadow.remote.runtime.tap_support\x27);\nshadow.remote.runtime.tap_support.tap_subscribe \x3d (function shadow$remote$runtime$tap_support$tap_subscribe(p__28407,p__28408){\nvar map__28409 \x3d p__28407;\nvar map__28409__$1 \x3d cljs.core.__destructure_map(map__28409);\nvar svc \x3d map__28409__$1;\nvar subs_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28409__$1,new cljs.core.Keyword(null,\x22subs-ref\x22,\x22subs-ref\x22,-1355989911));\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28409__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28409__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar map__28410 \x3d p__28408;\nvar map__28410__$1 \x3d cljs.core.__destructure_map(map__28410);\nvar msg \x3d map__28410__$1;\nvar from \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28410__$1,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044));\nvar summary \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28410__$1,new cljs.core.Keyword(null,\x22summary\x22,\x22summary\x22,380847952));\nvar history__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28410__$1,new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220));\nvar num \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28410__$1,new cljs.core.Keyword(null,\x22num\x22,\x22num\x22,1985240673),(10));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(subs_ref,cljs.core.assoc,from,msg);\n\nif(cljs.core.truth_(history__$1)){\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22tap-subscribed\x22,\x22tap-subscribed\x22,-1882247432),new cljs.core.Keyword(null,\x22history\x22,\x22history\x22,-247395220),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (oid){\nreturn new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid,new cljs.core.Keyword(null,\x22summary\x22,\x22summary\x22,380847952),shadow.remote.runtime.obj_support.obj_describe_STAR_(obj_support,oid)], null);\n}),shadow.remote.runtime.obj_support.get_tap_history(obj_support,num)))], null));\n} else {\nreturn null;\n}\n});\nshadow.remote.runtime.tap_support.tap_unsubscribe \x3d (function shadow$remote$runtime$tap_support$tap_unsubscribe(p__28434,p__28435){\nvar map__28438 \x3d p__28434;\nvar map__28438__$1 \x3d cljs.core.__destructure_map(map__28438);\nvar subs_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28438__$1,new cljs.core.Keyword(null,\x22subs-ref\x22,\x22subs-ref\x22,-1355989911));\nvar map__28439 \x3d p__28435;\nvar map__28439__$1 \x3d cljs.core.__destructure_map(map__28439);\nvar from \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28439__$1,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(subs_ref,cljs.core.dissoc,from);\n});\nshadow.remote.runtime.tap_support.request_tap_history \x3d (function shadow$remote$runtime$tap_support$request_tap_history(p__28444,p__28445){\nvar map__28449 \x3d p__28444;\nvar map__28449__$1 \x3d cljs.core.__destructure_map(map__28449);\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28449__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28449__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar map__28450 \x3d p__28445;\nvar map__28450__$1 \x3d cljs.core.__destructure_map(map__28450);\nvar msg \x3d map__28450__$1;\nvar num \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__28450__$1,new cljs.core.Keyword(null,\x22num\x22,\x22num\x22,1985240673),(10));\nvar tap_ids \x3d shadow.remote.runtime.obj_support.get_tap_history(obj_support,num);\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22tap-history\x22,\x22tap-history\x22,-282803347),new cljs.core.Keyword(null,\x22oids\x22,\x22oids\x22,-1580877688),tap_ids], null));\n});\nshadow.remote.runtime.tap_support.tool_disconnect \x3d (function shadow$remote$runtime$tap_support$tool_disconnect(p__28458,tid){\nvar map__28459 \x3d p__28458;\nvar map__28459__$1 \x3d cljs.core.__destructure_map(map__28459);\nvar svc \x3d map__28459__$1;\nvar subs_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28459__$1,new cljs.core.Keyword(null,\x22subs-ref\x22,\x22subs-ref\x22,-1355989911));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(subs_ref,cljs.core.dissoc,tid);\n});\nshadow.remote.runtime.tap_support.start \x3d (function shadow$remote$runtime$tap_support$start(runtime,obj_support){\nvar subs_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\nvar tap_fn \x3d (function shadow$remote$runtime$tap_support$start_$_runtime_tap(obj){\nif((!((obj \x3d\x3d null)))){\nvar oid \x3d shadow.remote.runtime.obj_support.register(obj_support,obj,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),new cljs.core.Keyword(null,\x22tap\x22,\x22tap\x22,-1086702463)], null));\nvar seq__28472 \x3d cljs.core.seq(cljs.core.deref(subs_ref));\nvar chunk__28473 \x3d null;\nvar count__28474 \x3d (0);\nvar i__28475 \x3d (0);\nwhile(true){\nif((i__28475 \x3c count__28474)){\nvar vec__28486 \x3d chunk__28473.cljs$core$IIndexed$_nth$arity$2(null, i__28475);\nvar tid \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28486,(0),null);\nvar tap_config \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28486,(1),null);\nshadow.remote.runtime.api.relay_msg(runtime,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22tap\x22,\x22tap\x22,-1086702463),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),tid,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid], null));\n\n\nvar G__28503 \x3d seq__28472;\nvar G__28504 \x3d chunk__28473;\nvar G__28505 \x3d count__28474;\nvar G__28506 \x3d (i__28475 + (1));\nseq__28472 \x3d G__28503;\nchunk__28473 \x3d G__28504;\ncount__28474 \x3d G__28505;\ni__28475 \x3d G__28506;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__28472);\nif(temp__5804__auto__){\nvar seq__28472__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__28472__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__28472__$1);\nvar G__28507 \x3d cljs.core.chunk_rest(seq__28472__$1);\nvar G__28508 \x3d c__5525__auto__;\nvar G__28509 \x3d cljs.core.count(c__5525__auto__);\nvar G__28510 \x3d (0);\nseq__28472 \x3d G__28507;\nchunk__28473 \x3d G__28508;\ncount__28474 \x3d G__28509;\ni__28475 \x3d G__28510;\ncontinue;\n} else {\nvar vec__28492 \x3d cljs.core.first(seq__28472__$1);\nvar tid \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28492,(0),null);\nvar tap_config \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28492,(1),null);\nshadow.remote.runtime.api.relay_msg(runtime,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22tap\x22,\x22tap\x22,-1086702463),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),tid,new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid], null));\n\n\nvar G__28511 \x3d cljs.core.next(seq__28472__$1);\nvar G__28512 \x3d null;\nvar G__28513 \x3d (0);\nvar G__28514 \x3d (0);\nseq__28472 \x3d G__28511;\nchunk__28473 \x3d G__28512;\ncount__28474 \x3d G__28513;\ni__28475 \x3d G__28514;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\nvar svc \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229),obj_support,new cljs.core.Keyword(null,\x22tap-fn\x22,\x22tap-fn\x22,1573556461),tap_fn,new cljs.core.Keyword(null,\x22subs-ref\x22,\x22subs-ref\x22,-1355989911),subs_ref], null);\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.tap-support\x22,\x22ext\x22,\x22shadow.remote.runtime.tap-support/ext\x22,1019069674),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22tap-subscribe\x22,\x22tap-subscribe\x22,411179050),(function (p1__28463_SHARP_){\nreturn shadow.remote.runtime.tap_support.tap_subscribe(svc,p1__28463_SHARP_);\n}),new cljs.core.Keyword(null,\x22tap-unsubscribe\x22,\x22tap-unsubscribe\x22,1183890755),(function (p1__28465_SHARP_){\nreturn shadow.remote.runtime.tap_support.tap_unsubscribe(svc,p1__28465_SHARP_);\n}),new cljs.core.Keyword(null,\x22request-tap-history\x22,\x22request-tap-history\x22,-670837812),(function (p1__28467_SHARP_){\nreturn shadow.remote.runtime.tap_support.request_tap_history(svc,p1__28467_SHARP_);\n})], null),new cljs.core.Keyword(null,\x22on-tool-disconnect\x22,\x22on-tool-disconnect\x22,693464366),(function (p1__28469_SHARP_){\nreturn shadow.remote.runtime.tap_support.tool_disconnect(svc,p1__28469_SHARP_);\n})], null));\n\ncljs.core.add_tap(tap_fn);\n\nreturn svc;\n});\nshadow.remote.runtime.tap_support.stop \x3d (function shadow$remote$runtime$tap_support$stop(p__28495){\nvar map__28496 \x3d p__28495;\nvar map__28496__$1 \x3d cljs.core.__destructure_map(map__28496);\nvar svc \x3d map__28496__$1;\nvar tap_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28496__$1,new cljs.core.Keyword(null,\x22tap-fn\x22,\x22tap-fn\x22,1573556461));\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28496__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\ncljs.core.remove_tap(tap_fn);\n\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.tap-support\x22,\x22ext\x22,\x22shadow.remote.runtime.tap-support/ext\x22,1019069674));\n});\n");
SHADOW_ENV.evalLoad("shadow.remote.runtime.eval_support.js", true, "goog.provide(\x27shadow.remote.runtime.eval_support\x27);\nshadow.remote.runtime.eval_support.obj_support_inst \x3d null;\nshadow.remote.runtime.eval_support.get_ref \x3d (function shadow$remote$runtime$eval_support$get_ref(oid){\nif(cljs.core.truth_(shadow.remote.runtime.eval_support.obj_support_inst)){\n} else {\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22obj-support not bound, can only call this from eval\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22oid\x22,\x22oid\x22,-768692334),oid], null));\n}\n\nreturn shadow.remote.runtime.obj_support.get_ref(shadow.remote.runtime.eval_support.obj_support_inst,oid);\n});\nshadow.remote.runtime.eval_support.cljs_eval \x3d (function shadow$remote$runtime$eval_support$cljs_eval(p__28414,p__28416){\nvar map__28419 \x3d p__28414;\nvar map__28419__$1 \x3d cljs.core.__destructure_map(map__28419);\nvar svc \x3d map__28419__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28419__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28419__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nvar map__28420 \x3d p__28416;\nvar map__28420__$1 \x3d cljs.core.__destructure_map(map__28420);\nvar msg \x3d map__28420__$1;\nvar input \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28420__$1,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961));\n(shadow.remote.runtime.eval_support.obj_support_inst \x3d obj_support);\n\nreturn shadow.remote.runtime.api.cljs_eval(runtime,input,(function (p__28422){\nvar map__28423 \x3d p__28422;\nvar map__28423__$1 \x3d cljs.core.__destructure_map(map__28423);\nvar info \x3d map__28423__$1;\nvar result \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28423__$1,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211));\n(shadow.remote.runtime.eval_support.obj_support_inst \x3d null);\n\nvar G__28424 \x3d result;\nvar G__28424__$1 \x3d (((G__28424 instanceof cljs.core.Keyword))?G__28424.fqn:null);\nswitch (G__28424__$1) {\ncase \x22compile-error\x22:\nvar map__28427 \x3d info;\nvar map__28427__$1 \x3d cljs.core.__destructure_map(map__28427);\nvar ex_client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28427__$1,new cljs.core.Keyword(null,\x22ex-client-id\x22,\x22ex-client-id\x22,-446123984));\nvar ex_oid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28427__$1,new cljs.core.Keyword(null,\x22ex-oid\x22,\x22ex-oid\x22,-650256737));\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28427__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22eval-compile-error\x22,\x22eval-compile-error\x22,-1765075397),new cljs.core.Keyword(null,\x22ex-client-id\x22,\x22ex-client-id\x22,-446123984),ex_client_id,new cljs.core.Keyword(null,\x22ex-oid\x22,\x22ex-oid\x22,-650256737),ex_oid,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),report], null));\n\nbreak;\ncase \x22runtime-error\x22:\nvar map__28440 \x3d info;\nvar map__28440__$1 \x3d cljs.core.__destructure_map(map__28440);\nvar ex \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28440__$1,new cljs.core.Keyword(null,\x22ex\x22,\x22ex\x22,-1413771341));\nvar ex_oid \x3d shadow.remote.runtime.obj_support.register(obj_support,ex,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),input], null));\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22eval-runtime-error\x22,\x22eval-runtime-error\x22,275935402),new cljs.core.Keyword(null,\x22ex-oid\x22,\x22ex-oid\x22,-650256737),ex_oid], null));\n\nbreak;\ncase \x22warnings\x22:\nvar map__28441 \x3d info;\nvar map__28441__$1 \x3d cljs.core.__destructure_map(map__28441);\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28441__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22eval-compile-warnings\x22,\x22eval-compile-warnings\x22,1994859386),new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651),warnings], null));\n\nbreak;\ncase \x22ok\x22:\nvar map__28442 \x3d info;\nvar map__28442__$1 \x3d cljs.core.__destructure_map(map__28442);\nvar results \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28442__$1,new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28442__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nvar time_start \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28442__$1,new cljs.core.Keyword(null,\x22time-start\x22,\x22time-start\x22,-590811745));\nvar time_finish \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28442__$1,new cljs.core.Keyword(null,\x22time-finish\x22,\x22time-finish\x22,-1456032653));\nvar val \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(results)))?cljs.core.first(results):results);\nvar ref_oid \x3d shadow.remote.runtime.obj_support.register(obj_support,val,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),input], null));\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22eval-result-ref\x22,\x22eval-result-ref\x22,263827420),new cljs.core.Keyword(null,\x22ref-oid\x22,\x22ref-oid\x22,-526648644),ref_oid,new cljs.core.Keyword(null,\x22eval-ms\x22,\x22eval-ms\x22,788821074),(time_finish - time_start),new cljs.core.Keyword(null,\x22eval-ns\x22,\x22eval-ns\x22,-915623795),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(info),new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651),warnings], null));\n\nbreak;\ndefault:\nreturn console.error(\x22Unhandled cljs-eval result\x22,info);\n\n}\n}));\n});\nshadow.remote.runtime.eval_support.js_eval \x3d (function shadow$remote$runtime$eval_support$js_eval(p__28452,p__28453){\nvar map__28455 \x3d p__28452;\nvar map__28455__$1 \x3d cljs.core.__destructure_map(map__28455);\nvar svc \x3d map__28455__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28455__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28455__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nvar map__28456 \x3d p__28453;\nvar map__28456__$1 \x3d cljs.core.__destructure_map(map__28456);\nvar msg \x3d map__28456__$1;\nvar code \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28456__$1,new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142));\ntry{var res \x3d shadow.remote.runtime.api.js_eval(runtime,code);\nvar ref_oid \x3d shadow.remote.runtime.obj_support.register(obj_support,res,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22js-code\x22,\x22js-code\x22,1816578331),code], null));\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22eval-result-ref\x22,\x22eval-result-ref\x22,263827420),new cljs.core.Keyword(null,\x22ref-oid\x22,\x22ref-oid\x22,-526648644),ref_oid], null));\n}catch (e28461){var e \x3d e28461;\nreturn shadow.remote.runtime.shared.reply(runtime,msg,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22eval-error\x22,\x22eval-error\x22,466139568),new cljs.core.Keyword(null,\x22e\x22,\x22e\x22,1381269198),e.message], null));\n}});\nshadow.remote.runtime.eval_support.start \x3d (function shadow$remote$runtime$eval_support$start(runtime,obj_support){\nvar svc \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229),obj_support], null);\nshadow.remote.runtime.shared.add_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.eval-support\x22,\x22ext\x22,\x22shadow.remote.runtime.eval-support/ext\x22,1781604625),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22js-eval\x22,\x22js-eval\x22,-137738892),(function (p1__28464_SHARP_){\nreturn shadow.remote.runtime.eval_support.js_eval(svc,p1__28464_SHARP_);\n}),new cljs.core.Keyword(null,\x22cljs-eval\x22,\x22cljs-eval\x22,1860675817),(function (p1__28466_SHARP_){\nreturn shadow.remote.runtime.eval_support.cljs_eval(svc,p1__28466_SHARP_);\n})], null)], null));\n\nreturn svc;\n});\nshadow.remote.runtime.eval_support.stop \x3d (function shadow$remote$runtime$eval_support$stop(p__28470){\nvar map__28471 \x3d p__28470;\nvar map__28471__$1 \x3d cljs.core.__destructure_map(map__28471);\nvar svc \x3d map__28471__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28471__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.remote.runtime.eval-support\x22,\x22ext\x22,\x22shadow.remote.runtime.eval-support/ext\x22,1781604625));\n});\n");
SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.shared.js", true, "goog.provide(\x27shadow.cljs.devtools.client.shared\x27);\ngoog.scope(function(){\n shadow.cljs.devtools.client.shared.goog$module$goog$object \x3d goog.module.get(\x27goog.object\x27);\n});\n\n/**\n * @interface\n */\nshadow.cljs.devtools.client.shared.IRemote \x3d function(){};\n\nvar shadow$cljs$devtools$client$shared$IRemote$remote_open$dyn_28861 \x3d (function (this$,e){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_open[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,e) : m__5351__auto__.call(null, this$,e));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_open[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,e) : m__5349__auto__.call(null, this$,e));\n} else {\nthrow cljs.core.missing_protocol(\x22IRemote.remote-open\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.remote_open \x3d (function shadow$cljs$devtools$client$shared$remote_open(this$,e){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IRemote$remote_open$arity$2 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IRemote$remote_open$arity$2(this$,e);\n} else {\nreturn shadow$cljs$devtools$client$shared$IRemote$remote_open$dyn_28861(this$,e);\n}\n});\n\nvar shadow$cljs$devtools$client$shared$IRemote$remote_msg$dyn_28868 \x3d (function (this$,msg){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_msg[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,msg) : m__5351__auto__.call(null, this$,msg));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_msg[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,msg) : m__5349__auto__.call(null, this$,msg));\n} else {\nthrow cljs.core.missing_protocol(\x22IRemote.remote-msg\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.remote_msg \x3d (function shadow$cljs$devtools$client$shared$remote_msg(this$,msg){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IRemote$remote_msg$arity$2 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IRemote$remote_msg$arity$2(this$,msg);\n} else {\nreturn shadow$cljs$devtools$client$shared$IRemote$remote_msg$dyn_28868(this$,msg);\n}\n});\n\nvar shadow$cljs$devtools$client$shared$IRemote$remote_close$dyn_28872 \x3d (function (this$,e,info){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_close[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,e,info) : m__5351__auto__.call(null, this$,e,info));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_close[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,e,info) : m__5349__auto__.call(null, this$,e,info));\n} else {\nthrow cljs.core.missing_protocol(\x22IRemote.remote-close\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.remote_close \x3d (function shadow$cljs$devtools$client$shared$remote_close(this$,e,info){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IRemote$remote_close$arity$3 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IRemote$remote_close$arity$3(this$,e,info);\n} else {\nreturn shadow$cljs$devtools$client$shared$IRemote$remote_close$dyn_28872(this$,e,info);\n}\n});\n\nvar shadow$cljs$devtools$client$shared$IRemote$remote_error$dyn_28877 \x3d (function (this$,e){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_error[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,e) : m__5351__auto__.call(null, this$,e));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.remote_error[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,e) : m__5349__auto__.call(null, this$,e));\n} else {\nthrow cljs.core.missing_protocol(\x22IRemote.remote-error\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.remote_error \x3d (function shadow$cljs$devtools$client$shared$remote_error(this$,e){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IRemote$remote_error$arity$2 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IRemote$remote_error$arity$2(this$,e);\n} else {\nreturn shadow$cljs$devtools$client$shared$IRemote$remote_error$dyn_28877(this$,e);\n}\n});\n\n\n/**\n * @interface\n */\nshadow.cljs.devtools.client.shared.IHostSpecific \x3d function(){};\n\nvar shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$dyn_28878 \x3d (function (this$,action,done,error){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.do_repl_init[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$4(this$,action,done,error) : m__5351__auto__.call(null, this$,action,done,error));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.do_repl_init[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$4(this$,action,done,error) : m__5349__auto__.call(null, this$,action,done,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IHostSpecific.do-repl-init\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.do_repl_init \x3d (function shadow$cljs$devtools$client$shared$do_repl_init(this$,action,done,error){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$arity$4 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$arity$4(this$,action,done,error);\n} else {\nreturn shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$dyn_28878(this$,action,done,error);\n}\n});\n\nvar shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$dyn_28886 \x3d (function (this$,require_msg,done,error){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.do_repl_require[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$4(this$,require_msg,done,error) : m__5351__auto__.call(null, this$,require_msg,done,error));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.do_repl_require[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$4 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$4(this$,require_msg,done,error) : m__5349__auto__.call(null, this$,require_msg,done,error));\n} else {\nthrow cljs.core.missing_protocol(\x22IHostSpecific.do-repl-require\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.do_repl_require \x3d (function shadow$cljs$devtools$client$shared$do_repl_require(this$,require_msg,done,error){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$arity$4 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$arity$4(this$,require_msg,done,error);\n} else {\nreturn shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$dyn_28886(this$,require_msg,done,error);\n}\n});\n\nvar shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$dyn_28891 \x3d (function (this$,ns,invoke_msg){\nvar x__5350__auto__ \x3d (((this$ \x3d\x3d null))?null:this$);\nvar m__5351__auto__ \x3d (shadow.cljs.devtools.client.shared.do_invoke[goog.typeOf(x__5350__auto__)]);\nif((!((m__5351__auto__ \x3d\x3d null)))){\nreturn (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(this$,ns,invoke_msg) : m__5351__auto__.call(null, this$,ns,invoke_msg));\n} else {\nvar m__5349__auto__ \x3d (shadow.cljs.devtools.client.shared.do_invoke[\x22_\x22]);\nif((!((m__5349__auto__ \x3d\x3d null)))){\nreturn (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(this$,ns,invoke_msg) : m__5349__auto__.call(null, this$,ns,invoke_msg));\n} else {\nthrow cljs.core.missing_protocol(\x22IHostSpecific.do-invoke\x22,this$);\n}\n}\n});\nshadow.cljs.devtools.client.shared.do_invoke \x3d (function shadow$cljs$devtools$client$shared$do_invoke(this$,ns,invoke_msg){\nif((((!((this$ \x3d\x3d null)))) \x26\x26 ((!((this$.shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$arity$3 \x3d\x3d null)))))){\nreturn this$.shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$arity$3(this$,ns,invoke_msg);\n} else {\nreturn shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$dyn_28891(this$,ns,invoke_msg);\n}\n});\n\nshadow.cljs.devtools.client.shared.load_sources \x3d (function shadow$cljs$devtools$client$shared$load_sources(runtime,sources,callback){\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(runtime,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22cljs-load-sources\x22,\x22cljs-load-sources\x22,-1458295962),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582)),sources)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22cljs-sources\x22,\x22cljs-sources\x22,31121610),(function (p__28596){\nvar map__28597 \x3d p__28596;\nvar map__28597__$1 \x3d cljs.core.__destructure_map(map__28597);\nvar msg \x3d map__28597__$1;\nvar sources__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28597__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nreturn (callback.cljs$core$IFn$_invoke$arity$1 ? callback.cljs$core$IFn$_invoke$arity$1(sources__$1) : callback.call(null, sources__$1));\n})], null));\n});\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.shared !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.shared.runtime_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.shared.runtime_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\n}\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.shared !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.shared.plugins_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.shared.plugins_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}\nshadow.cljs.devtools.client.shared.start_all_plugins_BANG_ \x3d (function shadow$cljs$devtools$client$shared$start_all_plugins_BANG_(p__28603){\nvar map__28604 \x3d p__28603;\nvar map__28604__$1 \x3d cljs.core.__destructure_map(map__28604);\nvar runtime \x3d map__28604__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28604__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar started_set \x3d cljs.core.set(cljs.core.keys(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref))));\nvar plugins \x3d cljs.core.deref(shadow.cljs.devtools.client.shared.plugins_ref);\nvar plugins_set \x3d cljs.core.set(cljs.core.keys(plugins));\nvar pending_set \x3d clojure.set.difference.cljs$core$IFn$_invoke$arity$2(plugins_set,started_set);\nvar pending_set__$1 \x3d pending_set;\nwhile(true){\nif(cljs.core.empty_QMARK_(pending_set__$1)){\nreturn new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22done!\x22,\x22shadow.cljs.devtools.client.shared/done!\x22,-748632664);\n} else {\nvar G__28910 \x3d cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (pending_set__$1,started_set,plugins,plugins_set,pending_set,map__28604,map__28604__$1,runtime,state_ref){\nreturn (function (pending_set__$2,plugin_id){\nvar map__28609 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(plugins,plugin_id);\nvar map__28609__$1 \x3d cljs.core.__destructure_map(map__28609);\nvar plugin \x3d map__28609__$1;\nvar depends_on \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28609__$1,new cljs.core.Keyword(null,\x22depends-on\x22,\x22depends-on\x22,-1448442022));\nvar init_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28609__$1,new cljs.core.Keyword(null,\x22init-fn\x22,\x22init-fn\x22,777257971));\nif(cljs.core.truth_(cljs.core.some(pending_set__$2,depends_on))){\nreturn pending_set__$2;\n} else {\nvar start_arg \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.select_keys(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(state_ref)),depends_on),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime);\nvar started \x3d (init_fn.cljs$core$IFn$_invoke$arity$1 ? init_fn.cljs$core$IFn$_invoke$arity$1(start_arg) : init_fn.call(null, start_arg));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855),plugin_id], null),started);\n\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(pending_set__$2,plugin_id);\n}\n});})(pending_set__$1,started_set,plugins,plugins_set,pending_set,map__28604,map__28604__$1,runtime,state_ref))\n,pending_set__$1,pending_set__$1);\npending_set__$1 \x3d G__28910;\ncontinue;\n\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.shared.add_plugin_BANG_ \x3d (function shadow$cljs$devtools$client$shared$add_plugin_BANG_(plugin_id,depends_on,init_fn,stop_fn){\nif((plugin_id instanceof cljs.core.Keyword)){\n} else {\nthrow (new Error(\x22Assert failed: (keyword? plugin-id)\x22));\n}\n\nif(cljs.core.set_QMARK_(depends_on)){\n} else {\nthrow (new Error(\x22Assert failed: (set? depends-on)\x22));\n}\n\nif(cljs.core.fn_QMARK_(init_fn)){\n} else {\nthrow (new Error(\x22Assert failed: (fn? init-fn)\x22));\n}\n\nif(cljs.core.fn_QMARK_(stop_fn)){\n} else {\nthrow (new Error(\x22Assert failed: (fn? stop-fn)\x22));\n}\n\nvar temp__5808__auto___28919 \x3d cljs.core.deref(shadow.cljs.devtools.client.shared.runtime_ref);\nif((temp__5808__auto___28919 \x3d\x3d null)){\n} else {\nvar runtime_28920 \x3d temp__5808__auto___28919;\nvar temp__5808__auto___28922__$1 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(runtime_28920,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855),plugin_id], null));\nif((temp__5808__auto___28922__$1 \x3d\x3d null)){\n} else {\nvar started_28924 \x3d temp__5808__auto___28922__$1;\nvar map__28612_28925 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.cljs.devtools.client.shared.plugins_ref),plugin_id);\nvar map__28612_28926__$1 \x3d cljs.core.__destructure_map(map__28612_28925);\nvar old_28927 \x3d map__28612_28926__$1;\nvar stop_fn_28928__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28612_28926__$1,new cljs.core.Keyword(null,\x22stop-fn\x22,\x22stop-fn\x22,-348472246));\n(stop_fn_28928__$1.cljs$core$IFn$_invoke$arity$1 ? stop_fn_28928__$1.cljs$core$IFn$_invoke$arity$1(started_28924) : stop_fn_28928__$1.call(null, started_28924));\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(shadow.cljs.devtools.client.shared.runtime_ref,cljs.core.update,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([plugin_id], 0));\n}\n}\n\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.cljs.devtools.client.shared.plugins_ref,cljs.core.assoc,plugin_id,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22ext-id\x22,\x22ext-id\x22,-653860474),plugin_id,new cljs.core.Keyword(null,\x22depends-on\x22,\x22depends-on\x22,-1448442022),depends_on,new cljs.core.Keyword(null,\x22init-fn\x22,\x22init-fn\x22,777257971),init_fn,new cljs.core.Keyword(null,\x22stop-fn\x22,\x22stop-fn\x22,-348472246),stop_fn], null));\n\nvar temp__5808__auto__ \x3d cljs.core.deref(shadow.cljs.devtools.client.shared.runtime_ref);\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar runtime \x3d temp__5808__auto__;\nreturn shadow.cljs.devtools.client.shared.start_all_plugins_BANG_(runtime);\n}\n});\nshadow.cljs.devtools.client.shared.transit_read \x3d (function shadow$cljs$devtools$client$shared$transit_read(p__28615,data){\nvar map__28619 \x3d p__28615;\nvar map__28619__$1 \x3d cljs.core.__destructure_map(map__28619);\nvar state \x3d map__28619__$1;\nvar transit_readers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28619__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22transit-readers\x22,\x22shadow.cljs.devtools.client.shared/transit-readers\x22,-1866893537));\nvar t \x3d cognitect.transit.reader.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781),transit_readers], null));\nreturn cognitect.transit.read(t,data);\n});\nshadow.cljs.devtools.client.shared.transit_str \x3d (function shadow$cljs$devtools$client$shared$transit_str(p__28623,obj){\nvar map__28624 \x3d p__28623;\nvar map__28624__$1 \x3d cljs.core.__destructure_map(map__28624);\nvar state \x3d map__28624__$1;\nvar transit_writers \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28624__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22transit-writers\x22,\x22shadow.cljs.devtools.client.shared/transit-writers\x22,-776127897));\nvar w \x3d cognitect.transit.writer.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22json\x22,\x22json\x22,1279968570),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22handlers\x22,\x22handlers\x22,79528781),transit_writers], null));\nreturn cognitect.transit.write(w,obj);\n});\nshadow.cljs.devtools.client.shared.add_transit_writers_BANG_ \x3d (function shadow$cljs$devtools$client$shared$add_transit_writers_BANG_(p__28627,writers){\nvar map__28628 \x3d p__28627;\nvar map__28628__$1 \x3d cljs.core.__destructure_map(map__28628);\nvar runtime \x3d map__28628__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28628__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(state_ref,cljs.core.update,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22transit-writers\x22,\x22shadow.cljs.devtools.client.shared/transit-writers\x22,-776127897),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([writers], 0));\n\nreturn runtime;\n});\nshadow.cljs.devtools.client.shared.continue_BANG_ \x3d (function shadow$cljs$devtools$client$shared$continue_BANG_(state){\nreturn (shadow.cljs.devtools.client.shared.interpret_actions.cljs$core$IFn$_invoke$arity$1 ? shadow.cljs.devtools.client.shared.interpret_actions.cljs$core$IFn$_invoke$arity$1(state) : shadow.cljs.devtools.client.shared.interpret_actions.call(null, state));\n});\nshadow.cljs.devtools.client.shared.abort_BANG_ \x3d (function shadow$cljs$devtools$client$shared$abort_BANG_(p__28634,action,ex){\nvar map__28635 \x3d p__28634;\nvar map__28635__$1 \x3d cljs.core.__destructure_map(map__28635);\nvar state \x3d map__28635__$1;\nvar callback \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28635__$1,new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228));\nvar G__28636 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(state,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22runtime-error\x22,\x22runtime-error\x22,-2116843646),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22ex\x22,\x22ex\x22,-1413771341),ex,new cljs.core.Keyword(null,\x22ex-action\x22,\x22ex-action\x22,672251553),action], 0)),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228)], 0));\nreturn (callback.cljs$core$IFn$_invoke$arity$1 ? callback.cljs$core$IFn$_invoke$arity$1(G__28636) : callback.call(null, G__28636));\n});\nshadow.cljs.devtools.client.shared.handle_invoke \x3d (function shadow$cljs$devtools$client$shared$handle_invoke(state,runtime,action){\nvar res \x3d shadow.cljs.devtools.client.shared.do_invoke(runtime,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(state),action);\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097).cljs$core$IFn$_invoke$arity$1(action))){\nreturn state;\n} else {\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(state,new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113),cljs.core.conj,res);\n}\n});\nshadow.cljs.devtools.client.shared.handle_repl_invoke \x3d (function shadow$cljs$devtools$client$shared$handle_repl_invoke(state,runtime,action){\nvar ret \x3d shadow.cljs.devtools.client.shared.do_invoke(runtime,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(state),action);\n(cljs.core._STAR_3 \x3d cljs.core._STAR_2);\n\n(cljs.core._STAR_2 \x3d cljs.core._STAR_1);\n\n(cljs.core._STAR_1 \x3d ret);\n\nif(cljs.core.truth_(new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097).cljs$core$IFn$_invoke$arity$1(action))){\nreturn state;\n} else {\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(state,new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113),cljs.core.conj,ret);\n}\n});\nshadow.cljs.devtools.client.shared.interpret_action \x3d (function shadow$cljs$devtools$client$shared$interpret_action(p__28649,p__28650){\nvar map__28655 \x3d p__28649;\nvar map__28655__$1 \x3d cljs.core.__destructure_map(map__28655);\nvar state \x3d map__28655__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28655__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28655__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nvar map__28656 \x3d p__28650;\nvar map__28656__$1 \x3d cljs.core.__destructure_map(map__28656);\nvar action \x3d map__28656__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28656__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar G__28657 \x3d type;\nvar G__28657__$1 \x3d (((G__28657 instanceof cljs.core.Keyword))?G__28657.fqn:null);\nswitch (G__28657__$1) {\ncase \x22repl/init\x22:\nreturn shadow.cljs.devtools.client.shared.do_repl_init(runtime,action,(function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(runtime),cljs.core.assoc,new cljs.core.Keyword(null,\x22init-complete\x22,\x22init-complete\x22,-157163484),true);\n\nreturn shadow.cljs.devtools.client.shared.continue_BANG_(state);\n}),(function (ex){\nreturn shadow.cljs.devtools.client.shared.abort_BANG_(state,action,ex);\n}));\n\nbreak;\ncase \x22repl/set-ns\x22:\nvar map__28658 \x3d action;\nvar map__28658__$1 \x3d cljs.core.__destructure_map(map__28658);\nvar ns \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28658__$1,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760));\nvar internal \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28658__$1,new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097));\nreturn shadow.cljs.devtools.client.shared.continue_BANG_((function (){var G__28659 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(state,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),ns);\nif(cljs.core.not(internal)){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__28659,new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113),cljs.core.conj,null);\n} else {\nreturn G__28659;\n}\n})());\n\nbreak;\ncase \x22repl/require\x22:\nvar map__28660 \x3d action;\nvar map__28660__$1 \x3d cljs.core.__destructure_map(map__28660);\nvar internal \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28660__$1,new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097));\nreturn shadow.cljs.devtools.client.shared.do_repl_require(runtime,action,(function (sources){\nreturn shadow.cljs.devtools.client.shared.continue_BANG_((function (){var G__28661 \x3d cljs.core.update.cljs$core$IFn$_invoke$arity$4(state,new cljs.core.Keyword(null,\x22loaded-sources\x22,\x22loaded-sources\x22,-300252436),cljs.core.into,sources);\nif(cljs.core.not(internal)){\nreturn cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__28661,new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113),cljs.core.conj,null);\n} else {\nreturn G__28661;\n}\n})());\n}),(function (ex){\nreturn shadow.cljs.devtools.client.shared.abort_BANG_(state,action,ex);\n}));\n\nbreak;\ncase \x22repl/invoke\x22:\nvar repl \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),new cljs.core.Keyword(null,\x22repl\x22,\x22repl\x22,-35398667)], null));\ntry{var temp__5808__auto___28983 \x3d cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),new cljs.core.Keyword(null,\x22obj-refs\x22,\x22obj-refs\x22,-2086642078)], null));\nif((temp__5808__auto___28983 \x3d\x3d null)){\n} else {\nvar obj_refs_28985 \x3d temp__5808__auto___28983;\nvar obj_support_28986__$1 \x3d new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(runtime))));\nvar vec__28663_28987 \x3d obj_refs_28985;\nvar a_28988 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28663_28987,(0),null);\nvar b_28989 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28663_28987,(1),null);\nvar c_28990 \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28663_28987,(2),null);\nif(cljs.core.truth_(a_28988)){\n(cljs.core._STAR_1 \x3d new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(shadow.remote.runtime.obj_support.get_ref(obj_support_28986__$1,a_28988)));\n} else {\n}\n\nif(cljs.core.truth_(b_28989)){\n(cljs.core._STAR_2 \x3d new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(shadow.remote.runtime.obj_support.get_ref(obj_support_28986__$1,b_28989)));\n} else {\n}\n\nif(cljs.core.truth_(c_28990)){\n(cljs.core._STAR_3 \x3d new cljs.core.Keyword(null,\x22obj\x22,\x22obj\x22,981763962).cljs$core$IFn$_invoke$arity$1(shadow.remote.runtime.obj_support.get_ref(obj_support_28986__$1,c_28990)));\n} else {\n}\n}\n\nvar invoke_fn \x3d (cljs.core.truth_((function (){var and__5000__auto__ \x3d repl;\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\x22internal\x22,\x22internal\x22,-854870097).cljs$core$IFn$_invoke$arity$1(action));\n} else {\nreturn and__5000__auto__;\n}\n})())?shadow.cljs.devtools.client.shared.handle_repl_invoke:shadow.cljs.devtools.client.shared.handle_invoke);\nreturn shadow.cljs.devtools.client.shared.continue_BANG_((invoke_fn.cljs$core$IFn$_invoke$arity$3 ? invoke_fn.cljs$core$IFn$_invoke$arity$3(state,runtime,action) : invoke_fn.call(null, state,runtime,action)));\n}catch (e28662){var ex \x3d e28662;\nif(cljs.core.truth_(repl)){\n(cljs.core._STAR_e \x3d ex);\n} else {\n}\n\nconsole.error(\x22REPL Invoke Exception\x22,ex,action);\n\nreturn shadow.cljs.devtools.client.shared.abort_BANG_(state,action,ex);\n}\nbreak;\ndefault:\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22unhandled repl action\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22state\x22,\x22state\x22,-1988618099),state,new cljs.core.Keyword(null,\x22action\x22,\x22action\x22,-811238024),action], null));\n\n}\n});\nshadow.cljs.devtools.client.shared.interpret_actions \x3d (function shadow$cljs$devtools$client$shared$interpret_actions(p__28666){\nvar map__28667 \x3d p__28666;\nvar map__28667__$1 \x3d cljs.core.__destructure_map(map__28667);\nvar state \x3d map__28667__$1;\nvar queue \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28667__$1,new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28667__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nif(cljs.core.empty_QMARK_(queue)){\nvar map__28668 \x3d state;\nvar map__28668__$1 \x3d cljs.core.__destructure_map(map__28668);\nvar callback \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28668__$1,new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228));\nvar G__28669 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(state,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228),new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879)], 0)),new cljs.core.Keyword(null,\x22time-finish\x22,\x22time-finish\x22,-1456032653),Date.now());\nreturn (callback.cljs$core$IFn$_invoke$arity$1 ? callback.cljs$core$IFn$_invoke$arity$1(G__28669) : callback.call(null, G__28669));\n} else {\nif(((cljs.core.seq(warnings)) \x26\x26 (shadow.cljs.devtools.client.env.ignore_warnings \x3d\x3d\x3d false))){\nvar map__28670 \x3d state;\nvar map__28670__$1 \x3d cljs.core.__destructure_map(map__28670);\nvar callback \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28670__$1,new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228));\nvar G__28671 \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(state,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228),new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879)], 0)),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651),warnings,new cljs.core.Keyword(null,\x22time-finish\x22,\x22time-finish\x22,-1456032653),Date.now()], 0));\nreturn (callback.cljs$core$IFn$_invoke$arity$1 ? callback.cljs$core$IFn$_invoke$arity$1(G__28671) : callback.call(null, G__28671));\n} else {\nvar action \x3d cljs.core.first(queue);\nvar state__$1 \x3d cljs.core.update.cljs$core$IFn$_invoke$arity$3(state,new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879),cljs.core.rest);\nreturn shadow.cljs.devtools.client.shared.interpret_action(state__$1,action);\n\n}\n}\n});\nshadow.cljs.devtools.client.shared.setup_actions \x3d (function shadow$cljs$devtools$client$shared$setup_actions(runtime,input,p__28678,callback){\nvar map__28679 \x3d p__28678;\nvar map__28679__$1 \x3d cljs.core.__destructure_map(map__28679);\nvar msg \x3d map__28679__$1;\nvar actions \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28679__$1,new cljs.core.Keyword(null,\x22actions\x22,\x22actions\x22,-812656882));\nreturn cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22queue\x22,\x22queue\x22,1455835879),new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),new cljs.core.Keyword(null,\x22loaded-sources\x22,\x22loaded-sources\x22,-300252436),new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651),new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),new cljs.core.Keyword(null,\x22callback\x22,\x22callback\x22,-705136228),new cljs.core.Keyword(null,\x22time-start\x22,\x22time-start\x22,-590811745),new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113)],[actions,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760).cljs$core$IFn$_invoke$arity$1(input),msg,cljs.core.PersistentVector.EMPTY,cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([actions], 0))),new cljs.core.Keyword(null,\x22ok\x22,\x22ok\x22,967785236),runtime,input,callback,Date.now(),cljs.core.PersistentVector.EMPTY]);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {shadow.cljs.devtools.client.shared.IRemote}\n * @implements {shadow.remote.runtime.api.IRuntime}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n * @implements {shadow.remote.runtime.api.IEvalCLJS}\n*/\nshadow.cljs.devtools.client.shared.Runtime \x3d (function (state_ref,__meta,__extmap,__hash){\nthis.state_ref \x3d state_ref;\nthis.__meta \x3d __meta;\nthis.__extmap \x3d __extmap;\nthis.__hash \x3d __hash;\nthis.cljs$lang$protocol_mask$partition0$ \x3d 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ \x3d 139264;\n});\n(shadow.cljs.devtools.client.shared.Runtime.prototype.attempt_connect_BANG_ \x3d (function (){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar map__28698 \x3d cljs.core.deref(self__.state_ref);\nvar map__28698__$1 \x3d cljs.core.__destructure_map(map__28698);\nvar state \x3d map__28698__$1;\nvar ws_connecting \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connecting\x22,\x22shadow.cljs.devtools.client.shared/ws-connecting\x22,-847036450));\nvar ws_connect_timeout \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connect-timeout\x22,\x22shadow.cljs.devtools.client.shared/ws-connect-timeout\x22,1477702043));\nvar shutdown \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22shutdown\x22,\x22shadow.cljs.devtools.client.shared/shutdown\x22,1947481008));\nvar stale \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22stale\x22,\x22shadow.cljs.devtools.client.shared/stale\x22,-1017562082));\nvar ws_state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-state\x22,\x22shadow.cljs.devtools.client.shared/ws-state\x22,1653373656));\nvar ws_stop_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-stop-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-stop-fn\x22,88454255));\nvar ws_start_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28698__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-start-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-start-fn\x22,-49893682));\nif(((cljs.core.not(shutdown)) \x26\x26 (((cljs.core.not(stale)) \x26\x26 (cljs.core.not(ws_connecting)))))){\nif(cljs.core.truth_(ws_connect_timeout)){\nclearTimeout(ws_connect_timeout);\n} else {\n}\n\nif((!((ws_state \x3d\x3d null)))){\n(ws_stop_fn.cljs$core$IFn$_invoke$arity$1 ? ws_stop_fn.cljs$core$IFn$_invoke$arity$1(ws_state) : ws_stop_fn.call(null, ws_state));\n} else {\n}\n\nvar ws_state__$1 \x3d (ws_start_fn.cljs$core$IFn$_invoke$arity$1 ? ws_start_fn.cljs$core$IFn$_invoke$arity$1(this$) : ws_start_fn.call(null, this$));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connecting\x22,\x22shadow.cljs.devtools.client.shared/ws-connecting\x22,-847036450),true,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connected\x22,\x22shadow.cljs.devtools.client.shared/ws-connected\x22,-1476385853),false,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-state\x22,\x22shadow.cljs.devtools.client.shared/ws-state\x22,1653373656),ws_state__$1], 0));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.schedule_connect_BANG_ \x3d (function (after){\nvar self__ \x3d this;\nvar this$ \x3d this;\nvar map__28702 \x3d cljs.core.deref(self__.state_ref);\nvar map__28702__$1 \x3d cljs.core.__destructure_map(map__28702);\nvar ws_connect_timeout \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28702__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connect-timeout\x22,\x22shadow.cljs.devtools.client.shared/ws-connect-timeout\x22,1477702043));\nvar stale \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28702__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22stale\x22,\x22shadow.cljs.devtools.client.shared/stale\x22,-1017562082));\nvar shutdown \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28702__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22shutdown\x22,\x22shadow.cljs.devtools.client.shared/shutdown\x22,1947481008));\nif(cljs.core.truth_(ws_connect_timeout)){\nclearTimeout(ws_connect_timeout);\n} else {\n}\n\nif(((cljs.core.not(stale)) \x26\x26 (cljs.core.not(shutdown)))){\nshadow.remote.runtime.shared.trigger_BANG_(this$,new cljs.core.Keyword(null,\x22on-reconnect\x22,\x22on-reconnect\x22,1239988702));\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connect-timeout\x22,\x22shadow.cljs.devtools.client.shared/ws-connect-timeout\x22,1477702043),setTimeout((function (){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(self__.state_ref,cljs.core.dissoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connect-timeout\x22,\x22shadow.cljs.devtools.client.shared/ws-connect-timeout\x22,1477702043));\n\nreturn this$.attempt_connect_BANG_();\n}),after));\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$ILookup$_lookup$arity$2 \x3d (function (this__5300__auto__,k__5301__auto__){\nvar self__ \x3d this;\nvar this__5300__auto____$1 \x3d this;\nreturn this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$ILookup$_lookup$arity$3 \x3d (function (this__5302__auto__,k28691,else__5303__auto__){\nvar self__ \x3d this;\nvar this__5302__auto____$1 \x3d this;\nvar G__28718 \x3d k28691;\nvar G__28718__$1 \x3d (((G__28718 instanceof cljs.core.Keyword))?G__28718.fqn:null);\nswitch (G__28718__$1) {\ncase \x22state-ref\x22:\nreturn self__.state_ref;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k28691,else__5303__auto__);\n\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 \x3d (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){\nvar self__ \x3d this;\nvar this__5320__auto____$1 \x3d this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__28720){\nvar vec__28722 \x3d p__28720;\nvar k__5324__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28722,(0),null);\nvar v__5325__auto__ \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__28722,(1),null);\nreturn (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));\n}),init__5322__auto__,this__5320__auto____$1);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 \x3d (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){\nvar self__ \x3d this;\nvar this__5315__auto____$1 \x3d this;\nvar pr_pair__5318__auto__ \x3d (function (keyval__5319__auto__){\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,\x22\x22,\x22 \x22,\x22\x22,opts__5317__auto__,keyval__5319__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,\x22#shadow.cljs.devtools.client.shared.Runtime{\x22,\x22, \x22,\x22}\x22,opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952),self__.state_ref],null))], null),self__.__extmap));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IIterable$_iterator$arity$1 \x3d (function (G__28690){\nvar self__ \x3d this;\nvar G__28690__$1 \x3d this;\nreturn (new cljs.core.RecordIter((0),G__28690__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IMeta$_meta$arity$1 \x3d (function (this__5298__auto__){\nvar self__ \x3d this;\nvar this__5298__auto____$1 \x3d this;\nreturn self__.__meta;\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$ICloneable$_clone$arity$1 \x3d (function (this__5295__auto__){\nvar self__ \x3d this;\nvar this__5295__auto____$1 \x3d this;\nreturn (new shadow.cljs.devtools.client.shared.Runtime(self__.state_ref,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$ICounted$_count$arity$1 \x3d (function (this__5304__auto__){\nvar self__ \x3d this;\nvar this__5304__auto____$1 \x3d this;\nreturn (1 + cljs.core.count(self__.__extmap));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IHash$_hash$arity$1 \x3d (function (this__5296__auto__){\nvar self__ \x3d this;\nvar this__5296__auto____$1 \x3d this;\nvar h__5111__auto__ \x3d self__.__hash;\nif((!((h__5111__auto__ \x3d\x3d null)))){\nreturn h__5111__auto__;\n} else {\nvar h__5111__auto____$1 \x3d (function (coll__5297__auto__){\nreturn (229736719 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));\n})(this__5296__auto____$1);\n(self__.__hash \x3d h__5111__auto____$1);\n\nreturn h__5111__auto____$1;\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IEquiv$_equiv$arity$2 \x3d (function (this28693,other28694){\nvar self__ \x3d this;\nvar this28693__$1 \x3d this;\nreturn (((!((other28694 \x3d\x3d null)))) \x26\x26 ((((this28693__$1.constructor \x3d\x3d\x3d other28694.constructor)) \x26\x26 (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28693__$1.state_ref,other28694.state_ref)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this28693__$1.__extmap,other28694.__extmap)))))));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalCLJS$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalCLJS$_cljs_eval$arity$3 \x3d (function (this$,input,callback){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(this$__$1,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22cljs-compile\x22,\x22cljs-compile\x22,-1735075279),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input,new cljs.core.Keyword(null,\x22include-init\x22,\x22include-init\x22,1061115199),cljs.core.not(new cljs.core.Keyword(null,\x22init-complete\x22,\x22init-complete\x22,-157163484).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(self__.state_ref)))], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22cljs-compile-result\x22,\x22cljs-compile-result\x22,-1137644713),(function (msg){\nreturn shadow.cljs.devtools.client.shared.interpret_actions(shadow.cljs.devtools.client.shared.setup_actions(this$__$1,input,msg,callback));\n}),new cljs.core.Keyword(null,\x22cljs-compile-error\x22,\x22cljs-compile-error\x22,-371665768),(function (p__28736){\nvar map__28737 \x3d p__28736;\nvar map__28737__$1 \x3d cljs.core.__destructure_map(map__28737);\nvar ex_oid \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28737__$1,new cljs.core.Keyword(null,\x22ex-oid\x22,\x22ex-oid\x22,-650256737));\nvar ex_client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28737__$1,new cljs.core.Keyword(null,\x22ex-client-id\x22,\x22ex-client-id\x22,-446123984));\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28737__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nvar G__28738 \x3d new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22compile-error\x22,\x22compile-error\x22,-1313154526),new cljs.core.Keyword(null,\x22ex-oid\x22,\x22ex-oid\x22,-650256737),ex_oid,new cljs.core.Keyword(null,\x22ex-client-id\x22,\x22ex-client-id\x22,-446123984),ex_client_id,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010),report], null);\nreturn (callback.cljs$core$IFn$_invoke$arity$1 ? callback.cljs$core$IFn$_invoke$arity$1(G__28738) : callback.call(null, G__28738));\n}),new cljs.core.Keyword(null,\x22client-not-found\x22,\x22client-not-found\x22,-1754042614),(function (msg){\nvar G__28739 \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211),new cljs.core.Keyword(null,\x22worker-not-found\x22,\x22worker-not-found\x22,-1848657608)], null);\nreturn (callback.cljs$core$IFn$_invoke$arity$1 ? callback.cljs$core$IFn$_invoke$arity$1(G__28739) : callback.call(null, G__28739));\n})], null));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IRemote$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IRemote$remote_open$arity$2 \x3d (function (this$,e){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(self__.state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-errors\x22,\x22shadow.cljs.devtools.client.shared/ws-errors\x22,105464879),(0),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connecting\x22,\x22shadow.cljs.devtools.client.shared/ws-connecting\x22,-847036450),false,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connected\x22,\x22shadow.cljs.devtools.client.shared/ws-connected\x22,-1476385853),true,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-last-msg\x22,\x22shadow.cljs.devtools.client.shared/ws-last-msg\x22,-1438906782),shadow.remote.runtime.shared.now()], 0));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IRemote$remote_msg$arity$2 \x3d (function (this$,text){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar msg \x3d shadow.cljs.devtools.client.shared.transit_read(cljs.core.deref(self__.state_ref),text);\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-last-msg\x22,\x22shadow.cljs.devtools.client.shared/ws-last-msg\x22,-1438906782),shadow.remote.runtime.shared.now());\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22access-denied\x22,\x22access-denied\x22,959449406),new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955).cljs$core$IFn$_invoke$arity$1(msg))){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22stale\x22,\x22shadow.cljs.devtools.client.shared/stale\x22,-1017562082),true);\n} else {\n}\n\nreturn shadow.remote.runtime.shared.process(this$__$1,msg);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IRemote$remote_close$arity$3 \x3d (function (this$,e,info){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state_ref,cljs.core.dissoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connected\x22,\x22shadow.cljs.devtools.client.shared/ws-connected\x22,-1476385853),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connecting\x22,\x22shadow.cljs.devtools.client.shared/ws-connecting\x22,-847036450));\n\nif(((3) \x3e\x3d new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-errors\x22,\x22shadow.cljs.devtools.client.shared/ws-errors\x22,105464879).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(self__.state_ref)))){\nreturn this$__$1.schedule_connect_BANG_((5000));\n} else {\nreturn console.warn(\x22shadow-cljs: giving up trying to connect to \x22,info);\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IRemote$remote_error$arity$2 \x3d (function (this$,e){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state_ref,cljs.core.update,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-errors\x22,\x22shadow.cljs.devtools.client.shared/ws-errors\x22,105464879),cljs.core.inc);\n\nshadow.remote.runtime.shared.trigger_BANG_(this$__$1,new cljs.core.Keyword(null,\x22on-disconnect\x22,\x22on-disconnect\x22,-809021814));\n\nreturn console.error(\x22shadow-cljs - remote-error\x22,e);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IRuntime$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IRuntime$relay_msg$arity$2 \x3d (function (this$,msg){\nvar self__ \x3d this;\nvar this$__$1 \x3d this;\nvar map__28740 \x3d cljs.core.deref(self__.state_ref);\nvar map__28740__$1 \x3d cljs.core.__destructure_map(map__28740);\nvar state \x3d map__28740__$1;\nvar ws_state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28740__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-state\x22,\x22shadow.cljs.devtools.client.shared/ws-state\x22,1653373656));\nvar ws_connected \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28740__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connected\x22,\x22shadow.cljs.devtools.client.shared/ws-connected\x22,-1476385853));\nvar ws_send_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28740__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-send-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-send-fn\x22,-1986889866));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-last-msg\x22,\x22shadow.cljs.devtools.client.shared/ws-last-msg\x22,-1438906782),shadow.remote.runtime.shared.now());\n\nif(cljs.core.not(ws_connected)){\nreturn console.warn(\x22shadow-cljs - dropped ws message, not connected\x22,msg,state);\n} else {\nvar s \x3d (function (){try{return shadow.cljs.devtools.client.shared.transit_str(state,msg);\n}catch (e28742){var e \x3d e28742;\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22failed to encode relay msg\x22,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444),msg], null));\n}})();\nreturn (ws_send_fn.cljs$core$IFn$_invoke$arity$2 ? ws_send_fn.cljs$core$IFn$_invoke$arity$2(ws_state,s) : ws_send_fn.call(null, ws_state,s));\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IRuntime$add_extension$arity$3 \x3d (function (runtime,key,spec){\nvar self__ \x3d this;\nvar runtime__$1 \x3d this;\nreturn shadow.remote.runtime.shared.add_extension(runtime__$1,key,spec);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IRuntime$del_extension$arity$2 \x3d (function (runtime,key){\nvar self__ \x3d this;\nvar runtime__$1 \x3d this;\nreturn shadow.remote.runtime.shared.del_extension(runtime__$1,key);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IMap$_dissoc$arity$2 \x3d (function (this__5310__auto__,k__5311__auto__){\nvar self__ \x3d this;\nvar this__5310__auto____$1 \x3d this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952),null], null), null),k__5311__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__);\n} else {\nreturn (new shadow.cljs.devtools.client.shared.Runtime(self__.state_ref,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null));\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 \x3d (function (this__5307__auto__,k28691){\nvar self__ \x3d this;\nvar this__5307__auto____$1 \x3d this;\nvar G__28746 \x3d k28691;\nvar G__28746__$1 \x3d (((G__28746 instanceof cljs.core.Keyword))?G__28746.fqn:null);\nswitch (G__28746__$1) {\ncase \x22state-ref\x22:\nreturn true;\n\nbreak;\ndefault:\nreturn cljs.core.contains_QMARK_(self__.__extmap,k28691);\n\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IAssociative$_assoc$arity$3 \x3d (function (this__5308__auto__,k__5309__auto__,G__28690){\nvar self__ \x3d this;\nvar this__5308__auto____$1 \x3d this;\nvar pred__28747 \x3d cljs.core.keyword_identical_QMARK_;\nvar expr__28748 \x3d k__5309__auto__;\nif(cljs.core.truth_((pred__28747.cljs$core$IFn$_invoke$arity$2 ? pred__28747.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952),expr__28748) : pred__28747.call(null, new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952),expr__28748)))){\nreturn (new shadow.cljs.devtools.client.shared.Runtime(G__28690,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new shadow.cljs.devtools.client.shared.Runtime(self__.state_ref,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__28690),null));\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$ISeqable$_seq$arity$1 \x3d (function (this__5313__auto__){\nvar self__ \x3d this;\nvar this__5313__auto____$1 \x3d this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952),self__.state_ref,null))], null),self__.__extmap));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$IWithMeta$_with_meta$arity$2 \x3d (function (this__5299__auto__,G__28690){\nvar self__ \x3d this;\nvar this__5299__auto____$1 \x3d this;\nreturn (new shadow.cljs.devtools.client.shared.Runtime(self__.state_ref,G__28690,self__.__extmap,self__.__hash));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.cljs$core$ICollection$_conj$arity$2 \x3d (function (this__5305__auto__,entry__5306__auto__){\nvar self__ \x3d this;\nvar this__5305__auto____$1 \x3d this;\nif(cljs.core.vector_QMARK_(entry__5306__auto__)){\nreturn this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__auto__);\n}\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.getBasis \x3d (function (){\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\x22state-ref\x22,\x22state-ref\x22,-526560817,null)], null);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.cljs$lang$type \x3d true);\n\n(shadow.cljs.devtools.client.shared.Runtime.cljs$lang$ctorPrSeq \x3d (function (this__5346__auto__){\nreturn (new cljs.core.List(null,\x22shadow.cljs.devtools.client.shared/Runtime\x22,null,(1),null));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.cljs$lang$ctorPrWriter \x3d (function (this__5346__auto__,writer__5347__auto__){\nreturn cljs.core._write(writer__5347__auto__,\x22shadow.cljs.devtools.client.shared/Runtime\x22);\n}));\n\n/**\n * Positional factory function for shadow.cljs.devtools.client.shared/Runtime.\n */\nshadow.cljs.devtools.client.shared.__GT_Runtime \x3d (function shadow$cljs$devtools$client$shared$__GT_Runtime(state_ref){\nreturn (new shadow.cljs.devtools.client.shared.Runtime(state_ref,null,null,null));\n});\n\n/**\n * Factory function for shadow.cljs.devtools.client.shared/Runtime, taking a map of keywords to field values.\n */\nshadow.cljs.devtools.client.shared.map__GT_Runtime \x3d (function shadow$cljs$devtools$client$shared$map__GT_Runtime(G__28696){\nvar extmap__5342__auto__ \x3d (function (){var G__28752 \x3d cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(G__28696,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nif(cljs.core.record_QMARK_(G__28696)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__28752);\n} else {\nreturn G__28752;\n}\n})();\nreturn (new shadow.cljs.devtools.client.shared.Runtime(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(G__28696),null,cljs.core.not_empty(extmap__5342__auto__),null));\n});\n\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.shared !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.shared.print_subs !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.shared.print_subs \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashSet.EMPTY);\n}\nshadow.cljs.devtools.client.shared.stop_runtime_BANG_ \x3d (function shadow$cljs$devtools$client$shared$stop_runtime_BANG_(p__28753){\nvar map__28754 \x3d p__28753;\nvar map__28754__$1 \x3d cljs.core.__destructure_map(map__28754);\nvar runtime \x3d map__28754__$1;\nvar state_ref \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28754__$1,new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952));\nvar map__28756 \x3d cljs.core.deref(state_ref);\nvar map__28756__$1 \x3d cljs.core.__destructure_map(map__28756);\nvar ws_state \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28756__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-state\x22,\x22shadow.cljs.devtools.client.shared/ws-state\x22,1653373656));\nvar ws_stop_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28756__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-stop-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-stop-fn\x22,88454255));\nvar interval \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28756__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22interval\x22,\x22shadow.cljs.devtools.client.shared/interval\x22,-2112273585));\nvar plugins \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28756__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855));\nclearInterval(interval);\n\nif((!((ws_state \x3d\x3d null)))){\n(ws_stop_fn.cljs$core$IFn$_invoke$arity$1 ? ws_stop_fn.cljs$core$IFn$_invoke$arity$1(ws_state) : ws_stop_fn.call(null, ws_state));\n} else {\n}\n\ncljs.core.reduce_kv((function (_,plugin_id,started){\nvar map__28757 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.cljs.devtools.client.shared.plugins_ref),plugin_id);\nvar map__28757__$1 \x3d cljs.core.__destructure_map(map__28757);\nvar stop_fn \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28757__$1,new cljs.core.Keyword(null,\x22stop-fn\x22,\x22stop-fn\x22,-348472246));\nreturn (stop_fn.cljs$core$IFn$_invoke$arity$1 ? stop_fn.cljs$core$IFn$_invoke$arity$1(started) : stop_fn.call(null, started));\n}),null,plugins);\n\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22shutdown\x22,\x22shadow.cljs.devtools.client.shared/shutdown\x22,1947481008),true);\n});\nshadow.cljs.devtools.client.shared.init_runtime_BANG_ \x3d (function shadow$cljs$devtools$client$shared$init_runtime_BANG_(client_info,ws_start_fn,ws_send_fn,ws_stop_fn){\nvar temp__5808__auto___29064 \x3d cljs.core.deref(shadow.cljs.devtools.client.shared.runtime_ref);\nif((temp__5808__auto___29064 \x3d\x3d null)){\n} else {\nvar runtime_29065 \x3d temp__5808__auto___29064;\nshadow.cljs.devtools.client.shared.stop_runtime_BANG_(runtime_29065);\n\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.shared.runtime_ref,null);\n}\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229),cljs.core.PersistentHashSet.EMPTY,(function (p1__28760_SHARP_){\nreturn shadow.remote.runtime.obj_support.start(new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996).cljs$core$IFn$_invoke$arity$1(p1__28760_SHARP_));\n}),shadow.remote.runtime.obj_support.stop);\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(null,\x22tap-support\x22,\x22tap-support\x22,80346439),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229),null], null), null),(function (p__28770){\nvar map__28771 \x3d p__28770;\nvar map__28771__$1 \x3d cljs.core.__destructure_map(map__28771);\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28771__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28771__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nreturn shadow.remote.runtime.tap_support.start(runtime,obj_support);\n}),shadow.remote.runtime.tap_support.stop);\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(null,\x22eval-support\x22,\x22eval-support\x22,-1581799533),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229),null], null), null),(function (p__28772){\nvar map__28773 \x3d p__28772;\nvar map__28773__$1 \x3d cljs.core.__destructure_map(map__28773);\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28773__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar obj_support \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28773__$1,new cljs.core.Keyword(null,\x22obj-support\x22,\x22obj-support\x22,1522559229));\nreturn shadow.remote.runtime.eval_support.start(runtime,obj_support);\n}),shadow.remote.runtime.eval_support.stop);\n\nvar state_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(shadow.remote.runtime.shared.init_state(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(client_info,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22lang\x22,\x22lang\x22,-1819677104),new cljs.core.Keyword(null,\x22cljs\x22,\x22cljs\x22,1492417629),new cljs.core.Keyword(null,\x22build-id\x22,\x22build-id\x22,1642831089),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.env.build_id),new cljs.core.Keyword(null,\x22worker-id\x22,\x22worker-id\x22,644510040),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22proc-id\x22,\x22proc-id\x22,-1856109278),shadow.cljs.devtools.client.env.proc_id], 0))),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22shutdown\x22,\x22shadow.cljs.devtools.client.shared/shutdown\x22,1947481008),false,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22stale\x22,\x22shadow.cljs.devtools.client.shared/stale\x22,-1017562082),false,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22plugins\x22,\x22shadow.cljs.devtools.client.shared/plugins\x22,1565262855),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-errors\x22,\x22shadow.cljs.devtools.client.shared/ws-errors\x22,105464879),(0),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22transit-writers\x22,\x22shadow.cljs.devtools.client.shared/transit-writers\x22,-776127897),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22transit-readers\x22,\x22shadow.cljs.devtools.client.shared/transit-readers\x22,-1866893537),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22default\x22,\x22default\x22,-1987822328),cljs.core.tagged_literal], null),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-start-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-start-fn\x22,-49893682),ws_start_fn,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-send-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-send-fn\x22,-1986889866),ws_send_fn,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-stop-fn\x22,\x22shadow.cljs.devtools.client.shared/ws-stop-fn\x22,88454255),ws_stop_fn], 0)));\nvar runtime \x3d (function (){var G__28775 \x3d shadow.cljs.devtools.client.shared.__GT_Runtime(state_ref);\nshadow.remote.runtime.shared.add_defaults(G__28775);\n\nreturn G__28775;\n})();\nvar idle_fn \x3d (function (){\nvar map__28776 \x3d cljs.core.deref(state_ref);\nvar map__28776__$1 \x3d cljs.core.__destructure_map(map__28776);\nvar state \x3d map__28776__$1;\nvar shutdown \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28776__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22shutdown\x22,\x22shadow.cljs.devtools.client.shared/shutdown\x22,1947481008));\nvar ws_connected \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28776__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connected\x22,\x22shadow.cljs.devtools.client.shared/ws-connected\x22,-1476385853));\nvar ws_last_msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28776__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-last-msg\x22,\x22shadow.cljs.devtools.client.shared/ws-last-msg\x22,-1438906782));\nvar ws_connect_timeout \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28776__$1,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connect-timeout\x22,\x22shadow.cljs.devtools.client.shared/ws-connect-timeout\x22,1477702043));\nif(cljs.core.truth_((function (){var and__5000__auto__ \x3d cljs.core.not(ws_connect_timeout);\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d cljs.core.not(shutdown);\nif(and__5000__auto____$1){\nvar and__5000__auto____$2 \x3d ws_connected;\nif(cljs.core.truth_(and__5000__auto____$2)){\nreturn (shadow.remote.runtime.shared.now() \x3e (ws_last_msg + (20000)));\n} else {\nreturn and__5000__auto____$2;\n}\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n})())){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(state_ref,cljs.core.dissoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22ws-connected\x22,\x22shadow.cljs.devtools.client.shared/ws-connected\x22,-1476385853));\n\nruntime.schedule_connect_BANG_((2000));\n} else {\n}\n\nreturn shadow.remote.runtime.shared.run_on_idle(state_ref);\n});\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(state_ref,cljs.core.assoc,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22interval\x22,\x22shadow.cljs.devtools.client.shared/interval\x22,-2112273585),setInterval(idle_fn,(1000)));\n\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.shared.runtime_ref,runtime);\n\n(goog.global.cljs_eval \x3d (function (input,opts){\nvar input__$1 \x3d ((cljs.core.map_QMARK_(input))?input:((((typeof input \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.not(opts))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),input,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),new cljs.core.Symbol(null,\x22cljs.user\x22,\x22cljs.user\x22,877795071,null)], null):((((typeof input \x3d\x3d\x3d \x27string\x27) \x26\x26 (cljs.core.object_QMARK_(opts))))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22code\x22,\x22code\x22,1586293142),input,new cljs.core.Keyword(null,\x22ns\x22,\x22ns\x22,441598760),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.shared.goog$module$goog$object.get(opts,\x22ns\x22))], null):(function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\x22invalid arguments, call cljs_eval(string, opts-obj) or cljs_eval(map)\x22,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22input\x22,\x22input\x22,556931961),input,new cljs.core.Keyword(null,\x22opts\x22,\x22opts\x22,155075701),opts], null))})()\n)));\nreturn (new Promise((function (resolve,reject){\nreturn shadow.remote.runtime.api.cljs_eval(runtime,input__$1,(function (p__28786){\nvar map__28787 \x3d p__28786;\nvar map__28787__$1 \x3d cljs.core.__destructure_map(map__28787);\nvar info \x3d map__28787__$1;\nvar result \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28787__$1,new cljs.core.Keyword(null,\x22result\x22,\x22result\x22,1415092211));\nvar results \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28787__$1,new cljs.core.Keyword(null,\x22results\x22,\x22results\x22,-1134170113));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22ok\x22,\x22ok\x22,967785236),result)){\nvar G__28790 \x3d cljs.core.last(results);\nreturn (resolve.cljs$core$IFn$_invoke$arity$1 ? resolve.cljs$core$IFn$_invoke$arity$1(G__28790) : resolve.call(null, G__28790));\n} else {\nreturn (reject.cljs$core$IFn$_invoke$arity$1 ? reject.cljs$core$IFn$_invoke$arity$1(info) : reject.call(null, info));\n}\n}));\n})));\n}));\n\nruntime.shadow$remote$runtime$api$IRuntime$add_extension$arity$3(null, new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22print-support\x22,\x22shadow.cljs.devtools.client.shared/print-support\x22,-1090548637),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22runtime-print-sub\x22,\x22runtime-print-sub\x22,1832904759),(function (p__28799){\nvar map__28800 \x3d p__28799;\nvar map__28800__$1 \x3d cljs.core.__destructure_map(map__28800);\nvar msg \x3d map__28800__$1;\nvar from \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28800__$1,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.shared.print_subs,cljs.core.conj,from);\n\nreturn shadow.remote.runtime.shared.relay_msg(runtime,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22request-notify\x22,\x22request-notify\x22,351029173),new cljs.core.Keyword(null,\x22notify-op\x22,\x22notify-op\x22,1568109361),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22runtime-print-disconnect\x22,\x22shadow.cljs.devtools.client.shared/runtime-print-disconnect\x22,2030167412),new cljs.core.Keyword(null,\x22query\x22,\x22query\x22,-1288509510),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22eq\x22,\x22eq\x22,-618539067),new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140),from], null)], null));\n}),new cljs.core.Keyword(null,\x22runtime-print-unsub\x22,\x22runtime-print-unsub\x22,2055442536),(function (p__28804){\nvar map__28805 \x3d p__28804;\nvar map__28805__$1 \x3d cljs.core.__destructure_map(map__28805);\nvar msg \x3d map__28805__$1;\nvar from \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28805__$1,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.shared.print_subs,cljs.core.disj,from);\n}),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22runtime-print-disconnect\x22,\x22shadow.cljs.devtools.client.shared/runtime-print-disconnect\x22,2030167412),(function (p__28806){\nvar map__28807 \x3d p__28806;\nvar map__28807__$1 \x3d cljs.core.__destructure_map(map__28807);\nvar event_op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28807__$1,new cljs.core.Keyword(null,\x22event-op\x22,\x22event-op\x22,200358057));\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28807__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-disconnect\x22,\x22client-disconnect\x22,640227957),event_op)){\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.shared.print_subs,cljs.core.disj,client_id);\n} else {\nreturn null;\n}\n})], null),new cljs.core.Keyword(null,\x22on-client-not-found\x22,\x22on-client-not-found\x22,-642452849),(function (p__28818){\nvar map__28819 \x3d p__28818;\nvar map__28819__$1 \x3d cljs.core.__destructure_map(map__28819);\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28819__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nreturn cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.shared.print_subs,cljs.core.disj,client_id);\n})], null));\n\nshadow.cljs.devtools.client.env.reset_print_fns_BANG_();\n\nshadow.cljs.devtools.client.env.set_print_fns_BANG_((function (stream,text){\nvar subs \x3d cljs.core.deref(shadow.cljs.devtools.client.shared.print_subs);\nif(cljs.core.seq(subs)){\nreturn shadow.remote.runtime.shared.relay_msg(runtime,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22runtime-print\x22,\x22runtime-print\x22,-1950604603),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),subs,new cljs.core.Keyword(null,\x22stream\x22,\x22stream\x22,1534941648),stream,new cljs.core.Keyword(null,\x22text\x22,\x22text\x22,-1790561697),text], null));\n} else {\nreturn null;\n}\n}));\n\nruntime.shadow$remote$runtime$api$IRuntime$add_extension$arity$3(null, new cljs.core.Keyword(\x22shadow.cljs.devtools.client.shared\x22,\x22shared\x22,\x22shadow.cljs.devtools.client.shared/shared\x22,85374117),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125),(function (){\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(runtime,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22request-clients\x22,\x22request-clients\x22,13229886),new cljs.core.Keyword(null,\x22notify\x22,\x22notify\x22,-1256867814),true,new cljs.core.Keyword(null,\x22notify-op\x22,\x22notify-op\x22,1568109361),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.env\x22,\x22worker-notify\x22,\x22shadow.cljs.devtools.client.env/worker-notify\x22,-1456820670),new cljs.core.Keyword(null,\x22query\x22,\x22query\x22,-1288509510),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22eq\x22,\x22eq\x22,-618539067),new cljs.core.Keyword(\x22shadow.cljs\x22,\x22worker-for\x22,\x22shadow.cljs/worker-for\x22,-574470432),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.env.build_id)], null)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22clients\x22,\x22clients\x22,1436018090),(function (p__28825){\nvar map__28826 \x3d p__28825;\nvar map__28826__$1 \x3d cljs.core.__destructure_map(map__28826);\nvar msg \x3d map__28826__$1;\nvar clients \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28826__$1,new cljs.core.Keyword(null,\x22clients\x22,\x22clients\x22,1436018090));\nif(cljs.core.not(cljs.core.seq(clients))){\nreturn console.error([\x22shadow-cljs watch for build :\x22,shadow.cljs.devtools.client.env.build_id,\x22 not running!\x22].join(\x27\x27));\n} else {\nvar worker \x3d cljs.core.first(clients);\nvar map__28831 \x3d worker;\nvar map__28831__$1 \x3d cljs.core.__destructure_map(map__28831);\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__28831__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(client_id,shadow.cljs.devtools.client.env.worker_client_id)){\nconsole.warn(\x22shadow-cljs worker id outdated! This can mean that the JS loaded is outdated! Ensure that the shadow-cljs output is not cached. If other tools process this output make sure they update correctly. The code may continue to run fine, but if unexplained things happen make sure to fix this first.\x22);\n\nreturn (shadow.cljs.devtools.client.env.worker_client_id \x3d client_id);\n} else {\nreturn null;\n}\n}\n})], null));\n})], null));\n\nshadow.cljs.devtools.client.shared.start_all_plugins_BANG_(runtime);\n\nreturn runtime.attempt_connect_BANG_();\n});\n");
SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.hud.js", true, "goog.provide(\x27shadow.cljs.devtools.client.hud\x27);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_progress \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_progress\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_warnings \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_warnings\x22,true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.hud.show_errors \x3d goog.define(\x22shadow.cljs.devtools.client.hud.show_errors\x22,true);\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.hud !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.hud.dom_available_QMARK_ !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.hud.dom_available_QMARK_ \x3d (!((goog.global.document \x3d\x3d null)));\n}\nshadow.cljs.devtools.client.hud.open_file \x3d (function shadow$cljs$devtools$client$hud$open_file(file,line,column){\nconsole.log(\x22opening file\x22,file,line,column);\n\nreturn fetch([shadow.cljs.devtools.client.env.get_url_base(),\x22/api/open-file\x22].join(\x27\x27),({\x22method\x22: \x22POST\x22, \x22cache\x22: \x22no-cache\x22, \x22mode\x22: \x22cors\x22, \x22body\x22: shadow.cljs.devtools.client.shared.transit_str(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878),file,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235),line,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095),column], null))})).then((function (p1__28953_SHARP_){\nreturn p1__28953_SHARP_.text();\n})).then((function (result_text){\nvar data \x3d shadow.cljs.devtools.client.shared.transit_read(cljs.core.PersistentArrayMap.EMPTY,result_text);\nreturn console.log(\x22open file result\x22,data);\n}));\n});\nshadow.cljs.devtools.client.hud.dom_insert \x3d (function shadow$cljs$devtools$client$hud$dom_insert(var_args){\nvar G__28976 \x3d arguments.length;\nswitch (G__28976) {\ncase 1:\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1 \x3d (function (node){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2(document.body,node);\n}));\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$2 \x3d (function (where,node){\nvar el \x3d shadow.dom.dom_node(node);\nvar id \x3d el.id;\nif(cljs.core.seq(id)){\n} else {\nthrow (new Error(\x22Assert failed: (seq id)\x22));\n}\n\nvar temp__5808__auto___29083 \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(id);\nif((temp__5808__auto___29083 \x3d\x3d null)){\n} else {\nvar x_29084 \x3d temp__5808__auto___29083;\nshadow.dom.remove(x_29084);\n}\n\nreturn shadow.dom.append.cljs$core$IFn$_invoke$arity$2(where,el);\n}));\n\n(shadow.cljs.devtools.client.hud.dom_insert.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.hud.hud_id \x3d \x22shadow-hud-container\x22;\nshadow.cljs.devtools.client.hud.load_id \x3d \x22shadow-hud-loading-container\x22;\nshadow.cljs.devtools.client.hud.logo_svg \x3d (new cljs.core.Delay((function (){\nvar s_path \x3d \x22M247.183941,141.416413 C247.183941,74.7839971 148.383423,78.9723529 148.383423,141.416413 C148.383423,203.860473 265.090698,171.864644 265.090698,248.900057 C265.090698,325.93547 135,325.851749 135,251.708304\x22;\nreturn shadow.dom.svg.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),\x22shadow-cljs-logo\x22,new cljs.core.Keyword(null,\x22version\x22,\x22version\x22,425292698),\x221.1\x22,new cljs.core.Keyword(null,\x22viewBox\x22,\x22viewBox\x22,-469489477),\x220 0 400 400\x22,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22display\x22,\x22display\x22,242065432),\x22block\x22], null),new cljs.core.Keyword(null,\x22height\x22,\x22height\x22,1025178622),\x2260px\x22,new cljs.core.Keyword(null,\x22width\x22,\x22width\x22,-384071477),\x2260px\x22], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22title\x22,\x22title\x22,636505583),\x22shadow-cljs\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22defs\x22,\x22defs\x22,1398449717),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22mask#shadow-cljs-logo-mask\x22,\x22mask#shadow-cljs-logo-mask\x22,1690487509),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#fff\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle\x22,\x22circle\x22,1903212362),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22200\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22200\x22], null)], null)], null)], null),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g\x22,\x22g\x22,1738089905),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22fill-rule\x22,\x22fill-rule\x22,-1824841598),\x22evenodd\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22none\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x220\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22none\x22,new cljs.core.Keyword(null,\x22mask\x22,\x22mask\x22,-585748447),\x22url(#shadow-cljs-logo-mask)\x22], null),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g.circles\x22,\x22g.circles\x22,374463200),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.blue\x22,\x22circle.blue\x22,1902916291),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22200\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22200\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#4F80DF\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.light-blue\x22,\x22circle.light-blue\x22,438137342),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x2271.5\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22200\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22370\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#89B4FF\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.dark-green\x22,\x22circle.dark-green\x22,608465767),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22180\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22360\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x2260\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#40B400\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22circle.light-green\x22,\x22circle.light-green\x22,-1663041285),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22r\x22,\x22r\x22,-471384190),\x22129\x22,new cljs.core.Keyword(null,\x22cy\x22,\x22cy\x22,755331060),\x22320\x22,new cljs.core.Keyword(null,\x22cx\x22,\x22cx\x22,1272694324),\x22280\x22,new cljs.core.Keyword(null,\x22fill\x22,\x22fill\x22,883462889),\x22#76E013\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22animateTransform\x22,\x22animateTransform\x22,759329815),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22attributeType\x22,\x22attributeType\x22,1055561918),\x22xml\x22,new cljs.core.Keyword(null,\x22attributeName\x22,\x22attributeName\x22,-400177890),\x22transform\x22,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),\x22rotate\x22,new cljs.core.Keyword(null,\x22from\x22,\x22from\x22,1815293044),\x220 200 200\x22,new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),\x22360 200 200\x22,new cljs.core.Keyword(null,\x22dur\x22,\x22dur\x22,1464522452),\x223s\x22,new cljs.core.Keyword(null,\x22repeatCount\x22,\x22repeatCount\x22,1447663848),\x22indefinite\x22], null)], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22g\x22,\x22g\x22,1738089905),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22transform\x22,\x22transform\x22,1381301764),\x22translate(10,10)\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22stroke-linecap\x22,\x22stroke-linecap\x22,-1201103248),\x22square\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x2216\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22#aaa\x22,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),s_path], null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22path\x22,\x22path\x22,-188191168),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22stroke-linecap\x22,\x22stroke-linecap\x22,-1201103248),\x22square\x22,new cljs.core.Keyword(null,\x22stroke-width\x22,\x22stroke-width\x22,716836435),\x2216\x22,new cljs.core.Keyword(null,\x22stroke\x22,\x22stroke\x22,1741823555),\x22#FFFFFF\x22,new cljs.core.Keyword(null,\x22d\x22,\x22d\x22,1972142424),s_path], null)], null)], null)], 0));\n}),null));\nshadow.cljs.devtools.client.hud.load_start \x3d (function shadow$cljs$devtools$client$hud$load_start(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_progress){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.load_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),\x22fixed\x22,new cljs.core.Keyword(null,\x22pointer-events\x22,\x22pointer-events\x22,-1053858853),\x22none\x22,new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937),\x220px\x22,new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),\x2220px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#eee\x22,new cljs.core.Keyword(null,\x22border-top-right-radius\x22,\x22border-top-right-radius\x22,1678770792),\x2240px\x22,new cljs.core.Keyword(null,\x22border-bottom-right-radius\x22,\x22border-bottom-right-radius\x22,414899772),\x2240px\x22,new cljs.core.Keyword(null,\x22box-shadow\x22,\x22box-shadow\x22,1600206755),\x222px 2px 10px #aaa\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px\x22], null)], null),cljs.core.deref(shadow.cljs.devtools.client.hud.logo_svg)], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_end_success \x3d (function shadow$cljs$devtools$client$hud$load_end_success(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_progress){\nvar temp__5808__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.load_id);\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar container_el \x3d temp__5808__auto__;\nvar el \x3d container_el.firstChild;\nshadow.animate.start((500),cljs.core.PersistentArrayMap.createAsIfByAssoc([el,shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#eee\x22,\x22#40B400\x22,\x22ease-out\x22)]));\n\nvar c__23318__auto__ \x3d cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1));\ncljs.core.async.impl.dispatch.run((function (){\nvar f__23319__auto__ \x3d (function (){var switch__21868__auto__ \x3d (function (state_29025){\nvar state_val_29026 \x3d (state_29025[(1)]);\nif((state_val_29026 \x3d\x3d\x3d (1))){\nvar inst_29012 \x3d cljs.core.async.timeout((250));\nvar state_29025__$1 \x3d state_29025;\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_29025__$1,(2),inst_29012);\n} else {\nif((state_val_29026 \x3d\x3d\x3d (2))){\nvar inst_29014 \x3d (state_29025[(2)]);\nvar inst_29016 \x3d [el];\nvar inst_29017 \x3d shadow.animate.transition.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,\x22opacity\x22,\x22opacity\x22,397153780),\x221\x22,\x220\x22,\x22ease-in\x22);\nvar inst_29018 \x3d [inst_29017];\nvar inst_29019 \x3d cljs.core.PersistentHashMap.fromArrays(inst_29016,inst_29018);\nvar inst_29020 \x3d shadow.animate.start((250),inst_29019);\nvar state_29025__$1 \x3d (function (){var statearr_29027 \x3d state_29025;\n(statearr_29027[(7)] \x3d inst_29014);\n\nreturn statearr_29027;\n})();\nreturn cljs.core.async.impl.ioc_helpers.take_BANG_(state_29025__$1,(3),inst_29020);\n} else {\nif((state_val_29026 \x3d\x3d\x3d (3))){\nvar inst_29022 \x3d (state_29025[(2)]);\nvar inst_29023 \x3d shadow.dom.remove(container_el);\nvar state_29025__$1 \x3d (function (){var statearr_29029 \x3d state_29025;\n(statearr_29029[(8)] \x3d inst_29022);\n\nreturn statearr_29029;\n})();\nreturn cljs.core.async.impl.ioc_helpers.return_chan(state_29025__$1,inst_29023);\n} else {\nreturn null;\n}\n}\n}\n});\nreturn (function() {\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto__ \x3d null;\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto____0 \x3d (function (){\nvar statearr_29030 \x3d [null,null,null,null,null,null,null,null,null];\n(statearr_29030[(0)] \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto__);\n\n(statearr_29030[(1)] \x3d (1));\n\nreturn statearr_29030;\n});\nvar shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto____1 \x3d (function (state_29025){\nwhile(true){\nvar ret_value__21870__auto__ \x3d (function (){try{while(true){\nvar result__21871__auto__ \x3d switch__21868__auto__(state_29025);\nif(cljs.core.keyword_identical_QMARK_(result__21871__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\ncontinue;\n} else {\nreturn result__21871__auto__;\n}\nbreak;\n}\n}catch (e29031){var ex__21872__auto__ \x3d e29031;\nvar statearr_29032_29085 \x3d state_29025;\n(statearr_29032_29085[(2)] \x3d ex__21872__auto__);\n\n\nif(cljs.core.seq((state_29025[(4)]))){\nvar statearr_29033_29086 \x3d state_29025;\n(statearr_29033_29086[(1)] \x3d cljs.core.first((state_29025[(4)])));\n\n} else {\nthrow ex__21872__auto__;\n}\n\nreturn new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268);\n}})();\nif(cljs.core.keyword_identical_QMARK_(ret_value__21870__auto__,new cljs.core.Keyword(null,\x22recur\x22,\x22recur\x22,-437573268))){\nvar G__29087 \x3d state_29025;\nstate_29025 \x3d G__29087;\ncontinue;\n} else {\nreturn ret_value__21870__auto__;\n}\nbreak;\n}\n});\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto__ \x3d function(state_29025){\nswitch(arguments.length){\ncase 0:\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto____0.call(this);\ncase 1:\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto____1.call(this,state_29025);\n}\nthrow(new Error(\x27Invalid arity: \x27 + arguments.length));\n};\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$0 \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto____0;\nshadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto__.cljs$core$IFn$_invoke$arity$1 \x3d shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto____1;\nreturn shadow$cljs$devtools$client$hud$load_end_success_$_state_machine__21869__auto__;\n})()\n})();\nvar state__23320__auto__ \x3d (function (){var statearr_29035 \x3d f__23319__auto__();\n(statearr_29035[(6)] \x3d c__23318__auto__);\n\nreturn statearr_29035;\n})();\nreturn cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped(state__23320__auto__);\n}));\n\nreturn c__23318__auto__;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_end \x3d (function shadow$cljs$devtools$client$hud$load_end(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5808__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.load_id);\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar el \x3d temp__5808__auto__;\nreturn shadow.dom.remove(el);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.hud_hide \x3d (function shadow$cljs$devtools$client$hud$hud_hide(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5808__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.hud_id);\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar d \x3d temp__5808__auto__;\nreturn shadow.dom.remove(d);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.source_line_styles \x3d new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x220\x22,new cljs.core.Keyword(null,\x22margin\x22,\x22margin\x22,-995903681),\x220\x22], null);\nshadow.cljs.devtools.client.hud.source_highlight_styles \x3d cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(shadow.cljs.devtools.client.hud.source_line_styles,new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22);\nshadow.cljs.devtools.client.hud.source_line_html \x3d (function shadow$cljs$devtools$client$hud$source_line_html(start_idx,lines,styles){\nvar iter__5480__auto__ \x3d (function shadow$cljs$devtools$client$hud$source_line_html_$_iter__29049(s__29050){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__29050__$1 \x3d s__29050;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__29050__$1);\nif(temp__5804__auto__){\nvar s__29050__$2 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__29050__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__29050__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__29052 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__29051 \x3d (0);\nwhile(true){\nif((i__29051 \x3c size__5479__auto__)){\nvar vec__29053 \x3d cljs.core._nth(c__5478__auto__,i__29051);\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29053,(0),null);\nvar text \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29053,(1),null);\ncljs.core.chunk_append(b__29052,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),styles], null),goog.string.format(\x22%4d | %s\x22,(((1) + idx) + start_idx),text)], null));\n\nvar G__29088 \x3d (i__29051 + (1));\ni__29051 \x3d G__29088;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__29052),shadow$cljs$devtools$client$hud$source_line_html_$_iter__29049(cljs.core.chunk_rest(s__29050__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__29052),null);\n}\n} else {\nvar vec__29056 \x3d cljs.core.first(s__29050__$2);\nvar idx \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29056,(0),null);\nvar text \x3d cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__29056,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),styles], null),goog.string.format(\x22%4d | %s\x22,(((1) + idx) + start_idx),text)], null),shadow$cljs$devtools$client$hud$source_line_html_$_iter__29049(cljs.core.rest(s__29050__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,lines));\n});\nshadow.cljs.devtools.client.hud.sep_length \x3d (80);\nshadow.cljs.devtools.client.hud.sep_line \x3d (function shadow$cljs$devtools$client$hud$sep_line(var_args){\nvar G__29061 \x3d arguments.length;\nswitch (G__29061) {\ncase 0:\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0 \x3d (function (){\nreturn shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2(\x22\x22,(0));\n}));\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2 \x3d (function (label,offset){\nvar sep_len \x3d Math.max(shadow.cljs.devtools.client.hud.sep_length,offset);\nvar len \x3d cljs.core.count(label);\nvar sep \x3d (function (c){\nreturn clojure.string.join.cljs$core$IFn$_invoke$arity$2(\x22\x22,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c,\x22-\x22));\n});\nreturn [sep(offset),cljs.core.str.cljs$core$IFn$_invoke$arity$1(label),sep((sep_len - (offset + len)))].join(\x27\x27);\n}));\n\n(shadow.cljs.devtools.client.hud.sep_line.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.hud.file_link \x3d (function shadow$cljs$devtools$client$hud$file_link(p__29062){\nvar map__29063 \x3d p__29062;\nvar map__29063__$1 \x3d cljs.core.__destructure_map(map__29063);\nvar warning \x3d map__29063__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29063__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29063__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29063__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29063__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nif(cljs.core.not(file)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),resource_name], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22text-decoration\x22,\x22text-decoration\x22,1836813207),\x22underline\x22,new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),\x22blue\x22,new cljs.core.Keyword(null,\x22cursor\x22,\x22cursor\x22,1011937484),\x22pointer\x22], null),new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22click\x22,\x22click\x22,1912301393),(function (e){\nshadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e);\n\nreturn shadow.cljs.devtools.client.hud.open_file(file,line,column);\n})], null)], null),resource_name], null);\n}\n});\nshadow.cljs.devtools.client.hud.html_for_warning \x3d (function shadow$cljs$devtools$client$hud$html_for_warning(p__29066){\nvar map__29067 \x3d p__29066;\nvar map__29067__$1 \x3d cljs.core.__destructure_map(map__29067);\nvar warning \x3d map__29067__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29067__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar msg \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29067__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar file \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29067__$1,new cljs.core.Keyword(null,\x22file\x22,\x22file\x22,-1269645878));\nvar line \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29067__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29067__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar source_excerpt \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29067__$1,new cljs.core.Keyword(null,\x22source-excerpt\x22,\x22source-excerpt\x22,5665576));\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22margin-bottom\x22,\x22margin-bottom\x22,388334941),\x2210px\x22], null)], null),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22line-height\x22,\x22line-height\x22,1870784992),\x2216px\x22,new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),\x22#fadb64\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px\x22,new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),\x221.2em\x22,new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22span\x22,\x22span\x22,1394872991),\x22WARNING in \x22], null),shadow.cljs.devtools.client.hud.file_link(warning)], null),(cljs.core.truth_(source_excerpt)?(function (){var map__29068 \x3d source_excerpt;\nvar map__29068__$1 \x3d cljs.core.__destructure_map(map__29068);\nvar start_idx \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29068__$1,new cljs.core.Keyword(null,\x22start-idx\x22,\x22start-idx\x22,-1600773745));\nvar before \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29068__$1,new cljs.core.Keyword(null,\x22before\x22,\x22before\x22,-1633692388));\nvar line__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29068__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar after \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29068__$1,new cljs.core.Keyword(null,\x22after\x22,\x22after\x22,594996914));\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 10px\x22,new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),\x22#fff\x22,new cljs.core.Keyword(null,\x22border-top\x22,\x22border-top\x22,-158897573),\x222px solid #ccc\x22], null)], null),shadow.cljs.devtools.client.hud.source_line_html(start_idx,before,shadow.cljs.devtools.client.hud.source_line_styles),shadow.cljs.devtools.client.hud.source_line_html((start_idx + cljs.core.count(before)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [line__$1], null),shadow.cljs.devtools.client.hud.source_highlight_styles),(function (){var arrow_idx \x3d ((6) + (function (){var or__5002__auto__ \x3d column;\nif(cljs.core.truth_(or__5002__auto__)){\nreturn or__5002__auto__;\n} else {\nreturn (1);\n}\n})());\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),shadow.cljs.devtools.client.hud.source_highlight_styles], null),shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$2(\x22^\x22,arrow_idx)], null);\n})(),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),\x22bold\x22,new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),\x221.2em\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 0\x22], null)], null),msg], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),shadow.cljs.devtools.client.hud.source_highlight_styles], null),shadow.cljs.devtools.client.hud.sep_line.cljs$core$IFn$_invoke$arity$0()], null),shadow.cljs.devtools.client.hud.source_line_html(((start_idx + cljs.core.count(before)) + (1)),after,shadow.cljs.devtools.client.hud.source_line_styles)], null);\n})():null)], null);\n});\nshadow.cljs.devtools.client.hud.hud_warnings \x3d (function shadow$cljs$devtools$client$hud$hud_warnings(p__29070){\nvar map__29071 \x3d p__29070;\nvar map__29071__$1 \x3d cljs.core.__destructure_map(map__29071);\nvar msg \x3d map__29071__$1;\nvar type \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29071__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348));\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29071__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar map__29072 \x3d info;\nvar map__29072__$1 \x3d cljs.core.__destructure_map(map__29072);\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29072__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar sources_with_warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__29069_SHARP_){\nreturn cljs.core.seq(new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651).cljs$core$IFn$_invoke$arity$1(p1__29069_SHARP_));\n}),cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827),sources)));\nif(cljs.core.seq(sources_with_warnings)){\nshadow.cljs.devtools.client.hud.load_end();\n\nif(shadow.cljs.devtools.client.hud.show_warnings){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.hud_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),new cljs.core.Keyword(null,\x22display\x22,\x22display\x22,242065432),new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874),new cljs.core.Keyword(null,\x22flex-direction\x22,\x22flex-direction\x22,364609438),new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937)],[\x22#000\x22,\x220px\x22,\x2212px\x22,\x2210000\x22,\x220px\x22,\x22flex\x22,\x22fixed\x22,\x22monospace\x22,\x22column\x22,\x220px\x22])], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,\x22align-self\x22,\x22align-self\x22,1475936794),\x22flex-end\x22,new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#fff\x22,new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22border-bottom\x22,\x22border-bottom\x22,2110948415),\x220px\x22,new cljs.core.Keyword(null,\x22cursor\x22,\x22cursor\x22,1011937484),\x22pointer\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x226px\x22,new cljs.core.Keyword(null,\x22margin-bottom\x22,\x22margin-bottom\x22,388334941),\x22-2px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null),new cljs.core.Keyword(null,\x22on\x22,\x22on\x22,173873944),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22click\x22,\x22click\x22,1912301393),shadow.cljs.devtools.client.hud.hud_hide], null)], null),\x22Close\x22], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),\x22#fff\x22,new cljs.core.Keyword(null,\x22border-top\x22,\x22border-top\x22,-158897573),\x222px solid #ccc\x22,new cljs.core.Keyword(null,\x22flex\x22,\x22flex\x22,-1425124628),\x221\x22,new cljs.core.Keyword(null,\x22max-height\x22,\x22max-height\x22,-612563804),\x22300px\x22,new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),\x2210px 10px 0\x22,new cljs.core.Keyword(null,\x22overflow\x22,\x22overflow\x22,2058931880),\x22auto\x22], null)], null),(function (){var iter__5480__auto__ \x3d (function shadow$cljs$devtools$client$hud$hud_warnings_$_iter__29073(s__29074){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__29074__$1 \x3d s__29074;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__29074__$1);\nif(temp__5804__auto__){\nvar xs__6360__auto__ \x3d temp__5804__auto__;\nvar map__29079 \x3d cljs.core.first(xs__6360__auto__);\nvar map__29079__$1 \x3d cljs.core.__destructure_map(map__29079);\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29079__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nvar iterys__5476__auto__ \x3d ((function (s__29074__$1,map__29079,map__29079__$1,warnings,xs__6360__auto__,temp__5804__auto__,map__29072,map__29072__$1,sources,sources_with_warnings,map__29071,map__29071__$1,msg,type,info){\nreturn (function shadow$cljs$devtools$client$hud$hud_warnings_$_iter__29073_$_iter__29075(s__29076){\nreturn (new cljs.core.LazySeq(null,((function (s__29074__$1,map__29079,map__29079__$1,warnings,xs__6360__auto__,temp__5804__auto__,map__29072,map__29072__$1,sources,sources_with_warnings,map__29071,map__29071__$1,msg,type,info){\nreturn (function (){\nvar s__29076__$1 \x3d s__29076;\nwhile(true){\nvar temp__5804__auto____$1 \x3d cljs.core.seq(s__29076__$1);\nif(temp__5804__auto____$1){\nvar s__29076__$2 \x3d temp__5804__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__29076__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__29076__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__29078 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__29077 \x3d (0);\nwhile(true){\nif((i__29077 \x3c size__5479__auto__)){\nvar warning \x3d cljs.core._nth(c__5478__auto__,i__29077);\ncljs.core.chunk_append(b__29078,shadow.cljs.devtools.client.hud.html_for_warning(warning));\n\nvar G__29090 \x3d (i__29077 + (1));\ni__29077 \x3d G__29090;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__29078),shadow$cljs$devtools$client$hud$hud_warnings_$_iter__29073_$_iter__29075(cljs.core.chunk_rest(s__29076__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__29078),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__29076__$2);\nreturn cljs.core.cons(shadow.cljs.devtools.client.hud.html_for_warning(warning),shadow$cljs$devtools$client$hud$hud_warnings_$_iter__29073_$_iter__29075(cljs.core.rest(s__29076__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__29074__$1,map__29079,map__29079__$1,warnings,xs__6360__auto__,temp__5804__auto__,map__29072,map__29072__$1,sources,sources_with_warnings,map__29071,map__29071__$1,msg,type,info))\n,null,null));\n});})(s__29074__$1,map__29079,map__29079__$1,warnings,xs__6360__auto__,temp__5804__auto__,map__29072,map__29072__$1,sources,sources_with_warnings,map__29071,map__29071__$1,msg,type,info))\n;\nvar fs__5477__auto__ \x3d cljs.core.seq(iterys__5476__auto__(warnings));\nif(fs__5477__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5477__auto__,shadow$cljs$devtools$client$hud$hud_warnings_$_iter__29073(cljs.core.rest(s__29074__$1)));\n} else {\nvar G__29091 \x3d cljs.core.rest(s__29074__$1);\ns__29074__$1 \x3d G__29091;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(sources_with_warnings);\n})()], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.hud_error \x3d (function shadow$cljs$devtools$client$hud$hud_error(p__29080){\nvar map__29081 \x3d p__29080;\nvar map__29081__$1 \x3d cljs.core.__destructure_map(map__29081);\nvar msg \x3d map__29081__$1;\nvar report \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29081__$1,new cljs.core.Keyword(null,\x22report\x22,\x22report\x22,1394055010));\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_errors){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.hud_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22top\x22,\x22top\x22,-1856271961),new cljs.core.Keyword(null,\x22overflow\x22,\x22overflow\x22,2058931880),new cljs.core.Keyword(null,\x22background-color\x22,\x22background-color\x22,570434026),new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),new cljs.core.Keyword(null,\x22right\x22,\x22right\x22,-452581833),new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),new cljs.core.Keyword(null,\x22border\x22,\x22border\x22,1444987323),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874),new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937)],[\x22#000\x22,\x220px\x22,\x2212px\x22,\x220px\x22,\x22auto\x22,\x22#fff\x22,\x2210000\x22,\x2220px\x22,\x220px\x22,\x22fixed\x22,\x225px solid red\x22,\x22monospace\x22,\x220px\x22])], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),\x22color: red; margin-bottom: 10px; font-size: 2em;\x22], null),\x22Compilation failed!\x22], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22pre\x22,\x22pre\x22,2118456869),report], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.connection_error_id \x3d \x22shadow-connection-error\x22;\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_ \x3d (function shadow$cljs$devtools$client$hud$connection_error_clear_BANG_(){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nvar temp__5808__auto__ \x3d shadow.dom.by_id.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.hud.connection_error_id);\nif((temp__5808__auto__ \x3d\x3d null)){\nreturn null;\n} else {\nvar x \x3d temp__5808__auto__;\nreturn shadow.dom.remove(x);\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.connection_error \x3d (function shadow$cljs$devtools$client$hud$connection_error(msg){\nif(shadow.cljs.devtools.client.hud.dom_available_QMARK_){\nif(shadow.cljs.devtools.client.hud.show_errors){\nreturn shadow.cljs.devtools.client.hud.dom_insert.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\x22id\x22,\x22id\x22,-1388402092),shadow.cljs.devtools.client.hud.connection_error_id,new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\x22position\x22,\x22position\x22,-2011731912),\x22fixed\x22,new cljs.core.Keyword(null,\x22pointer-events\x22,\x22pointer-events\x22,-1053858853),\x22none\x22,new cljs.core.Keyword(null,\x22left\x22,\x22left\x22,-399115937),\x220px\x22,new cljs.core.Keyword(null,\x22bottom\x22,\x22bottom\x22,-1550509018),\x2220px\x22,new cljs.core.Keyword(null,\x22z-index\x22,\x22z-index\x22,1892827090),\x2210000\x22], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22div\x22,\x22div\x22,1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22style\x22,\x22style\x22,-496642736),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,\x22box-shadow\x22,\x22box-shadow\x22,1600206755),new cljs.core.Keyword(null,\x22color\x22,\x22color\x22,1011675173),new cljs.core.Keyword(null,\x22font-size\x22,\x22font-size\x22,-1847940346),new cljs.core.Keyword(null,\x22font-weight\x22,\x22font-weight\x22,2085804583),new cljs.core.Keyword(null,\x22border-top-right-radius\x22,\x22border-top-right-radius\x22,1678770792),new cljs.core.Keyword(null,\x22background\x22,\x22background\x22,-863952629),new cljs.core.Keyword(null,\x22padding\x22,\x22padding\x22,1660304693),new cljs.core.Keyword(null,\x22border-bottom-right-radius\x22,\x22border-bottom-right-radius\x22,414899772),new cljs.core.Keyword(null,\x22font-family\x22,\x22font-family\x22,-667419874)],[\x222px 2px 10px #aaa\x22,\x22#fff\x22,\x2214px\x22,\x22bold\x22,\x2240px\x22,\x22#c00\x22,\x2210px\x22,\x2240px\x22,\x22monospace\x22])], null),[\x22shadow-cljs - \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null)], null));\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.hud.load_failure \x3d (function shadow$cljs$devtools$client$hud$load_failure(error,task,remaining){\nshadow.cljs.devtools.client.hud.load_end();\n\nconsole.error(\x22reload-failed\x22,error);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22[reload failed] \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(error.message)].join(\x27\x27));\n});\n");
SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.websocket.js", true, "goog.provide(\x27shadow.cljs.devtools.client.websocket\x27);\nshadow.cljs.devtools.client.websocket.start \x3d (function shadow$cljs$devtools$client$websocket$start(var_args){\nvar G__28921 \x3d arguments.length;\nswitch (G__28921) {\ncase 1:\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\x22Invalid arity: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(\x27\x27)));\n\n}\n});\n\n(shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$1 \x3d (function (runtime){\nreturn shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2(WebSocket,runtime);\n}));\n\n(shadow.cljs.devtools.client.websocket.start.cljs$core$IFn$_invoke$arity$2 \x3d (function (ws_impl,runtime){\nvar ws_url \x3d shadow.cljs.devtools.client.env.get_ws_relay_url();\nvar socket \x3d (new ws_impl(ws_url));\n(socket.onmessage \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_msg(runtime,e.data);\n}));\n\n(socket.onopen \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_open(runtime,e);\n}));\n\n(socket.onclose \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_close(runtime,e,ws_url);\n}));\n\n(socket.onerror \x3d (function (e){\nreturn shadow.cljs.devtools.client.shared.remote_error(runtime,e);\n}));\n\nreturn socket;\n}));\n\n(shadow.cljs.devtools.client.websocket.start.cljs$lang$maxFixedArity \x3d 2);\n\nshadow.cljs.devtools.client.websocket.send \x3d (function shadow$cljs$devtools$client$websocket$send(socket,msg){\nreturn socket.send(msg);\n});\nshadow.cljs.devtools.client.websocket.stop \x3d (function shadow$cljs$devtools$client$websocket$stop(socket){\n(socket.onopen \x3d null);\n\n(socket.onclose \x3d null);\n\n(socket.onmessage \x3d null);\n\n(socket.onerror \x3d null);\n\nreturn socket.close();\n});\n");
SHADOW_ENV.evalLoad("shadow.cljs.devtools.client.browser.js", true, "goog.provide(\x27shadow.cljs.devtools.client.browser\x27);\nshadow.cljs.devtools.client.browser.devtools_msg \x3d (function shadow$cljs$devtools$client$browser$devtools_msg(var_args){\nvar args__5732__auto__ \x3d [];\nvar len__5726__auto___29370 \x3d arguments.length;\nvar i__5727__auto___29371 \x3d (0);\nwhile(true){\nif((i__5727__auto___29371 \x3c len__5726__auto___29370)){\nargs__5732__auto__.push((arguments[i__5727__auto___29371]));\n\nvar G__29372 \x3d (i__5727__auto___29371 + (1));\ni__5727__auto___29371 \x3d G__29372;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5733__auto__ \x3d ((((1) \x3c args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);\nreturn shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);\n});\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic \x3d (function (msg,args){\nif(shadow.cljs.devtools.client.env.log){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.log_style)){\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22%cshadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27),shadow.cljs.devtools.client.env.log_style], null),args)));\n} else {\nreturn console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [[\x22shadow-cljs: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join(\x27\x27)], null),args)));\n}\n} else {\nreturn null;\n}\n}));\n\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$maxFixedArity \x3d (1));\n\n/** @this {Function} */\n(shadow.cljs.devtools.client.browser.devtools_msg.cljs$lang$applyTo \x3d (function (seq29092){\nvar G__29093 \x3d cljs.core.first(seq29092);\nvar seq29092__$1 \x3d cljs.core.next(seq29092);\nvar self__5711__auto__ \x3d this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29093,seq29092__$1);\n}));\n\nshadow.cljs.devtools.client.browser.script_eval \x3d (function shadow$cljs$devtools$client$browser$script_eval(code){\nreturn goog.globalEval(code);\n});\nshadow.cljs.devtools.client.browser.do_js_load \x3d (function shadow$cljs$devtools$client$browser$do_js_load(sources){\nvar seq__29094 \x3d cljs.core.seq(sources);\nvar chunk__29095 \x3d null;\nvar count__29096 \x3d (0);\nvar i__29097 \x3d (0);\nwhile(true){\nif((i__29097 \x3c count__29096)){\nvar map__29102 \x3d chunk__29095.cljs$core$IIndexed$_nth$arity$2(null, i__29097);\nvar map__29102__$1 \x3d cljs.core.__destructure_map(map__29102);\nvar src \x3d map__29102__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29102__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29102__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29102__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29102__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e29103){var e_29373 \x3d e29103;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_29373);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_29373.message)].join(\x27\x27)));\n}\n\nvar G__29374 \x3d seq__29094;\nvar G__29375 \x3d chunk__29095;\nvar G__29376 \x3d count__29096;\nvar G__29377 \x3d (i__29097 + (1));\nseq__29094 \x3d G__29374;\nchunk__29095 \x3d G__29375;\ncount__29096 \x3d G__29376;\ni__29097 \x3d G__29377;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__29094);\nif(temp__5804__auto__){\nvar seq__29094__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__29094__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__29094__$1);\nvar G__29378 \x3d cljs.core.chunk_rest(seq__29094__$1);\nvar G__29379 \x3d c__5525__auto__;\nvar G__29380 \x3d cljs.core.count(c__5525__auto__);\nvar G__29381 \x3d (0);\nseq__29094 \x3d G__29378;\nchunk__29095 \x3d G__29379;\ncount__29096 \x3d G__29380;\ni__29097 \x3d G__29381;\ncontinue;\n} else {\nvar map__29104 \x3d cljs.core.first(seq__29094__$1);\nvar map__29104__$1 \x3d cljs.core.__destructure_map(map__29104);\nvar src \x3d map__29104__$1;\nvar resource_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29104__$1,new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582));\nvar output_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29104__$1,new cljs.core.Keyword(null,\x22output-name\x22,\x22output-name\x22,-1769107767));\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29104__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29104__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\n$CLJS.SHADOW_ENV.setLoaded(output_name);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load JS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([resource_name], 0));\n\nshadow.cljs.devtools.client.env.before_load_src(src);\n\ntry{shadow.cljs.devtools.client.browser.script_eval([cljs.core.str.cljs$core$IFn$_invoke$arity$1(js),\x22\\n//# sourceURL\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1($CLJS.SHADOW_ENV.scriptBase),cljs.core.str.cljs$core$IFn$_invoke$arity$1(output_name)].join(\x27\x27));\n}catch (e29105){var e_29382 \x3d e29105;\nif(shadow.cljs.devtools.client.env.log){\nconsole.error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name)].join(\x27\x27),e_29382);\n} else {\n}\n\nthrow (new Error([\x22Failed to load \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name),\x22: \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e_29382.message)].join(\x27\x27)));\n}\n\nvar G__29383 \x3d cljs.core.next(seq__29094__$1);\nvar G__29384 \x3d null;\nvar G__29385 \x3d (0);\nvar G__29386 \x3d (0);\nseq__29094 \x3d G__29383;\nchunk__29095 \x3d G__29384;\ncount__29096 \x3d G__29385;\ni__29097 \x3d G__29386;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.do_js_reload \x3d (function shadow$cljs$devtools$client$browser$do_js_reload(msg,sources,complete_fn,failure_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(msg,new cljs.core.Keyword(null,\x22log-missing-fn\x22,\x22log-missing-fn\x22,732676765),(function (fn_sym){\nreturn null;\n}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\x22log-call-async\x22,\x22log-call-async\x22,183826192),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call async \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22log-call\x22,\x22log-call\x22,412404391),(function (fn_sym){\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym)].join(\x27\x27));\n})], 0)),(function (){\nreturn shadow.cljs.devtools.client.browser.do_js_load(sources);\n}),complete_fn,failure_fn);\n});\n/**\n * when (require \x27[\x22some-str\x22 :as x]) is done at the REPL we need to manually call the shadow.js.require for it\n * since the file only adds the shadow$provide. only need to do this for shadow-js.\n */\nshadow.cljs.devtools.client.browser.do_js_requires \x3d (function shadow$cljs$devtools$client$browser$do_js_requires(js_requires){\nvar seq__29106 \x3d cljs.core.seq(js_requires);\nvar chunk__29107 \x3d null;\nvar count__29108 \x3d (0);\nvar i__29109 \x3d (0);\nwhile(true){\nif((i__29109 \x3c count__29108)){\nvar js_ns \x3d chunk__29107.cljs$core$IIndexed$_nth$arity$2(null, i__29109);\nvar require_str_29387 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_29387);\n\n\nvar G__29388 \x3d seq__29106;\nvar G__29389 \x3d chunk__29107;\nvar G__29390 \x3d count__29108;\nvar G__29391 \x3d (i__29109 + (1));\nseq__29106 \x3d G__29388;\nchunk__29107 \x3d G__29389;\ncount__29108 \x3d G__29390;\ni__29109 \x3d G__29391;\ncontinue;\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__29106);\nif(temp__5804__auto__){\nvar seq__29106__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__29106__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__29106__$1);\nvar G__29392 \x3d cljs.core.chunk_rest(seq__29106__$1);\nvar G__29393 \x3d c__5525__auto__;\nvar G__29394 \x3d cljs.core.count(c__5525__auto__);\nvar G__29395 \x3d (0);\nseq__29106 \x3d G__29392;\nchunk__29107 \x3d G__29393;\ncount__29108 \x3d G__29394;\ni__29109 \x3d G__29395;\ncontinue;\n} else {\nvar js_ns \x3d cljs.core.first(seq__29106__$1);\nvar require_str_29396 \x3d [\x22var \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22 \x3d shadow.js.require(\\\x22\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(js_ns),\x22\\\x22);\x22].join(\x27\x27);\nshadow.cljs.devtools.client.browser.script_eval(require_str_29396);\n\n\nvar G__29397 \x3d cljs.core.next(seq__29106__$1);\nvar G__29398 \x3d null;\nvar G__29399 \x3d (0);\nvar G__29400 \x3d (0);\nseq__29106 \x3d G__29397;\nchunk__29107 \x3d G__29398;\ncount__29108 \x3d G__29399;\ni__29109 \x3d G__29400;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.handle_build_complete \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete(runtime,p__29111){\nvar map__29112 \x3d p__29111;\nvar map__29112__$1 \x3d cljs.core.__destructure_map(map__29112);\nvar msg \x3d map__29112__$1;\nvar info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29112__$1,new cljs.core.Keyword(null,\x22info\x22,\x22info\x22,-317069002));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29112__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar warnings \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((function (){var iter__5480__auto__ \x3d (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__29113(s__29114){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__29114__$1 \x3d s__29114;\nwhile(true){\nvar temp__5804__auto__ \x3d cljs.core.seq(s__29114__$1);\nif(temp__5804__auto__){\nvar xs__6360__auto__ \x3d temp__5804__auto__;\nvar map__29119 \x3d cljs.core.first(xs__6360__auto__);\nvar map__29119__$1 \x3d cljs.core.__destructure_map(map__29119);\nvar src \x3d map__29119__$1;\nvar resource_name \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29119__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nvar warnings \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29119__$1,new cljs.core.Keyword(null,\x22warnings\x22,\x22warnings\x22,-735437651));\nif(cljs.core.not(new cljs.core.Keyword(null,\x22from-jar\x22,\x22from-jar\x22,1050932827).cljs$core$IFn$_invoke$arity$1(src))){\nvar iterys__5476__auto__ \x3d ((function (s__29114__$1,map__29119,map__29119__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__29112,map__29112__$1,msg,info,reload_info){\nreturn (function shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__29113_$_iter__29115(s__29116){\nreturn (new cljs.core.LazySeq(null,((function (s__29114__$1,map__29119,map__29119__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__29112,map__29112__$1,msg,info,reload_info){\nreturn (function (){\nvar s__29116__$1 \x3d s__29116;\nwhile(true){\nvar temp__5804__auto____$1 \x3d cljs.core.seq(s__29116__$1);\nif(temp__5804__auto____$1){\nvar s__29116__$2 \x3d temp__5804__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__29116__$2)){\nvar c__5478__auto__ \x3d cljs.core.chunk_first(s__29116__$2);\nvar size__5479__auto__ \x3d cljs.core.count(c__5478__auto__);\nvar b__29118 \x3d cljs.core.chunk_buffer(size__5479__auto__);\nif((function (){var i__29117 \x3d (0);\nwhile(true){\nif((i__29117 \x3c size__5479__auto__)){\nvar warning \x3d cljs.core._nth(c__5478__auto__,i__29117);\ncljs.core.chunk_append(b__29118,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name));\n\nvar G__29401 \x3d (i__29117 + (1));\ni__29117 \x3d G__29401;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__29118),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__29113_$_iter__29115(cljs.core.chunk_rest(s__29116__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__29118),null);\n}\n} else {\nvar warning \x3d cljs.core.first(s__29116__$2);\nreturn cljs.core.cons(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100),resource_name),shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__29113_$_iter__29115(cljs.core.rest(s__29116__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__29114__$1,map__29119,map__29119__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__29112,map__29112__$1,msg,info,reload_info))\n,null,null));\n});})(s__29114__$1,map__29119,map__29119__$1,src,resource_name,warnings,xs__6360__auto__,temp__5804__auto__,map__29112,map__29112__$1,msg,info,reload_info))\n;\nvar fs__5477__auto__ \x3d cljs.core.seq(iterys__5476__auto__(warnings));\nif(fs__5477__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5477__auto__,shadow$cljs$devtools$client$browser$handle_build_complete_$_iter__29113(cljs.core.rest(s__29114__$1)));\n} else {\nvar G__29402 \x3d cljs.core.rest(s__29114__$1);\ns__29114__$1 \x3d G__29402;\ncontinue;\n}\n} else {\nvar G__29403 \x3d cljs.core.rest(s__29114__$1);\ns__29114__$1 \x3d G__29403;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__5480__auto__(new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424).cljs$core$IFn$_invoke$arity$1(info));\n})()));\nif(shadow.cljs.devtools.client.env.log){\nvar seq__29120_29404 \x3d cljs.core.seq(warnings);\nvar chunk__29121_29405 \x3d null;\nvar count__29122_29406 \x3d (0);\nvar i__29123_29407 \x3d (0);\nwhile(true){\nif((i__29123_29407 \x3c count__29122_29406)){\nvar map__29126_29408 \x3d chunk__29121_29405.cljs$core$IIndexed$_nth$arity$2(null, i__29123_29407);\nvar map__29126_29409__$1 \x3d cljs.core.__destructure_map(map__29126_29408);\nvar w_29410 \x3d map__29126_29409__$1;\nvar msg_29411__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29126_29409__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_29412 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29126_29409__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_29413 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29126_29409__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_29414 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29126_29409__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_29414),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_29412),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_29413),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_29411__$1)].join(\x27\x27));\n\n\nvar G__29415 \x3d seq__29120_29404;\nvar G__29416 \x3d chunk__29121_29405;\nvar G__29417 \x3d count__29122_29406;\nvar G__29418 \x3d (i__29123_29407 + (1));\nseq__29120_29404 \x3d G__29415;\nchunk__29121_29405 \x3d G__29416;\ncount__29122_29406 \x3d G__29417;\ni__29123_29407 \x3d G__29418;\ncontinue;\n} else {\nvar temp__5804__auto___29419 \x3d cljs.core.seq(seq__29120_29404);\nif(temp__5804__auto___29419){\nvar seq__29120_29420__$1 \x3d temp__5804__auto___29419;\nif(cljs.core.chunked_seq_QMARK_(seq__29120_29420__$1)){\nvar c__5525__auto___29421 \x3d cljs.core.chunk_first(seq__29120_29420__$1);\nvar G__29422 \x3d cljs.core.chunk_rest(seq__29120_29420__$1);\nvar G__29423 \x3d c__5525__auto___29421;\nvar G__29424 \x3d cljs.core.count(c__5525__auto___29421);\nvar G__29425 \x3d (0);\nseq__29120_29404 \x3d G__29422;\nchunk__29121_29405 \x3d G__29423;\ncount__29122_29406 \x3d G__29424;\ni__29123_29407 \x3d G__29425;\ncontinue;\n} else {\nvar map__29127_29426 \x3d cljs.core.first(seq__29120_29420__$1);\nvar map__29127_29427__$1 \x3d cljs.core.__destructure_map(map__29127_29426);\nvar w_29428 \x3d map__29127_29427__$1;\nvar msg_29429__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29127_29427__$1,new cljs.core.Keyword(null,\x22msg\x22,\x22msg\x22,-1386103444));\nvar line_29430 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29127_29427__$1,new cljs.core.Keyword(null,\x22line\x22,\x22line\x22,212345235));\nvar column_29431 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29127_29427__$1,new cljs.core.Keyword(null,\x22column\x22,\x22column\x22,2078222095));\nvar resource_name_29432 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29127_29427__$1,new cljs.core.Keyword(null,\x22resource-name\x22,\x22resource-name\x22,2001617100));\nconsole.warn([\x22BUILD-WARNING in \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(resource_name_29432),\x22 at [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(line_29430),\x22:\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(column_29431),\x22]\\n\\t\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg_29429__$1)].join(\x27\x27));\n\n\nvar G__29433 \x3d cljs.core.next(seq__29120_29420__$1);\nvar G__29434 \x3d null;\nvar G__29435 \x3d (0);\nvar G__29436 \x3d (0);\nseq__29120_29404 \x3d G__29433;\nchunk__29121_29405 \x3d G__29434;\ncount__29122_29406 \x3d G__29435;\ni__29123_29407 \x3d G__29436;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n} else {\n}\n\nif((!(shadow.cljs.devtools.client.env.autoload))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(((cljs.core.empty_QMARK_(warnings)) || (shadow.cljs.devtools.client.env.ignore_warnings))){\nvar sources_to_get \x3d shadow.cljs.devtools.client.env.filter_reload_sources(info,reload_info);\nif(cljs.core.not(cljs.core.seq(sources_to_get))){\nreturn shadow.cljs.devtools.client.hud.load_end_success();\n} else {\nif(cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22after-load\x22,\x22after-load\x22,-1278503285)], null)))){\n} else {\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22reloading code but no :after-load hooks are configured!\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22https://shadow-cljs.github.io/docs/UsersGuide.html#_lifecycle_hooks\x22], 0));\n}\n\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime,sources_to_get,(function (p1__29110_SHARP_){\nreturn shadow.cljs.devtools.client.browser.do_js_reload(msg,p1__29110_SHARP_,shadow.cljs.devtools.client.hud.load_end_success,shadow.cljs.devtools.client.hud.load_failure);\n}));\n}\n} else {\nreturn null;\n}\n}\n});\nshadow.cljs.devtools.client.browser.page_load_uri \x3d (cljs.core.truth_(goog.global.document)?goog.Uri.parse(document.location.href):null);\nshadow.cljs.devtools.client.browser.match_paths \x3d (function shadow$cljs$devtools$client$browser$match_paths(old,new$){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\x22file\x22,shadow.cljs.devtools.client.browser.page_load_uri.getScheme())){\nvar rel_new \x3d cljs.core.subs.cljs$core$IFn$_invoke$arity$2(new$,(1));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(old,rel_new)) || (clojure.string.starts_with_QMARK_(old,[rel_new,\x22?\x22].join(\x27\x27))))){\nreturn rel_new;\n} else {\nreturn null;\n}\n} else {\nvar node_uri \x3d goog.Uri.parse(old);\nvar node_uri_resolved \x3d shadow.cljs.devtools.client.browser.page_load_uri.resolve(node_uri);\nvar node_abs \x3d node_uri_resolved.getPath();\nvar and__5000__auto__ \x3d ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.browser.page_load_uri.hasSameDomainAs(node_uri))) || (cljs.core.not(node_uri.hasDomain())));\nif(and__5000__auto__){\nvar and__5000__auto____$1 \x3d cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(node_abs,new$);\nif(and__5000__auto____$1){\nreturn new$;\n} else {\nreturn and__5000__auto____$1;\n}\n} else {\nreturn and__5000__auto__;\n}\n}\n});\nshadow.cljs.devtools.client.browser.handle_asset_update \x3d (function shadow$cljs$devtools$client$browser$handle_asset_update(p__29128){\nvar map__29129 \x3d p__29128;\nvar map__29129__$1 \x3d cljs.core.__destructure_map(map__29129);\nvar msg \x3d map__29129__$1;\nvar updates \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29129__$1,new cljs.core.Keyword(null,\x22updates\x22,\x22updates\x22,2013983452));\nvar reload_info \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29129__$1,new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086));\nvar seq__29130 \x3d cljs.core.seq(updates);\nvar chunk__29132 \x3d null;\nvar count__29133 \x3d (0);\nvar i__29134 \x3d (0);\nwhile(true){\nif((i__29134 \x3c count__29133)){\nvar path \x3d chunk__29132.cljs$core$IIndexed$_nth$arity$2(null, i__29134);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__29244_29437 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__29248_29438 \x3d null;\nvar count__29249_29439 \x3d (0);\nvar i__29250_29440 \x3d (0);\nwhile(true){\nif((i__29250_29440 \x3c count__29249_29439)){\nvar node_29441 \x3d chunk__29248_29438.cljs$core$IIndexed$_nth$arity$2(null, i__29250_29440);\nif(cljs.core.not(node_29441.shadow$old)){\nvar path_match_29442 \x3d shadow.cljs.devtools.client.browser.match_paths(node_29441.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_29442)){\nvar new_link_29443 \x3d (function (){var G__29276 \x3d node_29441.cloneNode(true);\nG__29276.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_29442),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__29276;\n})();\n(node_29441.shadow$old \x3d true);\n\n(new_link_29443.onload \x3d ((function (seq__29244_29437,chunk__29248_29438,count__29249_29439,i__29250_29440,seq__29130,chunk__29132,count__29133,i__29134,new_link_29443,path_match_29442,node_29441,path,map__29129,map__29129__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__29277_29444 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__29279_29445 \x3d null;\nvar count__29280_29446 \x3d (0);\nvar i__29281_29447 \x3d (0);\nwhile(true){\nif((i__29281_29447 \x3c count__29280_29446)){\nvar map__29285_29448 \x3d chunk__29279_29445.cljs$core$IIndexed$_nth$arity$2(null, i__29281_29447);\nvar map__29285_29449__$1 \x3d cljs.core.__destructure_map(map__29285_29448);\nvar task_29450 \x3d map__29285_29449__$1;\nvar fn_str_29451 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29285_29449__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29452 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29285_29449__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29453 \x3d goog.getObjectByName(fn_str_29451,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29452)].join(\x27\x27));\n\n(fn_obj_29453.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29453.cljs$core$IFn$_invoke$arity$2(path,new_link_29443) : fn_obj_29453.call(null, path,new_link_29443));\n\n\nvar G__29454 \x3d seq__29277_29444;\nvar G__29455 \x3d chunk__29279_29445;\nvar G__29456 \x3d count__29280_29446;\nvar G__29457 \x3d (i__29281_29447 + (1));\nseq__29277_29444 \x3d G__29454;\nchunk__29279_29445 \x3d G__29455;\ncount__29280_29446 \x3d G__29456;\ni__29281_29447 \x3d G__29457;\ncontinue;\n} else {\nvar temp__5804__auto___29458 \x3d cljs.core.seq(seq__29277_29444);\nif(temp__5804__auto___29458){\nvar seq__29277_29459__$1 \x3d temp__5804__auto___29458;\nif(cljs.core.chunked_seq_QMARK_(seq__29277_29459__$1)){\nvar c__5525__auto___29460 \x3d cljs.core.chunk_first(seq__29277_29459__$1);\nvar G__29461 \x3d cljs.core.chunk_rest(seq__29277_29459__$1);\nvar G__29462 \x3d c__5525__auto___29460;\nvar G__29463 \x3d cljs.core.count(c__5525__auto___29460);\nvar G__29464 \x3d (0);\nseq__29277_29444 \x3d G__29461;\nchunk__29279_29445 \x3d G__29462;\ncount__29280_29446 \x3d G__29463;\ni__29281_29447 \x3d G__29464;\ncontinue;\n} else {\nvar map__29286_29465 \x3d cljs.core.first(seq__29277_29459__$1);\nvar map__29286_29466__$1 \x3d cljs.core.__destructure_map(map__29286_29465);\nvar task_29467 \x3d map__29286_29466__$1;\nvar fn_str_29468 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29286_29466__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29469 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29286_29466__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29470 \x3d goog.getObjectByName(fn_str_29468,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29469)].join(\x27\x27));\n\n(fn_obj_29470.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29470.cljs$core$IFn$_invoke$arity$2(path,new_link_29443) : fn_obj_29470.call(null, path,new_link_29443));\n\n\nvar G__29471 \x3d cljs.core.next(seq__29277_29459__$1);\nvar G__29472 \x3d null;\nvar G__29473 \x3d (0);\nvar G__29474 \x3d (0);\nseq__29277_29444 \x3d G__29471;\nchunk__29279_29445 \x3d G__29472;\ncount__29280_29446 \x3d G__29473;\ni__29281_29447 \x3d G__29474;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_29441);\n});})(seq__29244_29437,chunk__29248_29438,count__29249_29439,i__29250_29440,seq__29130,chunk__29132,count__29133,i__29134,new_link_29443,path_match_29442,node_29441,path,map__29129,map__29129__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_29442], 0));\n\ngoog.dom.insertSiblingAfter(new_link_29443,node_29441);\n\n\nvar G__29475 \x3d seq__29244_29437;\nvar G__29476 \x3d chunk__29248_29438;\nvar G__29477 \x3d count__29249_29439;\nvar G__29478 \x3d (i__29250_29440 + (1));\nseq__29244_29437 \x3d G__29475;\nchunk__29248_29438 \x3d G__29476;\ncount__29249_29439 \x3d G__29477;\ni__29250_29440 \x3d G__29478;\ncontinue;\n} else {\nvar G__29479 \x3d seq__29244_29437;\nvar G__29480 \x3d chunk__29248_29438;\nvar G__29481 \x3d count__29249_29439;\nvar G__29482 \x3d (i__29250_29440 + (1));\nseq__29244_29437 \x3d G__29479;\nchunk__29248_29438 \x3d G__29480;\ncount__29249_29439 \x3d G__29481;\ni__29250_29440 \x3d G__29482;\ncontinue;\n}\n} else {\nvar G__29483 \x3d seq__29244_29437;\nvar G__29484 \x3d chunk__29248_29438;\nvar G__29485 \x3d count__29249_29439;\nvar G__29486 \x3d (i__29250_29440 + (1));\nseq__29244_29437 \x3d G__29483;\nchunk__29248_29438 \x3d G__29484;\ncount__29249_29439 \x3d G__29485;\ni__29250_29440 \x3d G__29486;\ncontinue;\n}\n} else {\nvar temp__5804__auto___29487 \x3d cljs.core.seq(seq__29244_29437);\nif(temp__5804__auto___29487){\nvar seq__29244_29488__$1 \x3d temp__5804__auto___29487;\nif(cljs.core.chunked_seq_QMARK_(seq__29244_29488__$1)){\nvar c__5525__auto___29489 \x3d cljs.core.chunk_first(seq__29244_29488__$1);\nvar G__29490 \x3d cljs.core.chunk_rest(seq__29244_29488__$1);\nvar G__29491 \x3d c__5525__auto___29489;\nvar G__29492 \x3d cljs.core.count(c__5525__auto___29489);\nvar G__29493 \x3d (0);\nseq__29244_29437 \x3d G__29490;\nchunk__29248_29438 \x3d G__29491;\ncount__29249_29439 \x3d G__29492;\ni__29250_29440 \x3d G__29493;\ncontinue;\n} else {\nvar node_29494 \x3d cljs.core.first(seq__29244_29488__$1);\nif(cljs.core.not(node_29494.shadow$old)){\nvar path_match_29495 \x3d shadow.cljs.devtools.client.browser.match_paths(node_29494.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_29495)){\nvar new_link_29496 \x3d (function (){var G__29287 \x3d node_29494.cloneNode(true);\nG__29287.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_29495),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__29287;\n})();\n(node_29494.shadow$old \x3d true);\n\n(new_link_29496.onload \x3d ((function (seq__29244_29437,chunk__29248_29438,count__29249_29439,i__29250_29440,seq__29130,chunk__29132,count__29133,i__29134,new_link_29496,path_match_29495,node_29494,seq__29244_29488__$1,temp__5804__auto___29487,path,map__29129,map__29129__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__29288_29497 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__29290_29498 \x3d null;\nvar count__29291_29499 \x3d (0);\nvar i__29292_29500 \x3d (0);\nwhile(true){\nif((i__29292_29500 \x3c count__29291_29499)){\nvar map__29296_29501 \x3d chunk__29290_29498.cljs$core$IIndexed$_nth$arity$2(null, i__29292_29500);\nvar map__29296_29502__$1 \x3d cljs.core.__destructure_map(map__29296_29501);\nvar task_29503 \x3d map__29296_29502__$1;\nvar fn_str_29504 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29296_29502__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29505 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29296_29502__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29506 \x3d goog.getObjectByName(fn_str_29504,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29505)].join(\x27\x27));\n\n(fn_obj_29506.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29506.cljs$core$IFn$_invoke$arity$2(path,new_link_29496) : fn_obj_29506.call(null, path,new_link_29496));\n\n\nvar G__29507 \x3d seq__29288_29497;\nvar G__29508 \x3d chunk__29290_29498;\nvar G__29509 \x3d count__29291_29499;\nvar G__29510 \x3d (i__29292_29500 + (1));\nseq__29288_29497 \x3d G__29507;\nchunk__29290_29498 \x3d G__29508;\ncount__29291_29499 \x3d G__29509;\ni__29292_29500 \x3d G__29510;\ncontinue;\n} else {\nvar temp__5804__auto___29511__$1 \x3d cljs.core.seq(seq__29288_29497);\nif(temp__5804__auto___29511__$1){\nvar seq__29288_29512__$1 \x3d temp__5804__auto___29511__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__29288_29512__$1)){\nvar c__5525__auto___29513 \x3d cljs.core.chunk_first(seq__29288_29512__$1);\nvar G__29514 \x3d cljs.core.chunk_rest(seq__29288_29512__$1);\nvar G__29515 \x3d c__5525__auto___29513;\nvar G__29516 \x3d cljs.core.count(c__5525__auto___29513);\nvar G__29517 \x3d (0);\nseq__29288_29497 \x3d G__29514;\nchunk__29290_29498 \x3d G__29515;\ncount__29291_29499 \x3d G__29516;\ni__29292_29500 \x3d G__29517;\ncontinue;\n} else {\nvar map__29297_29518 \x3d cljs.core.first(seq__29288_29512__$1);\nvar map__29297_29519__$1 \x3d cljs.core.__destructure_map(map__29297_29518);\nvar task_29520 \x3d map__29297_29519__$1;\nvar fn_str_29521 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29297_29519__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29522 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29297_29519__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29523 \x3d goog.getObjectByName(fn_str_29521,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29522)].join(\x27\x27));\n\n(fn_obj_29523.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29523.cljs$core$IFn$_invoke$arity$2(path,new_link_29496) : fn_obj_29523.call(null, path,new_link_29496));\n\n\nvar G__29524 \x3d cljs.core.next(seq__29288_29512__$1);\nvar G__29525 \x3d null;\nvar G__29526 \x3d (0);\nvar G__29527 \x3d (0);\nseq__29288_29497 \x3d G__29524;\nchunk__29290_29498 \x3d G__29525;\ncount__29291_29499 \x3d G__29526;\ni__29292_29500 \x3d G__29527;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_29494);\n});})(seq__29244_29437,chunk__29248_29438,count__29249_29439,i__29250_29440,seq__29130,chunk__29132,count__29133,i__29134,new_link_29496,path_match_29495,node_29494,seq__29244_29488__$1,temp__5804__auto___29487,path,map__29129,map__29129__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_29495], 0));\n\ngoog.dom.insertSiblingAfter(new_link_29496,node_29494);\n\n\nvar G__29528 \x3d cljs.core.next(seq__29244_29488__$1);\nvar G__29529 \x3d null;\nvar G__29530 \x3d (0);\nvar G__29531 \x3d (0);\nseq__29244_29437 \x3d G__29528;\nchunk__29248_29438 \x3d G__29529;\ncount__29249_29439 \x3d G__29530;\ni__29250_29440 \x3d G__29531;\ncontinue;\n} else {\nvar G__29532 \x3d cljs.core.next(seq__29244_29488__$1);\nvar G__29533 \x3d null;\nvar G__29534 \x3d (0);\nvar G__29535 \x3d (0);\nseq__29244_29437 \x3d G__29532;\nchunk__29248_29438 \x3d G__29533;\ncount__29249_29439 \x3d G__29534;\ni__29250_29440 \x3d G__29535;\ncontinue;\n}\n} else {\nvar G__29536 \x3d cljs.core.next(seq__29244_29488__$1);\nvar G__29537 \x3d null;\nvar G__29538 \x3d (0);\nvar G__29539 \x3d (0);\nseq__29244_29437 \x3d G__29536;\nchunk__29248_29438 \x3d G__29537;\ncount__29249_29439 \x3d G__29538;\ni__29250_29440 \x3d G__29539;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__29540 \x3d seq__29130;\nvar G__29541 \x3d chunk__29132;\nvar G__29542 \x3d count__29133;\nvar G__29543 \x3d (i__29134 + (1));\nseq__29130 \x3d G__29540;\nchunk__29132 \x3d G__29541;\ncount__29133 \x3d G__29542;\ni__29134 \x3d G__29543;\ncontinue;\n} else {\nvar G__29544 \x3d seq__29130;\nvar G__29545 \x3d chunk__29132;\nvar G__29546 \x3d count__29133;\nvar G__29547 \x3d (i__29134 + (1));\nseq__29130 \x3d G__29544;\nchunk__29132 \x3d G__29545;\ncount__29133 \x3d G__29546;\ni__29134 \x3d G__29547;\ncontinue;\n}\n} else {\nvar temp__5804__auto__ \x3d cljs.core.seq(seq__29130);\nif(temp__5804__auto__){\nvar seq__29130__$1 \x3d temp__5804__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__29130__$1)){\nvar c__5525__auto__ \x3d cljs.core.chunk_first(seq__29130__$1);\nvar G__29548 \x3d cljs.core.chunk_rest(seq__29130__$1);\nvar G__29549 \x3d c__5525__auto__;\nvar G__29550 \x3d cljs.core.count(c__5525__auto__);\nvar G__29551 \x3d (0);\nseq__29130 \x3d G__29548;\nchunk__29132 \x3d G__29549;\ncount__29133 \x3d G__29550;\ni__29134 \x3d G__29551;\ncontinue;\n} else {\nvar path \x3d cljs.core.first(seq__29130__$1);\nif(clojure.string.ends_with_QMARK_(path,\x22css\x22)){\nvar seq__29298_29552 \x3d cljs.core.seq(cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(document.querySelectorAll(\x22link[rel\x3d\\\x22stylesheet\\\x22]\x22)));\nvar chunk__29302_29553 \x3d null;\nvar count__29303_29554 \x3d (0);\nvar i__29304_29555 \x3d (0);\nwhile(true){\nif((i__29304_29555 \x3c count__29303_29554)){\nvar node_29556 \x3d chunk__29302_29553.cljs$core$IIndexed$_nth$arity$2(null, i__29304_29555);\nif(cljs.core.not(node_29556.shadow$old)){\nvar path_match_29557 \x3d shadow.cljs.devtools.client.browser.match_paths(node_29556.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_29557)){\nvar new_link_29558 \x3d (function (){var G__29330 \x3d node_29556.cloneNode(true);\nG__29330.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_29557),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__29330;\n})();\n(node_29556.shadow$old \x3d true);\n\n(new_link_29558.onload \x3d ((function (seq__29298_29552,chunk__29302_29553,count__29303_29554,i__29304_29555,seq__29130,chunk__29132,count__29133,i__29134,new_link_29558,path_match_29557,node_29556,path,seq__29130__$1,temp__5804__auto__,map__29129,map__29129__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__29331_29559 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__29333_29560 \x3d null;\nvar count__29334_29561 \x3d (0);\nvar i__29335_29562 \x3d (0);\nwhile(true){\nif((i__29335_29562 \x3c count__29334_29561)){\nvar map__29339_29563 \x3d chunk__29333_29560.cljs$core$IIndexed$_nth$arity$2(null, i__29335_29562);\nvar map__29339_29564__$1 \x3d cljs.core.__destructure_map(map__29339_29563);\nvar task_29565 \x3d map__29339_29564__$1;\nvar fn_str_29566 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29339_29564__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29567 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29339_29564__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29568 \x3d goog.getObjectByName(fn_str_29566,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29567)].join(\x27\x27));\n\n(fn_obj_29568.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29568.cljs$core$IFn$_invoke$arity$2(path,new_link_29558) : fn_obj_29568.call(null, path,new_link_29558));\n\n\nvar G__29569 \x3d seq__29331_29559;\nvar G__29570 \x3d chunk__29333_29560;\nvar G__29571 \x3d count__29334_29561;\nvar G__29572 \x3d (i__29335_29562 + (1));\nseq__29331_29559 \x3d G__29569;\nchunk__29333_29560 \x3d G__29570;\ncount__29334_29561 \x3d G__29571;\ni__29335_29562 \x3d G__29572;\ncontinue;\n} else {\nvar temp__5804__auto___29573__$1 \x3d cljs.core.seq(seq__29331_29559);\nif(temp__5804__auto___29573__$1){\nvar seq__29331_29574__$1 \x3d temp__5804__auto___29573__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__29331_29574__$1)){\nvar c__5525__auto___29575 \x3d cljs.core.chunk_first(seq__29331_29574__$1);\nvar G__29576 \x3d cljs.core.chunk_rest(seq__29331_29574__$1);\nvar G__29577 \x3d c__5525__auto___29575;\nvar G__29578 \x3d cljs.core.count(c__5525__auto___29575);\nvar G__29579 \x3d (0);\nseq__29331_29559 \x3d G__29576;\nchunk__29333_29560 \x3d G__29577;\ncount__29334_29561 \x3d G__29578;\ni__29335_29562 \x3d G__29579;\ncontinue;\n} else {\nvar map__29340_29580 \x3d cljs.core.first(seq__29331_29574__$1);\nvar map__29340_29581__$1 \x3d cljs.core.__destructure_map(map__29340_29580);\nvar task_29582 \x3d map__29340_29581__$1;\nvar fn_str_29583 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29340_29581__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29584 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29340_29581__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29585 \x3d goog.getObjectByName(fn_str_29583,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29584)].join(\x27\x27));\n\n(fn_obj_29585.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29585.cljs$core$IFn$_invoke$arity$2(path,new_link_29558) : fn_obj_29585.call(null, path,new_link_29558));\n\n\nvar G__29586 \x3d cljs.core.next(seq__29331_29574__$1);\nvar G__29587 \x3d null;\nvar G__29588 \x3d (0);\nvar G__29589 \x3d (0);\nseq__29331_29559 \x3d G__29586;\nchunk__29333_29560 \x3d G__29587;\ncount__29334_29561 \x3d G__29588;\ni__29335_29562 \x3d G__29589;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_29556);\n});})(seq__29298_29552,chunk__29302_29553,count__29303_29554,i__29304_29555,seq__29130,chunk__29132,count__29133,i__29134,new_link_29558,path_match_29557,node_29556,path,seq__29130__$1,temp__5804__auto__,map__29129,map__29129__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_29557], 0));\n\ngoog.dom.insertSiblingAfter(new_link_29558,node_29556);\n\n\nvar G__29590 \x3d seq__29298_29552;\nvar G__29591 \x3d chunk__29302_29553;\nvar G__29592 \x3d count__29303_29554;\nvar G__29593 \x3d (i__29304_29555 + (1));\nseq__29298_29552 \x3d G__29590;\nchunk__29302_29553 \x3d G__29591;\ncount__29303_29554 \x3d G__29592;\ni__29304_29555 \x3d G__29593;\ncontinue;\n} else {\nvar G__29594 \x3d seq__29298_29552;\nvar G__29595 \x3d chunk__29302_29553;\nvar G__29596 \x3d count__29303_29554;\nvar G__29597 \x3d (i__29304_29555 + (1));\nseq__29298_29552 \x3d G__29594;\nchunk__29302_29553 \x3d G__29595;\ncount__29303_29554 \x3d G__29596;\ni__29304_29555 \x3d G__29597;\ncontinue;\n}\n} else {\nvar G__29598 \x3d seq__29298_29552;\nvar G__29599 \x3d chunk__29302_29553;\nvar G__29600 \x3d count__29303_29554;\nvar G__29601 \x3d (i__29304_29555 + (1));\nseq__29298_29552 \x3d G__29598;\nchunk__29302_29553 \x3d G__29599;\ncount__29303_29554 \x3d G__29600;\ni__29304_29555 \x3d G__29601;\ncontinue;\n}\n} else {\nvar temp__5804__auto___29602__$1 \x3d cljs.core.seq(seq__29298_29552);\nif(temp__5804__auto___29602__$1){\nvar seq__29298_29603__$1 \x3d temp__5804__auto___29602__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__29298_29603__$1)){\nvar c__5525__auto___29604 \x3d cljs.core.chunk_first(seq__29298_29603__$1);\nvar G__29605 \x3d cljs.core.chunk_rest(seq__29298_29603__$1);\nvar G__29606 \x3d c__5525__auto___29604;\nvar G__29607 \x3d cljs.core.count(c__5525__auto___29604);\nvar G__29608 \x3d (0);\nseq__29298_29552 \x3d G__29605;\nchunk__29302_29553 \x3d G__29606;\ncount__29303_29554 \x3d G__29607;\ni__29304_29555 \x3d G__29608;\ncontinue;\n} else {\nvar node_29609 \x3d cljs.core.first(seq__29298_29603__$1);\nif(cljs.core.not(node_29609.shadow$old)){\nvar path_match_29610 \x3d shadow.cljs.devtools.client.browser.match_paths(node_29609.getAttribute(\x22href\x22),path);\nif(cljs.core.truth_(path_match_29610)){\nvar new_link_29611 \x3d (function (){var G__29341 \x3d node_29609.cloneNode(true);\nG__29341.setAttribute(\x22href\x22,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(path_match_29610),\x22?r\x3d\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.rand.cljs$core$IFn$_invoke$arity$0())].join(\x27\x27));\n\nreturn G__29341;\n})();\n(node_29609.shadow$old \x3d true);\n\n(new_link_29611.onload \x3d ((function (seq__29298_29552,chunk__29302_29553,count__29303_29554,i__29304_29555,seq__29130,chunk__29132,count__29133,i__29134,new_link_29611,path_match_29610,node_29609,seq__29298_29603__$1,temp__5804__auto___29602__$1,path,seq__29130__$1,temp__5804__auto__,map__29129,map__29129__$1,msg,updates,reload_info){\nreturn (function (e){\nvar seq__29342_29612 \x3d cljs.core.seq(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\x22reload-info\x22,\x22reload-info\x22,1648088086),new cljs.core.Keyword(null,\x22asset-load\x22,\x22asset-load\x22,-1925902322)], null)));\nvar chunk__29344_29613 \x3d null;\nvar count__29345_29614 \x3d (0);\nvar i__29346_29615 \x3d (0);\nwhile(true){\nif((i__29346_29615 \x3c count__29345_29614)){\nvar map__29350_29616 \x3d chunk__29344_29613.cljs$core$IIndexed$_nth$arity$2(null, i__29346_29615);\nvar map__29350_29617__$1 \x3d cljs.core.__destructure_map(map__29350_29616);\nvar task_29618 \x3d map__29350_29617__$1;\nvar fn_str_29619 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29350_29617__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29620 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29350_29617__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29621 \x3d goog.getObjectByName(fn_str_29619,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29620)].join(\x27\x27));\n\n(fn_obj_29621.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29621.cljs$core$IFn$_invoke$arity$2(path,new_link_29611) : fn_obj_29621.call(null, path,new_link_29611));\n\n\nvar G__29622 \x3d seq__29342_29612;\nvar G__29623 \x3d chunk__29344_29613;\nvar G__29624 \x3d count__29345_29614;\nvar G__29625 \x3d (i__29346_29615 + (1));\nseq__29342_29612 \x3d G__29622;\nchunk__29344_29613 \x3d G__29623;\ncount__29345_29614 \x3d G__29624;\ni__29346_29615 \x3d G__29625;\ncontinue;\n} else {\nvar temp__5804__auto___29626__$2 \x3d cljs.core.seq(seq__29342_29612);\nif(temp__5804__auto___29626__$2){\nvar seq__29342_29627__$1 \x3d temp__5804__auto___29626__$2;\nif(cljs.core.chunked_seq_QMARK_(seq__29342_29627__$1)){\nvar c__5525__auto___29628 \x3d cljs.core.chunk_first(seq__29342_29627__$1);\nvar G__29629 \x3d cljs.core.chunk_rest(seq__29342_29627__$1);\nvar G__29630 \x3d c__5525__auto___29628;\nvar G__29631 \x3d cljs.core.count(c__5525__auto___29628);\nvar G__29632 \x3d (0);\nseq__29342_29612 \x3d G__29629;\nchunk__29344_29613 \x3d G__29630;\ncount__29345_29614 \x3d G__29631;\ni__29346_29615 \x3d G__29632;\ncontinue;\n} else {\nvar map__29351_29633 \x3d cljs.core.first(seq__29342_29627__$1);\nvar map__29351_29634__$1 \x3d cljs.core.__destructure_map(map__29351_29633);\nvar task_29635 \x3d map__29351_29634__$1;\nvar fn_str_29636 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29351_29634__$1,new cljs.core.Keyword(null,\x22fn-str\x22,\x22fn-str\x22,-1348506402));\nvar fn_sym_29637 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29351_29634__$1,new cljs.core.Keyword(null,\x22fn-sym\x22,\x22fn-sym\x22,1423988510));\nvar fn_obj_29638 \x3d goog.getObjectByName(fn_str_29636,$CLJS);\nshadow.cljs.devtools.client.browser.devtools_msg([\x22call \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym_29637)].join(\x27\x27));\n\n(fn_obj_29638.cljs$core$IFn$_invoke$arity$2 ? fn_obj_29638.cljs$core$IFn$_invoke$arity$2(path,new_link_29611) : fn_obj_29638.call(null, path,new_link_29611));\n\n\nvar G__29639 \x3d cljs.core.next(seq__29342_29627__$1);\nvar G__29640 \x3d null;\nvar G__29641 \x3d (0);\nvar G__29642 \x3d (0);\nseq__29342_29612 \x3d G__29639;\nchunk__29344_29613 \x3d G__29640;\ncount__29345_29614 \x3d G__29641;\ni__29346_29615 \x3d G__29642;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn goog.dom.removeNode(node_29609);\n});})(seq__29298_29552,chunk__29302_29553,count__29303_29554,i__29304_29555,seq__29130,chunk__29132,count__29133,i__29134,new_link_29611,path_match_29610,node_29609,seq__29298_29603__$1,temp__5804__auto___29602__$1,path,seq__29130__$1,temp__5804__auto__,map__29129,map__29129__$1,msg,updates,reload_info))\n);\n\nshadow.cljs.devtools.client.browser.devtools_msg.cljs$core$IFn$_invoke$arity$variadic(\x22load CSS\x22,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_match_29610], 0));\n\ngoog.dom.insertSiblingAfter(new_link_29611,node_29609);\n\n\nvar G__29643 \x3d cljs.core.next(seq__29298_29603__$1);\nvar G__29644 \x3d null;\nvar G__29645 \x3d (0);\nvar G__29646 \x3d (0);\nseq__29298_29552 \x3d G__29643;\nchunk__29302_29553 \x3d G__29644;\ncount__29303_29554 \x3d G__29645;\ni__29304_29555 \x3d G__29646;\ncontinue;\n} else {\nvar G__29647 \x3d cljs.core.next(seq__29298_29603__$1);\nvar G__29648 \x3d null;\nvar G__29649 \x3d (0);\nvar G__29650 \x3d (0);\nseq__29298_29552 \x3d G__29647;\nchunk__29302_29553 \x3d G__29648;\ncount__29303_29554 \x3d G__29649;\ni__29304_29555 \x3d G__29650;\ncontinue;\n}\n} else {\nvar G__29651 \x3d cljs.core.next(seq__29298_29603__$1);\nvar G__29652 \x3d null;\nvar G__29653 \x3d (0);\nvar G__29654 \x3d (0);\nseq__29298_29552 \x3d G__29651;\nchunk__29302_29553 \x3d G__29652;\ncount__29303_29554 \x3d G__29653;\ni__29304_29555 \x3d G__29654;\ncontinue;\n}\n}\n} else {\n}\n}\nbreak;\n}\n\n\nvar G__29655 \x3d cljs.core.next(seq__29130__$1);\nvar G__29656 \x3d null;\nvar G__29657 \x3d (0);\nvar G__29658 \x3d (0);\nseq__29130 \x3d G__29655;\nchunk__29132 \x3d G__29656;\ncount__29133 \x3d G__29657;\ni__29134 \x3d G__29658;\ncontinue;\n} else {\nvar G__29659 \x3d cljs.core.next(seq__29130__$1);\nvar G__29660 \x3d null;\nvar G__29661 \x3d (0);\nvar G__29662 \x3d (0);\nseq__29130 \x3d G__29659;\nchunk__29132 \x3d G__29660;\ncount__29133 \x3d G__29661;\ni__29134 \x3d G__29662;\ncontinue;\n}\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.browser.global_eval \x3d (function shadow$cljs$devtools$client$browser$global_eval(js){\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(\x22undefined\x22,typeof(module))){\nreturn eval(js);\n} else {\nreturn (0,eval)(js);;\n}\n});\nshadow.cljs.devtools.client.browser.runtime_info \x3d (((typeof SHADOW_CONFIG !\x3d\x3d \x27undefined\x27))?shadow.json.to_clj.cljs$core$IFn$_invoke$arity$1(SHADOW_CONFIG):null);\nshadow.cljs.devtools.client.browser.client_info \x3d cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.cljs.devtools.client.browser.runtime_info,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22host\x22,\x22host\x22,-1558485167),(cljs.core.truth_(goog.global.document)?new cljs.core.Keyword(null,\x22browser\x22,\x22browser\x22,828191719):new cljs.core.Keyword(null,\x22browser-worker\x22,\x22browser-worker\x22,1638998282)),new cljs.core.Keyword(null,\x22user-agent\x22,\x22user-agent\x22,1220426212),[(cljs.core.truth_(goog.userAgent.OPERA)?\x22Opera\x22:(cljs.core.truth_(goog.userAgent.product.CHROME)?\x22Chrome\x22:(cljs.core.truth_(goog.userAgent.IE)?\x22MSIE\x22:(cljs.core.truth_(goog.userAgent.EDGE)?\x22Edge\x22:(cljs.core.truth_(goog.userAgent.GECKO)?\x22Firefox\x22:(cljs.core.truth_(goog.userAgent.SAFARI)?\x22Safari\x22:(cljs.core.truth_(goog.userAgent.WEBKIT)?\x22Webkit\x22:null))))))),\x22 \x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.VERSION),\x22 [\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.userAgent.PLATFORM),\x22]\x22].join(\x27\x27),new cljs.core.Keyword(null,\x22dom\x22,\x22dom\x22,-1236537922),(!((goog.global.document \x3d\x3d null)))], null)], 0));\nif((typeof shadow !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser !\x3d\x3d \x27undefined\x27) \x26\x26 (typeof shadow.cljs.devtools.client.browser.ws_was_welcome_ref !\x3d\x3d \x27undefined\x27)){\n} else {\nshadow.cljs.devtools.client.browser.ws_was_welcome_ref \x3d cljs.core.atom.cljs$core$IFn$_invoke$arity$1(false);\n}\nif(((shadow.cljs.devtools.client.env.enabled) \x26\x26 ((shadow.cljs.devtools.client.env.worker_client_id \x3e (0))))){\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$remote$runtime$api$IEvalJS$_js_eval$arity$2 \x3d (function (this$,code){\nvar this$__$1 \x3d this;\nreturn shadow.cljs.devtools.client.browser.global_eval(code);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$ \x3d cljs.core.PROTOCOL_SENTINEL);\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_invoke$arity$3 \x3d (function (this$,ns,p__29352){\nvar map__29353 \x3d p__29352;\nvar map__29353__$1 \x3d cljs.core.__destructure_map(map__29353);\nvar js \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29353__$1,new cljs.core.Keyword(null,\x22js\x22,\x22js\x22,1768080579));\nvar this$__$1 \x3d this;\nreturn shadow.cljs.devtools.client.browser.global_eval(js);\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_init$arity$4 \x3d (function (runtime,p__29354,done,error){\nvar map__29355 \x3d p__29354;\nvar map__29355__$1 \x3d cljs.core.__destructure_map(map__29355);\nvar repl_sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29355__$1,new cljs.core.Keyword(null,\x22repl-sources\x22,\x22repl-sources\x22,723867535));\nvar runtime__$1 \x3d this;\nreturn shadow.cljs.devtools.client.shared.load_sources(runtime__$1,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_,repl_sources)),(function (sources){\nshadow.cljs.devtools.client.browser.do_js_load(sources);\n\nreturn (done.cljs$core$IFn$_invoke$arity$0 ? done.cljs$core$IFn$_invoke$arity$0() : done.call(null, ));\n}));\n}));\n\n(shadow.cljs.devtools.client.shared.Runtime.prototype.shadow$cljs$devtools$client$shared$IHostSpecific$do_repl_require$arity$4 \x3d (function (runtime,p__29356,done,error){\nvar map__29357 \x3d p__29356;\nvar map__29357__$1 \x3d cljs.core.__destructure_map(map__29357);\nvar msg \x3d map__29357__$1;\nvar sources \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29357__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\nvar reload_namespaces \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29357__$1,new cljs.core.Keyword(null,\x22reload-namespaces\x22,\x22reload-namespaces\x22,250210134));\nvar js_requires \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29357__$1,new cljs.core.Keyword(null,\x22js-requires\x22,\x22js-requires\x22,-1311472051));\nvar runtime__$1 \x3d this;\nvar sources_to_load \x3d cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__29358){\nvar map__29359 \x3d p__29358;\nvar map__29359__$1 \x3d cljs.core.__destructure_map(map__29359);\nvar src \x3d map__29359__$1;\nvar provides \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29359__$1,new cljs.core.Keyword(null,\x22provides\x22,\x22provides\x22,-1634397992));\nvar and__5000__auto__ \x3d shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src);\nif(cljs.core.truth_(and__5000__auto__)){\nreturn cljs.core.not(cljs.core.some(reload_namespaces,provides));\n} else {\nreturn and__5000__auto__;\n}\n}),sources));\nif(cljs.core.not(cljs.core.seq(sources_to_load))){\nvar G__29360 \x3d cljs.core.PersistentVector.EMPTY;\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(G__29360) : done.call(null, G__29360));\n} else {\nreturn shadow.remote.runtime.shared.call.cljs$core$IFn$_invoke$arity$3(runtime__$1,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\x22op\x22,\x22op\x22,-1882987955),new cljs.core.Keyword(null,\x22cljs-load-sources\x22,\x22cljs-load-sources\x22,-1458295962),new cljs.core.Keyword(null,\x22to\x22,\x22to\x22,192099007),shadow.cljs.devtools.client.env.worker_client_id,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424),cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22resource-id\x22,\x22resource-id\x22,-1308422582)),sources_to_load)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22cljs-sources\x22,\x22cljs-sources\x22,31121610),(function (p__29361){\nvar map__29362 \x3d p__29361;\nvar map__29362__$1 \x3d cljs.core.__destructure_map(map__29362);\nvar msg__$1 \x3d map__29362__$1;\nvar sources__$1 \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29362__$1,new cljs.core.Keyword(null,\x22sources\x22,\x22sources\x22,-321166424));\ntry{shadow.cljs.devtools.client.browser.do_js_load(sources__$1);\n\nif(cljs.core.seq(js_requires)){\nshadow.cljs.devtools.client.browser.do_js_requires(js_requires);\n} else {\n}\n\nreturn (done.cljs$core$IFn$_invoke$arity$1 ? done.cljs$core$IFn$_invoke$arity$1(sources_to_load) : done.call(null, sources_to_load));\n}catch (e29363){var ex \x3d e29363;\nreturn (error.cljs$core$IFn$_invoke$arity$1 ? error.cljs$core$IFn$_invoke$arity$1(ex) : error.call(null, ex));\n}})], null));\n}\n}));\n\nshadow.cljs.devtools.client.shared.add_plugin_BANG_(new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),cljs.core.PersistentHashSet.EMPTY,(function (p__29364){\nvar map__29365 \x3d p__29364;\nvar map__29365__$1 \x3d cljs.core.__destructure_map(map__29365);\nvar env \x3d map__29365__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29365__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nvar svc \x3d new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996),runtime], null);\nshadow.remote.runtime.api.add_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\x22on-welcome\x22,\x22on-welcome\x22,1895317125),(function (){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,true);\n\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.env.patch_goog_BANG_();\n\nreturn shadow.cljs.devtools.client.browser.devtools_msg([\x22#\x22,cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,\x22state-ref\x22,\x22state-ref\x22,2127874952).cljs$core$IFn$_invoke$arity$1(runtime)))),\x22 ready!\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22on-disconnect\x22,\x22on-disconnect\x22,-809021814),(function (e){\nif(cljs.core.truth_(cljs.core.deref(shadow.cljs.devtools.client.browser.ws_was_welcome_ref))){\nshadow.cljs.devtools.client.hud.connection_error(\x22The Websocket connection was closed!\x22);\n\nreturn cljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n} else {\nreturn null;\n}\n}),new cljs.core.Keyword(null,\x22on-reconnect\x22,\x22on-reconnect\x22,1239988702),(function (e){\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22Reconnecting ...\x22);\n}),new cljs.core.Keyword(null,\x22ops\x22,\x22ops\x22,1237330063),new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,\x22access-denied\x22,\x22access-denied\x22,959449406),(function (msg){\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.browser.ws_was_welcome_ref,false);\n\nreturn shadow.cljs.devtools.client.hud.connection_error([\x22Stale Output! Your loaded JS was not produced by the running shadow-cljs instance.\x22,\x22 Is the watch for this build running?\x22].join(\x27\x27));\n}),new cljs.core.Keyword(null,\x22cljs-asset-update\x22,\x22cljs-asset-update\x22,1224093028),(function (msg){\nreturn shadow.cljs.devtools.client.browser.handle_asset_update(msg);\n}),new cljs.core.Keyword(null,\x22cljs-build-configure\x22,\x22cljs-build-configure\x22,-2089891268),(function (msg){\nreturn null;\n}),new cljs.core.Keyword(null,\x22cljs-build-start\x22,\x22cljs-build-start\x22,-725781241),(function (msg){\nshadow.cljs.devtools.client.hud.hud_hide();\n\nshadow.cljs.devtools.client.hud.load_start();\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-start\x22,\x22build-start\x22,-959649480)));\n}),new cljs.core.Keyword(null,\x22cljs-build-complete\x22,\x22cljs-build-complete\x22,273626153),(function (msg){\nvar msg__$1 \x3d shadow.cljs.devtools.client.env.add_warnings_to_info(msg);\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nshadow.cljs.devtools.client.hud.hud_warnings(msg__$1);\n\nshadow.cljs.devtools.client.browser.handle_build_complete(runtime,msg__$1);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg__$1,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-complete\x22,\x22build-complete\x22,-501868472)));\n}),new cljs.core.Keyword(null,\x22cljs-build-failure\x22,\x22cljs-build-failure\x22,1718154990),(function (msg){\nshadow.cljs.devtools.client.hud.load_end();\n\nshadow.cljs.devtools.client.hud.hud_error(msg);\n\nreturn shadow.cljs.devtools.client.env.run_custom_notify_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(msg,new cljs.core.Keyword(null,\x22type\x22,\x22type\x22,1174270348),new cljs.core.Keyword(null,\x22build-failure\x22,\x22build-failure\x22,-2107487466)));\n}),new cljs.core.Keyword(\x22shadow.cljs.devtools.client.env\x22,\x22worker-notify\x22,\x22shadow.cljs.devtools.client.env/worker-notify\x22,-1456820670),(function (p__29366){\nvar map__29367 \x3d p__29366;\nvar map__29367__$1 \x3d cljs.core.__destructure_map(map__29367);\nvar event_op \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29367__$1,new cljs.core.Keyword(null,\x22event-op\x22,\x22event-op\x22,200358057));\nvar client_id \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29367__$1,new cljs.core.Keyword(null,\x22client-id\x22,\x22client-id\x22,-464622140));\nif(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-disconnect\x22,\x22client-disconnect\x22,640227957),event_op)) \x26\x26 (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(client_id,shadow.cljs.devtools.client.env.worker_client_id)))){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was stopped!\x22);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\x22client-connect\x22,\x22client-connect\x22,-1113973888),event_op)){\nshadow.cljs.devtools.client.hud.connection_error_clear_BANG_();\n\nreturn shadow.cljs.devtools.client.hud.connection_error(\x22The watch for this build was restarted. Reload required!\x22);\n} else {\nreturn null;\n}\n}\n})], null)], null));\n\nreturn svc;\n}),(function (p__29368){\nvar map__29369 \x3d p__29368;\nvar map__29369__$1 \x3d cljs.core.__destructure_map(map__29369);\nvar svc \x3d map__29369__$1;\nvar runtime \x3d cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__29369__$1,new cljs.core.Keyword(null,\x22runtime\x22,\x22runtime\x22,-1331573996));\nreturn shadow.remote.runtime.api.del_extension(runtime,new cljs.core.Keyword(\x22shadow.cljs.devtools.client.browser\x22,\x22client\x22,\x22shadow.cljs.devtools.client.browser/client\x22,-1461019282));\n}));\n\nshadow.cljs.devtools.client.shared.init_runtime_BANG_(shadow.cljs.devtools.client.browser.client_info,shadow.cljs.devtools.client.websocket.start,shadow.cljs.devtools.client.websocket.send,shadow.cljs.devtools.client.websocket.stop);\n} else {\n}\n");
SHADOW_ENV.evalLoad("nothoughts.core.init.js", true, "goog.provide(\x27nothoughts.core.init\x27);\nnothoughts.core.init.init \x3d (function nothoughts$core$init$init(){\nreturn cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\x22hello\x22], 0));\n});\n");
SHADOW_ENV.evalLoad("shadow.module.main.append.js", false, "\nshadow.cljs.devtools.client.env.module_loaded(\x27main\x27);\n\ntry { nothoughts.core.init.init(); } catch (e) { console.error(\x22An error occurred when calling (nothoughts.core.init/init)\x22); console.error(e); }");