Skip to content

Instantly share code, notes, and snippets.

@thattommyhall
Created September 15, 2013 00:21
Show Gist options
  • Save thattommyhall/6566938 to your computer and use it in GitHub Desktop.
Save thattommyhall/6566938 to your computer and use it in GitHub Desktop.
Useful?
This file has been truncated, but you can view the full file.
var CLOSURE_NO_DEPS = true;
var COMPILED = false;
var goog = goog || {};
goog.global = this;
goog.DEBUG = true;
goog.LOCALE = "en";
goog.provide = function(name) {
if(!COMPILED) {
if(goog.isProvided_(name)) {
throw Error('Namespace "' + name + '" already declared.');
}
delete goog.implicitNamespaces_[name];
var namespace = name;
while(namespace = namespace.substring(0, namespace.lastIndexOf("."))) {
if(goog.getObjectByName(namespace)) {
break
}
goog.implicitNamespaces_[namespace] = true
}
}
goog.exportPath_(name)
};
goog.setTestOnly = function(opt_message) {
if(COMPILED && !goog.DEBUG) {
opt_message = opt_message || "";
throw Error("Importing test-only code into non-debug environment" + opt_message ? ": " + opt_message : ".");
}
};
if(!COMPILED) {
goog.isProvided_ = function(name) {
return!goog.implicitNamespaces_[name] && !!goog.getObjectByName(name)
};
goog.implicitNamespaces_ = {}
}
goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) {
var parts = name.split(".");
var cur = opt_objectToExportTo || goog.global;
if(!(parts[0] in cur) && cur.execScript) {
cur.execScript("var " + parts[0])
}
for(var part;parts.length && (part = parts.shift());) {
if(!parts.length && goog.isDef(opt_object)) {
cur[part] = opt_object
}else {
if(cur[part]) {
cur = cur[part]
}else {
cur = cur[part] = {}
}
}
}
};
goog.getObjectByName = function(name, opt_obj) {
var parts = name.split(".");
var cur = opt_obj || goog.global;
for(var part;part = parts.shift();) {
if(goog.isDefAndNotNull(cur[part])) {
cur = cur[part]
}else {
return null
}
}
return cur
};
goog.globalize = function(obj, opt_global) {
var global = opt_global || goog.global;
for(var x in obj) {
global[x] = obj[x]
}
};
goog.addDependency = function(relPath, provides, requires) {
if(!COMPILED) {
var provide, require;
var path = relPath.replace(/\\/g, "/");
var deps = goog.dependencies_;
for(var i = 0;provide = provides[i];i++) {
deps.nameToPath[provide] = path;
if(!(path in deps.pathToNames)) {
deps.pathToNames[path] = {}
}
deps.pathToNames[path][provide] = true
}
for(var j = 0;require = requires[j];j++) {
if(!(path in deps.requires)) {
deps.requires[path] = {}
}
deps.requires[path][require] = true
}
}
};
goog.ENABLE_DEBUG_LOADER = true;
goog.require = function(name) {
if(!COMPILED) {
if(goog.isProvided_(name)) {
return
}
if(goog.ENABLE_DEBUG_LOADER) {
var path = goog.getPathFromDeps_(name);
if(path) {
goog.included_[path] = true;
goog.writeScripts_();
return
}
}
var errorMessage = "goog.require could not find: " + name;
if(goog.global.console) {
goog.global.console["error"](errorMessage)
}
throw Error(errorMessage);
}
};
goog.basePath = "";
goog.global.CLOSURE_BASE_PATH;
goog.global.CLOSURE_NO_DEPS;
goog.global.CLOSURE_IMPORT_SCRIPT;
goog.nullFunction = function() {
};
goog.identityFunction = function(opt_returnValue, var_args) {
return opt_returnValue
};
goog.abstractMethod = function() {
throw Error("unimplemented abstract method");
};
goog.addSingletonGetter = function(ctor) {
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_ = [];
if(!COMPILED && goog.ENABLE_DEBUG_LOADER) {
goog.included_ = {};
goog.dependencies_ = {pathToNames:{}, nameToPath:{}, requires:{}, visited:{}, written:{}};
goog.inHtmlDocument_ = function() {
var doc = goog.global.document;
return typeof doc != "undefined" && "write" in doc
};
goog.findBasePath_ = function() {
if(goog.global.CLOSURE_BASE_PATH) {
goog.basePath = goog.global.CLOSURE_BASE_PATH;
return
}else {
if(!goog.inHtmlDocument_()) {
return
}
}
var doc = goog.global.document;
var scripts = doc.getElementsByTagName("script");
for(var i = scripts.length - 1;i >= 0;--i) {
var src = scripts[i].src;
var qmark = src.lastIndexOf("?");
var l = qmark == -1 ? src.length : qmark;
if(src.substr(l - 7, 7) == "base.js") {
goog.basePath = src.substr(0, l - 7);
return
}
}
};
goog.importScript_ = function(src) {
var importScript = goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_;
if(!goog.dependencies_.written[src] && importScript(src)) {
goog.dependencies_.written[src] = true
}
};
goog.writeScriptTag_ = function(src) {
if(goog.inHtmlDocument_()) {
var doc = goog.global.document;
doc.write('<script type="text/javascript" src="' + src + '"></' + "script>");
return true
}else {
return false
}
};
goog.writeScripts_ = function() {
var scripts = [];
var seenScript = {};
var deps = goog.dependencies_;
function visitNode(path) {
if(path in deps.written) {
return
}
if(path in deps.visited) {
if(!(path in seenScript)) {
seenScript[path] = true;
scripts.push(path)
}
return
}
deps.visited[path] = true;
if(path in deps.requires) {
for(var requireName in deps.requires[path]) {
if(!goog.isProvided_(requireName)) {
if(requireName in deps.nameToPath) {
visitNode(deps.nameToPath[requireName])
}else {
throw Error("Undefined nameToPath for " + requireName);
}
}
}
}
if(!(path in seenScript)) {
seenScript[path] = true;
scripts.push(path)
}
}
for(var path in goog.included_) {
if(!deps.written[path]) {
visitNode(path)
}
}
for(var i = 0;i < scripts.length;i++) {
if(scripts[i]) {
goog.importScript_(goog.basePath + scripts[i])
}else {
throw Error("Undefined script input");
}
}
};
goog.getPathFromDeps_ = function(rule) {
if(rule in goog.dependencies_.nameToPath) {
return goog.dependencies_.nameToPath[rule]
}else {
return null
}
};
goog.findBasePath_();
if(!goog.global.CLOSURE_NO_DEPS) {
goog.importScript_(goog.basePath + "deps.js")
}
}
goog.typeOf = function(value) {
var s = typeof value;
if(s == "object") {
if(value) {
if(value instanceof Array) {
return"array"
}else {
if(value instanceof Object) {
return s
}
}
var className = Object.prototype.toString.call(value);
if(className == "[object Window]") {
return"object"
}
if(className == "[object Array]" || typeof value.length == "number" && typeof value.splice != "undefined" && typeof value.propertyIsEnumerable != "undefined" && !value.propertyIsEnumerable("splice")) {
return"array"
}
if(className == "[object Function]" || typeof value.call != "undefined" && typeof value.propertyIsEnumerable != "undefined" && !value.propertyIsEnumerable("call")) {
return"function"
}
}else {
return"null"
}
}else {
if(s == "function" && typeof value.call == "undefined") {
return"object"
}
}
return s
};
goog.isDef = function(val) {
return val !== undefined
};
goog.isNull = function(val) {
return val === null
};
goog.isDefAndNotNull = function(val) {
return val != null
};
goog.isArray = function(val) {
return goog.typeOf(val) == "array"
};
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.isString = function(val) {
return typeof val == "string"
};
goog.isBoolean = function(val) {
return typeof val == "boolean"
};
goog.isNumber = function(val) {
return typeof val == "number"
};
goog.isFunction = function(val) {
return goog.typeOf(val) == "function"
};
goog.isObject = function(val) {
var type = typeof val;
return type == "object" && val != null || type == "function"
};
goog.getUid = function(obj) {
return obj[goog.UID_PROPERTY_] || (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_)
};
goog.removeUid = function(obj) {
if("removeAttribute" in obj) {
obj.removeAttribute(goog.UID_PROPERTY_)
}
try {
delete obj[goog.UID_PROPERTY_]
}catch(ex) {
}
};
goog.UID_PROPERTY_ = "closure_uid_" + Math.floor(Math.random() * 2147483648).toString(36);
goog.uidCounter_ = 0;
goog.getHashCode = goog.getUid;
goog.removeHashCode = goog.removeUid;
goog.cloneObject = function(obj) {
var type = goog.typeOf(obj);
if(type == "object" || type == "array") {
if(obj.clone) {
return obj.clone()
}
var clone = type == "array" ? [] : {};
for(var 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 = Array.prototype.slice.call(arguments);
newArgs.unshift.apply(newArgs, args);
return fn.apply(this, newArgs)
}
};
goog.mixin = function(target, source) {
for(var x in source) {
target[x] = source[x]
}
};
goog.now = Date.now || function() {
return+new Date
};
goog.globalEval = function(script) {
if(goog.global.execScript) {
goog.global.execScript(script, "JavaScript")
}else {
if(goog.global.eval) {
if(goog.evalWorksForGlobals_ == null) {
goog.global.eval("var _et_ = 1;");
if(typeof goog.global["_et_"] != "undefined") {
delete goog.global["_et_"];
goog.evalWorksForGlobals_ = true
}else {
goog.evalWorksForGlobals_ = false
}
}
if(goog.evalWorksForGlobals_) {
goog.global.eval(script)
}else {
var doc = goog.global.document;
var scriptElt = doc.createElement("script");
scriptElt.type = "text/javascript";
scriptElt.defer = false;
scriptElt.appendChild(doc.createTextNode(script));
doc.body.appendChild(scriptElt);
doc.body.removeChild(scriptElt)
}
}else {
throw Error("goog.globalEval not available");
}
}
};
goog.evalWorksForGlobals_ = null;
goog.cssNameMapping_;
goog.cssNameMappingStyle_;
goog.getCssName = function(className, opt_modifier) {
var getMapping = function(cssName) {
return goog.cssNameMapping_[cssName] || cssName
};
var renameByParts = function(cssName) {
var parts = cssName.split("-");
var mapped = [];
for(var i = 0;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
}
}
if(opt_modifier) {
return className + "-" + rename(opt_modifier)
}else {
return rename(className)
}
};
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.getMsg = function(str, opt_values) {
var values = opt_values || {};
for(var key in values) {
var value = ("" + values[key]).replace(/\$/g, "$$$$");
str = str.replace(new RegExp("\\{\\$" + key + "\\}", "gi"), value)
}
return str
};
goog.exportSymbol = function(publicPath, object, opt_objectToExportTo) {
goog.exportPath_(publicPath, object, opt_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
};
goog.base = function(me, opt_methodName, var_args) {
var caller = arguments.callee.caller;
if(caller.superClass_) {
return caller.superClass_.constructor.apply(me, Array.prototype.slice.call(arguments, 1))
}
var args = Array.prototype.slice.call(arguments, 2);
var foundCaller = false;
for(var ctor = me.constructor;ctor;ctor = ctor.superClass_ && ctor.superClass_.constructor) {
if(ctor.prototype[opt_methodName] === caller) {
foundCaller = true
}else {
if(foundCaller) {
return ctor.prototype[opt_methodName].apply(me, args)
}
}
}
if(me[opt_methodName] === caller) {
return me.constructor.prototype[opt_methodName].apply(me, args)
}else {
throw Error("goog.base called from a method of one name " + "to a method of a different name");
}
};
goog.scope = function(fn) {
fn.call(goog.global)
};
goog.provide("goog.debug.Error");
goog.debug.Error = function(opt_msg) {
if(Error.captureStackTrace) {
Error.captureStackTrace(this, goog.debug.Error)
}else {
this.stack = (new Error).stack || ""
}
if(opt_msg) {
this.message = String(opt_msg)
}
};
goog.inherits(goog.debug.Error, Error);
goog.debug.Error.prototype.name = "CustomError";
goog.provide("goog.string");
goog.provide("goog.string.Unicode");
goog.string.Unicode = {NBSP:"\u00a0"};
goog.string.startsWith = function(str, prefix) {
return str.lastIndexOf(prefix, 0) == 0
};
goog.string.endsWith = function(str, suffix) {
var l = str.length - suffix.length;
return l >= 0 && str.indexOf(suffix, l) == l
};
goog.string.caseInsensitiveStartsWith = function(str, prefix) {
return goog.string.caseInsensitiveCompare(prefix, str.substr(0, prefix.length)) == 0
};
goog.string.caseInsensitiveEndsWith = function(str, suffix) {
return goog.string.caseInsensitiveCompare(suffix, str.substr(str.length - suffix.length, suffix.length)) == 0
};
goog.string.subs = function(str, var_args) {
for(var i = 1;i < arguments.length;i++) {
var replacement = String(arguments[i]).replace(/\$/g, "$$$$");
str = str.replace(/\%s/, replacement)
}
return str
};
goog.string.collapseWhitespace = function(str) {
return str.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "")
};
goog.string.isEmpty = function(str) {
return/^[\s\xa0]*$/.test(str)
};
goog.string.isEmptySafe = function(str) {
return goog.string.isEmpty(goog.string.makeSafe(str))
};
goog.string.isBreakingWhitespace = function(str) {
return!/[^\t\n\r ]/.test(str)
};
goog.string.isAlpha = function(str) {
return!/[^a-zA-Z]/.test(str)
};
goog.string.isNumeric = function(str) {
return!/[^0-9]/.test(str)
};
goog.string.isAlphaNumeric = function(str) {
return!/[^a-zA-Z0-9]/.test(str)
};
goog.string.isSpace = function(ch) {
return ch == " "
};
goog.string.isUnicodeChar = function(ch) {
return ch.length == 1 && ch >= " " && ch <= "~" || ch >= "\u0080" && ch <= "\ufffd"
};
goog.string.stripNewlines = function(str) {
return str.replace(/(\r\n|\r|\n)+/g, " ")
};
goog.string.canonicalizeNewlines = function(str) {
return str.replace(/(\r\n|\r|\n)/g, "\n")
};
goog.string.normalizeWhitespace = function(str) {
return str.replace(/\xa0|\s/g, " ")
};
goog.string.normalizeSpaces = function(str) {
return str.replace(/\xa0|[ \t]+/g, " ")
};
goog.string.collapseBreakingSpaces = function(str) {
return str.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "")
};
goog.string.trim = function(str) {
return str.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "")
};
goog.string.trimLeft = function(str) {
return str.replace(/^[\s\xa0]+/, "")
};
goog.string.trimRight = function(str) {
return str.replace(/[\s\xa0]+$/, "")
};
goog.string.caseInsensitiveCompare = function(str1, str2) {
var test1 = String(str1).toLowerCase();
var test2 = String(str2).toLowerCase();
if(test1 < test2) {
return-1
}else {
if(test1 == test2) {
return 0
}else {
return 1
}
}
};
goog.string.numerateCompareRegExp_ = /(\.\d+)|(\d+)|(\D+)/g;
goog.string.numerateCompare = function(str1, str2) {
if(str1 == str2) {
return 0
}
if(!str1) {
return-1
}
if(!str2) {
return 1
}
var tokens1 = str1.toLowerCase().match(goog.string.numerateCompareRegExp_);
var tokens2 = str2.toLowerCase().match(goog.string.numerateCompareRegExp_);
var count = Math.min(tokens1.length, tokens2.length);
for(var i = 0;i < count;i++) {
var a = tokens1[i];
var b = tokens2[i];
if(a != b) {
var num1 = parseInt(a, 10);
if(!isNaN(num1)) {
var num2 = parseInt(b, 10);
if(!isNaN(num2) && num1 - num2) {
return num1 - num2
}
}
return a < b ? -1 : 1
}
}
if(tokens1.length != tokens2.length) {
return tokens1.length - tokens2.length
}
return str1 < str2 ? -1 : 1
};
goog.string.urlEncode = function(str) {
return encodeURIComponent(String(str))
};
goog.string.urlDecode = function(str) {
return decodeURIComponent(str.replace(/\+/g, " "))
};
goog.string.newLineToBr = function(str, opt_xml) {
return str.replace(/(\r\n|\r|\n)/g, opt_xml ? "<br />" : "<br>")
};
goog.string.htmlEscape = function(str, opt_isLikelyToContainHtmlChars) {
if(opt_isLikelyToContainHtmlChars) {
return str.replace(goog.string.amperRe_, "&amp;").replace(goog.string.ltRe_, "&lt;").replace(goog.string.gtRe_, "&gt;").replace(goog.string.quotRe_, "&quot;")
}else {
if(!goog.string.allRe_.test(str)) {
return str
}
if(str.indexOf("&") != -1) {
str = str.replace(goog.string.amperRe_, "&amp;")
}
if(str.indexOf("<") != -1) {
str = str.replace(goog.string.ltRe_, "&lt;")
}
if(str.indexOf(">") != -1) {
str = str.replace(goog.string.gtRe_, "&gt;")
}
if(str.indexOf('"') != -1) {
str = str.replace(goog.string.quotRe_, "&quot;")
}
return str
}
};
goog.string.amperRe_ = /&/g;
goog.string.ltRe_ = /</g;
goog.string.gtRe_ = />/g;
goog.string.quotRe_ = /\"/g;
goog.string.allRe_ = /[&<>\"]/;
goog.string.unescapeEntities = function(str) {
if(goog.string.contains(str, "&")) {
if("document" in goog.global) {
return goog.string.unescapeEntitiesUsingDom_(str)
}else {
return goog.string.unescapePureXmlEntities_(str)
}
}
return str
};
goog.string.unescapeEntitiesUsingDom_ = function(str) {
var seen = {"&amp;":"&", "&lt;":"<", "&gt;":">", "&quot;":'"'};
var div = document.createElement("div");
return str.replace(goog.string.HTML_ENTITY_PATTERN_, function(s, entity) {
var value = seen[s];
if(value) {
return value
}
if(entity.charAt(0) == "#") {
var n = Number("0" + entity.substr(1));
if(!isNaN(n)) {
value = String.fromCharCode(n)
}
}
if(!value) {
div.innerHTML = s + " ";
value = div.firstChild.nodeValue.slice(0, -1)
}
return seen[s] = value
})
};
goog.string.unescapePureXmlEntities_ = function(str) {
return str.replace(/&([^;]+);/g, function(s, entity) {
switch(entity) {
case "amp":
return"&";
case "lt":
return"<";
case "gt":
return">";
case "quot":
return'"';
default:
if(entity.charAt(0) == "#") {
var n = Number("0" + entity.substr(1));
if(!isNaN(n)) {
return String.fromCharCode(n)
}
}
return s
}
})
};
goog.string.HTML_ENTITY_PATTERN_ = /&([^;\s<&]+);?/g;
goog.string.whitespaceEscape = function(str, opt_xml) {
return goog.string.newLineToBr(str.replace(/ /g, " &#160;"), opt_xml)
};
goog.string.stripQuotes = function(str, quoteChars) {
var length = quoteChars.length;
for(var i = 0;i < length;i++) {
var quoteChar = length == 1 ? quoteChars : quoteChars.charAt(i);
if(str.charAt(0) == quoteChar && str.charAt(str.length - 1) == quoteChar) {
return str.substring(1, str.length - 1)
}
}
return str
};
goog.string.truncate = function(str, chars, opt_protectEscapedCharacters) {
if(opt_protectEscapedCharacters) {
str = goog.string.unescapeEntities(str)
}
if(str.length > chars) {
str = str.substring(0, chars - 3) + "..."
}
if(opt_protectEscapedCharacters) {
str = goog.string.htmlEscape(str)
}
return str
};
goog.string.truncateMiddle = function(str, chars, opt_protectEscapedCharacters, opt_trailingChars) {
if(opt_protectEscapedCharacters) {
str = goog.string.unescapeEntities(str)
}
if(opt_trailingChars && str.length > chars) {
if(opt_trailingChars > chars) {
opt_trailingChars = chars
}
var endPoint = str.length - opt_trailingChars;
var startPoint = chars - opt_trailingChars;
str = str.substring(0, startPoint) + "..." + str.substring(endPoint)
}else {
if(str.length > chars) {
var half = Math.floor(chars / 2);
var endPos = str.length - half;
half += chars % 2;
str = str.substring(0, half) + "..." + str.substring(endPos)
}
}
if(opt_protectEscapedCharacters) {
str = goog.string.htmlEscape(str)
}
return str
};
goog.string.specialEscapeChars_ = {"\x00":"\\0", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\x0B", '"':'\\"', "\\":"\\\\"};
goog.string.jsEscapeCache_ = {"'":"\\'"};
goog.string.quote = function(s) {
s = String(s);
if(s.quote) {
return s.quote()
}else {
var sb = ['"'];
for(var i = 0;i < s.length;i++) {
var ch = s.charAt(i);
var cc = ch.charCodeAt(0);
sb[i + 1] = goog.string.specialEscapeChars_[ch] || (cc > 31 && cc < 127 ? ch : goog.string.escapeChar(ch))
}
sb.push('"');
return sb.join("")
}
};
goog.string.escapeString = function(str) {
var sb = [];
for(var i = 0;i < str.length;i++) {
sb[i] = goog.string.escapeChar(str.charAt(i))
}
return sb.join("")
};
goog.string.escapeChar = function(c) {
if(c in goog.string.jsEscapeCache_) {
return goog.string.jsEscapeCache_[c]
}
if(c in goog.string.specialEscapeChars_) {
return goog.string.jsEscapeCache_[c] = goog.string.specialEscapeChars_[c]
}
var rv = c;
var cc = c.charCodeAt(0);
if(cc > 31 && cc < 127) {
rv = c
}else {
if(cc < 256) {
rv = "\\x";
if(cc < 16 || cc > 256) {
rv += "0"
}
}else {
rv = "\\u";
if(cc < 4096) {
rv += "0"
}
}
rv += cc.toString(16).toUpperCase()
}
return goog.string.jsEscapeCache_[c] = rv
};
goog.string.toMap = function(s) {
var rv = {};
for(var i = 0;i < s.length;i++) {
rv[s.charAt(i)] = true
}
return rv
};
goog.string.contains = function(s, ss) {
return s.indexOf(ss) != -1
};
goog.string.countOf = function(s, ss) {
return s && ss ? s.split(ss).length - 1 : 0
};
goog.string.removeAt = function(s, index, stringLength) {
var resultStr = s;
if(index >= 0 && index < s.length && stringLength > 0) {
resultStr = s.substr(0, index) + s.substr(index + stringLength, s.length - index - stringLength)
}
return resultStr
};
goog.string.remove = function(s, ss) {
var re = new RegExp(goog.string.regExpEscape(ss), "");
return s.replace(re, "")
};
goog.string.removeAll = function(s, ss) {
var re = new RegExp(goog.string.regExpEscape(ss), "g");
return s.replace(re, "")
};
goog.string.regExpEscape = function(s) {
return String(s).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08")
};
goog.string.repeat = function(string, length) {
return(new Array(length + 1)).join(string)
};
goog.string.padNumber = function(num, length, opt_precision) {
var s = goog.isDef(opt_precision) ? num.toFixed(opt_precision) : String(num);
var index = s.indexOf(".");
if(index == -1) {
index = s.length
}
return goog.string.repeat("0", Math.max(0, length - index)) + s
};
goog.string.makeSafe = function(obj) {
return obj == null ? "" : String(obj)
};
goog.string.buildString = function(var_args) {
return Array.prototype.join.call(arguments, "")
};
goog.string.getRandomString = function() {
var x = 2147483648;
return Math.floor(Math.random() * x).toString(36) + Math.abs(Math.floor(Math.random() * x) ^ goog.now()).toString(36)
};
goog.string.compareVersions = function(version1, version2) {
var order = 0;
var v1Subs = goog.string.trim(String(version1)).split(".");
var v2Subs = goog.string.trim(String(version2)).split(".");
var subCount = Math.max(v1Subs.length, v2Subs.length);
for(var subIdx = 0;order == 0 && subIdx < subCount;subIdx++) {
var v1Sub = v1Subs[subIdx] || "";
var v2Sub = v2Subs[subIdx] || "";
var v1CompParser = new RegExp("(\\d*)(\\D*)", "g");
var v2CompParser = new RegExp("(\\d*)(\\D*)", "g");
do {
var v1Comp = v1CompParser.exec(v1Sub) || ["", "", ""];
var v2Comp = v2CompParser.exec(v2Sub) || ["", "", ""];
if(v1Comp[0].length == 0 && v2Comp[0].length == 0) {
break
}
var v1CompNum = v1Comp[1].length == 0 ? 0 : parseInt(v1Comp[1], 10);
var v2CompNum = v2Comp[1].length == 0 ? 0 : parseInt(v2Comp[1], 10);
order = goog.string.compareElements_(v1CompNum, v2CompNum) || goog.string.compareElements_(v1Comp[2].length == 0, v2Comp[2].length == 0) || goog.string.compareElements_(v1Comp[2], v2Comp[2])
}while(order == 0)
}
return order
};
goog.string.compareElements_ = function(left, right) {
if(left < right) {
return-1
}else {
if(left > right) {
return 1
}
}
return 0
};
goog.string.HASHCODE_MAX_ = 4294967296;
goog.string.hashCode = function(str) {
var result = 0;
for(var i = 0;i < str.length;++i) {
result = 31 * result + str.charCodeAt(i);
result %= goog.string.HASHCODE_MAX_
}
return result
};
goog.string.uniqueStringCounter_ = Math.random() * 2147483648 | 0;
goog.string.createUniqueString = function() {
return"goog_" + goog.string.uniqueStringCounter_++
};
goog.string.toNumber = function(str) {
var num = Number(str);
if(num == 0 && goog.string.isEmpty(str)) {
return NaN
}
return num
};
goog.string.toCamelCase = function(str) {
return String(str).replace(/\-([a-z])/g, function(all, match) {
return match.toUpperCase()
})
};
goog.string.toSelectorCase = function(str) {
return String(str).replace(/([A-Z])/g, "-$1").toLowerCase()
};
goog.string.toTitleCase = function(str, opt_delimiters) {
var delimiters = goog.isString(opt_delimiters) ? goog.string.regExpEscape(opt_delimiters) : "\\s";
delimiters = delimiters ? "|[" + delimiters + "]+" : "";
var regexp = new RegExp("(^" + delimiters + ")([a-z])", "g");
return str.replace(regexp, function(all, p1, p2) {
return p1 + p2.toUpperCase()
})
};
goog.string.parseInt = function(value) {
if(isFinite(value)) {
value = String(value)
}
if(goog.isString(value)) {
return/^\s*-?0x/i.test(value) ? parseInt(value, 16) : parseInt(value, 10)
}
return NaN
};
goog.provide("goog.asserts");
goog.provide("goog.asserts.AssertionError");
goog.require("goog.debug.Error");
goog.require("goog.string");
goog.asserts.ENABLE_ASSERTS = goog.DEBUG;
goog.asserts.AssertionError = function(messagePattern, messageArgs) {
messageArgs.unshift(messagePattern);
goog.debug.Error.call(this, goog.string.subs.apply(null, messageArgs));
messageArgs.shift();
this.messagePattern = messagePattern
};
goog.inherits(goog.asserts.AssertionError, goog.debug.Error);
goog.asserts.AssertionError.prototype.name = "AssertionError";
goog.asserts.doAssertFailure_ = function(defaultMessage, defaultArgs, givenMessage, givenArgs) {
var message = "Assertion failed";
if(givenMessage) {
message += ": " + givenMessage;
var args = givenArgs
}else {
if(defaultMessage) {
message += ": " + defaultMessage;
args = defaultArgs
}
}
throw new goog.asserts.AssertionError("" + message, args || []);
};
goog.asserts.assert = function(condition, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !condition) {
goog.asserts.doAssertFailure_("", null, opt_message, Array.prototype.slice.call(arguments, 2))
}
return condition
};
goog.asserts.fail = function(opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS) {
throw new goog.asserts.AssertionError("Failure" + (opt_message ? ": " + opt_message : ""), Array.prototype.slice.call(arguments, 1));
}
};
goog.asserts.assertNumber = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isNumber(value)) {
goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertString = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isString(value)) {
goog.asserts.doAssertFailure_("Expected string but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertFunction = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isFunction(value)) {
goog.asserts.doAssertFailure_("Expected function but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertObject = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isObject(value)) {
goog.asserts.doAssertFailure_("Expected object but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertArray = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isArray(value)) {
goog.asserts.doAssertFailure_("Expected array but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertBoolean = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isBoolean(value)) {
goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertInstanceof = function(value, type, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !(value instanceof type)) {
goog.asserts.doAssertFailure_("instanceof check failed.", null, opt_message, Array.prototype.slice.call(arguments, 3))
}
return value
};
goog.provide("goog.array");
goog.provide("goog.array.ArrayLike");
goog.require("goog.asserts");
goog.NATIVE_ARRAY_PROTOTYPES = true;
goog.array.ArrayLike;
goog.array.peek = function(array) {
return array[array.length - 1]
};
goog.array.ARRAY_PROTOTYPE_ = Array.prototype;
goog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.indexOf ? function(arr, obj, opt_fromIndex) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.indexOf.call(arr, obj, opt_fromIndex)
} : function(arr, obj, opt_fromIndex) {
var fromIndex = opt_fromIndex == null ? 0 : opt_fromIndex < 0 ? Math.max(0, arr.length + opt_fromIndex) : opt_fromIndex;
if(goog.isString(arr)) {
if(!goog.isString(obj) || obj.length != 1) {
return-1
}
return arr.indexOf(obj, fromIndex)
}
for(var i = fromIndex;i < arr.length;i++) {
if(i in arr && arr[i] === obj) {
return i
}
}
return-1
};
goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.lastIndexOf ? function(arr, obj, opt_fromIndex) {
goog.asserts.assert(arr.length != null);
var fromIndex = opt_fromIndex == null ? arr.length - 1 : opt_fromIndex;
return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(arr, obj, fromIndex)
} : function(arr, obj, opt_fromIndex) {
var fromIndex = opt_fromIndex == null ? arr.length - 1 : opt_fromIndex;
if(fromIndex < 0) {
fromIndex = Math.max(0, arr.length + fromIndex)
}
if(goog.isString(arr)) {
if(!goog.isString(obj) || obj.length != 1) {
return-1
}
return arr.lastIndexOf(obj, fromIndex)
}
for(var i = fromIndex;i >= 0;i--) {
if(i in arr && arr[i] === obj) {
return i
}
}
return-1
};
goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.forEach ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
goog.array.ARRAY_PROTOTYPE_.forEach.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2) {
f.call(opt_obj, arr2[i], i, arr)
}
}
};
goog.array.forEachRight = function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = l - 1;i >= 0;--i) {
if(i in arr2) {
f.call(opt_obj, arr2[i], i, arr)
}
}
};
goog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.filter ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.filter.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var res = [];
var resLength = 0;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2) {
var val = arr2[i];
if(f.call(opt_obj, val, i, arr)) {
res[resLength++] = val
}
}
}
return res
};
goog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.map ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.map.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var res = new Array(l);
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2) {
res[i] = f.call(opt_obj, arr2[i], i, arr)
}
}
return res
};
goog.array.reduce = function(arr, f, val, opt_obj) {
if(arr.reduce) {
if(opt_obj) {
return arr.reduce(goog.bind(f, opt_obj), val)
}else {
return arr.reduce(f, val)
}
}
var rval = val;
goog.array.forEach(arr, function(val, index) {
rval = f.call(opt_obj, rval, val, index, arr)
});
return rval
};
goog.array.reduceRight = function(arr, f, val, opt_obj) {
if(arr.reduceRight) {
if(opt_obj) {
return arr.reduceRight(goog.bind(f, opt_obj), val)
}else {
return arr.reduceRight(f, val)
}
}
var rval = val;
goog.array.forEachRight(arr, function(val, index) {
rval = f.call(opt_obj, rval, val, index, arr)
});
return rval
};
goog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.some ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.some.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return true
}
}
return false
};
goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.every ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.every.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2 && !f.call(opt_obj, arr2[i], i, arr)) {
return false
}
}
return true
};
goog.array.find = function(arr, f, opt_obj) {
var i = goog.array.findIndex(arr, f, opt_obj);
return i < 0 ? null : goog.isString(arr) ? arr.charAt(i) : arr[i]
};
goog.array.findIndex = function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return i
}
}
return-1
};
goog.array.findRight = function(arr, f, opt_obj) {
var i = goog.array.findIndexRight(arr, f, opt_obj);
return i < 0 ? null : goog.isString(arr) ? arr.charAt(i) : arr[i]
};
goog.array.findIndexRight = function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = l - 1;i >= 0;i--) {
if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return i
}
}
return-1
};
goog.array.contains = function(arr, obj) {
return goog.array.indexOf(arr, obj) >= 0
};
goog.array.isEmpty = function(arr) {
return arr.length == 0
};
goog.array.clear = function(arr) {
if(!goog.isArray(arr)) {
for(var i = arr.length - 1;i >= 0;i--) {
delete arr[i]
}
}
arr.length = 0
};
goog.array.insert = function(arr, obj) {
if(!goog.array.contains(arr, obj)) {
arr.push(obj)
}
};
goog.array.insertAt = function(arr, obj, opt_i) {
goog.array.splice(arr, opt_i, 0, obj)
};
goog.array.insertArrayAt = function(arr, elementsToAdd, opt_i) {
goog.partial(goog.array.splice, arr, opt_i, 0).apply(null, elementsToAdd)
};
goog.array.insertBefore = function(arr, obj, opt_obj2) {
var i;
if(arguments.length == 2 || (i = goog.array.indexOf(arr, opt_obj2)) < 0) {
arr.push(obj)
}else {
goog.array.insertAt(arr, obj, i)
}
};
goog.array.remove = function(arr, obj) {
var i = goog.array.indexOf(arr, obj);
var rv;
if(rv = i >= 0) {
goog.array.removeAt(arr, i)
}
return rv
};
goog.array.removeAt = function(arr, i) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.splice.call(arr, i, 1).length == 1
};
goog.array.removeIf = function(arr, f, opt_obj) {
var i = goog.array.findIndex(arr, f, opt_obj);
if(i >= 0) {
goog.array.removeAt(arr, i);
return true
}
return false
};
goog.array.concat = function(var_args) {
return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_, arguments)
};
goog.array.toArray = function(object) {
var length = object.length;
if(length > 0) {
var rv = new Array(length);
for(var i = 0;i < length;i++) {
rv[i] = object[i]
}
return rv
}
return[]
};
goog.array.clone = goog.array.toArray;
goog.array.extend = function(arr1, var_args) {
for(var i = 1;i < arguments.length;i++) {
var arr2 = arguments[i];
var isArrayLike;
if(goog.isArray(arr2) || (isArrayLike = goog.isArrayLike(arr2)) && arr2.hasOwnProperty("callee")) {
arr1.push.apply(arr1, arr2)
}else {
if(isArrayLike) {
var len1 = arr1.length;
var len2 = arr2.length;
for(var j = 0;j < len2;j++) {
arr1[len1 + j] = arr2[j]
}
}else {
arr1.push(arr2)
}
}
}
};
goog.array.splice = function(arr, index, howMany, var_args) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.splice.apply(arr, goog.array.slice(arguments, 1))
};
goog.array.slice = function(arr, start, opt_end) {
goog.asserts.assert(arr.length != null);
if(arguments.length <= 2) {
return goog.array.ARRAY_PROTOTYPE_.slice.call(arr, start)
}else {
return goog.array.ARRAY_PROTOTYPE_.slice.call(arr, start, opt_end)
}
};
goog.array.removeDuplicates = function(arr, opt_rv) {
var returnArray = opt_rv || arr;
var seen = {}, cursorInsert = 0, cursorRead = 0;
while(cursorRead < arr.length) {
var current = arr[cursorRead++];
var key = goog.isObject(current) ? "o" + goog.getUid(current) : (typeof current).charAt(0) + current;
if(!Object.prototype.hasOwnProperty.call(seen, key)) {
seen[key] = true;
returnArray[cursorInsert++] = current
}
}
returnArray.length = cursorInsert
};
goog.array.binarySearch = function(arr, target, opt_compareFn) {
return goog.array.binarySearch_(arr, opt_compareFn || goog.array.defaultCompare, false, target)
};
goog.array.binarySelect = function(arr, evaluator, opt_obj) {
return goog.array.binarySearch_(arr, evaluator, true, undefined, opt_obj)
};
goog.array.binarySearch_ = function(arr, compareFn, isEvaluator, opt_target, opt_selfObj) {
var left = 0;
var right = arr.length;
var found;
while(left < right) {
var middle = left + right >> 1;
var compareResult;
if(isEvaluator) {
compareResult = compareFn.call(opt_selfObj, arr[middle], middle, arr)
}else {
compareResult = compareFn(opt_target, arr[middle])
}
if(compareResult > 0) {
left = middle + 1
}else {
right = middle;
found = !compareResult
}
}
return found ? left : ~left
};
goog.array.sort = function(arr, opt_compareFn) {
goog.asserts.assert(arr.length != null);
goog.array.ARRAY_PROTOTYPE_.sort.call(arr, opt_compareFn || goog.array.defaultCompare)
};
goog.array.stableSort = function(arr, opt_compareFn) {
for(var i = 0;i < arr.length;i++) {
arr[i] = {index:i, value:arr[i]}
}
var valueCompareFn = opt_compareFn || goog.array.defaultCompare;
function stableCompareFn(obj1, obj2) {
return valueCompareFn(obj1.value, obj2.value) || obj1.index - obj2.index
}
goog.array.sort(arr, stableCompareFn);
for(var i = 0;i < arr.length;i++) {
arr[i] = arr[i].value
}
};
goog.array.sortObjectsByKey = function(arr, key, opt_compareFn) {
var compare = opt_compareFn || goog.array.defaultCompare;
goog.array.sort(arr, function(a, b) {
return compare(a[key], b[key])
})
};
goog.array.isSorted = function(arr, opt_compareFn, opt_strict) {
var compare = opt_compareFn || goog.array.defaultCompare;
for(var i = 1;i < arr.length;i++) {
var compareResult = compare(arr[i - 1], arr[i]);
if(compareResult > 0 || compareResult == 0 && opt_strict) {
return false
}
}
return true
};
goog.array.equals = function(arr1, arr2, opt_equalsFn) {
if(!goog.isArrayLike(arr1) || !goog.isArrayLike(arr2) || arr1.length != arr2.length) {
return false
}
var l = arr1.length;
var equalsFn = opt_equalsFn || goog.array.defaultCompareEquality;
for(var i = 0;i < l;i++) {
if(!equalsFn(arr1[i], arr2[i])) {
return false
}
}
return true
};
goog.array.compare = function(arr1, arr2, opt_equalsFn) {
return goog.array.equals(arr1, arr2, opt_equalsFn)
};
goog.array.compare3 = function(arr1, arr2, opt_compareFn) {
var compare = opt_compareFn || goog.array.defaultCompare;
var l = Math.min(arr1.length, arr2.length);
for(var i = 0;i < l;i++) {
var result = compare(arr1[i], arr2[i]);
if(result != 0) {
return result
}
}
return goog.array.defaultCompare(arr1.length, arr2.length)
};
goog.array.defaultCompare = function(a, b) {
return a > b ? 1 : a < b ? -1 : 0
};
goog.array.defaultCompareEquality = function(a, b) {
return a === b
};
goog.array.binaryInsert = function(array, value, opt_compareFn) {
var index = goog.array.binarySearch(array, value, opt_compareFn);
if(index < 0) {
goog.array.insertAt(array, value, -(index + 1));
return true
}
return false
};
goog.array.binaryRemove = function(array, value, opt_compareFn) {
var index = goog.array.binarySearch(array, value, opt_compareFn);
return index >= 0 ? goog.array.removeAt(array, index) : false
};
goog.array.bucket = function(array, sorter) {
var buckets = {};
for(var i = 0;i < array.length;i++) {
var value = array[i];
var key = sorter(value, i, array);
if(goog.isDef(key)) {
var bucket = buckets[key] || (buckets[key] = []);
bucket.push(value)
}
}
return buckets
};
goog.array.repeat = function(value, n) {
var array = [];
for(var i = 0;i < n;i++) {
array[i] = value
}
return array
};
goog.array.flatten = function(var_args) {
var result = [];
for(var i = 0;i < arguments.length;i++) {
var element = arguments[i];
if(goog.isArray(element)) {
result.push.apply(result, goog.array.flatten.apply(null, element))
}else {
result.push(element)
}
}
return result
};
goog.array.rotate = function(array, n) {
goog.asserts.assert(array.length != null);
if(array.length) {
n %= array.length;
if(n > 0) {
goog.array.ARRAY_PROTOTYPE_.unshift.apply(array, array.splice(-n, n))
}else {
if(n < 0) {
goog.array.ARRAY_PROTOTYPE_.push.apply(array, array.splice(0, -n))
}
}
}
return array
};
goog.array.zip = function(var_args) {
if(!arguments.length) {
return[]
}
var result = [];
for(var i = 0;true;i++) {
var value = [];
for(var j = 0;j < arguments.length;j++) {
var arr = arguments[j];
if(i >= arr.length) {
return result
}
value.push(arr[i])
}
result.push(value)
}
};
goog.array.shuffle = function(arr, opt_randFn) {
var randFn = opt_randFn || Math.random;
for(var i = arr.length - 1;i > 0;i--) {
var j = Math.floor(randFn() * (i + 1));
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp
}
};
goog.provide("goog.object");
goog.object.forEach = function(obj, f, opt_obj) {
for(var key in obj) {
f.call(opt_obj, obj[key], key, obj)
}
};
goog.object.filter = function(obj, f, opt_obj) {
var res = {};
for(var key in obj) {
if(f.call(opt_obj, obj[key], key, obj)) {
res[key] = obj[key]
}
}
return res
};
goog.object.map = function(obj, f, opt_obj) {
var res = {};
for(var key in obj) {
res[key] = f.call(opt_obj, obj[key], key, obj)
}
return res
};
goog.object.some = function(obj, f, opt_obj) {
for(var key in obj) {
if(f.call(opt_obj, obj[key], key, obj)) {
return true
}
}
return false
};
goog.object.every = function(obj, f, opt_obj) {
for(var key in obj) {
if(!f.call(opt_obj, obj[key], key, obj)) {
return false
}
}
return true
};
goog.object.getCount = function(obj) {
var rv = 0;
for(var key in obj) {
rv++
}
return rv
};
goog.object.getAnyKey = function(obj) {
for(var key in obj) {
return key
}
};
goog.object.getAnyValue = function(obj) {
for(var key in obj) {
return obj[key]
}
};
goog.object.contains = function(obj, val) {
return goog.object.containsValue(obj, val)
};
goog.object.getValues = function(obj) {
var res = [];
var i = 0;
for(var key in obj) {
res[i++] = obj[key]
}
return res
};
goog.object.getKeys = function(obj) {
var res = [];
var i = 0;
for(var key in obj) {
res[i++] = key
}
return res
};
goog.object.getValueByKeys = function(obj, var_args) {
var isArrayLike = goog.isArrayLike(var_args);
var keys = isArrayLike ? var_args : arguments;
for(var i = isArrayLike ? 0 : 1;i < keys.length;i++) {
obj = obj[keys[i]];
if(!goog.isDef(obj)) {
break
}
}
return obj
};
goog.object.containsKey = function(obj, key) {
return key in obj
};
goog.object.containsValue = function(obj, val) {
for(var key in obj) {
if(obj[key] == val) {
return true
}
}
return false
};
goog.object.findKey = function(obj, f, opt_this) {
for(var key in obj) {
if(f.call(opt_this, obj[key], key, obj)) {
return key
}
}
return undefined
};
goog.object.findValue = function(obj, f, opt_this) {
var key = goog.object.findKey(obj, f, opt_this);
return key && obj[key]
};
goog.object.isEmpty = function(obj) {
for(var key in obj) {
return false
}
return true
};
goog.object.clear = function(obj) {
for(var i in obj) {
delete obj[i]
}
};
goog.object.remove = function(obj, key) {
var rv;
if(rv = key in obj) {
delete obj[key]
}
return rv
};
goog.object.add = function(obj, key, val) {
if(key in obj) {
throw Error('The object already contains the key "' + key + '"');
}
goog.object.set(obj, key, val)
};
goog.object.get = function(obj, key, opt_val) {
if(key in obj) {
return obj[key]
}
return opt_val
};
goog.object.set = function(obj, key, value) {
obj[key] = value
};
goog.object.setIfUndefined = function(obj, key, value) {
return key in obj ? obj[key] : obj[key] = value
};
goog.object.clone = function(obj) {
var res = {};
for(var key in obj) {
res[key] = obj[key]
}
return res
};
goog.object.unsafeClone = function(obj) {
var type = goog.typeOf(obj);
if(type == "object" || type == "array") {
if(obj.clone) {
return obj.clone()
}
var clone = type == "array" ? [] : {};
for(var key in obj) {
clone[key] = goog.object.unsafeClone(obj[key])
}
return clone
}
return obj
};
goog.object.transpose = function(obj) {
var transposed = {};
for(var key in obj) {
transposed[obj[key]] = key
}
return transposed
};
goog.object.PROTOTYPE_FIELDS_ = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"];
goog.object.extend = function(target, var_args) {
var key, source;
for(var i = 1;i < arguments.length;i++) {
source = arguments[i];
for(key in source) {
target[key] = source[key]
}
for(var j = 0;j < goog.object.PROTOTYPE_FIELDS_.length;j++) {
key = goog.object.PROTOTYPE_FIELDS_[j];
if(Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key]
}
}
}
};
goog.object.create = function(var_args) {
var argLength = arguments.length;
if(argLength == 1 && goog.isArray(arguments[0])) {
return goog.object.create.apply(null, arguments[0])
}
if(argLength % 2) {
throw Error("Uneven number of arguments");
}
var rv = {};
for(var i = 0;i < argLength;i += 2) {
rv[arguments[i]] = arguments[i + 1]
}
return rv
};
goog.object.createSet = function(var_args) {
var argLength = arguments.length;
if(argLength == 1 && goog.isArray(arguments[0])) {
return goog.object.createSet.apply(null, arguments[0])
}
var rv = {};
for(var i = 0;i < argLength;i++) {
rv[arguments[i]] = true
}
return rv
};
goog.provide("goog.string.format");
goog.require("goog.string");
goog.string.format = function(formatString, var_args) {
var args = Array.prototype.slice.call(arguments);
var template = args.shift();
if(typeof template == "undefined") {
throw Error("[goog.string.format] Template required");
}
var formatRe = /%([0\-\ \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g;
function replacerDemuxer(match, flags, width, dotp, precision, type, offset, wholeString) {
if(type == "%") {
return"%"
}
var value = args.shift();
if(typeof value == "undefined") {
throw Error("[goog.string.format] Not enough arguments");
}
arguments[0] = value;
return goog.string.format.demuxes_[type].apply(null, arguments)
}
return template.replace(formatRe, replacerDemuxer)
};
goog.string.format.demuxes_ = {};
goog.string.format.demuxes_["s"] = function(value, flags, width, dotp, precision, type, offset, wholeString) {
var replacement = value;
if(isNaN(width) || width == "" || replacement.length >= width) {
return replacement
}
if(flags.indexOf("-", 0) > -1) {
replacement = replacement + goog.string.repeat(" ", width - replacement.length)
}else {
replacement = goog.string.repeat(" ", width - replacement.length) + replacement
}
return replacement
};
goog.string.format.demuxes_["f"] = function(value, flags, width, dotp, precision, type, offset, wholeString) {
var replacement = value.toString();
if(!(isNaN(precision) || precision == "")) {
replacement = value.toFixed(precision)
}
var sign;
if(value < 0) {
sign = "-"
}else {
if(flags.indexOf("+") >= 0) {
sign = "+"
}else {
if(flags.indexOf(" ") >= 0) {
sign = " "
}else {
sign = ""
}
}
}
if(value >= 0) {
replacement = sign + replacement
}
if(isNaN(width) || replacement.length >= width) {
return replacement
}
replacement = isNaN(precision) ? Math.abs(value).toString() : Math.abs(value).toFixed(precision);
var padCount = width - replacement.length - sign.length;
if(flags.indexOf("-", 0) >= 0) {
replacement = sign + replacement + goog.string.repeat(" ", padCount)
}else {
var paddingChar = flags.indexOf("0", 0) >= 0 ? "0" : " ";
replacement = sign + goog.string.repeat(paddingChar, padCount) + replacement
}
return replacement
};
goog.string.format.demuxes_["d"] = function(value, flags, width, dotp, precision, type, offset, wholeString) {
return goog.string.format.demuxes_["f"](parseInt(value, 10), flags, width, dotp, 0, type, offset, wholeString)
};
goog.string.format.demuxes_["i"] = goog.string.format.demuxes_["d"];
goog.string.format.demuxes_["u"] = goog.string.format.demuxes_["d"];
goog.provide("goog.string.StringBuffer");
goog.string.StringBuffer = function(opt_a1, var_args) {
if(opt_a1 != null) {
this.append.apply(this, arguments)
}
};
goog.string.StringBuffer.prototype.buffer_ = "";
goog.string.StringBuffer.prototype.set = function(s) {
this.buffer_ = "" + s
};
goog.string.StringBuffer.prototype.append = function(a1, opt_a2, var_args) {
this.buffer_ += a1;
if(opt_a2 != null) {
for(var i = 1;i < arguments.length;i++) {
this.buffer_ += arguments[i]
}
}
return this
};
goog.string.StringBuffer.prototype.clear = function() {
this.buffer_ = ""
};
goog.string.StringBuffer.prototype.getLength = function() {
return this.buffer_.length
};
goog.string.StringBuffer.prototype.toString = function() {
return this.buffer_
};
goog.provide("cljs.core");
goog.require("goog.array");
goog.require("goog.object");
goog.require("goog.string.format");
goog.require("goog.string.StringBuffer");
goog.require("goog.string");
cljs.core._STAR_unchecked_if_STAR_ = false;
cljs.core._STAR_print_fn_STAR_ = function _STAR_print_fn_STAR_(_) {
throw new Error("No *print-fn* fn set for evaluation environment");
};
cljs.core.set_print_fn_BANG_ = function set_print_fn_BANG_(f) {
return cljs.core._STAR_print_fn_STAR_ = f
};
goog.exportSymbol("cljs.core.set_print_fn_BANG_", cljs.core.set_print_fn_BANG_);
cljs.core._STAR_flush_on_newline_STAR_ = true;
cljs.core._STAR_print_readably_STAR_ = true;
cljs.core._STAR_print_meta_STAR_ = false;
cljs.core._STAR_print_dup_STAR_ = false;
cljs.core.pr_opts = function pr_opts() {
return cljs.core.PersistentArrayMap.fromArray(["\ufdd0:flush-on-newline", cljs.core._STAR_flush_on_newline_STAR_, "\ufdd0:readably", cljs.core._STAR_print_readably_STAR_, "\ufdd0:meta", cljs.core._STAR_print_meta_STAR_, "\ufdd0:dup", cljs.core._STAR_print_dup_STAR_], true)
};
cljs.core.truth_ = function truth_(x) {
return x != null && x !== false
};
cljs.core.not_native = null;
cljs.core.identical_QMARK_ = function identical_QMARK_(x, y) {
return x === y
};
cljs.core.nil_QMARK_ = function nil_QMARK_(x) {
return x == null
};
cljs.core.array_QMARK_ = function array_QMARK_(x) {
return x instanceof Array
};
cljs.core.number_QMARK_ = function number_QMARK_(n) {
return typeof n === "number"
};
cljs.core.not = function not(x) {
if(cljs.core.truth_(x)) {
return false
}else {
return true
}
};
cljs.core.string_QMARK_ = function string_QMARK_(x) {
var and__3941__auto__ = goog.isString(x);
if(and__3941__auto__) {
return!(x.charAt(0) === "\ufdd0")
}else {
return and__3941__auto__
}
};
cljs.core.type_satisfies_ = function type_satisfies_(p, x) {
var x__$1 = x == null ? null : x;
if(p[goog.typeOf(x__$1)]) {
return true
}else {
if(p["_"]) {
return true
}else {
if("\ufdd0:else") {
return false
}else {
return null
}
}
}
};
cljs.core.is_proto_ = function is_proto_(x) {
return x.constructor.prototype === x
};
cljs.core._STAR_main_cli_fn_STAR_ = null;
cljs.core.type = function type(x) {
if(x == null) {
return null
}else {
return x.constructor
}
};
cljs.core.missing_protocol = function missing_protocol(proto, obj) {
var ty = cljs.core.type.call(null, obj);
var ty__$1 = cljs.core.truth_(function() {
var and__3941__auto__ = ty;
if(cljs.core.truth_(and__3941__auto__)) {
return ty.cljs$lang$type
}else {
return and__3941__auto__
}
}()) ? ty.cljs$lang$ctorStr : goog.typeOf(obj);
return new Error(["No protocol method ", proto, " defined for type ", ty__$1, ": ", obj].join(""))
};
cljs.core.aclone = function aclone(array_like) {
return array_like.slice()
};
cljs.core.array = function array(var_args) {
return Array.prototype.slice.call(arguments)
};
cljs.core.make_array = function() {
var make_array = null;
var make_array__1 = function(size) {
return new Array(size)
};
var make_array__2 = function(type, size) {
return make_array.call(null, size)
};
make_array = function(type, size) {
switch(arguments.length) {
case 1:
return make_array__1.call(this, type);
case 2:
return make_array__2.call(this, type, size)
}
throw new Error("Invalid arity: " + arguments.length);
};
make_array.cljs$core$IFn$_invoke$arity$1 = make_array__1;
make_array.cljs$core$IFn$_invoke$arity$2 = make_array__2;
return make_array
}();
cljs.core.aget = function() {
var aget = null;
var aget__2 = function(array, i) {
return array[i]
};
var aget__3 = function() {
var G__5305__delegate = function(array, i, idxs) {
return cljs.core.apply.call(null, aget, aget.call(null, array, i), idxs)
};
var G__5305 = function(array, i, var_args) {
var idxs = null;
if(arguments.length > 2) {
idxs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5305__delegate.call(this, array, i, idxs)
};
G__5305.cljs$lang$maxFixedArity = 2;
G__5305.cljs$lang$applyTo = function(arglist__5306) {
var array = cljs.core.first(arglist__5306);
arglist__5306 = cljs.core.next(arglist__5306);
var i = cljs.core.first(arglist__5306);
var idxs = cljs.core.rest(arglist__5306);
return G__5305__delegate(array, i, idxs)
};
G__5305.cljs$core$IFn$_invoke$arity$variadic = G__5305__delegate;
return G__5305
}();
aget = function(array, i, var_args) {
var idxs = var_args;
switch(arguments.length) {
case 2:
return aget__2.call(this, array, i);
default:
return aget__3.cljs$core$IFn$_invoke$arity$variadic(array, i, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
aget.cljs$lang$maxFixedArity = 2;
aget.cljs$lang$applyTo = aget__3.cljs$lang$applyTo;
aget.cljs$core$IFn$_invoke$arity$2 = aget__2;
aget.cljs$core$IFn$_invoke$arity$variadic = aget__3.cljs$core$IFn$_invoke$arity$variadic;
return aget
}();
cljs.core.aset = function aset(array, i, val) {
return array[i] = val
};
cljs.core.alength = function alength(array) {
return array.length
};
cljs.core.into_array = function() {
var into_array = null;
var into_array__1 = function(aseq) {
return into_array.call(null, null, aseq)
};
var into_array__2 = function(type, aseq) {
return cljs.core.reduce.call(null, function(a, x) {
a.push(x);
return a
}, [], aseq)
};
into_array = function(type, aseq) {
switch(arguments.length) {
case 1:
return into_array__1.call(this, type);
case 2:
return into_array__2.call(this, type, aseq)
}
throw new Error("Invalid arity: " + arguments.length);
};
into_array.cljs$core$IFn$_invoke$arity$1 = into_array__1;
into_array.cljs$core$IFn$_invoke$arity$2 = into_array__2;
return into_array
}();
cljs.core.Fn = {};
cljs.core.IFn = {};
cljs.core._invoke = function() {
var _invoke = null;
var _invoke__1 = function(this$) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$1
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$1(this$)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$)
}
};
var _invoke__2 = function(this$, a) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$2
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$2(this$, a)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a)
}
};
var _invoke__3 = function(this$, a, b) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$3
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$3(this$, a, b)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b)
}
};
var _invoke__4 = function(this$, a, b, c) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$4
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$4(this$, a, b, c)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c)
}
};
var _invoke__5 = function(this$, a, b, c, d) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$5
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$5(this$, a, b, c, d)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d)
}
};
var _invoke__6 = function(this$, a, b, c, d, e) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$6
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$6(this$, a, b, c, d, e)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e)
}
};
var _invoke__7 = function(this$, a, b, c, d, e, f) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$7
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$7(this$, a, b, c, d, e, f)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f)
}
};
var _invoke__8 = function(this$, a, b, c, d, e, f, g) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$8
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$8(this$, a, b, c, d, e, f, g)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g)
}
};
var _invoke__9 = function(this$, a, b, c, d, e, f, g, h) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$9
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$9(this$, a, b, c, d, e, f, g, h)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h)
}
};
var _invoke__10 = function(this$, a, b, c, d, e, f, g, h, i) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$10
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$10(this$, a, b, c, d, e, f, g, h, i)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i)
}
};
var _invoke__11 = function(this$, a, b, c, d, e, f, g, h, i, j) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$11
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$11(this$, a, b, c, d, e, f, g, h, i, j)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j)
}
};
var _invoke__12 = function(this$, a, b, c, d, e, f, g, h, i, j, k) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$12
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$12(this$, a, b, c, d, e, f, g, h, i, j, k)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k)
}
};
var _invoke__13 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$13
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$13(this$, a, b, c, d, e, f, g, h, i, j, k, l)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l)
}
};
var _invoke__14 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$14
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$14(this$, a, b, c, d, e, f, g, h, i, j, k, l, m)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m)
}
};
var _invoke__15 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$15
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$15(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n)
}
};
var _invoke__16 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$16
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$16(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
}
};
var _invoke__17 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$17
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$17(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
}
};
var _invoke__18 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$18
}else {
return and__3941__auto__
}
}()) {
return 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)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)
}
};
var _invoke__19 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$19
}else {
return and__3941__auto__
}
}()) {
return 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, s)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s)
}
};
var _invoke__20 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$20
}else {
return and__3941__auto__
}
}()) {
return 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, s, t)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t)
}
};
var _invoke__21 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IFn$_invoke$arity$21
}else {
return and__3941__auto__
}
}()) {
return 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, s, t, rest)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._invoke[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._invoke["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest)
}
};
_invoke = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest) {
switch(arguments.length) {
case 1:
return _invoke__1.call(this, this$);
case 2:
return _invoke__2.call(this, this$, a);
case 3:
return _invoke__3.call(this, this$, a, b);
case 4:
return _invoke__4.call(this, this$, a, b, c);
case 5:
return _invoke__5.call(this, this$, a, b, c, d);
case 6:
return _invoke__6.call(this, this$, a, b, c, d, e);
case 7:
return _invoke__7.call(this, this$, a, b, c, d, e, f);
case 8:
return _invoke__8.call(this, this$, a, b, c, d, e, f, g);
case 9:
return _invoke__9.call(this, this$, a, b, c, d, e, f, g, h);
case 10:
return _invoke__10.call(this, this$, a, b, c, d, e, f, g, h, i);
case 11:
return _invoke__11.call(this, this$, a, b, c, d, e, f, g, h, i, j);
case 12:
return _invoke__12.call(this, this$, a, b, c, d, e, f, g, h, i, j, k);
case 13:
return _invoke__13.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l);
case 14:
return _invoke__14.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m);
case 15:
return _invoke__15.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n);
case 16:
return _invoke__16.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
case 17:
return _invoke__17.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);
case 18:
return _invoke__18.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q);
case 19:
return _invoke__19.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s);
case 20:
return _invoke__20.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t);
case 21:
return _invoke__21.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest)
}
throw new Error("Invalid arity: " + arguments.length);
};
_invoke.cljs$core$IFn$_invoke$arity$1 = _invoke__1;
_invoke.cljs$core$IFn$_invoke$arity$2 = _invoke__2;
_invoke.cljs$core$IFn$_invoke$arity$3 = _invoke__3;
_invoke.cljs$core$IFn$_invoke$arity$4 = _invoke__4;
_invoke.cljs$core$IFn$_invoke$arity$5 = _invoke__5;
_invoke.cljs$core$IFn$_invoke$arity$6 = _invoke__6;
_invoke.cljs$core$IFn$_invoke$arity$7 = _invoke__7;
_invoke.cljs$core$IFn$_invoke$arity$8 = _invoke__8;
_invoke.cljs$core$IFn$_invoke$arity$9 = _invoke__9;
_invoke.cljs$core$IFn$_invoke$arity$10 = _invoke__10;
_invoke.cljs$core$IFn$_invoke$arity$11 = _invoke__11;
_invoke.cljs$core$IFn$_invoke$arity$12 = _invoke__12;
_invoke.cljs$core$IFn$_invoke$arity$13 = _invoke__13;
_invoke.cljs$core$IFn$_invoke$arity$14 = _invoke__14;
_invoke.cljs$core$IFn$_invoke$arity$15 = _invoke__15;
_invoke.cljs$core$IFn$_invoke$arity$16 = _invoke__16;
_invoke.cljs$core$IFn$_invoke$arity$17 = _invoke__17;
_invoke.cljs$core$IFn$_invoke$arity$18 = _invoke__18;
_invoke.cljs$core$IFn$_invoke$arity$19 = _invoke__19;
_invoke.cljs$core$IFn$_invoke$arity$20 = _invoke__20;
_invoke.cljs$core$IFn$_invoke$arity$21 = _invoke__21;
return _invoke
}();
cljs.core.ICounted = {};
cljs.core._count = function _count(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ICounted$_count$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ICounted$_count$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._count[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._count["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ICounted.-count", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IEmptyableCollection = {};
cljs.core._empty = function _empty(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._empty[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._empty["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IEmptyableCollection.-empty", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ICollection = {};
cljs.core._conj = function _conj(coll, o) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ICollection$_conj$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ICollection$_conj$arity$2(coll, o)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._conj[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._conj["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ICollection.-conj", coll);
}
}
}().call(null, coll, o)
}
};
cljs.core.IIndexed = {};
cljs.core._nth = function() {
var _nth = null;
var _nth__2 = function(coll, n) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IIndexed$_nth$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._nth[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._nth["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IIndexed.-nth", coll);
}
}
}().call(null, coll, n)
}
};
var _nth__3 = function(coll, n, not_found) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IIndexed$_nth$arity$3
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$3(coll, n, not_found)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._nth[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._nth["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IIndexed.-nth", coll);
}
}
}().call(null, coll, n, not_found)
}
};
_nth = function(coll, n, not_found) {
switch(arguments.length) {
case 2:
return _nth__2.call(this, coll, n);
case 3:
return _nth__3.call(this, coll, n, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
_nth.cljs$core$IFn$_invoke$arity$2 = _nth__2;
_nth.cljs$core$IFn$_invoke$arity$3 = _nth__3;
return _nth
}();
cljs.core.ASeq = {};
cljs.core.ISeq = {};
cljs.core._first = function _first(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISeq$_first$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISeq$_first$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._first[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._first["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISeq.-first", coll);
}
}
}().call(null, coll)
}
};
cljs.core._rest = function _rest(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISeq$_rest$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISeq$_rest$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._rest[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._rest["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISeq.-rest", coll);
}
}
}().call(null, coll)
}
};
cljs.core.INext = {};
cljs.core._next = function _next(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$INext$_next$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$INext$_next$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._next[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._next["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "INext.-next", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ILookup = {};
cljs.core._lookup = function() {
var _lookup = null;
var _lookup__2 = function(o, k) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$ILookup$_lookup$arity$2
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$ILookup$_lookup$arity$2(o, k)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._lookup[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._lookup["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ILookup.-lookup", o);
}
}
}().call(null, o, k)
}
};
var _lookup__3 = function(o, k, not_found) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$ILookup$_lookup$arity$3
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$ILookup$_lookup$arity$3(o, k, not_found)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._lookup[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._lookup["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ILookup.-lookup", o);
}
}
}().call(null, o, k, not_found)
}
};
_lookup = function(o, k, not_found) {
switch(arguments.length) {
case 2:
return _lookup__2.call(this, o, k);
case 3:
return _lookup__3.call(this, o, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
_lookup.cljs$core$IFn$_invoke$arity$2 = _lookup__2;
_lookup.cljs$core$IFn$_invoke$arity$3 = _lookup__3;
return _lookup
}();
cljs.core.IAssociative = {};
cljs.core._contains_key_QMARK_ = function _contains_key_QMARK_(coll, k) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2(coll, k)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._contains_key_QMARK_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._contains_key_QMARK_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IAssociative.-contains-key?", coll);
}
}
}().call(null, coll, k)
}
};
cljs.core._assoc = function _assoc(coll, k, v) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IAssociative$_assoc$arity$3
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, k, v)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._assoc[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._assoc["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IAssociative.-assoc", coll);
}
}
}().call(null, coll, k, v)
}
};
cljs.core.IMap = {};
cljs.core._dissoc = function _dissoc(coll, k) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IMap$_dissoc$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IMap$_dissoc$arity$2(coll, k)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._dissoc[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._dissoc["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMap.-dissoc", coll);
}
}
}().call(null, coll, k)
}
};
cljs.core.IMapEntry = {};
cljs.core._key = function _key(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IMapEntry$_key$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IMapEntry$_key$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._key[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._key["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMapEntry.-key", coll);
}
}
}().call(null, coll)
}
};
cljs.core._val = function _val(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IMapEntry$_val$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IMapEntry$_val$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._val[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._val["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMapEntry.-val", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ISet = {};
cljs.core._disjoin = function _disjoin(coll, v) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISet$_disjoin$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISet$_disjoin$arity$2(coll, v)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._disjoin[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._disjoin["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISet.-disjoin", coll);
}
}
}().call(null, coll, v)
}
};
cljs.core.IStack = {};
cljs.core._peek = function _peek(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IStack$_peek$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IStack$_peek$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._peek[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._peek["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IStack.-peek", coll);
}
}
}().call(null, coll)
}
};
cljs.core._pop = function _pop(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IStack$_pop$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IStack$_pop$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._pop[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._pop["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IStack.-pop", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IVector = {};
cljs.core._assoc_n = function _assoc_n(coll, n, val) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IVector$_assoc_n$arity$3
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IVector$_assoc_n$arity$3(coll, n, val)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._assoc_n[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._assoc_n["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IVector.-assoc-n", coll);
}
}
}().call(null, coll, n, val)
}
};
cljs.core.IDeref = {};
cljs.core._deref = function _deref(o) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IDeref$_deref$arity$1
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IDeref$_deref$arity$1(o)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._deref[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._deref["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IDeref.-deref", o);
}
}
}().call(null, o)
}
};
cljs.core.IDerefWithTimeout = {};
cljs.core._deref_with_timeout = function _deref_with_timeout(o, msec, timeout_val) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3(o, msec, timeout_val)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._deref_with_timeout[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._deref_with_timeout["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IDerefWithTimeout.-deref-with-timeout", o);
}
}
}().call(null, o, msec, timeout_val)
}
};
cljs.core.IMeta = {};
cljs.core._meta = function _meta(o) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IMeta$_meta$arity$1
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IMeta$_meta$arity$1(o)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._meta[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._meta["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMeta.-meta", o);
}
}
}().call(null, o)
}
};
cljs.core.IWithMeta = {};
cljs.core._with_meta = function _with_meta(o, meta) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IWithMeta$_with_meta$arity$2
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IWithMeta$_with_meta$arity$2(o, meta)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._with_meta[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._with_meta["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IWithMeta.-with-meta", o);
}
}
}().call(null, o, meta)
}
};
cljs.core.IReduce = {};
cljs.core._reduce = function() {
var _reduce = null;
var _reduce__2 = function(coll, f) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IReduce$_reduce$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IReduce$_reduce$arity$2(coll, f)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._reduce[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._reduce["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IReduce.-reduce", coll);
}
}
}().call(null, coll, f)
}
};
var _reduce__3 = function(coll, f, start) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IReduce$_reduce$arity$3
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IReduce$_reduce$arity$3(coll, f, start)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._reduce[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._reduce["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IReduce.-reduce", coll);
}
}
}().call(null, coll, f, start)
}
};
_reduce = function(coll, f, start) {
switch(arguments.length) {
case 2:
return _reduce__2.call(this, coll, f);
case 3:
return _reduce__3.call(this, coll, f, start)
}
throw new Error("Invalid arity: " + arguments.length);
};
_reduce.cljs$core$IFn$_invoke$arity$2 = _reduce__2;
_reduce.cljs$core$IFn$_invoke$arity$3 = _reduce__3;
return _reduce
}();
cljs.core.IKVReduce = {};
cljs.core._kv_reduce = function _kv_reduce(coll, f, init) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IKVReduce$_kv_reduce$arity$3
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IKVReduce$_kv_reduce$arity$3(coll, f, init)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._kv_reduce[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._kv_reduce["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IKVReduce.-kv-reduce", coll);
}
}
}().call(null, coll, f, init)
}
};
cljs.core.IEquiv = {};
cljs.core._equiv = function _equiv(o, other) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IEquiv$_equiv$arity$2
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IEquiv$_equiv$arity$2(o, other)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._equiv[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._equiv["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IEquiv.-equiv", o);
}
}
}().call(null, o, other)
}
};
cljs.core.IHash = {};
cljs.core._hash = function _hash(o) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IHash$_hash$arity$1
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IHash$_hash$arity$1(o)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._hash[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._hash["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IHash.-hash", o);
}
}
}().call(null, o)
}
};
cljs.core.ISeqable = {};
cljs.core._seq = function _seq(o) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$ISeqable$_seq$arity$1
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$ISeqable$_seq$arity$1(o)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._seq[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._seq["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISeqable.-seq", o);
}
}
}().call(null, o)
}
};
cljs.core.ISequential = {};
cljs.core.IList = {};
cljs.core.IRecord = {};
cljs.core.IReversible = {};
cljs.core._rseq = function _rseq(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IReversible$_rseq$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IReversible$_rseq$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._rseq[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._rseq["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IReversible.-rseq", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ISorted = {};
cljs.core._sorted_seq = function _sorted_seq(coll, ascending_QMARK_) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISorted$_sorted_seq$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISorted$_sorted_seq$arity$2(coll, ascending_QMARK_)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._sorted_seq[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._sorted_seq["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-sorted-seq", coll);
}
}
}().call(null, coll, ascending_QMARK_)
}
};
cljs.core._sorted_seq_from = function _sorted_seq_from(coll, k, ascending_QMARK_) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISorted$_sorted_seq_from$arity$3
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISorted$_sorted_seq_from$arity$3(coll, k, ascending_QMARK_)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._sorted_seq_from[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._sorted_seq_from["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-sorted-seq-from", coll);
}
}
}().call(null, coll, k, ascending_QMARK_)
}
};
cljs.core._entry_key = function _entry_key(coll, entry) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISorted$_entry_key$arity$2
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISorted$_entry_key$arity$2(coll, entry)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._entry_key[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._entry_key["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-entry-key", coll);
}
}
}().call(null, coll, entry)
}
};
cljs.core._comparator = function _comparator(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$ISorted$_comparator$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$ISorted$_comparator$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._comparator[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._comparator["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-comparator", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IWriter = {};
cljs.core._write = function _write(writer, s) {
if(function() {
var and__3941__auto__ = writer;
if(and__3941__auto__) {
return writer.cljs$core$IWriter$_write$arity$2
}else {
return and__3941__auto__
}
}()) {
return writer.cljs$core$IWriter$_write$arity$2(writer, s)
}else {
var x__2942__auto__ = writer == null ? null : writer;
return function() {
var or__3943__auto__ = cljs.core._write[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._write["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IWriter.-write", writer);
}
}
}().call(null, writer, s)
}
};
cljs.core._flush = function _flush(writer) {
if(function() {
var and__3941__auto__ = writer;
if(and__3941__auto__) {
return writer.cljs$core$IWriter$_flush$arity$1
}else {
return and__3941__auto__
}
}()) {
return writer.cljs$core$IWriter$_flush$arity$1(writer)
}else {
var x__2942__auto__ = writer == null ? null : writer;
return function() {
var or__3943__auto__ = cljs.core._flush[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._flush["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IWriter.-flush", writer);
}
}
}().call(null, writer)
}
};
cljs.core.IPrintWithWriter = {};
cljs.core._pr_writer = function _pr_writer(o, writer, opts) {
if(function() {
var and__3941__auto__ = o;
if(and__3941__auto__) {
return o.cljs$core$IPrintWithWriter$_pr_writer$arity$3
}else {
return and__3941__auto__
}
}()) {
return o.cljs$core$IPrintWithWriter$_pr_writer$arity$3(o, writer, opts)
}else {
var x__2942__auto__ = o == null ? null : o;
return function() {
var or__3943__auto__ = cljs.core._pr_writer[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._pr_writer["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IPrintWithWriter.-pr-writer", o);
}
}
}().call(null, o, writer, opts)
}
};
cljs.core.IPending = {};
cljs.core._realized_QMARK_ = function _realized_QMARK_(d) {
if(function() {
var and__3941__auto__ = d;
if(and__3941__auto__) {
return d.cljs$core$IPending$_realized_QMARK_$arity$1
}else {
return and__3941__auto__
}
}()) {
return d.cljs$core$IPending$_realized_QMARK_$arity$1(d)
}else {
var x__2942__auto__ = d == null ? null : d;
return function() {
var or__3943__auto__ = cljs.core._realized_QMARK_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._realized_QMARK_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IPending.-realized?", d);
}
}
}().call(null, d)
}
};
cljs.core.IWatchable = {};
cljs.core._notify_watches = function _notify_watches(this$, oldval, newval) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IWatchable$_notify_watches$arity$3
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IWatchable$_notify_watches$arity$3(this$, oldval, newval)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._notify_watches[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._notify_watches["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IWatchable.-notify-watches", this$);
}
}
}().call(null, this$, oldval, newval)
}
};
cljs.core._add_watch = function _add_watch(this$, key, f) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IWatchable$_add_watch$arity$3
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IWatchable$_add_watch$arity$3(this$, key, f)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._add_watch[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._add_watch["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IWatchable.-add-watch", this$);
}
}
}().call(null, this$, key, f)
}
};
cljs.core._remove_watch = function _remove_watch(this$, key) {
if(function() {
var and__3941__auto__ = this$;
if(and__3941__auto__) {
return this$.cljs$core$IWatchable$_remove_watch$arity$2
}else {
return and__3941__auto__
}
}()) {
return this$.cljs$core$IWatchable$_remove_watch$arity$2(this$, key)
}else {
var x__2942__auto__ = this$ == null ? null : this$;
return function() {
var or__3943__auto__ = cljs.core._remove_watch[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._remove_watch["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IWatchable.-remove-watch", this$);
}
}
}().call(null, this$, key)
}
};
cljs.core.IEditableCollection = {};
cljs.core._as_transient = function _as_transient(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IEditableCollection$_as_transient$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IEditableCollection$_as_transient$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._as_transient[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._as_transient["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IEditableCollection.-as-transient", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ITransientCollection = {};
cljs.core._conj_BANG_ = function _conj_BANG_(tcoll, val) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2(tcoll, val)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._conj_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._conj_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientCollection.-conj!", tcoll);
}
}
}().call(null, tcoll, val)
}
};
cljs.core._persistent_BANG_ = function _persistent_BANG_(tcoll) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(tcoll)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._persistent_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._persistent_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientCollection.-persistent!", tcoll);
}
}
}().call(null, tcoll)
}
};
cljs.core.ITransientAssociative = {};
cljs.core._assoc_BANG_ = function _assoc_BANG_(tcoll, key, val) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll, key, val)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._assoc_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._assoc_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientAssociative.-assoc!", tcoll);
}
}
}().call(null, tcoll, key, val)
}
};
cljs.core.ITransientMap = {};
cljs.core._dissoc_BANG_ = function _dissoc_BANG_(tcoll, key) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2(tcoll, key)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._dissoc_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._dissoc_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientMap.-dissoc!", tcoll);
}
}
}().call(null, tcoll, key)
}
};
cljs.core.ITransientVector = {};
cljs.core._assoc_n_BANG_ = function _assoc_n_BANG_(tcoll, n, val) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(tcoll, n, val)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._assoc_n_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._assoc_n_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientVector.-assoc-n!", tcoll);
}
}
}().call(null, tcoll, n, val)
}
};
cljs.core._pop_BANG_ = function _pop_BANG_(tcoll) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1(tcoll)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._pop_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._pop_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientVector.-pop!", tcoll);
}
}
}().call(null, tcoll)
}
};
cljs.core.ITransientSet = {};
cljs.core._disjoin_BANG_ = function _disjoin_BANG_(tcoll, v) {
if(function() {
var and__3941__auto__ = tcoll;
if(and__3941__auto__) {
return tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2
}else {
return and__3941__auto__
}
}()) {
return tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2(tcoll, v)
}else {
var x__2942__auto__ = tcoll == null ? null : tcoll;
return function() {
var or__3943__auto__ = cljs.core._disjoin_BANG_[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._disjoin_BANG_["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "ITransientSet.-disjoin!", tcoll);
}
}
}().call(null, tcoll, v)
}
};
cljs.core.IComparable = {};
cljs.core._compare = function _compare(x, y) {
if(function() {
var and__3941__auto__ = x;
if(and__3941__auto__) {
return x.cljs$core$IComparable$_compare$arity$2
}else {
return and__3941__auto__
}
}()) {
return x.cljs$core$IComparable$_compare$arity$2(x, y)
}else {
var x__2942__auto__ = x == null ? null : x;
return function() {
var or__3943__auto__ = cljs.core._compare[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._compare["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IComparable.-compare", x);
}
}
}().call(null, x, y)
}
};
cljs.core.IChunk = {};
cljs.core._drop_first = function _drop_first(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IChunk$_drop_first$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IChunk$_drop_first$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._drop_first[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._drop_first["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IChunk.-drop-first", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IChunkedSeq = {};
cljs.core._chunked_first = function _chunked_first(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IChunkedSeq$_chunked_first$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IChunkedSeq$_chunked_first$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._chunked_first[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._chunked_first["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IChunkedSeq.-chunked-first", coll);
}
}
}().call(null, coll)
}
};
cljs.core._chunked_rest = function _chunked_rest(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._chunked_rest[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._chunked_rest["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IChunkedSeq.-chunked-rest", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IChunkedNext = {};
cljs.core._chunked_next = function _chunked_next(coll) {
if(function() {
var and__3941__auto__ = coll;
if(and__3941__auto__) {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1(coll)
}else {
var x__2942__auto__ = coll == null ? null : coll;
return function() {
var or__3943__auto__ = cljs.core._chunked_next[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._chunked_next["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IChunkedNext.-chunked-next", coll);
}
}
}().call(null, coll)
}
};
cljs.core.INamed = {};
cljs.core._name = function _name(x) {
if(function() {
var and__3941__auto__ = x;
if(and__3941__auto__) {
return x.cljs$core$INamed$_name$arity$1
}else {
return and__3941__auto__
}
}()) {
return x.cljs$core$INamed$_name$arity$1(x)
}else {
var x__2942__auto__ = x == null ? null : x;
return function() {
var or__3943__auto__ = cljs.core._name[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._name["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "INamed.-name", x);
}
}
}().call(null, x)
}
};
cljs.core._namespace = function _namespace(x) {
if(function() {
var and__3941__auto__ = x;
if(and__3941__auto__) {
return x.cljs$core$INamed$_namespace$arity$1
}else {
return and__3941__auto__
}
}()) {
return x.cljs$core$INamed$_namespace$arity$1(x)
}else {
var x__2942__auto__ = x == null ? null : x;
return function() {
var or__3943__auto__ = cljs.core._namespace[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._namespace["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "INamed.-namespace", x);
}
}
}().call(null, x)
}
};
goog.provide("cljs.core.StringBufferWriter");
cljs.core.StringBufferWriter = function(sb) {
this.sb = sb;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 1073741824
};
cljs.core.StringBufferWriter.cljs$lang$type = true;
cljs.core.StringBufferWriter.cljs$lang$ctorStr = "cljs.core/StringBufferWriter";
cljs.core.StringBufferWriter.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/StringBufferWriter")
};
cljs.core.StringBufferWriter.prototype.cljs$core$IWriter$_write$arity$2 = function(_, s) {
var self__ = this;
return self__.sb.append(s)
};
cljs.core.StringBufferWriter.prototype.cljs$core$IWriter$_flush$arity$1 = function(_) {
var self__ = this;
return null
};
cljs.core.pr_str_STAR_ = function pr_str_STAR_(obj) {
var sb = new goog.string.StringBuffer;
var writer = new cljs.core.StringBufferWriter(sb);
cljs.core._pr_writer.call(null, obj, writer, cljs.core.pr_opts.call(null));
cljs.core._flush.call(null, writer);
return[cljs.core.str(sb)].join("")
};
cljs.core.instance_QMARK_ = function instance_QMARK_(t, o) {
return o instanceof t
};
cljs.core.symbol_QMARK_ = function symbol_QMARK_(x) {
return x instanceof cljs.core.Symbol
};
goog.provide("cljs.core.Symbol");
cljs.core.Symbol = function(ns, name, str, _hash, _meta) {
this.ns = ns;
this.name = name;
this.str = str;
this._hash = _hash;
this._meta = _meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2154168321
};
cljs.core.Symbol.cljs$lang$type = true;
cljs.core.Symbol.cljs$lang$ctorStr = "cljs.core/Symbol";
cljs.core.Symbol.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Symbol")
};
cljs.core.Symbol.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(o, writer, _) {
var self__ = this;
return cljs.core._write.call(null, writer, self__.str)
};
cljs.core.Symbol.prototype.cljs$core$INamed$ = true;
cljs.core.Symbol.prototype.cljs$core$INamed$_name$arity$1 = function(_) {
var self__ = this;
return self__.name
};
cljs.core.Symbol.prototype.cljs$core$INamed$_namespace$arity$1 = function(_) {
var self__ = this;
return self__.ns
};
cljs.core.Symbol.prototype.cljs$core$IHash$_hash$arity$1 = function(_) {
var self__ = this;
if(self__._hash === -1) {
self__._hash = cljs.core.hash_combine.call(null, cljs.core.hash.call(null, self__.ns), cljs.core.hash.call(null, self__.name));
return self__._hash
}else {
return self__._hash
}
};
cljs.core.Symbol.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(_, new_meta) {
var self__ = this;
return new cljs.core.Symbol(self__.ns, self__.name, self__.str, self__._hash, new_meta)
};
cljs.core.Symbol.prototype.cljs$core$IMeta$_meta$arity$1 = function(_) {
var self__ = this;
return self__._meta
};
cljs.core.Symbol.prototype.call = function() {
var G__5308 = null;
var G__5308__2 = function(self__, coll) {
var self__ = this;
var self____$1 = this;
var sym = self____$1;
return cljs.core._lookup.call(null, coll, sym, null)
};
var G__5308__3 = function(self__, coll, not_found) {
var self__ = this;
var self____$1 = this;
var sym = self____$1;
return cljs.core._lookup.call(null, coll, sym, not_found)
};
G__5308 = function(self__, coll, not_found) {
switch(arguments.length) {
case 2:
return G__5308__2.call(this, self__, coll);
case 3:
return G__5308__3.call(this, self__, coll, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5308
}();
cljs.core.Symbol.prototype.apply = function(self__, args5307) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5307.slice()))
};
cljs.core.Symbol.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(_, other) {
var self__ = this;
if(other instanceof cljs.core.Symbol) {
return self__.str === other.str
}else {
return false
}
};
cljs.core.Symbol.prototype.toString = function() {
var self__ = this;
var _ = this;
return self__.str
};
cljs.core.symbol = function() {
var symbol = null;
var symbol__1 = function(name) {
if(name instanceof cljs.core.Symbol) {
return name
}else {
return symbol.call(null, null, name)
}
};
var symbol__2 = function(ns, name) {
var sym_str = !(ns == null) ? [cljs.core.str(ns), cljs.core.str("/"), cljs.core.str(name)].join("") : name;
return new cljs.core.Symbol(ns, name, sym_str, -1, null)
};
symbol = function(ns, name) {
switch(arguments.length) {
case 1:
return symbol__1.call(this, ns);
case 2:
return symbol__2.call(this, ns, name)
}
throw new Error("Invalid arity: " + arguments.length);
};
symbol.cljs$core$IFn$_invoke$arity$1 = symbol__1;
symbol.cljs$core$IFn$_invoke$arity$2 = symbol__2;
return symbol
}();
cljs.core.seq = function seq(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__5310 = coll;
if(G__5310) {
if(function() {
var or__3943__auto__ = G__5310.cljs$lang$protocol_mask$partition0$ & 8388608;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5310.cljs$core$ISeqable$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._seq.call(null, coll)
}else {
if(coll instanceof Array) {
if(coll.length === 0) {
return null
}else {
return new cljs.core.IndexedSeq(coll, 0)
}
}else {
if(cljs.core.string_QMARK_.call(null, coll)) {
if(coll.length === 0) {
return null
}else {
return new cljs.core.IndexedSeq(coll, 0)
}
}else {
if(cljs.core.type_satisfies_.call(null, cljs.core.ILookup, coll)) {
return cljs.core._seq.call(null, coll)
}else {
if("\ufdd0:else") {
throw new Error([cljs.core.str(coll), cljs.core.str("is not ISeqable")].join(""));
}else {
return null
}
}
}
}
}
}
};
cljs.core.first = function first(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__5312 = coll;
if(G__5312) {
if(function() {
var or__3943__auto__ = G__5312.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5312.cljs$core$ISeq$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._first.call(null, coll)
}else {
var s = cljs.core.seq.call(null, coll);
if(s == null) {
return null
}else {
return cljs.core._first.call(null, s)
}
}
}
};
cljs.core.rest = function rest(coll) {
if(!(coll == null)) {
if(function() {
var G__5314 = coll;
if(G__5314) {
if(function() {
var or__3943__auto__ = G__5314.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5314.cljs$core$ISeq$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._rest.call(null, coll)
}else {
var s = cljs.core.seq.call(null, coll);
if(!(s == null)) {
return cljs.core._rest.call(null, s)
}else {
return cljs.core.List.EMPTY
}
}
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.next = function next(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__5316 = coll;
if(G__5316) {
if(function() {
var or__3943__auto__ = G__5316.cljs$lang$protocol_mask$partition0$ & 128;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5316.cljs$core$INext$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._next.call(null, coll)
}else {
return cljs.core.seq.call(null, cljs.core.rest.call(null, coll))
}
}
};
cljs.core._EQ_ = function() {
var _EQ_ = null;
var _EQ___1 = function(x) {
return true
};
var _EQ___2 = function(x, y) {
var or__3943__auto__ = x === y;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return cljs.core._equiv.call(null, x, y)
}
};
var _EQ___3 = function() {
var G__5317__delegate = function(x, y, more) {
while(true) {
if(cljs.core.truth_(_EQ_.call(null, x, y))) {
if(cljs.core.next.call(null, more)) {
var G__5318 = y;
var G__5319 = cljs.core.first.call(null, more);
var G__5320 = cljs.core.next.call(null, more);
x = G__5318;
y = G__5319;
more = G__5320;
continue
}else {
return _EQ_.call(null, y, cljs.core.first.call(null, more))
}
}else {
return false
}
break
}
};
var G__5317 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5317__delegate.call(this, x, y, more)
};
G__5317.cljs$lang$maxFixedArity = 2;
G__5317.cljs$lang$applyTo = function(arglist__5321) {
var x = cljs.core.first(arglist__5321);
arglist__5321 = cljs.core.next(arglist__5321);
var y = cljs.core.first(arglist__5321);
var more = cljs.core.rest(arglist__5321);
return G__5317__delegate(x, y, more)
};
G__5317.cljs$core$IFn$_invoke$arity$variadic = G__5317__delegate;
return G__5317
}();
_EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _EQ___1.call(this, x);
case 2:
return _EQ___2.call(this, x, y);
default:
return _EQ___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_EQ_.cljs$lang$maxFixedArity = 2;
_EQ_.cljs$lang$applyTo = _EQ___3.cljs$lang$applyTo;
_EQ_.cljs$core$IFn$_invoke$arity$1 = _EQ___1;
_EQ_.cljs$core$IFn$_invoke$arity$2 = _EQ___2;
_EQ_.cljs$core$IFn$_invoke$arity$variadic = _EQ___3.cljs$core$IFn$_invoke$arity$variadic;
return _EQ_
}();
cljs.core.IHash["null"] = true;
cljs.core._hash["null"] = function(o) {
return 0
};
cljs.core.INext["null"] = true;
cljs.core._next["null"] = function(_) {
return null
};
cljs.core.IKVReduce["null"] = true;
cljs.core._kv_reduce["null"] = function(_, f, init) {
return init
};
cljs.core.ISet["null"] = true;
cljs.core._disjoin["null"] = function(_, v) {
return null
};
cljs.core.ICounted["null"] = true;
cljs.core._count["null"] = function(_) {
return 0
};
cljs.core.IStack["null"] = true;
cljs.core._peek["null"] = function(_) {
return null
};
cljs.core._pop["null"] = function(_) {
return null
};
cljs.core.IEquiv["null"] = true;
cljs.core._equiv["null"] = function(_, o) {
return o == null
};
cljs.core.IWithMeta["null"] = true;
cljs.core._with_meta["null"] = function(_, meta) {
return null
};
cljs.core.IMeta["null"] = true;
cljs.core._meta["null"] = function(_) {
return null
};
cljs.core.IEmptyableCollection["null"] = true;
cljs.core._empty["null"] = function(_) {
return null
};
cljs.core.IMap["null"] = true;
cljs.core._dissoc["null"] = function(_, k) {
return null
};
Date.prototype.cljs$core$IEquiv$ = true;
Date.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var and__3941__auto__ = other instanceof Date;
if(and__3941__auto__) {
return o.toString() === other.toString()
}else {
return and__3941__auto__
}
};
cljs.core.IHash["number"] = true;
cljs.core._hash["number"] = function(o) {
return Math.floor(o) % 2147483647
};
cljs.core.IEquiv["number"] = true;
cljs.core._equiv["number"] = function(x, o) {
return x === o
};
cljs.core.IHash["boolean"] = true;
cljs.core._hash["boolean"] = function(o) {
if(o === true) {
return 1
}else {
return 0
}
};
cljs.core.IMeta["function"] = true;
cljs.core._meta["function"] = function(_) {
return null
};
cljs.core.Fn["function"] = true;
cljs.core.IHash["_"] = true;
cljs.core._hash["_"] = function(o) {
return goog.getUid(o)
};
cljs.core.inc = function inc(x) {
return x + 1
};
goog.provide("cljs.core.Reduced");
cljs.core.Reduced = function(val) {
this.val = val;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32768
};
cljs.core.Reduced.cljs$lang$type = true;
cljs.core.Reduced.cljs$lang$ctorStr = "cljs.core/Reduced";
cljs.core.Reduced.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Reduced")
};
cljs.core.Reduced.prototype.cljs$core$IDeref$_deref$arity$1 = function(o) {
var self__ = this;
return self__.val
};
cljs.core.reduced = function reduced(x) {
return new cljs.core.Reduced(x)
};
cljs.core.reduced_QMARK_ = function reduced_QMARK_(r) {
return r instanceof cljs.core.Reduced
};
cljs.core.ci_reduce = function() {
var ci_reduce = null;
var ci_reduce__2 = function(cicoll, f) {
var cnt = cljs.core._count.call(null, cicoll);
if(cnt === 0) {
return f.call(null)
}else {
var val = cljs.core._nth.call(null, cicoll, 0);
var n = 1;
while(true) {
if(n < cnt) {
var nval = f.call(null, val, cljs.core._nth.call(null, cicoll, n));
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5322 = nval;
var G__5323 = n + 1;
val = G__5322;
n = G__5323;
continue
}
}else {
return val
}
break
}
}
};
var ci_reduce__3 = function(cicoll, f, val) {
var cnt = cljs.core._count.call(null, cicoll);
var val__$1 = val;
var n = 0;
while(true) {
if(n < cnt) {
var nval = f.call(null, val__$1, cljs.core._nth.call(null, cicoll, n));
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5324 = nval;
var G__5325 = n + 1;
val__$1 = G__5324;
n = G__5325;
continue
}
}else {
return val__$1
}
break
}
};
var ci_reduce__4 = function(cicoll, f, val, idx) {
var cnt = cljs.core._count.call(null, cicoll);
var val__$1 = val;
var n = idx;
while(true) {
if(n < cnt) {
var nval = f.call(null, val__$1, cljs.core._nth.call(null, cicoll, n));
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5326 = nval;
var G__5327 = n + 1;
val__$1 = G__5326;
n = G__5327;
continue
}
}else {
return val__$1
}
break
}
};
ci_reduce = function(cicoll, f, val, idx) {
switch(arguments.length) {
case 2:
return ci_reduce__2.call(this, cicoll, f);
case 3:
return ci_reduce__3.call(this, cicoll, f, val);
case 4:
return ci_reduce__4.call(this, cicoll, f, val, idx)
}
throw new Error("Invalid arity: " + arguments.length);
};
ci_reduce.cljs$core$IFn$_invoke$arity$2 = ci_reduce__2;
ci_reduce.cljs$core$IFn$_invoke$arity$3 = ci_reduce__3;
ci_reduce.cljs$core$IFn$_invoke$arity$4 = ci_reduce__4;
return ci_reduce
}();
cljs.core.array_reduce = function() {
var array_reduce = null;
var array_reduce__2 = function(arr, f) {
var cnt = arr.length;
if(arr.length === 0) {
return f.call(null)
}else {
var val = arr[0];
var n = 1;
while(true) {
if(n < cnt) {
var nval = f.call(null, val, arr[n]);
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5328 = nval;
var G__5329 = n + 1;
val = G__5328;
n = G__5329;
continue
}
}else {
return val
}
break
}
}
};
var array_reduce__3 = function(arr, f, val) {
var cnt = arr.length;
var val__$1 = val;
var n = 0;
while(true) {
if(n < cnt) {
var nval = f.call(null, val__$1, arr[n]);
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5330 = nval;
var G__5331 = n + 1;
val__$1 = G__5330;
n = G__5331;
continue
}
}else {
return val__$1
}
break
}
};
var array_reduce__4 = function(arr, f, val, idx) {
var cnt = arr.length;
var val__$1 = val;
var n = idx;
while(true) {
if(n < cnt) {
var nval = f.call(null, val__$1, arr[n]);
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5332 = nval;
var G__5333 = n + 1;
val__$1 = G__5332;
n = G__5333;
continue
}
}else {
return val__$1
}
break
}
};
array_reduce = function(arr, f, val, idx) {
switch(arguments.length) {
case 2:
return array_reduce__2.call(this, arr, f);
case 3:
return array_reduce__3.call(this, arr, f, val);
case 4:
return array_reduce__4.call(this, arr, f, val, idx)
}
throw new Error("Invalid arity: " + arguments.length);
};
array_reduce.cljs$core$IFn$_invoke$arity$2 = array_reduce__2;
array_reduce.cljs$core$IFn$_invoke$arity$3 = array_reduce__3;
array_reduce.cljs$core$IFn$_invoke$arity$4 = array_reduce__4;
return array_reduce
}();
cljs.core.counted_QMARK_ = function counted_QMARK_(x) {
var G__5335 = x;
if(G__5335) {
if(function() {
var or__3943__auto__ = G__5335.cljs$lang$protocol_mask$partition0$ & 2;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5335.cljs$core$ICounted$
}
}()) {
return true
}else {
if(!G__5335.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ICounted, G__5335)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ICounted, G__5335)
}
};
cljs.core.indexed_QMARK_ = function indexed_QMARK_(x) {
var G__5337 = x;
if(G__5337) {
if(function() {
var or__3943__auto__ = G__5337.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5337.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__5337.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__5337)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__5337)
}
};
goog.provide("cljs.core.IndexedSeq");
cljs.core.IndexedSeq = function(arr, i) {
this.arr = arr;
this.i = i;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 166199550
};
cljs.core.IndexedSeq.cljs$lang$type = true;
cljs.core.IndexedSeq.cljs$lang$ctorStr = "cljs.core/IndexedSeq";
cljs.core.IndexedSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/IndexedSeq")
};
cljs.core.IndexedSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
return cljs.core.hash_coll.call(null, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$INext$_next$arity$1 = function(_) {
var self__ = this;
if(self__.i + 1 < self__.arr.length) {
return new cljs.core.IndexedSeq(self__.arr, self__.i + 1)
}else {
return null
}
};
cljs.core.IndexedSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var self__ = this;
var c = coll.cljs$core$ICounted$_count$arity$1(coll);
if(c > 0) {
return new cljs.core.RSeq(coll, c - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.IndexedSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var self__ = this;
return cljs.core.array_reduce.call(null, self__.arr, f, self__.arr[self__.i], self__.i + 1)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var self__ = this;
return cljs.core.array_reduce.call(null, self__.arr, f, start, self__.i)
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var self__ = this;
return this$
};
cljs.core.IndexedSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var self__ = this;
return self__.arr.length - self__.i
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(_) {
var self__ = this;
return self__.arr[self__.i]
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(_) {
var self__ = this;
if(self__.i + 1 < self__.arr.length) {
return new cljs.core.IndexedSeq(self__.arr, self__.i + 1)
}else {
return cljs.core.list.call(null)
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var self__ = this;
var i__$1 = n + self__.i;
if(i__$1 < self__.arr.length) {
return self__.arr[i__$1]
}else {
return null
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var self__ = this;
var i__$1 = n + self__.i;
if(i__$1 < self__.arr.length) {
return self__.arr[i__$1]
}else {
return not_found
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.List.EMPTY
};
cljs.core.prim_seq = function() {
var prim_seq = null;
var prim_seq__1 = function(prim) {
return prim_seq.call(null, prim, 0)
};
var prim_seq__2 = function(prim, i) {
if(i < prim.length) {
return new cljs.core.IndexedSeq(prim, i)
}else {
return null
}
};
prim_seq = function(prim, i) {
switch(arguments.length) {
case 1:
return prim_seq__1.call(this, prim);
case 2:
return prim_seq__2.call(this, prim, i)
}
throw new Error("Invalid arity: " + arguments.length);
};
prim_seq.cljs$core$IFn$_invoke$arity$1 = prim_seq__1;
prim_seq.cljs$core$IFn$_invoke$arity$2 = prim_seq__2;
return prim_seq
}();
cljs.core.array_seq = function() {
var array_seq = null;
var array_seq__1 = function(array) {
return cljs.core.prim_seq.call(null, array, 0)
};
var array_seq__2 = function(array, i) {
return cljs.core.prim_seq.call(null, array, i)
};
array_seq = function(array, i) {
switch(arguments.length) {
case 1:
return array_seq__1.call(this, array);
case 2:
return array_seq__2.call(this, array, i)
}
throw new Error("Invalid arity: " + arguments.length);
};
array_seq.cljs$core$IFn$_invoke$arity$1 = array_seq__1;
array_seq.cljs$core$IFn$_invoke$arity$2 = array_seq__2;
return array_seq
}();
cljs.core.ICounted["array"] = true;
cljs.core._count["array"] = function(a) {
return a.length
};
goog.provide("cljs.core.RSeq");
cljs.core.RSeq = function(ci, i, meta) {
this.ci = ci;
this.i = i;
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850574
};
cljs.core.RSeq.cljs$lang$type = true;
cljs.core.RSeq.cljs$lang$ctorStr = "cljs.core/RSeq";
cljs.core.RSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/RSeq")
};
cljs.core.RSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
return cljs.core.hash_coll.call(null, coll)
};
cljs.core.RSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.RSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.RSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.RSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.i + 1
};
cljs.core.RSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core._nth.call(null, self__.ci, self__.i)
};
cljs.core.RSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
if(self__.i > 0) {
return new cljs.core.RSeq(self__.ci, self__.i - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.RSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.RSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, new_meta) {
var self__ = this;
return new cljs.core.RSeq(self__.ci, self__.i, new_meta)
};
cljs.core.RSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.RSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.second = function second(coll) {
return cljs.core.first.call(null, cljs.core.next.call(null, coll))
};
cljs.core.ffirst = function ffirst(coll) {
return cljs.core.first.call(null, cljs.core.first.call(null, coll))
};
cljs.core.nfirst = function nfirst(coll) {
return cljs.core.next.call(null, cljs.core.first.call(null, coll))
};
cljs.core.fnext = function fnext(coll) {
return cljs.core.first.call(null, cljs.core.next.call(null, coll))
};
cljs.core.nnext = function nnext(coll) {
return cljs.core.next.call(null, cljs.core.next.call(null, coll))
};
cljs.core.last = function last(s) {
while(true) {
var sn = cljs.core.next.call(null, s);
if(!(sn == null)) {
var G__5338 = sn;
s = G__5338;
continue
}else {
return cljs.core.first.call(null, s)
}
break
}
};
cljs.core.IEquiv["_"] = true;
cljs.core._equiv["_"] = function(x, o) {
return x === o
};
cljs.core.conj = function() {
var conj = null;
var conj__2 = function(coll, x) {
if(!(coll == null)) {
return cljs.core._conj.call(null, coll, x)
}else {
return cljs.core.list.call(null, x)
}
};
var conj__3 = function() {
var G__5339__delegate = function(coll, x, xs) {
while(true) {
if(cljs.core.truth_(xs)) {
var G__5340 = conj.call(null, coll, x);
var G__5341 = cljs.core.first.call(null, xs);
var G__5342 = cljs.core.next.call(null, xs);
coll = G__5340;
x = G__5341;
xs = G__5342;
continue
}else {
return conj.call(null, coll, x)
}
break
}
};
var G__5339 = function(coll, x, var_args) {
var xs = null;
if(arguments.length > 2) {
xs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5339__delegate.call(this, coll, x, xs)
};
G__5339.cljs$lang$maxFixedArity = 2;
G__5339.cljs$lang$applyTo = function(arglist__5343) {
var coll = cljs.core.first(arglist__5343);
arglist__5343 = cljs.core.next(arglist__5343);
var x = cljs.core.first(arglist__5343);
var xs = cljs.core.rest(arglist__5343);
return G__5339__delegate(coll, x, xs)
};
G__5339.cljs$core$IFn$_invoke$arity$variadic = G__5339__delegate;
return G__5339
}();
conj = function(coll, x, var_args) {
var xs = var_args;
switch(arguments.length) {
case 2:
return conj__2.call(this, coll, x);
default:
return conj__3.cljs$core$IFn$_invoke$arity$variadic(coll, x, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
conj.cljs$lang$maxFixedArity = 2;
conj.cljs$lang$applyTo = conj__3.cljs$lang$applyTo;
conj.cljs$core$IFn$_invoke$arity$2 = conj__2;
conj.cljs$core$IFn$_invoke$arity$variadic = conj__3.cljs$core$IFn$_invoke$arity$variadic;
return conj
}();
cljs.core.empty = function empty(coll) {
return cljs.core._empty.call(null, coll)
};
cljs.core.accumulating_seq_count = function accumulating_seq_count(coll) {
var s = cljs.core.seq.call(null, coll);
var acc = 0;
while(true) {
if(cljs.core.counted_QMARK_.call(null, s)) {
return acc + cljs.core._count.call(null, s)
}else {
var G__5344 = cljs.core.next.call(null, s);
var G__5345 = acc + 1;
s = G__5344;
acc = G__5345;
continue
}
break
}
};
cljs.core.count = function count(coll) {
if(cljs.core.counted_QMARK_.call(null, coll)) {
return cljs.core._count.call(null, coll)
}else {
return cljs.core.accumulating_seq_count.call(null, coll)
}
};
cljs.core.linear_traversal_nth = function() {
var linear_traversal_nth = null;
var linear_traversal_nth__2 = function(coll, n) {
while(true) {
if(coll == null) {
throw new Error("Index out of bounds");
}else {
if(n === 0) {
if(cljs.core.seq.call(null, coll)) {
return cljs.core.first.call(null, coll)
}else {
throw new Error("Index out of bounds");
}
}else {
if(cljs.core.indexed_QMARK_.call(null, coll)) {
return cljs.core._nth.call(null, coll, n)
}else {
if(cljs.core.seq.call(null, coll)) {
var G__5346 = cljs.core.next.call(null, coll);
var G__5347 = n - 1;
coll = G__5346;
n = G__5347;
continue
}else {
if("\ufdd0:else") {
throw new Error("Index out of bounds");
}else {
return null
}
}
}
}
}
break
}
};
var linear_traversal_nth__3 = function(coll, n, not_found) {
while(true) {
if(coll == null) {
return not_found
}else {
if(n === 0) {
if(cljs.core.seq.call(null, coll)) {
return cljs.core.first.call(null, coll)
}else {
return not_found
}
}else {
if(cljs.core.indexed_QMARK_.call(null, coll)) {
return cljs.core._nth.call(null, coll, n, not_found)
}else {
if(cljs.core.seq.call(null, coll)) {
var G__5348 = cljs.core.next.call(null, coll);
var G__5349 = n - 1;
var G__5350 = not_found;
coll = G__5348;
n = G__5349;
not_found = G__5350;
continue
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
}
}
break
}
};
linear_traversal_nth = function(coll, n, not_found) {
switch(arguments.length) {
case 2:
return linear_traversal_nth__2.call(this, coll, n);
case 3:
return linear_traversal_nth__3.call(this, coll, n, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
linear_traversal_nth.cljs$core$IFn$_invoke$arity$2 = linear_traversal_nth__2;
linear_traversal_nth.cljs$core$IFn$_invoke$arity$3 = linear_traversal_nth__3;
return linear_traversal_nth
}();
cljs.core.nth = function() {
var nth = null;
var nth__2 = function(coll, n) {
if(coll == null) {
return null
}else {
if(function() {
var G__5353 = coll;
if(G__5353) {
if(function() {
var or__3943__auto__ = G__5353.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5353.cljs$core$IIndexed$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._nth.call(null, coll, Math.floor(n))
}else {
if(coll instanceof Array) {
if(n < coll.length) {
return coll[n]
}else {
return null
}
}else {
if(cljs.core.string_QMARK_.call(null, coll)) {
if(n < coll.length) {
return coll[n]
}else {
return null
}
}else {
if("\ufdd0:else") {
return cljs.core.linear_traversal_nth.call(null, coll, Math.floor(n))
}else {
return null
}
}
}
}
}
};
var nth__3 = function(coll, n, not_found) {
if(!(coll == null)) {
if(function() {
var G__5354 = coll;
if(G__5354) {
if(function() {
var or__3943__auto__ = G__5354.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5354.cljs$core$IIndexed$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._nth.call(null, coll, Math.floor(n), not_found)
}else {
if(coll instanceof Array) {
if(n < coll.length) {
return coll[n]
}else {
return not_found
}
}else {
if(cljs.core.string_QMARK_.call(null, coll)) {
if(n < coll.length) {
return coll[n]
}else {
return not_found
}
}else {
if("\ufdd0:else") {
return cljs.core.linear_traversal_nth.call(null, coll, Math.floor(n), not_found)
}else {
return null
}
}
}
}
}else {
return not_found
}
};
nth = function(coll, n, not_found) {
switch(arguments.length) {
case 2:
return nth__2.call(this, coll, n);
case 3:
return nth__3.call(this, coll, n, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
nth.cljs$core$IFn$_invoke$arity$2 = nth__2;
nth.cljs$core$IFn$_invoke$arity$3 = nth__3;
return nth
}();
cljs.core.get = function() {
var get = null;
var get__2 = function(o, k) {
if(o == null) {
return null
}else {
if(function() {
var G__5357 = o;
if(G__5357) {
if(function() {
var or__3943__auto__ = G__5357.cljs$lang$protocol_mask$partition0$ & 256;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5357.cljs$core$ILookup$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._lookup.call(null, o, k)
}else {
if(o instanceof Array) {
if(k < o.length) {
return o[k]
}else {
return null
}
}else {
if(cljs.core.string_QMARK_.call(null, o)) {
if(k < o.length) {
return o[k]
}else {
return null
}
}else {
if(cljs.core.type_satisfies_.call(null, cljs.core.ILookup, o)) {
return cljs.core._lookup.call(null, o, k)
}else {
if("\ufdd0:else") {
return null
}else {
return null
}
}
}
}
}
}
};
var get__3 = function(o, k, not_found) {
if(!(o == null)) {
if(function() {
var G__5358 = o;
if(G__5358) {
if(function() {
var or__3943__auto__ = G__5358.cljs$lang$protocol_mask$partition0$ & 256;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5358.cljs$core$ILookup$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._lookup.call(null, o, k, not_found)
}else {
if(o instanceof Array) {
if(k < o.length) {
return o[k]
}else {
return not_found
}
}else {
if(cljs.core.string_QMARK_.call(null, o)) {
if(k < o.length) {
return o[k]
}else {
return not_found
}
}else {
if(cljs.core.type_satisfies_.call(null, cljs.core.ILookup, o)) {
return cljs.core._lookup.call(null, o, k, not_found)
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
}
}
}else {
return not_found
}
};
get = function(o, k, not_found) {
switch(arguments.length) {
case 2:
return get__2.call(this, o, k);
case 3:
return get__3.call(this, o, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
get.cljs$core$IFn$_invoke$arity$2 = get__2;
get.cljs$core$IFn$_invoke$arity$3 = get__3;
return get
}();
cljs.core.assoc = function() {
var assoc = null;
var assoc__3 = function(coll, k, v) {
if(!(coll == null)) {
return cljs.core._assoc.call(null, coll, k, v)
}else {
return cljs.core.hash_map.call(null, k, v)
}
};
var assoc__4 = function() {
var G__5359__delegate = function(coll, k, v, kvs) {
while(true) {
var ret = assoc.call(null, coll, k, v);
if(cljs.core.truth_(kvs)) {
var G__5360 = ret;
var G__5361 = cljs.core.first.call(null, kvs);
var G__5362 = cljs.core.second.call(null, kvs);
var G__5363 = cljs.core.nnext.call(null, kvs);
coll = G__5360;
k = G__5361;
v = G__5362;
kvs = G__5363;
continue
}else {
return ret
}
break
}
};
var G__5359 = function(coll, k, v, var_args) {
var kvs = null;
if(arguments.length > 3) {
kvs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5359__delegate.call(this, coll, k, v, kvs)
};
G__5359.cljs$lang$maxFixedArity = 3;
G__5359.cljs$lang$applyTo = function(arglist__5364) {
var coll = cljs.core.first(arglist__5364);
arglist__5364 = cljs.core.next(arglist__5364);
var k = cljs.core.first(arglist__5364);
arglist__5364 = cljs.core.next(arglist__5364);
var v = cljs.core.first(arglist__5364);
var kvs = cljs.core.rest(arglist__5364);
return G__5359__delegate(coll, k, v, kvs)
};
G__5359.cljs$core$IFn$_invoke$arity$variadic = G__5359__delegate;
return G__5359
}();
assoc = function(coll, k, v, var_args) {
var kvs = var_args;
switch(arguments.length) {
case 3:
return assoc__3.call(this, coll, k, v);
default:
return assoc__4.cljs$core$IFn$_invoke$arity$variadic(coll, k, v, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
assoc.cljs$lang$maxFixedArity = 3;
assoc.cljs$lang$applyTo = assoc__4.cljs$lang$applyTo;
assoc.cljs$core$IFn$_invoke$arity$3 = assoc__3;
assoc.cljs$core$IFn$_invoke$arity$variadic = assoc__4.cljs$core$IFn$_invoke$arity$variadic;
return assoc
}();
cljs.core.dissoc = function() {
var dissoc = null;
var dissoc__1 = function(coll) {
return coll
};
var dissoc__2 = function(coll, k) {
return cljs.core._dissoc.call(null, coll, k)
};
var dissoc__3 = function() {
var G__5365__delegate = function(coll, k, ks) {
while(true) {
var ret = dissoc.call(null, coll, k);
if(cljs.core.truth_(ks)) {
var G__5366 = ret;
var G__5367 = cljs.core.first.call(null, ks);
var G__5368 = cljs.core.next.call(null, ks);
coll = G__5366;
k = G__5367;
ks = G__5368;
continue
}else {
return ret
}
break
}
};
var G__5365 = function(coll, k, var_args) {
var ks = null;
if(arguments.length > 2) {
ks = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5365__delegate.call(this, coll, k, ks)
};
G__5365.cljs$lang$maxFixedArity = 2;
G__5365.cljs$lang$applyTo = function(arglist__5369) {
var coll = cljs.core.first(arglist__5369);
arglist__5369 = cljs.core.next(arglist__5369);
var k = cljs.core.first(arglist__5369);
var ks = cljs.core.rest(arglist__5369);
return G__5365__delegate(coll, k, ks)
};
G__5365.cljs$core$IFn$_invoke$arity$variadic = G__5365__delegate;
return G__5365
}();
dissoc = function(coll, k, var_args) {
var ks = var_args;
switch(arguments.length) {
case 1:
return dissoc__1.call(this, coll);
case 2:
return dissoc__2.call(this, coll, k);
default:
return dissoc__3.cljs$core$IFn$_invoke$arity$variadic(coll, k, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
dissoc.cljs$lang$maxFixedArity = 2;
dissoc.cljs$lang$applyTo = dissoc__3.cljs$lang$applyTo;
dissoc.cljs$core$IFn$_invoke$arity$1 = dissoc__1;
dissoc.cljs$core$IFn$_invoke$arity$2 = dissoc__2;
dissoc.cljs$core$IFn$_invoke$arity$variadic = dissoc__3.cljs$core$IFn$_invoke$arity$variadic;
return dissoc
}();
cljs.core.fn_QMARK_ = function fn_QMARK_(f) {
var or__3943__auto__ = goog.isFunction(f);
if(or__3943__auto__) {
return or__3943__auto__
}else {
var G__5371 = f;
if(G__5371) {
if(cljs.core.truth_(function() {
var or__3943__auto____$1 = null;
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
return G__5371.cljs$core$Fn$
}
}())) {
return true
}else {
if(!G__5371.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.Fn, G__5371)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.Fn, G__5371)
}
}
};
cljs.core.with_meta = function with_meta(o, meta) {
if(function() {
var and__3941__auto__ = cljs.core.fn_QMARK_.call(null, o);
if(and__3941__auto__) {
return!function() {
var G__5377 = o;
if(G__5377) {
if(function() {
var or__3943__auto__ = G__5377.cljs$lang$protocol_mask$partition0$ & 262144;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5377.cljs$core$IWithMeta$
}
}()) {
return true
}else {
if(!G__5377.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IWithMeta, G__5377)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IWithMeta, G__5377)
}
}()
}else {
return and__3941__auto__
}
}()) {
return with_meta.call(null, function() {
if(void 0 === cljs.core.t5378) {
goog.provide("cljs.core.t5378");
cljs.core.t5378 = function(meta, o, with_meta, meta5379) {
this.meta = meta;
this.o = o;
this.with_meta = with_meta;
this.meta5379 = meta5379;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 393217
};
cljs.core.t5378.cljs$lang$type = true;
cljs.core.t5378.cljs$lang$ctorStr = "cljs.core/t5378";
cljs.core.t5378.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/t5378")
};
cljs.core.t5378.prototype.call = function() {
var G__5382__delegate = function(self__, args) {
var self____$1 = this;
var _ = self____$1;
return cljs.core.apply.call(null, self__.o, args)
};
var G__5382 = function(self__, var_args) {
var self__ = this;
var args = null;
if(arguments.length > 1) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__5382__delegate.call(this, self__, args)
};
G__5382.cljs$lang$maxFixedArity = 1;
G__5382.cljs$lang$applyTo = function(arglist__5383) {
var self__ = cljs.core.first(arglist__5383);
var args = cljs.core.rest(arglist__5383);
return G__5382__delegate(self__, args)
};
G__5382.cljs$core$IFn$_invoke$arity$variadic = G__5382__delegate;
return G__5382
}();
cljs.core.t5378.prototype.apply = function(self__, args5381) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5381.slice()))
};
cljs.core.t5378.prototype.cljs$core$Fn$ = true;
cljs.core.t5378.prototype.cljs$core$IMeta$_meta$arity$1 = function(_5380) {
var self__ = this;
return self__.meta5379
};
cljs.core.t5378.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(_5380, meta5379__$1) {
var self__ = this;
return new cljs.core.t5378(self__.meta, self__.o, self__.with_meta, meta5379__$1)
}
}else {
}
return new cljs.core.t5378(meta, o, with_meta, null)
}(), meta)
}else {
return cljs.core._with_meta.call(null, o, meta)
}
};
cljs.core.meta = function meta(o) {
if(function() {
var G__5385 = o;
if(G__5385) {
if(function() {
var or__3943__auto__ = G__5385.cljs$lang$protocol_mask$partition0$ & 131072;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5385.cljs$core$IMeta$
}
}()) {
return true
}else {
if(!G__5385.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__5385)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__5385)
}
}()) {
return cljs.core._meta.call(null, o)
}else {
return null
}
};
cljs.core.peek = function peek(coll) {
return cljs.core._peek.call(null, coll)
};
cljs.core.pop = function pop(coll) {
return cljs.core._pop.call(null, coll)
};
cljs.core.disj = function() {
var disj = null;
var disj__1 = function(coll) {
return coll
};
var disj__2 = function(coll, k) {
return cljs.core._disjoin.call(null, coll, k)
};
var disj__3 = function() {
var G__5386__delegate = function(coll, k, ks) {
while(true) {
var ret = disj.call(null, coll, k);
if(cljs.core.truth_(ks)) {
var G__5387 = ret;
var G__5388 = cljs.core.first.call(null, ks);
var G__5389 = cljs.core.next.call(null, ks);
coll = G__5387;
k = G__5388;
ks = G__5389;
continue
}else {
return ret
}
break
}
};
var G__5386 = function(coll, k, var_args) {
var ks = null;
if(arguments.length > 2) {
ks = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5386__delegate.call(this, coll, k, ks)
};
G__5386.cljs$lang$maxFixedArity = 2;
G__5386.cljs$lang$applyTo = function(arglist__5390) {
var coll = cljs.core.first(arglist__5390);
arglist__5390 = cljs.core.next(arglist__5390);
var k = cljs.core.first(arglist__5390);
var ks = cljs.core.rest(arglist__5390);
return G__5386__delegate(coll, k, ks)
};
G__5386.cljs$core$IFn$_invoke$arity$variadic = G__5386__delegate;
return G__5386
}();
disj = function(coll, k, var_args) {
var ks = var_args;
switch(arguments.length) {
case 1:
return disj__1.call(this, coll);
case 2:
return disj__2.call(this, coll, k);
default:
return disj__3.cljs$core$IFn$_invoke$arity$variadic(coll, k, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
disj.cljs$lang$maxFixedArity = 2;
disj.cljs$lang$applyTo = disj__3.cljs$lang$applyTo;
disj.cljs$core$IFn$_invoke$arity$1 = disj__1;
disj.cljs$core$IFn$_invoke$arity$2 = disj__2;
disj.cljs$core$IFn$_invoke$arity$variadic = disj__3.cljs$core$IFn$_invoke$arity$variadic;
return disj
}();
cljs.core.string_hash_cache = {};
cljs.core.string_hash_cache_count = 0;
cljs.core.add_to_string_hash_cache = function add_to_string_hash_cache(k) {
var h = goog.string.hashCode(k);
cljs.core.string_hash_cache[k] = h;
cljs.core.string_hash_cache_count = cljs.core.string_hash_cache_count + 1;
return h
};
cljs.core.check_string_hash_cache = function check_string_hash_cache(k) {
if(cljs.core.string_hash_cache_count > 255) {
cljs.core.string_hash_cache = {};
cljs.core.string_hash_cache_count = 0
}else {
}
var h = cljs.core.string_hash_cache[k];
if(typeof h === "number") {
return h
}else {
return cljs.core.add_to_string_hash_cache.call(null, k)
}
};
cljs.core.hash = function() {
var hash = null;
var hash__1 = function(o) {
return hash.call(null, o, true)
};
var hash__2 = function(o, check_cache) {
if(function() {
var and__3941__auto__ = goog.isString(o);
if(and__3941__auto__) {
return check_cache
}else {
return and__3941__auto__
}
}()) {
return cljs.core.check_string_hash_cache.call(null, o)
}else {
return cljs.core._hash.call(null, o)
}
};
hash = function(o, check_cache) {
switch(arguments.length) {
case 1:
return hash__1.call(this, o);
case 2:
return hash__2.call(this, o, check_cache)
}
throw new Error("Invalid arity: " + arguments.length);
};
hash.cljs$core$IFn$_invoke$arity$1 = hash__1;
hash.cljs$core$IFn$_invoke$arity$2 = hash__2;
return hash
}();
cljs.core.empty_QMARK_ = function empty_QMARK_(coll) {
var or__3943__auto__ = coll == null;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return cljs.core.not.call(null, cljs.core.seq.call(null, coll))
}
};
cljs.core.coll_QMARK_ = function coll_QMARK_(x) {
if(x == null) {
return false
}else {
var G__5392 = x;
if(G__5392) {
if(function() {
var or__3943__auto__ = G__5392.cljs$lang$protocol_mask$partition0$ & 8;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5392.cljs$core$ICollection$
}
}()) {
return true
}else {
if(!G__5392.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ICollection, G__5392)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ICollection, G__5392)
}
}
};
cljs.core.set_QMARK_ = function set_QMARK_(x) {
if(x == null) {
return false
}else {
var G__5394 = x;
if(G__5394) {
if(function() {
var or__3943__auto__ = G__5394.cljs$lang$protocol_mask$partition0$ & 4096;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5394.cljs$core$ISet$
}
}()) {
return true
}else {
if(!G__5394.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISet, G__5394)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISet, G__5394)
}
}
};
cljs.core.associative_QMARK_ = function associative_QMARK_(x) {
var G__5396 = x;
if(G__5396) {
if(function() {
var or__3943__auto__ = G__5396.cljs$lang$protocol_mask$partition0$ & 512;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5396.cljs$core$IAssociative$
}
}()) {
return true
}else {
if(!G__5396.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IAssociative, G__5396)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IAssociative, G__5396)
}
};
cljs.core.sequential_QMARK_ = function sequential_QMARK_(x) {
var G__5398 = x;
if(G__5398) {
if(function() {
var or__3943__auto__ = G__5398.cljs$lang$protocol_mask$partition0$ & 16777216;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5398.cljs$core$ISequential$
}
}()) {
return true
}else {
if(!G__5398.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISequential, G__5398)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISequential, G__5398)
}
};
cljs.core.reduceable_QMARK_ = function reduceable_QMARK_(x) {
var G__5400 = x;
if(G__5400) {
if(function() {
var or__3943__auto__ = G__5400.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5400.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__5400.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__5400)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__5400)
}
};
cljs.core.map_QMARK_ = function map_QMARK_(x) {
if(x == null) {
return false
}else {
var G__5402 = x;
if(G__5402) {
if(function() {
var or__3943__auto__ = G__5402.cljs$lang$protocol_mask$partition0$ & 1024;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5402.cljs$core$IMap$
}
}()) {
return true
}else {
if(!G__5402.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMap, G__5402)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMap, G__5402)
}
}
};
cljs.core.vector_QMARK_ = function vector_QMARK_(x) {
var G__5404 = x;
if(G__5404) {
if(function() {
var or__3943__auto__ = G__5404.cljs$lang$protocol_mask$partition0$ & 16384;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5404.cljs$core$IVector$
}
}()) {
return true
}else {
if(!G__5404.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IVector, G__5404)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IVector, G__5404)
}
};
cljs.core.chunked_seq_QMARK_ = function chunked_seq_QMARK_(x) {
var or__3943__auto__ = x instanceof cljs.core.ChunkedCons;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return x instanceof cljs.core.ChunkedSeq
}
};
cljs.core.js_obj = function() {
var js_obj = null;
var js_obj__0 = function() {
return{}
};
var js_obj__1 = function() {
var G__5405__delegate = function(keyvals) {
return cljs.core.apply.call(null, goog.object.create, keyvals)
};
var G__5405 = function(var_args) {
var keyvals = null;
if(arguments.length > 0) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5405__delegate.call(this, keyvals)
};
G__5405.cljs$lang$maxFixedArity = 0;
G__5405.cljs$lang$applyTo = function(arglist__5406) {
var keyvals = cljs.core.seq(arglist__5406);
return G__5405__delegate(keyvals)
};
G__5405.cljs$core$IFn$_invoke$arity$variadic = G__5405__delegate;
return G__5405
}();
js_obj = function(var_args) {
var keyvals = var_args;
switch(arguments.length) {
case 0:
return js_obj__0.call(this);
default:
return js_obj__1.cljs$core$IFn$_invoke$arity$variadic(cljs.core.array_seq(arguments, 0))
}
throw new Error("Invalid arity: " + arguments.length);
};
js_obj.cljs$lang$maxFixedArity = 0;
js_obj.cljs$lang$applyTo = js_obj__1.cljs$lang$applyTo;
js_obj.cljs$core$IFn$_invoke$arity$0 = js_obj__0;
js_obj.cljs$core$IFn$_invoke$arity$variadic = js_obj__1.cljs$core$IFn$_invoke$arity$variadic;
return js_obj
}();
cljs.core.js_keys = function js_keys(obj) {
var keys = [];
goog.object.forEach(obj, function(val, key, obj__$1) {
return keys.push(key)
});
return keys
};
cljs.core.js_delete = function js_delete(obj, key) {
return delete obj[key]
};
cljs.core.array_copy = function array_copy(from, i, to, j, len) {
var i__$1 = i;
var j__$1 = j;
var len__$1 = len;
while(true) {
if(len__$1 === 0) {
return to
}else {
to[j__$1] = from[i__$1];
var G__5407 = i__$1 + 1;
var G__5408 = j__$1 + 1;
var G__5409 = len__$1 - 1;
i__$1 = G__5407;
j__$1 = G__5408;
len__$1 = G__5409;
continue
}
break
}
};
cljs.core.array_copy_downward = function array_copy_downward(from, i, to, j, len) {
var i__$1 = i + (len - 1);
var j__$1 = j + (len - 1);
var len__$1 = len;
while(true) {
if(len__$1 === 0) {
return to
}else {
to[j__$1] = from[i__$1];
var G__5410 = i__$1 - 1;
var G__5411 = j__$1 - 1;
var G__5412 = len__$1 - 1;
i__$1 = G__5410;
j__$1 = G__5411;
len__$1 = G__5412;
continue
}
break
}
};
cljs.core.lookup_sentinel = {};
cljs.core.false_QMARK_ = function false_QMARK_(x) {
return x === false
};
cljs.core.true_QMARK_ = function true_QMARK_(x) {
return x === true
};
cljs.core.undefined_QMARK_ = function undefined_QMARK_(x) {
return void 0 === x
};
cljs.core.seq_QMARK_ = function seq_QMARK_(s) {
if(s == null) {
return false
}else {
var G__5414 = s;
if(G__5414) {
if(function() {
var or__3943__auto__ = G__5414.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5414.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__5414.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__5414)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__5414)
}
}
};
cljs.core.seqable_QMARK_ = function seqable_QMARK_(s) {
var G__5416 = s;
if(G__5416) {
if(function() {
var or__3943__auto__ = G__5416.cljs$lang$protocol_mask$partition0$ & 8388608;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5416.cljs$core$ISeqable$
}
}()) {
return true
}else {
if(!G__5416.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeqable, G__5416)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeqable, G__5416)
}
};
cljs.core.boolean$ = function boolean$(x) {
if(cljs.core.truth_(x)) {
return true
}else {
return false
}
};
cljs.core.keyword_QMARK_ = function keyword_QMARK_(x) {
var and__3941__auto__ = goog.isString(x);
if(and__3941__auto__) {
return x.charAt(0) === "\ufdd0"
}else {
return and__3941__auto__
}
};
cljs.core.ifn_QMARK_ = function ifn_QMARK_(f) {
var or__3943__auto__ = cljs.core.fn_QMARK_.call(null, f);
if(or__3943__auto__) {
return or__3943__auto__
}else {
var G__5418 = f;
if(G__5418) {
if(function() {
var or__3943__auto____$1 = G__5418.cljs$lang$protocol_mask$partition0$ & 1;
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
return G__5418.cljs$core$IFn$
}
}()) {
return true
}else {
if(!G__5418.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IFn, G__5418)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IFn, G__5418)
}
}
};
cljs.core.integer_QMARK_ = function integer_QMARK_(n) {
var and__3941__auto__ = typeof n === "number";
if(and__3941__auto__) {
var and__3941__auto____$1 = !isNaN(n);
if(and__3941__auto____$1) {
var and__3941__auto____$2 = !(n === Infinity);
if(and__3941__auto____$2) {
return parseFloat(n) === parseInt(n, 10)
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
};
cljs.core.contains_QMARK_ = function contains_QMARK_(coll, v) {
if(cljs.core.get.call(null, coll, v, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return false
}else {
return true
}
};
cljs.core.find = function find(coll, k) {
if(function() {
var and__3941__auto__ = !(coll == null);
if(and__3941__auto__) {
var and__3941__auto____$1 = cljs.core.associative_QMARK_.call(null, coll);
if(and__3941__auto____$1) {
return cljs.core.contains_QMARK_.call(null, coll, k)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}()) {
return cljs.core.PersistentVector.fromArray([k, cljs.core.get.call(null, coll, k)], true)
}else {
return null
}
};
cljs.core.distinct_QMARK_ = function() {
var distinct_QMARK_ = null;
var distinct_QMARK___1 = function(x) {
return true
};
var distinct_QMARK___2 = function(x, y) {
return!cljs.core._EQ_.call(null, x, y)
};
var distinct_QMARK___3 = function() {
var G__5419__delegate = function(x, y, more) {
if(!cljs.core._EQ_.call(null, x, y)) {
var s = cljs.core.PersistentHashSet.fromArray([y, null, x, null], true);
var xs = more;
while(true) {
var x__$1 = cljs.core.first.call(null, xs);
var etc = cljs.core.next.call(null, xs);
if(cljs.core.truth_(xs)) {
if(cljs.core.contains_QMARK_.call(null, s, x__$1)) {
return false
}else {
var G__5420 = cljs.core.conj.call(null, s, x__$1);
var G__5421 = etc;
s = G__5420;
xs = G__5421;
continue
}
}else {
return true
}
break
}
}else {
return false
}
};
var G__5419 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5419__delegate.call(this, x, y, more)
};
G__5419.cljs$lang$maxFixedArity = 2;
G__5419.cljs$lang$applyTo = function(arglist__5422) {
var x = cljs.core.first(arglist__5422);
arglist__5422 = cljs.core.next(arglist__5422);
var y = cljs.core.first(arglist__5422);
var more = cljs.core.rest(arglist__5422);
return G__5419__delegate(x, y, more)
};
G__5419.cljs$core$IFn$_invoke$arity$variadic = G__5419__delegate;
return G__5419
}();
distinct_QMARK_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return distinct_QMARK___1.call(this, x);
case 2:
return distinct_QMARK___2.call(this, x, y);
default:
return distinct_QMARK___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
distinct_QMARK_.cljs$lang$maxFixedArity = 2;
distinct_QMARK_.cljs$lang$applyTo = distinct_QMARK___3.cljs$lang$applyTo;
distinct_QMARK_.cljs$core$IFn$_invoke$arity$1 = distinct_QMARK___1;
distinct_QMARK_.cljs$core$IFn$_invoke$arity$2 = distinct_QMARK___2;
distinct_QMARK_.cljs$core$IFn$_invoke$arity$variadic = distinct_QMARK___3.cljs$core$IFn$_invoke$arity$variadic;
return distinct_QMARK_
}();
cljs.core.compare = function compare(x, y) {
if(x === y) {
return 0
}else {
if(x == null) {
return-1
}else {
if(y == null) {
return 1
}else {
if(cljs.core.type.call(null, x) === cljs.core.type.call(null, y)) {
if(function() {
var G__5424 = x;
if(G__5424) {
if(function() {
var or__3943__auto__ = G__5424.cljs$lang$protocol_mask$partition1$ & 2048;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5424.cljs$core$IComparable$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._compare.call(null, x, y)
}else {
return goog.array.defaultCompare(x, y)
}
}else {
if("\ufdd0:else") {
throw new Error("compare on non-nil objects of different types");
}else {
return null
}
}
}
}
}
};
cljs.core.compare_indexed = function() {
var compare_indexed = null;
var compare_indexed__2 = function(xs, ys) {
var xl = cljs.core.count.call(null, xs);
var yl = cljs.core.count.call(null, ys);
if(xl < yl) {
return-1
}else {
if(xl > yl) {
return 1
}else {
if("\ufdd0:else") {
return compare_indexed.call(null, xs, ys, xl, 0)
}else {
return null
}
}
}
};
var compare_indexed__4 = function(xs, ys, len, n) {
while(true) {
var d = cljs.core.compare.call(null, cljs.core.nth.call(null, xs, n), cljs.core.nth.call(null, ys, n));
if(function() {
var and__3941__auto__ = d === 0;
if(and__3941__auto__) {
return n + 1 < len
}else {
return and__3941__auto__
}
}()) {
var G__5425 = xs;
var G__5426 = ys;
var G__5427 = len;
var G__5428 = n + 1;
xs = G__5425;
ys = G__5426;
len = G__5427;
n = G__5428;
continue
}else {
return d
}
break
}
};
compare_indexed = function(xs, ys, len, n) {
switch(arguments.length) {
case 2:
return compare_indexed__2.call(this, xs, ys);
case 4:
return compare_indexed__4.call(this, xs, ys, len, n)
}
throw new Error("Invalid arity: " + arguments.length);
};
compare_indexed.cljs$core$IFn$_invoke$arity$2 = compare_indexed__2;
compare_indexed.cljs$core$IFn$_invoke$arity$4 = compare_indexed__4;
return compare_indexed
}();
cljs.core.fn__GT_comparator = function fn__GT_comparator(f) {
if(cljs.core._EQ_.call(null, f, cljs.core.compare)) {
return cljs.core.compare
}else {
return function(x, y) {
var r = f.call(null, x, y);
if(typeof r === "number") {
return r
}else {
if(cljs.core.truth_(r)) {
return-1
}else {
if(cljs.core.truth_(f.call(null, y, x))) {
return 1
}else {
return 0
}
}
}
}
}
};
cljs.core.sort = function() {
var sort = null;
var sort__1 = function(coll) {
return sort.call(null, cljs.core.compare, coll)
};
var sort__2 = function(comp, coll) {
if(cljs.core.seq.call(null, coll)) {
var a = cljs.core.to_array.call(null, coll);
goog.array.stableSort(a, cljs.core.fn__GT_comparator.call(null, comp));
return cljs.core.seq.call(null, a)
}else {
return cljs.core.List.EMPTY
}
};
sort = function(comp, coll) {
switch(arguments.length) {
case 1:
return sort__1.call(this, comp);
case 2:
return sort__2.call(this, comp, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
sort.cljs$core$IFn$_invoke$arity$1 = sort__1;
sort.cljs$core$IFn$_invoke$arity$2 = sort__2;
return sort
}();
cljs.core.sort_by = function() {
var sort_by = null;
var sort_by__2 = function(keyfn, coll) {
return sort_by.call(null, keyfn, cljs.core.compare, coll)
};
var sort_by__3 = function(keyfn, comp, coll) {
return cljs.core.sort.call(null, function(x, y) {
return cljs.core.fn__GT_comparator.call(null, comp).call(null, keyfn.call(null, x), keyfn.call(null, y))
}, coll)
};
sort_by = function(keyfn, comp, coll) {
switch(arguments.length) {
case 2:
return sort_by__2.call(this, keyfn, comp);
case 3:
return sort_by__3.call(this, keyfn, comp, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
sort_by.cljs$core$IFn$_invoke$arity$2 = sort_by__2;
sort_by.cljs$core$IFn$_invoke$arity$3 = sort_by__3;
return sort_by
}();
cljs.core.seq_reduce = function() {
var seq_reduce = null;
var seq_reduce__2 = function(f, coll) {
var temp__4090__auto__ = cljs.core.seq.call(null, coll);
if(temp__4090__auto__) {
var s = temp__4090__auto__;
return cljs.core.reduce.call(null, f, cljs.core.first.call(null, s), cljs.core.next.call(null, s))
}else {
return f.call(null)
}
};
var seq_reduce__3 = function(f, val, coll) {
var val__$1 = val;
var coll__$1 = cljs.core.seq.call(null, coll);
while(true) {
if(coll__$1) {
var nval = f.call(null, val__$1, cljs.core.first.call(null, coll__$1));
if(cljs.core.reduced_QMARK_.call(null, nval)) {
return cljs.core.deref.call(null, nval)
}else {
var G__5429 = nval;
var G__5430 = cljs.core.next.call(null, coll__$1);
val__$1 = G__5429;
coll__$1 = G__5430;
continue
}
}else {
return val__$1
}
break
}
};
seq_reduce = function(f, val, coll) {
switch(arguments.length) {
case 2:
return seq_reduce__2.call(this, f, val);
case 3:
return seq_reduce__3.call(this, f, val, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
seq_reduce.cljs$core$IFn$_invoke$arity$2 = seq_reduce__2;
seq_reduce.cljs$core$IFn$_invoke$arity$3 = seq_reduce__3;
return seq_reduce
}();
cljs.core.shuffle = function shuffle(coll) {
var a = cljs.core.to_array.call(null, coll);
goog.array.shuffle(a);
return cljs.core.vec.call(null, a)
};
cljs.core.reduce = function() {
var reduce = null;
var reduce__2 = function(f, coll) {
if(function() {
var G__5433 = coll;
if(G__5433) {
if(function() {
var or__3943__auto__ = G__5433.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5433.cljs$core$IReduce$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._reduce.call(null, coll, f)
}else {
if(coll instanceof Array) {
return cljs.core.array_reduce.call(null, coll, f)
}else {
if(cljs.core.string_QMARK_.call(null, coll)) {
return cljs.core.array_reduce.call(null, coll, f)
}else {
if(cljs.core.type_satisfies_.call(null, cljs.core.IReduce, coll)) {
return cljs.core._reduce.call(null, coll, f)
}else {
if("\ufdd0:else") {
return cljs.core.seq_reduce.call(null, f, coll)
}else {
return null
}
}
}
}
}
};
var reduce__3 = function(f, val, coll) {
if(function() {
var G__5434 = coll;
if(G__5434) {
if(function() {
var or__3943__auto__ = G__5434.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5434.cljs$core$IReduce$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._reduce.call(null, coll, f, val)
}else {
if(coll instanceof Array) {
return cljs.core.array_reduce.call(null, coll, f, val)
}else {
if(cljs.core.string_QMARK_.call(null, coll)) {
return cljs.core.array_reduce.call(null, coll, f, val)
}else {
if(cljs.core.type_satisfies_.call(null, cljs.core.IReduce, coll)) {
return cljs.core._reduce.call(null, coll, f, val)
}else {
if("\ufdd0:else") {
return cljs.core.seq_reduce.call(null, f, val, coll)
}else {
return null
}
}
}
}
}
};
reduce = function(f, val, coll) {
switch(arguments.length) {
case 2:
return reduce__2.call(this, f, val);
case 3:
return reduce__3.call(this, f, val, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
reduce.cljs$core$IFn$_invoke$arity$2 = reduce__2;
reduce.cljs$core$IFn$_invoke$arity$3 = reduce__3;
return reduce
}();
cljs.core.reduce_kv = function reduce_kv(f, init, coll) {
return cljs.core._kv_reduce.call(null, coll, f, init)
};
cljs.core._PLUS_ = function() {
var _PLUS_ = null;
var _PLUS___0 = function() {
return 0
};
var _PLUS___1 = function(x) {
return x
};
var _PLUS___2 = function(x, y) {
return x + y
};
var _PLUS___3 = function() {
var G__5435__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _PLUS_, x + y, more)
};
var G__5435 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5435__delegate.call(this, x, y, more)
};
G__5435.cljs$lang$maxFixedArity = 2;
G__5435.cljs$lang$applyTo = function(arglist__5436) {
var x = cljs.core.first(arglist__5436);
arglist__5436 = cljs.core.next(arglist__5436);
var y = cljs.core.first(arglist__5436);
var more = cljs.core.rest(arglist__5436);
return G__5435__delegate(x, y, more)
};
G__5435.cljs$core$IFn$_invoke$arity$variadic = G__5435__delegate;
return G__5435
}();
_PLUS_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return _PLUS___0.call(this);
case 1:
return _PLUS___1.call(this, x);
case 2:
return _PLUS___2.call(this, x, y);
default:
return _PLUS___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_PLUS_.cljs$lang$maxFixedArity = 2;
_PLUS_.cljs$lang$applyTo = _PLUS___3.cljs$lang$applyTo;
_PLUS_.cljs$core$IFn$_invoke$arity$0 = _PLUS___0;
_PLUS_.cljs$core$IFn$_invoke$arity$1 = _PLUS___1;
_PLUS_.cljs$core$IFn$_invoke$arity$2 = _PLUS___2;
_PLUS_.cljs$core$IFn$_invoke$arity$variadic = _PLUS___3.cljs$core$IFn$_invoke$arity$variadic;
return _PLUS_
}();
cljs.core._ = function() {
var _ = null;
var ___1 = function(x) {
return-x
};
var ___2 = function(x, y) {
return x - y
};
var ___3 = function() {
var G__5437__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _, x - y, more)
};
var G__5437 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5437__delegate.call(this, x, y, more)
};
G__5437.cljs$lang$maxFixedArity = 2;
G__5437.cljs$lang$applyTo = function(arglist__5438) {
var x = cljs.core.first(arglist__5438);
arglist__5438 = cljs.core.next(arglist__5438);
var y = cljs.core.first(arglist__5438);
var more = cljs.core.rest(arglist__5438);
return G__5437__delegate(x, y, more)
};
G__5437.cljs$core$IFn$_invoke$arity$variadic = G__5437__delegate;
return G__5437
}();
_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return ___1.call(this, x);
case 2:
return ___2.call(this, x, y);
default:
return ___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_.cljs$lang$maxFixedArity = 2;
_.cljs$lang$applyTo = ___3.cljs$lang$applyTo;
_.cljs$core$IFn$_invoke$arity$1 = ___1;
_.cljs$core$IFn$_invoke$arity$2 = ___2;
_.cljs$core$IFn$_invoke$arity$variadic = ___3.cljs$core$IFn$_invoke$arity$variadic;
return _
}();
cljs.core._STAR_ = function() {
var _STAR_ = null;
var _STAR___0 = function() {
return 1
};
var _STAR___1 = function(x) {
return x
};
var _STAR___2 = function(x, y) {
return x * y
};
var _STAR___3 = function() {
var G__5439__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _STAR_, x * y, more)
};
var G__5439 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5439__delegate.call(this, x, y, more)
};
G__5439.cljs$lang$maxFixedArity = 2;
G__5439.cljs$lang$applyTo = function(arglist__5440) {
var x = cljs.core.first(arglist__5440);
arglist__5440 = cljs.core.next(arglist__5440);
var y = cljs.core.first(arglist__5440);
var more = cljs.core.rest(arglist__5440);
return G__5439__delegate(x, y, more)
};
G__5439.cljs$core$IFn$_invoke$arity$variadic = G__5439__delegate;
return G__5439
}();
_STAR_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return _STAR___0.call(this);
case 1:
return _STAR___1.call(this, x);
case 2:
return _STAR___2.call(this, x, y);
default:
return _STAR___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_STAR_.cljs$lang$maxFixedArity = 2;
_STAR_.cljs$lang$applyTo = _STAR___3.cljs$lang$applyTo;
_STAR_.cljs$core$IFn$_invoke$arity$0 = _STAR___0;
_STAR_.cljs$core$IFn$_invoke$arity$1 = _STAR___1;
_STAR_.cljs$core$IFn$_invoke$arity$2 = _STAR___2;
_STAR_.cljs$core$IFn$_invoke$arity$variadic = _STAR___3.cljs$core$IFn$_invoke$arity$variadic;
return _STAR_
}();
cljs.core._SLASH_ = function() {
var _SLASH_ = null;
var _SLASH___1 = function(x) {
return _SLASH_.call(null, 1, x)
};
var _SLASH___2 = function(x, y) {
return x / y
};
var _SLASH___3 = function() {
var G__5441__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _SLASH_, _SLASH_.call(null, x, y), more)
};
var G__5441 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5441__delegate.call(this, x, y, more)
};
G__5441.cljs$lang$maxFixedArity = 2;
G__5441.cljs$lang$applyTo = function(arglist__5442) {
var x = cljs.core.first(arglist__5442);
arglist__5442 = cljs.core.next(arglist__5442);
var y = cljs.core.first(arglist__5442);
var more = cljs.core.rest(arglist__5442);
return G__5441__delegate(x, y, more)
};
G__5441.cljs$core$IFn$_invoke$arity$variadic = G__5441__delegate;
return G__5441
}();
_SLASH_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _SLASH___1.call(this, x);
case 2:
return _SLASH___2.call(this, x, y);
default:
return _SLASH___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_SLASH_.cljs$lang$maxFixedArity = 2;
_SLASH_.cljs$lang$applyTo = _SLASH___3.cljs$lang$applyTo;
_SLASH_.cljs$core$IFn$_invoke$arity$1 = _SLASH___1;
_SLASH_.cljs$core$IFn$_invoke$arity$2 = _SLASH___2;
_SLASH_.cljs$core$IFn$_invoke$arity$variadic = _SLASH___3.cljs$core$IFn$_invoke$arity$variadic;
return _SLASH_
}();
cljs.core._LT_ = function() {
var _LT_ = null;
var _LT___1 = function(x) {
return true
};
var _LT___2 = function(x, y) {
return x < y
};
var _LT___3 = function() {
var G__5443__delegate = function(x, y, more) {
while(true) {
if(x < y) {
if(cljs.core.next.call(null, more)) {
var G__5444 = y;
var G__5445 = cljs.core.first.call(null, more);
var G__5446 = cljs.core.next.call(null, more);
x = G__5444;
y = G__5445;
more = G__5446;
continue
}else {
return y < cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__5443 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5443__delegate.call(this, x, y, more)
};
G__5443.cljs$lang$maxFixedArity = 2;
G__5443.cljs$lang$applyTo = function(arglist__5447) {
var x = cljs.core.first(arglist__5447);
arglist__5447 = cljs.core.next(arglist__5447);
var y = cljs.core.first(arglist__5447);
var more = cljs.core.rest(arglist__5447);
return G__5443__delegate(x, y, more)
};
G__5443.cljs$core$IFn$_invoke$arity$variadic = G__5443__delegate;
return G__5443
}();
_LT_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _LT___1.call(this, x);
case 2:
return _LT___2.call(this, x, y);
default:
return _LT___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_LT_.cljs$lang$maxFixedArity = 2;
_LT_.cljs$lang$applyTo = _LT___3.cljs$lang$applyTo;
_LT_.cljs$core$IFn$_invoke$arity$1 = _LT___1;
_LT_.cljs$core$IFn$_invoke$arity$2 = _LT___2;
_LT_.cljs$core$IFn$_invoke$arity$variadic = _LT___3.cljs$core$IFn$_invoke$arity$variadic;
return _LT_
}();
cljs.core._LT__EQ_ = function() {
var _LT__EQ_ = null;
var _LT__EQ___1 = function(x) {
return true
};
var _LT__EQ___2 = function(x, y) {
return x <= y
};
var _LT__EQ___3 = function() {
var G__5448__delegate = function(x, y, more) {
while(true) {
if(x <= y) {
if(cljs.core.next.call(null, more)) {
var G__5449 = y;
var G__5450 = cljs.core.first.call(null, more);
var G__5451 = cljs.core.next.call(null, more);
x = G__5449;
y = G__5450;
more = G__5451;
continue
}else {
return y <= cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__5448 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5448__delegate.call(this, x, y, more)
};
G__5448.cljs$lang$maxFixedArity = 2;
G__5448.cljs$lang$applyTo = function(arglist__5452) {
var x = cljs.core.first(arglist__5452);
arglist__5452 = cljs.core.next(arglist__5452);
var y = cljs.core.first(arglist__5452);
var more = cljs.core.rest(arglist__5452);
return G__5448__delegate(x, y, more)
};
G__5448.cljs$core$IFn$_invoke$arity$variadic = G__5448__delegate;
return G__5448
}();
_LT__EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _LT__EQ___1.call(this, x);
case 2:
return _LT__EQ___2.call(this, x, y);
default:
return _LT__EQ___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_LT__EQ_.cljs$lang$maxFixedArity = 2;
_LT__EQ_.cljs$lang$applyTo = _LT__EQ___3.cljs$lang$applyTo;
_LT__EQ_.cljs$core$IFn$_invoke$arity$1 = _LT__EQ___1;
_LT__EQ_.cljs$core$IFn$_invoke$arity$2 = _LT__EQ___2;
_LT__EQ_.cljs$core$IFn$_invoke$arity$variadic = _LT__EQ___3.cljs$core$IFn$_invoke$arity$variadic;
return _LT__EQ_
}();
cljs.core._GT_ = function() {
var _GT_ = null;
var _GT___1 = function(x) {
return true
};
var _GT___2 = function(x, y) {
return x > y
};
var _GT___3 = function() {
var G__5453__delegate = function(x, y, more) {
while(true) {
if(x > y) {
if(cljs.core.next.call(null, more)) {
var G__5454 = y;
var G__5455 = cljs.core.first.call(null, more);
var G__5456 = cljs.core.next.call(null, more);
x = G__5454;
y = G__5455;
more = G__5456;
continue
}else {
return y > cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__5453 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5453__delegate.call(this, x, y, more)
};
G__5453.cljs$lang$maxFixedArity = 2;
G__5453.cljs$lang$applyTo = function(arglist__5457) {
var x = cljs.core.first(arglist__5457);
arglist__5457 = cljs.core.next(arglist__5457);
var y = cljs.core.first(arglist__5457);
var more = cljs.core.rest(arglist__5457);
return G__5453__delegate(x, y, more)
};
G__5453.cljs$core$IFn$_invoke$arity$variadic = G__5453__delegate;
return G__5453
}();
_GT_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _GT___1.call(this, x);
case 2:
return _GT___2.call(this, x, y);
default:
return _GT___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_GT_.cljs$lang$maxFixedArity = 2;
_GT_.cljs$lang$applyTo = _GT___3.cljs$lang$applyTo;
_GT_.cljs$core$IFn$_invoke$arity$1 = _GT___1;
_GT_.cljs$core$IFn$_invoke$arity$2 = _GT___2;
_GT_.cljs$core$IFn$_invoke$arity$variadic = _GT___3.cljs$core$IFn$_invoke$arity$variadic;
return _GT_
}();
cljs.core._GT__EQ_ = function() {
var _GT__EQ_ = null;
var _GT__EQ___1 = function(x) {
return true
};
var _GT__EQ___2 = function(x, y) {
return x >= y
};
var _GT__EQ___3 = function() {
var G__5458__delegate = function(x, y, more) {
while(true) {
if(x >= y) {
if(cljs.core.next.call(null, more)) {
var G__5459 = y;
var G__5460 = cljs.core.first.call(null, more);
var G__5461 = cljs.core.next.call(null, more);
x = G__5459;
y = G__5460;
more = G__5461;
continue
}else {
return y >= cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__5458 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5458__delegate.call(this, x, y, more)
};
G__5458.cljs$lang$maxFixedArity = 2;
G__5458.cljs$lang$applyTo = function(arglist__5462) {
var x = cljs.core.first(arglist__5462);
arglist__5462 = cljs.core.next(arglist__5462);
var y = cljs.core.first(arglist__5462);
var more = cljs.core.rest(arglist__5462);
return G__5458__delegate(x, y, more)
};
G__5458.cljs$core$IFn$_invoke$arity$variadic = G__5458__delegate;
return G__5458
}();
_GT__EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _GT__EQ___1.call(this, x);
case 2:
return _GT__EQ___2.call(this, x, y);
default:
return _GT__EQ___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_GT__EQ_.cljs$lang$maxFixedArity = 2;
_GT__EQ_.cljs$lang$applyTo = _GT__EQ___3.cljs$lang$applyTo;
_GT__EQ_.cljs$core$IFn$_invoke$arity$1 = _GT__EQ___1;
_GT__EQ_.cljs$core$IFn$_invoke$arity$2 = _GT__EQ___2;
_GT__EQ_.cljs$core$IFn$_invoke$arity$variadic = _GT__EQ___3.cljs$core$IFn$_invoke$arity$variadic;
return _GT__EQ_
}();
cljs.core.dec = function dec(x) {
return x - 1
};
cljs.core.max = function() {
var max = null;
var max__1 = function(x) {
return x
};
var max__2 = function(x, y) {
return x > y ? x : y
};
var max__3 = function() {
var G__5463__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, max, x > y ? x : y, more)
};
var G__5463 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5463__delegate.call(this, x, y, more)
};
G__5463.cljs$lang$maxFixedArity = 2;
G__5463.cljs$lang$applyTo = function(arglist__5464) {
var x = cljs.core.first(arglist__5464);
arglist__5464 = cljs.core.next(arglist__5464);
var y = cljs.core.first(arglist__5464);
var more = cljs.core.rest(arglist__5464);
return G__5463__delegate(x, y, more)
};
G__5463.cljs$core$IFn$_invoke$arity$variadic = G__5463__delegate;
return G__5463
}();
max = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return max__1.call(this, x);
case 2:
return max__2.call(this, x, y);
default:
return max__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
max.cljs$lang$maxFixedArity = 2;
max.cljs$lang$applyTo = max__3.cljs$lang$applyTo;
max.cljs$core$IFn$_invoke$arity$1 = max__1;
max.cljs$core$IFn$_invoke$arity$2 = max__2;
max.cljs$core$IFn$_invoke$arity$variadic = max__3.cljs$core$IFn$_invoke$arity$variadic;
return max
}();
cljs.core.min = function() {
var min = null;
var min__1 = function(x) {
return x
};
var min__2 = function(x, y) {
return x < y ? x : y
};
var min__3 = function() {
var G__5465__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, min, x < y ? x : y, more)
};
var G__5465 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5465__delegate.call(this, x, y, more)
};
G__5465.cljs$lang$maxFixedArity = 2;
G__5465.cljs$lang$applyTo = function(arglist__5466) {
var x = cljs.core.first(arglist__5466);
arglist__5466 = cljs.core.next(arglist__5466);
var y = cljs.core.first(arglist__5466);
var more = cljs.core.rest(arglist__5466);
return G__5465__delegate(x, y, more)
};
G__5465.cljs$core$IFn$_invoke$arity$variadic = G__5465__delegate;
return G__5465
}();
min = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return min__1.call(this, x);
case 2:
return min__2.call(this, x, y);
default:
return min__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
min.cljs$lang$maxFixedArity = 2;
min.cljs$lang$applyTo = min__3.cljs$lang$applyTo;
min.cljs$core$IFn$_invoke$arity$1 = min__1;
min.cljs$core$IFn$_invoke$arity$2 = min__2;
min.cljs$core$IFn$_invoke$arity$variadic = min__3.cljs$core$IFn$_invoke$arity$variadic;
return min
}();
cljs.core.byte$ = function byte$(x) {
return x
};
cljs.core.char$ = function char$(x) {
if(typeof x === "number") {
return String.fromCharCode(x)
}else {
if(function() {
var and__3941__auto__ = cljs.core.string_QMARK_.call(null, x);
if(and__3941__auto__) {
return x.length === 1
}else {
return and__3941__auto__
}
}()) {
return x
}else {
if("\ufdd0:else") {
throw new Error("Argument to char must be a character or number");
}else {
return null
}
}
}
};
cljs.core.short$ = function short$(x) {
return x
};
cljs.core.float$ = function float$(x) {
return x
};
cljs.core.double$ = function double$(x) {
return x
};
cljs.core.unchecked_byte = function unchecked_byte(x) {
return x
};
cljs.core.unchecked_char = function unchecked_char(x) {
return x
};
cljs.core.unchecked_short = function unchecked_short(x) {
return x
};
cljs.core.unchecked_float = function unchecked_float(x) {
return x
};
cljs.core.unchecked_double = function unchecked_double(x) {
return x
};
cljs.core.unchecked_add = function() {
var unchecked_add = null;
var unchecked_add__0 = function() {
return 0
};
var unchecked_add__1 = function(x) {
return x
};
var unchecked_add__2 = function(x, y) {
return x + y
};
var unchecked_add__3 = function() {
var G__5467__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_add, x + y, more)
};
var G__5467 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5467__delegate.call(this, x, y, more)
};
G__5467.cljs$lang$maxFixedArity = 2;
G__5467.cljs$lang$applyTo = function(arglist__5468) {
var x = cljs.core.first(arglist__5468);
arglist__5468 = cljs.core.next(arglist__5468);
var y = cljs.core.first(arglist__5468);
var more = cljs.core.rest(arglist__5468);
return G__5467__delegate(x, y, more)
};
G__5467.cljs$core$IFn$_invoke$arity$variadic = G__5467__delegate;
return G__5467
}();
unchecked_add = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return unchecked_add__0.call(this);
case 1:
return unchecked_add__1.call(this, x);
case 2:
return unchecked_add__2.call(this, x, y);
default:
return unchecked_add__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_add.cljs$lang$maxFixedArity = 2;
unchecked_add.cljs$lang$applyTo = unchecked_add__3.cljs$lang$applyTo;
unchecked_add.cljs$core$IFn$_invoke$arity$0 = unchecked_add__0;
unchecked_add.cljs$core$IFn$_invoke$arity$1 = unchecked_add__1;
unchecked_add.cljs$core$IFn$_invoke$arity$2 = unchecked_add__2;
unchecked_add.cljs$core$IFn$_invoke$arity$variadic = unchecked_add__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_add
}();
cljs.core.unchecked_add_int = function() {
var unchecked_add_int = null;
var unchecked_add_int__0 = function() {
return 0
};
var unchecked_add_int__1 = function(x) {
return x
};
var unchecked_add_int__2 = function(x, y) {
return x + y
};
var unchecked_add_int__3 = function() {
var G__5469__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_add_int, x + y, more)
};
var G__5469 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5469__delegate.call(this, x, y, more)
};
G__5469.cljs$lang$maxFixedArity = 2;
G__5469.cljs$lang$applyTo = function(arglist__5470) {
var x = cljs.core.first(arglist__5470);
arglist__5470 = cljs.core.next(arglist__5470);
var y = cljs.core.first(arglist__5470);
var more = cljs.core.rest(arglist__5470);
return G__5469__delegate(x, y, more)
};
G__5469.cljs$core$IFn$_invoke$arity$variadic = G__5469__delegate;
return G__5469
}();
unchecked_add_int = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return unchecked_add_int__0.call(this);
case 1:
return unchecked_add_int__1.call(this, x);
case 2:
return unchecked_add_int__2.call(this, x, y);
default:
return unchecked_add_int__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_add_int.cljs$lang$maxFixedArity = 2;
unchecked_add_int.cljs$lang$applyTo = unchecked_add_int__3.cljs$lang$applyTo;
unchecked_add_int.cljs$core$IFn$_invoke$arity$0 = unchecked_add_int__0;
unchecked_add_int.cljs$core$IFn$_invoke$arity$1 = unchecked_add_int__1;
unchecked_add_int.cljs$core$IFn$_invoke$arity$2 = unchecked_add_int__2;
unchecked_add_int.cljs$core$IFn$_invoke$arity$variadic = unchecked_add_int__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_add_int
}();
cljs.core.unchecked_dec = function unchecked_dec(x) {
return x - 1
};
cljs.core.unchecked_dec_int = function unchecked_dec_int(x) {
return x - 1
};
cljs.core.unchecked_divide_int = function() {
var unchecked_divide_int = null;
var unchecked_divide_int__1 = function(x) {
return unchecked_divide_int.call(null, 1, x)
};
var unchecked_divide_int__2 = function(x, y) {
return x / y
};
var unchecked_divide_int__3 = function() {
var G__5471__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_divide_int, unchecked_divide_int.call(null, x, y), more)
};
var G__5471 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5471__delegate.call(this, x, y, more)
};
G__5471.cljs$lang$maxFixedArity = 2;
G__5471.cljs$lang$applyTo = function(arglist__5472) {
var x = cljs.core.first(arglist__5472);
arglist__5472 = cljs.core.next(arglist__5472);
var y = cljs.core.first(arglist__5472);
var more = cljs.core.rest(arglist__5472);
return G__5471__delegate(x, y, more)
};
G__5471.cljs$core$IFn$_invoke$arity$variadic = G__5471__delegate;
return G__5471
}();
unchecked_divide_int = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return unchecked_divide_int__1.call(this, x);
case 2:
return unchecked_divide_int__2.call(this, x, y);
default:
return unchecked_divide_int__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_divide_int.cljs$lang$maxFixedArity = 2;
unchecked_divide_int.cljs$lang$applyTo = unchecked_divide_int__3.cljs$lang$applyTo;
unchecked_divide_int.cljs$core$IFn$_invoke$arity$1 = unchecked_divide_int__1;
unchecked_divide_int.cljs$core$IFn$_invoke$arity$2 = unchecked_divide_int__2;
unchecked_divide_int.cljs$core$IFn$_invoke$arity$variadic = unchecked_divide_int__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_divide_int
}();
cljs.core.unchecked_inc = function unchecked_inc(x) {
return x + 1
};
cljs.core.unchecked_inc_int = function unchecked_inc_int(x) {
return x + 1
};
cljs.core.unchecked_multiply = function() {
var unchecked_multiply = null;
var unchecked_multiply__0 = function() {
return 1
};
var unchecked_multiply__1 = function(x) {
return x
};
var unchecked_multiply__2 = function(x, y) {
return x * y
};
var unchecked_multiply__3 = function() {
var G__5473__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_multiply, x * y, more)
};
var G__5473 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5473__delegate.call(this, x, y, more)
};
G__5473.cljs$lang$maxFixedArity = 2;
G__5473.cljs$lang$applyTo = function(arglist__5474) {
var x = cljs.core.first(arglist__5474);
arglist__5474 = cljs.core.next(arglist__5474);
var y = cljs.core.first(arglist__5474);
var more = cljs.core.rest(arglist__5474);
return G__5473__delegate(x, y, more)
};
G__5473.cljs$core$IFn$_invoke$arity$variadic = G__5473__delegate;
return G__5473
}();
unchecked_multiply = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return unchecked_multiply__0.call(this);
case 1:
return unchecked_multiply__1.call(this, x);
case 2:
return unchecked_multiply__2.call(this, x, y);
default:
return unchecked_multiply__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_multiply.cljs$lang$maxFixedArity = 2;
unchecked_multiply.cljs$lang$applyTo = unchecked_multiply__3.cljs$lang$applyTo;
unchecked_multiply.cljs$core$IFn$_invoke$arity$0 = unchecked_multiply__0;
unchecked_multiply.cljs$core$IFn$_invoke$arity$1 = unchecked_multiply__1;
unchecked_multiply.cljs$core$IFn$_invoke$arity$2 = unchecked_multiply__2;
unchecked_multiply.cljs$core$IFn$_invoke$arity$variadic = unchecked_multiply__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_multiply
}();
cljs.core.unchecked_multiply_int = function() {
var unchecked_multiply_int = null;
var unchecked_multiply_int__0 = function() {
return 1
};
var unchecked_multiply_int__1 = function(x) {
return x
};
var unchecked_multiply_int__2 = function(x, y) {
return x * y
};
var unchecked_multiply_int__3 = function() {
var G__5475__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_multiply_int, x * y, more)
};
var G__5475 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5475__delegate.call(this, x, y, more)
};
G__5475.cljs$lang$maxFixedArity = 2;
G__5475.cljs$lang$applyTo = function(arglist__5476) {
var x = cljs.core.first(arglist__5476);
arglist__5476 = cljs.core.next(arglist__5476);
var y = cljs.core.first(arglist__5476);
var more = cljs.core.rest(arglist__5476);
return G__5475__delegate(x, y, more)
};
G__5475.cljs$core$IFn$_invoke$arity$variadic = G__5475__delegate;
return G__5475
}();
unchecked_multiply_int = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return unchecked_multiply_int__0.call(this);
case 1:
return unchecked_multiply_int__1.call(this, x);
case 2:
return unchecked_multiply_int__2.call(this, x, y);
default:
return unchecked_multiply_int__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_multiply_int.cljs$lang$maxFixedArity = 2;
unchecked_multiply_int.cljs$lang$applyTo = unchecked_multiply_int__3.cljs$lang$applyTo;
unchecked_multiply_int.cljs$core$IFn$_invoke$arity$0 = unchecked_multiply_int__0;
unchecked_multiply_int.cljs$core$IFn$_invoke$arity$1 = unchecked_multiply_int__1;
unchecked_multiply_int.cljs$core$IFn$_invoke$arity$2 = unchecked_multiply_int__2;
unchecked_multiply_int.cljs$core$IFn$_invoke$arity$variadic = unchecked_multiply_int__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_multiply_int
}();
cljs.core.unchecked_negate = function unchecked_negate(x) {
return-x
};
cljs.core.unchecked_negate_int = function unchecked_negate_int(x) {
return-x
};
cljs.core.unchecked_remainder_int = function unchecked_remainder_int(x, n) {
return cljs.core.mod.call(null, x, n)
};
cljs.core.unchecked_substract = function() {
var unchecked_substract = null;
var unchecked_substract__1 = function(x) {
return-x
};
var unchecked_substract__2 = function(x, y) {
return x - y
};
var unchecked_substract__3 = function() {
var G__5477__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_substract, x - y, more)
};
var G__5477 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5477__delegate.call(this, x, y, more)
};
G__5477.cljs$lang$maxFixedArity = 2;
G__5477.cljs$lang$applyTo = function(arglist__5478) {
var x = cljs.core.first(arglist__5478);
arglist__5478 = cljs.core.next(arglist__5478);
var y = cljs.core.first(arglist__5478);
var more = cljs.core.rest(arglist__5478);
return G__5477__delegate(x, y, more)
};
G__5477.cljs$core$IFn$_invoke$arity$variadic = G__5477__delegate;
return G__5477
}();
unchecked_substract = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return unchecked_substract__1.call(this, x);
case 2:
return unchecked_substract__2.call(this, x, y);
default:
return unchecked_substract__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_substract.cljs$lang$maxFixedArity = 2;
unchecked_substract.cljs$lang$applyTo = unchecked_substract__3.cljs$lang$applyTo;
unchecked_substract.cljs$core$IFn$_invoke$arity$1 = unchecked_substract__1;
unchecked_substract.cljs$core$IFn$_invoke$arity$2 = unchecked_substract__2;
unchecked_substract.cljs$core$IFn$_invoke$arity$variadic = unchecked_substract__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_substract
}();
cljs.core.unchecked_substract_int = function() {
var unchecked_substract_int = null;
var unchecked_substract_int__1 = function(x) {
return-x
};
var unchecked_substract_int__2 = function(x, y) {
return x - y
};
var unchecked_substract_int__3 = function() {
var G__5479__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, unchecked_substract_int, x - y, more)
};
var G__5479 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5479__delegate.call(this, x, y, more)
};
G__5479.cljs$lang$maxFixedArity = 2;
G__5479.cljs$lang$applyTo = function(arglist__5480) {
var x = cljs.core.first(arglist__5480);
arglist__5480 = cljs.core.next(arglist__5480);
var y = cljs.core.first(arglist__5480);
var more = cljs.core.rest(arglist__5480);
return G__5479__delegate(x, y, more)
};
G__5479.cljs$core$IFn$_invoke$arity$variadic = G__5479__delegate;
return G__5479
}();
unchecked_substract_int = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return unchecked_substract_int__1.call(this, x);
case 2:
return unchecked_substract_int__2.call(this, x, y);
default:
return unchecked_substract_int__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
unchecked_substract_int.cljs$lang$maxFixedArity = 2;
unchecked_substract_int.cljs$lang$applyTo = unchecked_substract_int__3.cljs$lang$applyTo;
unchecked_substract_int.cljs$core$IFn$_invoke$arity$1 = unchecked_substract_int__1;
unchecked_substract_int.cljs$core$IFn$_invoke$arity$2 = unchecked_substract_int__2;
unchecked_substract_int.cljs$core$IFn$_invoke$arity$variadic = unchecked_substract_int__3.cljs$core$IFn$_invoke$arity$variadic;
return unchecked_substract_int
}();
cljs.core.fix = function fix(q) {
if(q >= 0) {
return Math.floor.call(null, q)
}else {
return Math.ceil.call(null, q)
}
};
cljs.core.int$ = function int$(x) {
return x | 0
};
cljs.core.unchecked_int = function unchecked_int(x) {
return cljs.core.fix.call(null, x)
};
cljs.core.long$ = function long$(x) {
return cljs.core.fix.call(null, x)
};
cljs.core.unchecked_long = function unchecked_long(x) {
return cljs.core.fix.call(null, x)
};
cljs.core.booleans = function booleans(x) {
return x
};
cljs.core.bytes = function bytes(x) {
return x
};
cljs.core.chars = function chars(x) {
return x
};
cljs.core.shorts = function shorts(x) {
return x
};
cljs.core.ints = function ints(x) {
return x
};
cljs.core.floats = function floats(x) {
return x
};
cljs.core.doubles = function doubles(x) {
return x
};
cljs.core.longs = function longs(x) {
return x
};
cljs.core.js_mod = function js_mod(n, d) {
return n % d
};
cljs.core.mod = function mod(n, d) {
return(n % d + d) % d
};
cljs.core.quot = function quot(n, d) {
var rem = n % d;
return cljs.core.fix.call(null, (n - rem) / d)
};
cljs.core.rem = function rem(n, d) {
var q = cljs.core.quot.call(null, n, d);
return n - d * q
};
cljs.core.rand = function() {
var rand = null;
var rand__0 = function() {
return Math.random.call(null)
};
var rand__1 = function(n) {
return n * rand.call(null)
};
rand = function(n) {
switch(arguments.length) {
case 0:
return rand__0.call(this);
case 1:
return rand__1.call(this, n)
}
throw new Error("Invalid arity: " + arguments.length);
};
rand.cljs$core$IFn$_invoke$arity$0 = rand__0;
rand.cljs$core$IFn$_invoke$arity$1 = rand__1;
return rand
}();
cljs.core.rand_int = function rand_int(n) {
return cljs.core.fix.call(null, cljs.core.rand.call(null, n))
};
cljs.core.bit_xor = function bit_xor(x, y) {
return x ^ y
};
cljs.core.bit_and = function bit_and(x, y) {
return x & y
};
cljs.core.bit_or = function bit_or(x, y) {
return x | y
};
cljs.core.bit_and_not = function bit_and_not(x, y) {
return x & ~y
};
cljs.core.bit_clear = function bit_clear(x, n) {
return x & ~(1 << n)
};
cljs.core.bit_flip = function bit_flip(x, n) {
return x ^ 1 << n
};
cljs.core.bit_not = function bit_not(x) {
return~x
};
cljs.core.bit_set = function bit_set(x, n) {
return x | 1 << n
};
cljs.core.bit_test = function bit_test(x, n) {
return(x & 1 << n) != 0
};
cljs.core.bit_shift_left = function bit_shift_left(x, n) {
return x << n
};
cljs.core.bit_shift_right = function bit_shift_right(x, n) {
return x >> n
};
cljs.core.bit_shift_right_zero_fill = function bit_shift_right_zero_fill(x, n) {
return x >>> n
};
cljs.core.bit_count = function bit_count(v) {
var v__$1 = v - (v >> 1 & 1431655765);
var v__$2 = (v__$1 & 858993459) + (v__$1 >> 2 & 858993459);
return(v__$2 + (v__$2 >> 4) & 252645135) * 16843009 >> 24
};
cljs.core._EQ__EQ_ = function() {
var _EQ__EQ_ = null;
var _EQ__EQ___1 = function(x) {
return true
};
var _EQ__EQ___2 = function(x, y) {
return cljs.core._equiv.call(null, x, y)
};
var _EQ__EQ___3 = function() {
var G__5481__delegate = function(x, y, more) {
while(true) {
if(cljs.core.truth_(_EQ__EQ_.call(null, x, y))) {
if(cljs.core.next.call(null, more)) {
var G__5482 = y;
var G__5483 = cljs.core.first.call(null, more);
var G__5484 = cljs.core.next.call(null, more);
x = G__5482;
y = G__5483;
more = G__5484;
continue
}else {
return _EQ__EQ_.call(null, y, cljs.core.first.call(null, more))
}
}else {
return false
}
break
}
};
var G__5481 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5481__delegate.call(this, x, y, more)
};
G__5481.cljs$lang$maxFixedArity = 2;
G__5481.cljs$lang$applyTo = function(arglist__5485) {
var x = cljs.core.first(arglist__5485);
arglist__5485 = cljs.core.next(arglist__5485);
var y = cljs.core.first(arglist__5485);
var more = cljs.core.rest(arglist__5485);
return G__5481__delegate(x, y, more)
};
G__5481.cljs$core$IFn$_invoke$arity$variadic = G__5481__delegate;
return G__5481
}();
_EQ__EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _EQ__EQ___1.call(this, x);
case 2:
return _EQ__EQ___2.call(this, x, y);
default:
return _EQ__EQ___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
_EQ__EQ_.cljs$lang$maxFixedArity = 2;
_EQ__EQ_.cljs$lang$applyTo = _EQ__EQ___3.cljs$lang$applyTo;
_EQ__EQ_.cljs$core$IFn$_invoke$arity$1 = _EQ__EQ___1;
_EQ__EQ_.cljs$core$IFn$_invoke$arity$2 = _EQ__EQ___2;
_EQ__EQ_.cljs$core$IFn$_invoke$arity$variadic = _EQ__EQ___3.cljs$core$IFn$_invoke$arity$variadic;
return _EQ__EQ_
}();
cljs.core.pos_QMARK_ = function pos_QMARK_(n) {
return n > 0
};
cljs.core.zero_QMARK_ = function zero_QMARK_(n) {
return n === 0
};
cljs.core.neg_QMARK_ = function neg_QMARK_(x) {
return x < 0
};
cljs.core.nthnext = function nthnext(coll, n) {
var n__$1 = n;
var xs = cljs.core.seq.call(null, coll);
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = xs;
if(and__3941__auto__) {
return n__$1 > 0
}else {
return and__3941__auto__
}
}())) {
var G__5486 = n__$1 - 1;
var G__5487 = cljs.core.next.call(null, xs);
n__$1 = G__5486;
xs = G__5487;
continue
}else {
return xs
}
break
}
};
cljs.core.str_STAR_ = function() {
var str_STAR_ = null;
var str_STAR___0 = function() {
return""
};
var str_STAR___1 = function(x) {
if(x == null) {
return""
}else {
if("\ufdd0:else") {
return x.toString()
}else {
return null
}
}
};
var str_STAR___2 = function() {
var G__5488__delegate = function(x, ys) {
return function(sb, more) {
while(true) {
if(cljs.core.truth_(more)) {
var G__5489 = sb.append(str_STAR_.call(null, cljs.core.first.call(null, more)));
var G__5490 = cljs.core.next.call(null, more);
sb = G__5489;
more = G__5490;
continue
}else {
return str_STAR_.call(null, sb)
}
break
}
}.call(null, new goog.string.StringBuffer(str_STAR_.call(null, x)), ys)
};
var G__5488 = function(x, var_args) {
var ys = null;
if(arguments.length > 1) {
ys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__5488__delegate.call(this, x, ys)
};
G__5488.cljs$lang$maxFixedArity = 1;
G__5488.cljs$lang$applyTo = function(arglist__5491) {
var x = cljs.core.first(arglist__5491);
var ys = cljs.core.rest(arglist__5491);
return G__5488__delegate(x, ys)
};
G__5488.cljs$core$IFn$_invoke$arity$variadic = G__5488__delegate;
return G__5488
}();
str_STAR_ = function(x, var_args) {
var ys = var_args;
switch(arguments.length) {
case 0:
return str_STAR___0.call(this);
case 1:
return str_STAR___1.call(this, x);
default:
return str_STAR___2.cljs$core$IFn$_invoke$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw new Error("Invalid arity: " + arguments.length);
};
str_STAR_.cljs$lang$maxFixedArity = 1;
str_STAR_.cljs$lang$applyTo = str_STAR___2.cljs$lang$applyTo;
str_STAR_.cljs$core$IFn$_invoke$arity$0 = str_STAR___0;
str_STAR_.cljs$core$IFn$_invoke$arity$1 = str_STAR___1;
str_STAR_.cljs$core$IFn$_invoke$arity$variadic = str_STAR___2.cljs$core$IFn$_invoke$arity$variadic;
return str_STAR_
}();
cljs.core.str = function() {
var str = null;
var str__0 = function() {
return""
};
var str__1 = function(x) {
if(cljs.core.keyword_QMARK_.call(null, x)) {
return cljs.core.str_STAR_.call(null, ":", x.substring(2, x.length))
}else {
if(x == null) {
return""
}else {
if("\ufdd0:else") {
return x.toString()
}else {
return null
}
}
}
};
var str__2 = function() {
var G__5492__delegate = function(x, ys) {
return function(sb, more) {
while(true) {
if(cljs.core.truth_(more)) {
var G__5493 = sb.append(str.call(null, cljs.core.first.call(null, more)));
var G__5494 = cljs.core.next.call(null, more);
sb = G__5493;
more = G__5494;
continue
}else {
return cljs.core.str_STAR_.call(null, sb)
}
break
}
}.call(null, new goog.string.StringBuffer(str.call(null, x)), ys)
};
var G__5492 = function(x, var_args) {
var ys = null;
if(arguments.length > 1) {
ys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__5492__delegate.call(this, x, ys)
};
G__5492.cljs$lang$maxFixedArity = 1;
G__5492.cljs$lang$applyTo = function(arglist__5495) {
var x = cljs.core.first(arglist__5495);
var ys = cljs.core.rest(arglist__5495);
return G__5492__delegate(x, ys)
};
G__5492.cljs$core$IFn$_invoke$arity$variadic = G__5492__delegate;
return G__5492
}();
str = function(x, var_args) {
var ys = var_args;
switch(arguments.length) {
case 0:
return str__0.call(this);
case 1:
return str__1.call(this, x);
default:
return str__2.cljs$core$IFn$_invoke$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw new Error("Invalid arity: " + arguments.length);
};
str.cljs$lang$maxFixedArity = 1;
str.cljs$lang$applyTo = str__2.cljs$lang$applyTo;
str.cljs$core$IFn$_invoke$arity$0 = str__0;
str.cljs$core$IFn$_invoke$arity$1 = str__1;
str.cljs$core$IFn$_invoke$arity$variadic = str__2.cljs$core$IFn$_invoke$arity$variadic;
return str
}();
cljs.core.subs = function() {
var subs = null;
var subs__2 = function(s, start) {
return s.substring(start)
};
var subs__3 = function(s, start, end) {
return s.substring(start, end)
};
subs = function(s, start, end) {
switch(arguments.length) {
case 2:
return subs__2.call(this, s, start);
case 3:
return subs__3.call(this, s, start, end)
}
throw new Error("Invalid arity: " + arguments.length);
};
subs.cljs$core$IFn$_invoke$arity$2 = subs__2;
subs.cljs$core$IFn$_invoke$arity$3 = subs__3;
return subs
}();
cljs.core.format = function() {
var format__delegate = function(fmt, args) {
var args__$1 = cljs.core.map.call(null, function(x) {
if(function() {
var or__3943__auto__ = cljs.core.keyword_QMARK_.call(null, x);
if(or__3943__auto__) {
return or__3943__auto__
}else {
return x instanceof cljs.core.Symbol
}
}()) {
return[cljs.core.str(x)].join("")
}else {
return x
}
}, args);
return cljs.core.apply.call(null, goog.string.format, fmt, args__$1)
};
var format = function(fmt, var_args) {
var args = null;
if(arguments.length > 1) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return format__delegate.call(this, fmt, args)
};
format.cljs$lang$maxFixedArity = 1;
format.cljs$lang$applyTo = function(arglist__5496) {
var fmt = cljs.core.first(arglist__5496);
var args = cljs.core.rest(arglist__5496);
return format__delegate(fmt, args)
};
format.cljs$core$IFn$_invoke$arity$variadic = format__delegate;
return format
}();
cljs.core.keyword = function() {
var keyword = null;
var keyword__1 = function(name) {
if(cljs.core.keyword_QMARK_.call(null, name)) {
return name
}else {
if(name instanceof cljs.core.Symbol) {
return cljs.core.str_STAR_.call(null, "\ufdd0", ":", cljs.core.subs.call(null, name, 2))
}else {
if("\ufdd0:else") {
return cljs.core.str_STAR_.call(null, "\ufdd0", ":", name)
}else {
return null
}
}
}
};
var keyword__2 = function(ns, name) {
return keyword.call(null, cljs.core.str_STAR_.call(null, ns, "/", name))
};
keyword = function(ns, name) {
switch(arguments.length) {
case 1:
return keyword__1.call(this, ns);
case 2:
return keyword__2.call(this, ns, name)
}
throw new Error("Invalid arity: " + arguments.length);
};
keyword.cljs$core$IFn$_invoke$arity$1 = keyword__1;
keyword.cljs$core$IFn$_invoke$arity$2 = keyword__2;
return keyword
}();
cljs.core.equiv_sequential = function equiv_sequential(x, y) {
return cljs.core.boolean$.call(null, cljs.core.sequential_QMARK_.call(null, y) ? function() {
var xs = cljs.core.seq.call(null, x);
var ys = cljs.core.seq.call(null, y);
while(true) {
if(xs == null) {
return ys == null
}else {
if(ys == null) {
return false
}else {
if(cljs.core._EQ_.call(null, cljs.core.first.call(null, xs), cljs.core.first.call(null, ys))) {
var G__5497 = cljs.core.next.call(null, xs);
var G__5498 = cljs.core.next.call(null, ys);
xs = G__5497;
ys = G__5498;
continue
}else {
if("\ufdd0:else") {
return false
}else {
return null
}
}
}
}
break
}
}() : null)
};
cljs.core.hash_combine = function hash_combine(seed, hash) {
return seed ^ hash + 2654435769 + (seed << 6) + (seed >> 2)
};
cljs.core.hash_coll = function hash_coll(coll) {
return cljs.core.reduce.call(null, function(p1__5499_SHARP_, p2__5500_SHARP_) {
return cljs.core.hash_combine.call(null, p1__5499_SHARP_, cljs.core.hash.call(null, p2__5500_SHARP_, false))
}, cljs.core.hash.call(null, cljs.core.first.call(null, coll), false), cljs.core.next.call(null, coll))
};
cljs.core.hash_imap = function hash_imap(m) {
var h = 0;
var s = cljs.core.seq.call(null, m);
while(true) {
if(s) {
var e = cljs.core.first.call(null, s);
var G__5501 = (h + (cljs.core.hash.call(null, cljs.core.key.call(null, e)) ^ cljs.core.hash.call(null, cljs.core.val.call(null, e)))) % 4503599627370496;
var G__5502 = cljs.core.next.call(null, s);
h = G__5501;
s = G__5502;
continue
}else {
return h
}
break
}
};
cljs.core.hash_iset = function hash_iset(s) {
var h = 0;
var s__$1 = cljs.core.seq.call(null, s);
while(true) {
if(s__$1) {
var e = cljs.core.first.call(null, s__$1);
var G__5503 = (h + cljs.core.hash.call(null, e)) % 4503599627370496;
var G__5504 = cljs.core.next.call(null, s__$1);
h = G__5503;
s__$1 = G__5504;
continue
}else {
return h
}
break
}
};
cljs.core.extend_object_BANG_ = function extend_object_BANG_(obj, fn_map) {
var seq__5511_5517 = cljs.core.seq.call(null, fn_map);
var chunk__5512_5518 = null;
var count__5513_5519 = 0;
var i__5514_5520 = 0;
while(true) {
if(i__5514_5520 < count__5513_5519) {
var vec__5515_5521 = cljs.core._nth.call(null, chunk__5512_5518, i__5514_5520);
var key_name_5522 = cljs.core.nth.call(null, vec__5515_5521, 0, null);
var f_5523 = cljs.core.nth.call(null, vec__5515_5521, 1, null);
var str_name_5524 = cljs.core.name.call(null, key_name_5522);
obj[str_name_5524] = f_5523;
var G__5525 = seq__5511_5517;
var G__5526 = chunk__5512_5518;
var G__5527 = count__5513_5519;
var G__5528 = i__5514_5520 + 1;
seq__5511_5517 = G__5525;
chunk__5512_5518 = G__5526;
count__5513_5519 = G__5527;
i__5514_5520 = G__5528;
continue
}else {
var temp__4092__auto___5529 = cljs.core.seq.call(null, seq__5511_5517);
if(temp__4092__auto___5529) {
var seq__5511_5530__$1 = temp__4092__auto___5529;
if(cljs.core.chunked_seq_QMARK_.call(null, seq__5511_5530__$1)) {
var c__3073__auto___5531 = cljs.core.chunk_first.call(null, seq__5511_5530__$1);
var G__5532 = cljs.core.chunk_rest.call(null, seq__5511_5530__$1);
var G__5533 = c__3073__auto___5531;
var G__5534 = cljs.core.count.call(null, c__3073__auto___5531);
var G__5535 = 0;
seq__5511_5517 = G__5532;
chunk__5512_5518 = G__5533;
count__5513_5519 = G__5534;
i__5514_5520 = G__5535;
continue
}else {
var vec__5516_5536 = cljs.core.first.call(null, seq__5511_5530__$1);
var key_name_5537 = cljs.core.nth.call(null, vec__5516_5536, 0, null);
var f_5538 = cljs.core.nth.call(null, vec__5516_5536, 1, null);
var str_name_5539 = cljs.core.name.call(null, key_name_5537);
obj[str_name_5539] = f_5538;
var G__5540 = cljs.core.next.call(null, seq__5511_5530__$1);
var G__5541 = null;
var G__5542 = 0;
var G__5543 = 0;
seq__5511_5517 = G__5540;
chunk__5512_5518 = G__5541;
count__5513_5519 = G__5542;
i__5514_5520 = G__5543;
continue
}
}else {
}
}
break
}
return obj
};
goog.provide("cljs.core.List");
cljs.core.List = function(meta, first, rest, count, __hash) {
this.meta = meta;
this.first = first;
this.rest = rest;
this.count = count;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 65413358
};
cljs.core.List.cljs$lang$type = true;
cljs.core.List.cljs$lang$ctorStr = "cljs.core/List";
cljs.core.List.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/List")
};
cljs.core.List.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.List.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var self__ = this;
if(self__.count === 1) {
return null
}else {
return self__.rest
}
};
cljs.core.List.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return new cljs.core.List(self__.meta, o, coll, self__.count + 1, null)
};
cljs.core.List.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.List.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.List.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.count
};
cljs.core.List.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var self__ = this;
return self__.first
};
cljs.core.List.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var self__ = this;
return coll.cljs$core$ISeq$_rest$arity$1(coll)
};
cljs.core.List.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return self__.first
};
cljs.core.List.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
if(self__.count === 1) {
return cljs.core.List.EMPTY
}else {
return self__.rest
}
};
cljs.core.List.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.List.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.List(meta__$1, self__.first, self__.rest, self__.count, self__.__hash)
};
cljs.core.List.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.List.EMPTY
};
goog.provide("cljs.core.EmptyList");
cljs.core.EmptyList = function(meta) {
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 65413326
};
cljs.core.EmptyList.cljs$lang$type = true;
cljs.core.EmptyList.cljs$lang$ctorStr = "cljs.core/EmptyList";
cljs.core.EmptyList.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/EmptyList")
};
cljs.core.EmptyList.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
return 0
};
cljs.core.EmptyList.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var self__ = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return new cljs.core.List(self__.meta, o, null, 1, null)
};
cljs.core.EmptyList.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return 0
};
cljs.core.EmptyList.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var self__ = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var self__ = this;
throw new Error("Can't pop empty list");
};
cljs.core.EmptyList.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
return cljs.core.List.EMPTY
};
cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.EmptyList.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.EmptyList(meta__$1)
};
cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.List.EMPTY = new cljs.core.EmptyList(null);
cljs.core.reversible_QMARK_ = function reversible_QMARK_(coll) {
var G__5545 = coll;
if(G__5545) {
if(function() {
var or__3943__auto__ = G__5545.cljs$lang$protocol_mask$partition0$ & 134217728;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5545.cljs$core$IReversible$
}
}()) {
return true
}else {
if(!G__5545.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReversible, G__5545)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReversible, G__5545)
}
};
cljs.core.rseq = function rseq(coll) {
return cljs.core._rseq.call(null, coll)
};
cljs.core.reverse = function reverse(coll) {
if(cljs.core.reversible_QMARK_.call(null, coll)) {
return cljs.core.rseq.call(null, coll)
}else {
return cljs.core.reduce.call(null, cljs.core.conj, cljs.core.List.EMPTY, coll)
}
};
cljs.core.list = function() {
var list__delegate = function(xs) {
var arr = xs instanceof cljs.core.IndexedSeq ? xs.arr : function() {
var arr = [];
var xs__$1 = xs;
while(true) {
if(!(xs__$1 == null)) {
arr.push(cljs.core._first.call(null, xs__$1));
var G__5546 = cljs.core._next.call(null, xs__$1);
xs__$1 = G__5546;
continue
}else {
return arr
}
break
}
}();
var i = arr.length;
var r = cljs.core.List.EMPTY;
while(true) {
if(i > 0) {
var G__5547 = i - 1;
var G__5548 = cljs.core._conj.call(null, r, arr[i - 1]);
i = G__5547;
r = G__5548;
continue
}else {
return r
}
break
}
};
var list = function(var_args) {
var xs = null;
if(arguments.length > 0) {
xs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return list__delegate.call(this, xs)
};
list.cljs$lang$maxFixedArity = 0;
list.cljs$lang$applyTo = function(arglist__5549) {
var xs = cljs.core.seq(arglist__5549);
return list__delegate(xs)
};
list.cljs$core$IFn$_invoke$arity$variadic = list__delegate;
return list
}();
goog.provide("cljs.core.Cons");
cljs.core.Cons = function(meta, first, rest, __hash) {
this.meta = meta;
this.first = first;
this.rest = rest;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 65405164
};
cljs.core.Cons.cljs$lang$type = true;
cljs.core.Cons.cljs$lang$ctorStr = "cljs.core/Cons";
cljs.core.Cons.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Cons")
};
cljs.core.Cons.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.Cons.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var self__ = this;
if(self__.rest == null) {
return null
}else {
return cljs.core._seq.call(null, self__.rest)
}
};
cljs.core.Cons.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return new cljs.core.Cons(null, o, coll, self__.__hash)
};
cljs.core.Cons.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.Cons.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.Cons.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return self__.first
};
cljs.core.Cons.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
if(self__.rest == null) {
return cljs.core.List.EMPTY
}else {
return self__.rest
}
};
cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.Cons.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.Cons(meta__$1, self__.first, self__.rest, self__.__hash)
};
cljs.core.Cons.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.cons = function cons(x, coll) {
if(function() {
var or__3943__auto__ = coll == null;
if(or__3943__auto__) {
return or__3943__auto__
}else {
var G__5551 = coll;
if(G__5551) {
if(function() {
var or__3943__auto____$1 = G__5551.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
return G__5551.cljs$core$ISeq$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}
}()) {
return new cljs.core.Cons(null, x, coll, null)
}else {
return new cljs.core.Cons(null, x, cljs.core.seq.call(null, coll), null)
}
};
cljs.core.list_QMARK_ = function list_QMARK_(x) {
var G__5553 = x;
if(G__5553) {
if(function() {
var or__3943__auto__ = G__5553.cljs$lang$protocol_mask$partition0$ & 33554432;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5553.cljs$core$IList$
}
}()) {
return true
}else {
if(!G__5553.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IList, G__5553)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IList, G__5553)
}
};
cljs.core.ICounted["string"] = true;
cljs.core._count["string"] = function(s) {
return s.length
};
cljs.core.IHash["string"] = true;
cljs.core._hash["string"] = function(o) {
return goog.string.hashCode(o)
};
goog.provide("cljs.core.Keyword");
cljs.core.Keyword = function(k) {
this.k = k;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 1
};
cljs.core.Keyword.cljs$lang$type = true;
cljs.core.Keyword.cljs$lang$ctorStr = "cljs.core/Keyword";
cljs.core.Keyword.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Keyword")
};
cljs.core.Keyword.prototype.call = function() {
var G__5555 = null;
var G__5555__2 = function(self__, coll) {
var self__ = this;
var self____$1 = this;
var _ = self____$1;
if(coll == null) {
return null
}else {
var strobj = coll.strobj;
if(strobj == null) {
return cljs.core._lookup.call(null, coll, self__.k, null)
}else {
return strobj[self__.k]
}
}
};
var G__5555__3 = function(self__, coll, not_found) {
var self__ = this;
var self____$1 = this;
var _ = self____$1;
if(coll == null) {
return not_found
}else {
return cljs.core._lookup.call(null, coll, self__.k, not_found)
}
};
G__5555 = function(self__, coll, not_found) {
switch(arguments.length) {
case 2:
return G__5555__2.call(this, self__, coll);
case 3:
return G__5555__3.call(this, self__, coll, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5555
}();
cljs.core.Keyword.prototype.apply = function(self__, args5554) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5554.slice()))
};
String.prototype.cljs$core$IFn$ = true;
String.prototype.call = function() {
var G__5557 = null;
var G__5557__2 = function(self__, coll) {
var self____$1 = this;
var this$ = self____$1;
return cljs.core.get.call(null, coll, this$.toString())
};
var G__5557__3 = function(self__, coll, not_found) {
var self____$1 = this;
var this$ = self____$1;
return cljs.core.get.call(null, coll, this$.toString(), not_found)
};
G__5557 = function(self__, coll, not_found) {
switch(arguments.length) {
case 2:
return G__5557__2.call(this, self__, coll);
case 3:
return G__5557__3.call(this, self__, coll, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5557
}();
String.prototype.apply = function(self__, args5556) {
return self__.call.apply(self__, [self__].concat(args5556.slice()))
};
String.prototype.apply = function(s, args) {
if(args.length < 2) {
return cljs.core.get.call(null, args[0], s)
}else {
return cljs.core.get.call(null, args[0], s, args[1])
}
};
cljs.core.lazy_seq_value = function lazy_seq_value(lazy_seq) {
var x = lazy_seq.x;
if(lazy_seq.realized) {
return x
}else {
lazy_seq.x = x.call(null);
lazy_seq.realized = true;
return lazy_seq.x
}
};
goog.provide("cljs.core.LazySeq");
cljs.core.LazySeq = function(meta, realized, x, __hash) {
this.meta = meta;
this.realized = realized;
this.x = x;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850700
};
cljs.core.LazySeq.cljs$lang$type = true;
cljs.core.LazySeq.cljs$lang$ctorStr = "cljs.core/LazySeq";
cljs.core.LazySeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/LazySeq")
};
cljs.core.LazySeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.LazySeq.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var self__ = this;
return cljs.core._seq.call(null, coll.cljs$core$ISeq$_rest$arity$1(coll))
};
cljs.core.LazySeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.LazySeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return cljs.core.seq.call(null, cljs.core.lazy_seq_value.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core.first.call(null, cljs.core.lazy_seq_value.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
return cljs.core.rest.call(null, cljs.core.lazy_seq_value.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.LazySeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.LazySeq(meta__$1, self__.realized, self__.x, self__.__hash)
};
cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
goog.provide("cljs.core.ChunkBuffer");
cljs.core.ChunkBuffer = function(buf, end) {
this.buf = buf;
this.end = end;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2
};
cljs.core.ChunkBuffer.cljs$lang$type = true;
cljs.core.ChunkBuffer.cljs$lang$ctorStr = "cljs.core/ChunkBuffer";
cljs.core.ChunkBuffer.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ChunkBuffer")
};
cljs.core.ChunkBuffer.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var self__ = this;
return self__.end
};
cljs.core.ChunkBuffer.prototype.add = function(o) {
var self__ = this;
var _ = this;
self__.buf[self__.end] = o;
return self__.end = self__.end + 1
};
cljs.core.ChunkBuffer.prototype.chunk = function(o) {
var self__ = this;
var _ = this;
var ret = new cljs.core.ArrayChunk(self__.buf, 0, self__.end);
self__.buf = null;
return ret
};
cljs.core.chunk_buffer = function chunk_buffer(capacity) {
return new cljs.core.ChunkBuffer(new Array(capacity), 0)
};
goog.provide("cljs.core.ArrayChunk");
cljs.core.ArrayChunk = function(arr, off, end) {
this.arr = arr;
this.off = off;
this.end = end;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 524306
};
cljs.core.ArrayChunk.cljs$lang$type = true;
cljs.core.ArrayChunk.cljs$lang$ctorStr = "cljs.core/ArrayChunk";
cljs.core.ArrayChunk.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ArrayChunk")
};
cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var self__ = this;
return cljs.core.array_reduce.call(null, self__.arr, f, self__.arr[self__.off], self__.off + 1)
};
cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var self__ = this;
return cljs.core.array_reduce.call(null, self__.arr, f, start, self__.off)
};
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$ = true;
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$_drop_first$arity$1 = function(coll) {
var self__ = this;
if(self__.off === self__.end) {
throw new Error("-drop-first of empty chunk");
}else {
return new cljs.core.ArrayChunk(self__.arr, self__.off + 1, self__.end)
}
};
cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, i) {
var self__ = this;
return self__.arr[self__.off + i]
};
cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, i, not_found) {
var self__ = this;
if(function() {
var and__3941__auto__ = i >= 0;
if(and__3941__auto__) {
return i < self__.end - self__.off
}else {
return and__3941__auto__
}
}()) {
return self__.arr[self__.off + i]
}else {
return not_found
}
};
cljs.core.ArrayChunk.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var self__ = this;
return self__.end - self__.off
};
cljs.core.array_chunk = function() {
var array_chunk = null;
var array_chunk__1 = function(arr) {
return new cljs.core.ArrayChunk(arr, 0, arr.length)
};
var array_chunk__2 = function(arr, off) {
return new cljs.core.ArrayChunk(arr, off, arr.length)
};
var array_chunk__3 = function(arr, off, end) {
return new cljs.core.ArrayChunk(arr, off, end)
};
array_chunk = function(arr, off, end) {
switch(arguments.length) {
case 1:
return array_chunk__1.call(this, arr);
case 2:
return array_chunk__2.call(this, arr, off);
case 3:
return array_chunk__3.call(this, arr, off, end)
}
throw new Error("Invalid arity: " + arguments.length);
};
array_chunk.cljs$core$IFn$_invoke$arity$1 = array_chunk__1;
array_chunk.cljs$core$IFn$_invoke$arity$2 = array_chunk__2;
array_chunk.cljs$core$IFn$_invoke$arity$3 = array_chunk__3;
return array_chunk
}();
goog.provide("cljs.core.ChunkedCons");
cljs.core.ChunkedCons = function(chunk, more, meta, __hash) {
this.chunk = chunk;
this.more = more;
this.meta = meta;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition0$ = 31850604;
this.cljs$lang$protocol_mask$partition1$ = 1536
};
cljs.core.ChunkedCons.cljs$lang$type = true;
cljs.core.ChunkedCons.cljs$lang$ctorStr = "cljs.core/ChunkedCons";
cljs.core.ChunkedCons.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ChunkedCons")
};
cljs.core.ChunkedCons.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.ChunkedCons.prototype.cljs$core$ICollection$_conj$arity$2 = function(this$, o) {
var self__ = this;
return cljs.core.cons.call(null, o, this$)
};
cljs.core.ChunkedCons.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core._nth.call(null, self__.chunk, 0)
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
if(cljs.core._count.call(null, self__.chunk) > 1) {
return new cljs.core.ChunkedCons(cljs.core._drop_first.call(null, self__.chunk), self__.more, self__.meta, null)
}else {
if(self__.more == null) {
return cljs.core.List.EMPTY
}else {
return self__.more
}
}
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 = function(coll) {
var self__ = this;
if(self__.more == null) {
return null
}else {
return self__.more
}
};
cljs.core.ChunkedCons.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.ChunkedCons.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, m) {
var self__ = this;
return new cljs.core.ChunkedCons(self__.chunk, self__.more, m, self__.__hash)
};
cljs.core.ChunkedCons.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.ChunkedCons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = function(coll) {
var self__ = this;
return self__.chunk
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = function(coll) {
var self__ = this;
if(self__.more == null) {
return cljs.core.List.EMPTY
}else {
return self__.more
}
};
cljs.core.chunk_cons = function chunk_cons(chunk, rest) {
if(cljs.core._count.call(null, chunk) === 0) {
return rest
}else {
return new cljs.core.ChunkedCons(chunk, rest, null, null)
}
};
cljs.core.chunk_append = function chunk_append(b, x) {
return b.add(x)
};
cljs.core.chunk = function chunk(b) {
return b.chunk()
};
cljs.core.chunk_first = function chunk_first(s) {
return cljs.core._chunked_first.call(null, s)
};
cljs.core.chunk_rest = function chunk_rest(s) {
return cljs.core._chunked_rest.call(null, s)
};
cljs.core.chunk_next = function chunk_next(s) {
if(function() {
var G__5559 = s;
if(G__5559) {
if(function() {
var or__3943__auto__ = G__5559.cljs$lang$protocol_mask$partition1$ & 1024;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5559.cljs$core$IChunkedNext$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._chunked_next.call(null, s)
}else {
return cljs.core.seq.call(null, cljs.core._chunked_rest.call(null, s))
}
};
cljs.core.to_array = function to_array(s) {
var ary = [];
var s__$1 = s;
while(true) {
if(cljs.core.seq.call(null, s__$1)) {
ary.push(cljs.core.first.call(null, s__$1));
var G__5560 = cljs.core.next.call(null, s__$1);
s__$1 = G__5560;
continue
}else {
return ary
}
break
}
};
cljs.core.to_array_2d = function to_array_2d(coll) {
var ret = new Array(cljs.core.count.call(null, coll));
var i_5561 = 0;
var xs_5562 = cljs.core.seq.call(null, coll);
while(true) {
if(xs_5562) {
ret[i_5561] = cljs.core.to_array.call(null, cljs.core.first.call(null, xs_5562));
var G__5563 = i_5561 + 1;
var G__5564 = cljs.core.next.call(null, xs_5562);
i_5561 = G__5563;
xs_5562 = G__5564;
continue
}else {
}
break
}
return ret
};
cljs.core.int_array = function() {
var int_array = null;
var int_array__1 = function(size_or_seq) {
if(typeof size_or_seq === "number") {
return int_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0:else") {
throw new Error("int-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var int_array__2 = function(size, init_val_or_seq) {
var a = new Array(size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s = cljs.core.seq.call(null, init_val_or_seq);
var i = 0;
var s__$1 = s;
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = s__$1;
if(and__3941__auto__) {
return i < size
}else {
return and__3941__auto__
}
}())) {
a[i] = cljs.core.first.call(null, s__$1);
var G__5565 = i + 1;
var G__5566 = cljs.core.next.call(null, s__$1);
i = G__5565;
s__$1 = G__5566;
continue
}else {
return a
}
break
}
}else {
var n__3120__auto___5567 = size;
var i_5568 = 0;
while(true) {
if(i_5568 < n__3120__auto___5567) {
a[i_5568] = init_val_or_seq;
var G__5569 = i_5568 + 1;
i_5568 = G__5569;
continue
}else {
}
break
}
return a
}
};
int_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return int_array__1.call(this, size);
case 2:
return int_array__2.call(this, size, init_val_or_seq)
}
throw new Error("Invalid arity: " + arguments.length);
};
int_array.cljs$core$IFn$_invoke$arity$1 = int_array__1;
int_array.cljs$core$IFn$_invoke$arity$2 = int_array__2;
return int_array
}();
cljs.core.long_array = function() {
var long_array = null;
var long_array__1 = function(size_or_seq) {
if(typeof size_or_seq === "number") {
return long_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0:else") {
throw new Error("long-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var long_array__2 = function(size, init_val_or_seq) {
var a = new Array(size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s = cljs.core.seq.call(null, init_val_or_seq);
var i = 0;
var s__$1 = s;
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = s__$1;
if(and__3941__auto__) {
return i < size
}else {
return and__3941__auto__
}
}())) {
a[i] = cljs.core.first.call(null, s__$1);
var G__5570 = i + 1;
var G__5571 = cljs.core.next.call(null, s__$1);
i = G__5570;
s__$1 = G__5571;
continue
}else {
return a
}
break
}
}else {
var n__3120__auto___5572 = size;
var i_5573 = 0;
while(true) {
if(i_5573 < n__3120__auto___5572) {
a[i_5573] = init_val_or_seq;
var G__5574 = i_5573 + 1;
i_5573 = G__5574;
continue
}else {
}
break
}
return a
}
};
long_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return long_array__1.call(this, size);
case 2:
return long_array__2.call(this, size, init_val_or_seq)
}
throw new Error("Invalid arity: " + arguments.length);
};
long_array.cljs$core$IFn$_invoke$arity$1 = long_array__1;
long_array.cljs$core$IFn$_invoke$arity$2 = long_array__2;
return long_array
}();
cljs.core.double_array = function() {
var double_array = null;
var double_array__1 = function(size_or_seq) {
if(typeof size_or_seq === "number") {
return double_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0:else") {
throw new Error("double-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var double_array__2 = function(size, init_val_or_seq) {
var a = new Array(size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s = cljs.core.seq.call(null, init_val_or_seq);
var i = 0;
var s__$1 = s;
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = s__$1;
if(and__3941__auto__) {
return i < size
}else {
return and__3941__auto__
}
}())) {
a[i] = cljs.core.first.call(null, s__$1);
var G__5575 = i + 1;
var G__5576 = cljs.core.next.call(null, s__$1);
i = G__5575;
s__$1 = G__5576;
continue
}else {
return a
}
break
}
}else {
var n__3120__auto___5577 = size;
var i_5578 = 0;
while(true) {
if(i_5578 < n__3120__auto___5577) {
a[i_5578] = init_val_or_seq;
var G__5579 = i_5578 + 1;
i_5578 = G__5579;
continue
}else {
}
break
}
return a
}
};
double_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return double_array__1.call(this, size);
case 2:
return double_array__2.call(this, size, init_val_or_seq)
}
throw new Error("Invalid arity: " + arguments.length);
};
double_array.cljs$core$IFn$_invoke$arity$1 = double_array__1;
double_array.cljs$core$IFn$_invoke$arity$2 = double_array__2;
return double_array
}();
cljs.core.object_array = function() {
var object_array = null;
var object_array__1 = function(size_or_seq) {
if(typeof size_or_seq === "number") {
return object_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0:else") {
throw new Error("object-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var object_array__2 = function(size, init_val_or_seq) {
var a = new Array(size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s = cljs.core.seq.call(null, init_val_or_seq);
var i = 0;
var s__$1 = s;
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = s__$1;
if(and__3941__auto__) {
return i < size
}else {
return and__3941__auto__
}
}())) {
a[i] = cljs.core.first.call(null, s__$1);
var G__5580 = i + 1;
var G__5581 = cljs.core.next.call(null, s__$1);
i = G__5580;
s__$1 = G__5581;
continue
}else {
return a
}
break
}
}else {
var n__3120__auto___5582 = size;
var i_5583 = 0;
while(true) {
if(i_5583 < n__3120__auto___5582) {
a[i_5583] = init_val_or_seq;
var G__5584 = i_5583 + 1;
i_5583 = G__5584;
continue
}else {
}
break
}
return a
}
};
object_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return object_array__1.call(this, size);
case 2:
return object_array__2.call(this, size, init_val_or_seq)
}
throw new Error("Invalid arity: " + arguments.length);
};
object_array.cljs$core$IFn$_invoke$arity$1 = object_array__1;
object_array.cljs$core$IFn$_invoke$arity$2 = object_array__2;
return object_array
}();
cljs.core.bounded_count = function bounded_count(s, n) {
if(cljs.core.counted_QMARK_.call(null, s)) {
return cljs.core.count.call(null, s)
}else {
var s__$1 = s;
var i = n;
var sum = 0;
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = i > 0;
if(and__3941__auto__) {
return cljs.core.seq.call(null, s__$1)
}else {
return and__3941__auto__
}
}())) {
var G__5585 = cljs.core.next.call(null, s__$1);
var G__5586 = i - 1;
var G__5587 = sum + 1;
s__$1 = G__5585;
i = G__5586;
sum = G__5587;
continue
}else {
return sum
}
break
}
}
};
cljs.core.spread = function spread(arglist) {
if(arglist == null) {
return null
}else {
if(cljs.core.next.call(null, arglist) == null) {
return cljs.core.seq.call(null, cljs.core.first.call(null, arglist))
}else {
if("\ufdd0:else") {
return cljs.core.cons.call(null, cljs.core.first.call(null, arglist), spread.call(null, cljs.core.next.call(null, arglist)))
}else {
return null
}
}
}
};
cljs.core.concat = function() {
var concat = null;
var concat__0 = function() {
return new cljs.core.LazySeq(null, false, function() {
return null
}, null)
};
var concat__1 = function(x) {
return new cljs.core.LazySeq(null, false, function() {
return x
}, null)
};
var concat__2 = function(x, y) {
return new cljs.core.LazySeq(null, false, function() {
var s = cljs.core.seq.call(null, x);
if(s) {
if(cljs.core.chunked_seq_QMARK_.call(null, s)) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk_first.call(null, s), concat.call(null, cljs.core.chunk_rest.call(null, s), y))
}else {
return cljs.core.cons.call(null, cljs.core.first.call(null, s), concat.call(null, cljs.core.rest.call(null, s), y))
}
}else {
return y
}
}, null)
};
var concat__3 = function() {
var G__5588__delegate = function(x, y, zs) {
var cat = function cat(xys, zs__$1) {
return new cljs.core.LazySeq(null, false, function() {
var xys__$1 = cljs.core.seq.call(null, xys);
if(xys__$1) {
if(cljs.core.chunked_seq_QMARK_.call(null, xys__$1)) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk_first.call(null, xys__$1), cat.call(null, cljs.core.chunk_rest.call(null, xys__$1), zs__$1))
}else {
return cljs.core.cons.call(null, cljs.core.first.call(null, xys__$1), cat.call(null, cljs.core.rest.call(null, xys__$1), zs__$1))
}
}else {
if(cljs.core.truth_(zs__$1)) {
return cat.call(null, cljs.core.first.call(null, zs__$1), cljs.core.next.call(null, zs__$1))
}else {
return null
}
}
}, null)
};
return cat.call(null, concat.call(null, x, y), zs)
};
var G__5588 = function(x, y, var_args) {
var zs = null;
if(arguments.length > 2) {
zs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5588__delegate.call(this, x, y, zs)
};
G__5588.cljs$lang$maxFixedArity = 2;
G__5588.cljs$lang$applyTo = function(arglist__5589) {
var x = cljs.core.first(arglist__5589);
arglist__5589 = cljs.core.next(arglist__5589);
var y = cljs.core.first(arglist__5589);
var zs = cljs.core.rest(arglist__5589);
return G__5588__delegate(x, y, zs)
};
G__5588.cljs$core$IFn$_invoke$arity$variadic = G__5588__delegate;
return G__5588
}();
concat = function(x, y, var_args) {
var zs = var_args;
switch(arguments.length) {
case 0:
return concat__0.call(this);
case 1:
return concat__1.call(this, x);
case 2:
return concat__2.call(this, x, y);
default:
return concat__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
concat.cljs$lang$maxFixedArity = 2;
concat.cljs$lang$applyTo = concat__3.cljs$lang$applyTo;
concat.cljs$core$IFn$_invoke$arity$0 = concat__0;
concat.cljs$core$IFn$_invoke$arity$1 = concat__1;
concat.cljs$core$IFn$_invoke$arity$2 = concat__2;
concat.cljs$core$IFn$_invoke$arity$variadic = concat__3.cljs$core$IFn$_invoke$arity$variadic;
return concat
}();
cljs.core.list_STAR_ = function() {
var list_STAR_ = null;
var list_STAR___1 = function(args) {
return cljs.core.seq.call(null, args)
};
var list_STAR___2 = function(a, args) {
return cljs.core.cons.call(null, a, args)
};
var list_STAR___3 = function(a, b, args) {
return cljs.core.cons.call(null, a, cljs.core.cons.call(null, b, args))
};
var list_STAR___4 = function(a, b, c, args) {
return cljs.core.cons.call(null, a, cljs.core.cons.call(null, b, cljs.core.cons.call(null, c, args)))
};
var list_STAR___5 = function() {
var G__5590__delegate = function(a, b, c, d, more) {
return cljs.core.cons.call(null, a, cljs.core.cons.call(null, b, cljs.core.cons.call(null, c, cljs.core.cons.call(null, d, cljs.core.spread.call(null, more)))))
};
var G__5590 = function(a, b, c, d, var_args) {
var more = null;
if(arguments.length > 4) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4), 0)
}
return G__5590__delegate.call(this, a, b, c, d, more)
};
G__5590.cljs$lang$maxFixedArity = 4;
G__5590.cljs$lang$applyTo = function(arglist__5591) {
var a = cljs.core.first(arglist__5591);
arglist__5591 = cljs.core.next(arglist__5591);
var b = cljs.core.first(arglist__5591);
arglist__5591 = cljs.core.next(arglist__5591);
var c = cljs.core.first(arglist__5591);
arglist__5591 = cljs.core.next(arglist__5591);
var d = cljs.core.first(arglist__5591);
var more = cljs.core.rest(arglist__5591);
return G__5590__delegate(a, b, c, d, more)
};
G__5590.cljs$core$IFn$_invoke$arity$variadic = G__5590__delegate;
return G__5590
}();
list_STAR_ = function(a, b, c, d, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return list_STAR___1.call(this, a);
case 2:
return list_STAR___2.call(this, a, b);
case 3:
return list_STAR___3.call(this, a, b, c);
case 4:
return list_STAR___4.call(this, a, b, c, d);
default:
return list_STAR___5.cljs$core$IFn$_invoke$arity$variadic(a, b, c, d, cljs.core.array_seq(arguments, 4))
}
throw new Error("Invalid arity: " + arguments.length);
};
list_STAR_.cljs$lang$maxFixedArity = 4;
list_STAR_.cljs$lang$applyTo = list_STAR___5.cljs$lang$applyTo;
list_STAR_.cljs$core$IFn$_invoke$arity$1 = list_STAR___1;
list_STAR_.cljs$core$IFn$_invoke$arity$2 = list_STAR___2;
list_STAR_.cljs$core$IFn$_invoke$arity$3 = list_STAR___3;
list_STAR_.cljs$core$IFn$_invoke$arity$4 = list_STAR___4;
list_STAR_.cljs$core$IFn$_invoke$arity$variadic = list_STAR___5.cljs$core$IFn$_invoke$arity$variadic;
return list_STAR_
}();
cljs.core.transient$ = function transient$(coll) {
return cljs.core._as_transient.call(null, coll)
};
cljs.core.persistent_BANG_ = function persistent_BANG_(tcoll) {
return cljs.core._persistent_BANG_.call(null, tcoll)
};
cljs.core.conj_BANG_ = function conj_BANG_(tcoll, val) {
return cljs.core._conj_BANG_.call(null, tcoll, val)
};
cljs.core.assoc_BANG_ = function assoc_BANG_(tcoll, key, val) {
return cljs.core._assoc_BANG_.call(null, tcoll, key, val)
};
cljs.core.dissoc_BANG_ = function dissoc_BANG_(tcoll, key) {
return cljs.core._dissoc_BANG_.call(null, tcoll, key)
};
cljs.core.pop_BANG_ = function pop_BANG_(tcoll) {
return cljs.core._pop_BANG_.call(null, tcoll)
};
cljs.core.disj_BANG_ = function disj_BANG_(tcoll, val) {
return cljs.core._disjoin_BANG_.call(null, tcoll, val)
};
cljs.core.apply_to = function apply_to(f, argc, args) {
var args__$1 = cljs.core.seq.call(null, args);
if(argc === 0) {
return f.call(null)
}else {
var a = cljs.core._first.call(null, args__$1);
var args__$2 = cljs.core._rest.call(null, args__$1);
if(argc === 1) {
if(f.cljs$core$IFn$_invoke$arity$1) {
return f.cljs$core$IFn$_invoke$arity$1(a)
}else {
return f.call(null, a)
}
}else {
var b = cljs.core._first.call(null, args__$2);
var args__$3 = cljs.core._rest.call(null, args__$2);
if(argc === 2) {
if(f.cljs$core$IFn$_invoke$arity$2) {
return f.cljs$core$IFn$_invoke$arity$2(a, b)
}else {
return f.call(null, a, b)
}
}else {
var c = cljs.core._first.call(null, args__$3);
var args__$4 = cljs.core._rest.call(null, args__$3);
if(argc === 3) {
if(f.cljs$core$IFn$_invoke$arity$3) {
return f.cljs$core$IFn$_invoke$arity$3(a, b, c)
}else {
return f.call(null, a, b, c)
}
}else {
var d = cljs.core._first.call(null, args__$4);
var args__$5 = cljs.core._rest.call(null, args__$4);
if(argc === 4) {
if(f.cljs$core$IFn$_invoke$arity$4) {
return f.cljs$core$IFn$_invoke$arity$4(a, b, c, d)
}else {
return f.call(null, a, b, c, d)
}
}else {
var e = cljs.core._first.call(null, args__$5);
var args__$6 = cljs.core._rest.call(null, args__$5);
if(argc === 5) {
if(f.cljs$core$IFn$_invoke$arity$5) {
return f.cljs$core$IFn$_invoke$arity$5(a, b, c, d, e)
}else {
return f.call(null, a, b, c, d, e)
}
}else {
var f__$1 = cljs.core._first.call(null, args__$6);
var args__$7 = cljs.core._rest.call(null, args__$6);
if(argc === 6) {
if(f__$1.cljs$core$IFn$_invoke$arity$6) {
return f__$1.cljs$core$IFn$_invoke$arity$6(a, b, c, d, e, f__$1)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1)
}
}else {
var g = cljs.core._first.call(null, args__$7);
var args__$8 = cljs.core._rest.call(null, args__$7);
if(argc === 7) {
if(f__$1.cljs$core$IFn$_invoke$arity$7) {
return f__$1.cljs$core$IFn$_invoke$arity$7(a, b, c, d, e, f__$1, g)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g)
}
}else {
var h = cljs.core._first.call(null, args__$8);
var args__$9 = cljs.core._rest.call(null, args__$8);
if(argc === 8) {
if(f__$1.cljs$core$IFn$_invoke$arity$8) {
return f__$1.cljs$core$IFn$_invoke$arity$8(a, b, c, d, e, f__$1, g, h)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h)
}
}else {
var i = cljs.core._first.call(null, args__$9);
var args__$10 = cljs.core._rest.call(null, args__$9);
if(argc === 9) {
if(f__$1.cljs$core$IFn$_invoke$arity$9) {
return f__$1.cljs$core$IFn$_invoke$arity$9(a, b, c, d, e, f__$1, g, h, i)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i)
}
}else {
var j = cljs.core._first.call(null, args__$10);
var args__$11 = cljs.core._rest.call(null, args__$10);
if(argc === 10) {
if(f__$1.cljs$core$IFn$_invoke$arity$10) {
return f__$1.cljs$core$IFn$_invoke$arity$10(a, b, c, d, e, f__$1, g, h, i, j)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j)
}
}else {
var k = cljs.core._first.call(null, args__$11);
var args__$12 = cljs.core._rest.call(null, args__$11);
if(argc === 11) {
if(f__$1.cljs$core$IFn$_invoke$arity$11) {
return f__$1.cljs$core$IFn$_invoke$arity$11(a, b, c, d, e, f__$1, g, h, i, j, k)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k)
}
}else {
var l = cljs.core._first.call(null, args__$12);
var args__$13 = cljs.core._rest.call(null, args__$12);
if(argc === 12) {
if(f__$1.cljs$core$IFn$_invoke$arity$12) {
return f__$1.cljs$core$IFn$_invoke$arity$12(a, b, c, d, e, f__$1, g, h, i, j, k, l)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l)
}
}else {
var m = cljs.core._first.call(null, args__$13);
var args__$14 = cljs.core._rest.call(null, args__$13);
if(argc === 13) {
if(f__$1.cljs$core$IFn$_invoke$arity$13) {
return f__$1.cljs$core$IFn$_invoke$arity$13(a, b, c, d, e, f__$1, g, h, i, j, k, l, m)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m)
}
}else {
var n = cljs.core._first.call(null, args__$14);
var args__$15 = cljs.core._rest.call(null, args__$14);
if(argc === 14) {
if(f__$1.cljs$core$IFn$_invoke$arity$14) {
return f__$1.cljs$core$IFn$_invoke$arity$14(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n)
}
}else {
var o = cljs.core._first.call(null, args__$15);
var args__$16 = cljs.core._rest.call(null, args__$15);
if(argc === 15) {
if(f__$1.cljs$core$IFn$_invoke$arity$15) {
return f__$1.cljs$core$IFn$_invoke$arity$15(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o)
}
}else {
var p = cljs.core._first.call(null, args__$16);
var args__$17 = cljs.core._rest.call(null, args__$16);
if(argc === 16) {
if(f__$1.cljs$core$IFn$_invoke$arity$16) {
return f__$1.cljs$core$IFn$_invoke$arity$16(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p)
}
}else {
var q = cljs.core._first.call(null, args__$17);
var args__$18 = cljs.core._rest.call(null, args__$17);
if(argc === 17) {
if(f__$1.cljs$core$IFn$_invoke$arity$17) {
return f__$1.cljs$core$IFn$_invoke$arity$17(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q)
}
}else {
var r = cljs.core._first.call(null, args__$18);
var args__$19 = cljs.core._rest.call(null, args__$18);
if(argc === 18) {
if(f__$1.cljs$core$IFn$_invoke$arity$18) {
return f__$1.cljs$core$IFn$_invoke$arity$18(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q, r)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q, r)
}
}else {
var s = cljs.core._first.call(null, args__$19);
var args__$20 = cljs.core._rest.call(null, args__$19);
if(argc === 19) {
if(f__$1.cljs$core$IFn$_invoke$arity$19) {
return f__$1.cljs$core$IFn$_invoke$arity$19(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q, r, s)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q, r, s)
}
}else {
var t = cljs.core._first.call(null, args__$20);
var args__$21 = cljs.core._rest.call(null, args__$20);
if(argc === 20) {
if(f__$1.cljs$core$IFn$_invoke$arity$20) {
return f__$1.cljs$core$IFn$_invoke$arity$20(a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q, r, s, t)
}else {
return f__$1.call(null, a, b, c, d, e, f__$1, g, h, i, j, k, l, m, n, o, p, q, r, s, t)
}
}else {
throw new Error("Only up to 20 arguments supported on functions");
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
};
cljs.core.apply = function() {
var apply = null;
var apply__2 = function(f, args) {
var fixed_arity = f.cljs$lang$maxFixedArity;
if(f.cljs$lang$applyTo) {
var bc = cljs.core.bounded_count.call(null, args, fixed_arity + 1);
if(bc <= fixed_arity) {
return cljs.core.apply_to.call(null, f, bc, args)
}else {
return f.cljs$lang$applyTo(args)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, args))
}
};
var apply__3 = function(f, x, args) {
var arglist = cljs.core.list_STAR_.call(null, x, args);
var fixed_arity = f.cljs$lang$maxFixedArity;
if(f.cljs$lang$applyTo) {
var bc = cljs.core.bounded_count.call(null, arglist, fixed_arity + 1);
if(bc <= fixed_arity) {
return cljs.core.apply_to.call(null, f, bc, arglist)
}else {
return f.cljs$lang$applyTo(arglist)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist))
}
};
var apply__4 = function(f, x, y, args) {
var arglist = cljs.core.list_STAR_.call(null, x, y, args);
var fixed_arity = f.cljs$lang$maxFixedArity;
if(f.cljs$lang$applyTo) {
var bc = cljs.core.bounded_count.call(null, arglist, fixed_arity + 1);
if(bc <= fixed_arity) {
return cljs.core.apply_to.call(null, f, bc, arglist)
}else {
return f.cljs$lang$applyTo(arglist)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist))
}
};
var apply__5 = function(f, x, y, z, args) {
var arglist = cljs.core.list_STAR_.call(null, x, y, z, args);
var fixed_arity = f.cljs$lang$maxFixedArity;
if(f.cljs$lang$applyTo) {
var bc = cljs.core.bounded_count.call(null, arglist, fixed_arity + 1);
if(bc <= fixed_arity) {
return cljs.core.apply_to.call(null, f, bc, arglist)
}else {
return f.cljs$lang$applyTo(arglist)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist))
}
};
var apply__6 = function() {
var G__5592__delegate = function(f, a, b, c, d, args) {
var arglist = cljs.core.cons.call(null, a, cljs.core.cons.call(null, b, cljs.core.cons.call(null, c, cljs.core.cons.call(null, d, cljs.core.spread.call(null, args)))));
var fixed_arity = f.cljs$lang$maxFixedArity;
if(f.cljs$lang$applyTo) {
var bc = cljs.core.bounded_count.call(null, arglist, fixed_arity + 1);
if(bc <= fixed_arity) {
return cljs.core.apply_to.call(null, f, bc, arglist)
}else {
return f.cljs$lang$applyTo(arglist)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist))
}
};
var G__5592 = function(f, a, b, c, d, var_args) {
var args = null;
if(arguments.length > 5) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 5), 0)
}
return G__5592__delegate.call(this, f, a, b, c, d, args)
};
G__5592.cljs$lang$maxFixedArity = 5;
G__5592.cljs$lang$applyTo = function(arglist__5593) {
var f = cljs.core.first(arglist__5593);
arglist__5593 = cljs.core.next(arglist__5593);
var a = cljs.core.first(arglist__5593);
arglist__5593 = cljs.core.next(arglist__5593);
var b = cljs.core.first(arglist__5593);
arglist__5593 = cljs.core.next(arglist__5593);
var c = cljs.core.first(arglist__5593);
arglist__5593 = cljs.core.next(arglist__5593);
var d = cljs.core.first(arglist__5593);
var args = cljs.core.rest(arglist__5593);
return G__5592__delegate(f, a, b, c, d, args)
};
G__5592.cljs$core$IFn$_invoke$arity$variadic = G__5592__delegate;
return G__5592
}();
apply = function(f, a, b, c, d, var_args) {
var args = var_args;
switch(arguments.length) {
case 2:
return apply__2.call(this, f, a);
case 3:
return apply__3.call(this, f, a, b);
case 4:
return apply__4.call(this, f, a, b, c);
case 5:
return apply__5.call(this, f, a, b, c, d);
default:
return apply__6.cljs$core$IFn$_invoke$arity$variadic(f, a, b, c, d, cljs.core.array_seq(arguments, 5))
}
throw new Error("Invalid arity: " + arguments.length);
};
apply.cljs$lang$maxFixedArity = 5;
apply.cljs$lang$applyTo = apply__6.cljs$lang$applyTo;
apply.cljs$core$IFn$_invoke$arity$2 = apply__2;
apply.cljs$core$IFn$_invoke$arity$3 = apply__3;
apply.cljs$core$IFn$_invoke$arity$4 = apply__4;
apply.cljs$core$IFn$_invoke$arity$5 = apply__5;
apply.cljs$core$IFn$_invoke$arity$variadic = apply__6.cljs$core$IFn$_invoke$arity$variadic;
return apply
}();
cljs.core.vary_meta = function() {
var vary_meta__delegate = function(obj, f, args) {
return cljs.core.with_meta.call(null, obj, cljs.core.apply.call(null, f, cljs.core.meta.call(null, obj), args))
};
var vary_meta = function(obj, f, var_args) {
var args = null;
if(arguments.length > 2) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return vary_meta__delegate.call(this, obj, f, args)
};
vary_meta.cljs$lang$maxFixedArity = 2;
vary_meta.cljs$lang$applyTo = function(arglist__5594) {
var obj = cljs.core.first(arglist__5594);
arglist__5594 = cljs.core.next(arglist__5594);
var f = cljs.core.first(arglist__5594);
var args = cljs.core.rest(arglist__5594);
return vary_meta__delegate(obj, f, args)
};
vary_meta.cljs$core$IFn$_invoke$arity$variadic = vary_meta__delegate;
return vary_meta
}();
cljs.core.not_EQ_ = function() {
var not_EQ_ = null;
var not_EQ___1 = function(x) {
return false
};
var not_EQ___2 = function(x, y) {
return!cljs.core._EQ_.call(null, x, y)
};
var not_EQ___3 = function() {
var G__5595__delegate = function(x, y, more) {
return cljs.core.not.call(null, cljs.core.apply.call(null, cljs.core._EQ_, x, y, more))
};
var G__5595 = function(x, y, var_args) {
var more = null;
if(arguments.length > 2) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5595__delegate.call(this, x, y, more)
};
G__5595.cljs$lang$maxFixedArity = 2;
G__5595.cljs$lang$applyTo = function(arglist__5596) {
var x = cljs.core.first(arglist__5596);
arglist__5596 = cljs.core.next(arglist__5596);
var y = cljs.core.first(arglist__5596);
var more = cljs.core.rest(arglist__5596);
return G__5595__delegate(x, y, more)
};
G__5595.cljs$core$IFn$_invoke$arity$variadic = G__5595__delegate;
return G__5595
}();
not_EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return not_EQ___1.call(this, x);
case 2:
return not_EQ___2.call(this, x, y);
default:
return not_EQ___3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
not_EQ_.cljs$lang$maxFixedArity = 2;
not_EQ_.cljs$lang$applyTo = not_EQ___3.cljs$lang$applyTo;
not_EQ_.cljs$core$IFn$_invoke$arity$1 = not_EQ___1;
not_EQ_.cljs$core$IFn$_invoke$arity$2 = not_EQ___2;
not_EQ_.cljs$core$IFn$_invoke$arity$variadic = not_EQ___3.cljs$core$IFn$_invoke$arity$variadic;
return not_EQ_
}();
cljs.core.not_empty = function not_empty(coll) {
if(cljs.core.seq.call(null, coll)) {
return coll
}else {
return null
}
};
cljs.core.every_QMARK_ = function every_QMARK_(pred, coll) {
while(true) {
if(cljs.core.seq.call(null, coll) == null) {
return true
}else {
if(cljs.core.truth_(pred.call(null, cljs.core.first.call(null, coll)))) {
var G__5597 = pred;
var G__5598 = cljs.core.next.call(null, coll);
pred = G__5597;
coll = G__5598;
continue
}else {
if("\ufdd0:else") {
return false
}else {
return null
}
}
}
break
}
};
cljs.core.not_every_QMARK_ = function not_every_QMARK_(pred, coll) {
return!cljs.core.every_QMARK_.call(null, pred, coll)
};
cljs.core.some = function some(pred, coll) {
while(true) {
if(cljs.core.seq.call(null, coll)) {
var or__3943__auto__ = pred.call(null, cljs.core.first.call(null, coll));
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var G__5599 = pred;
var G__5600 = cljs.core.next.call(null, coll);
pred = G__5599;
coll = G__5600;
continue
}
}else {
return null
}
break
}
};
cljs.core.not_any_QMARK_ = function not_any_QMARK_(pred, coll) {
return cljs.core.not.call(null, cljs.core.some.call(null, pred, coll))
};
cljs.core.even_QMARK_ = function even_QMARK_(n) {
if(cljs.core.integer_QMARK_.call(null, n)) {
return(n & 1) === 0
}else {
throw new Error([cljs.core.str("Argument must be an integer: "), cljs.core.str(n)].join(""));
}
};
cljs.core.odd_QMARK_ = function odd_QMARK_(n) {
return!cljs.core.even_QMARK_.call(null, n)
};
cljs.core.identity = function identity(x) {
return x
};
cljs.core.complement = function complement(f) {
return function() {
var G__5601 = null;
var G__5601__0 = function() {
return cljs.core.not.call(null, f.call(null))
};
var G__5601__1 = function(x) {
return cljs.core.not.call(null, f.call(null, x))
};
var G__5601__2 = function(x, y) {
return cljs.core.not.call(null, f.call(null, x, y))
};
var G__5601__3 = function() {
var G__5602__delegate = function(x, y, zs) {
return cljs.core.not.call(null, cljs.core.apply.call(null, f, x, y, zs))
};
var G__5602 = function(x, y, var_args) {
var zs = null;
if(arguments.length > 2) {
zs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5602__delegate.call(this, x, y, zs)
};
G__5602.cljs$lang$maxFixedArity = 2;
G__5602.cljs$lang$applyTo = function(arglist__5603) {
var x = cljs.core.first(arglist__5603);
arglist__5603 = cljs.core.next(arglist__5603);
var y = cljs.core.first(arglist__5603);
var zs = cljs.core.rest(arglist__5603);
return G__5602__delegate(x, y, zs)
};
G__5602.cljs$core$IFn$_invoke$arity$variadic = G__5602__delegate;
return G__5602
}();
G__5601 = function(x, y, var_args) {
var zs = var_args;
switch(arguments.length) {
case 0:
return G__5601__0.call(this);
case 1:
return G__5601__1.call(this, x);
case 2:
return G__5601__2.call(this, x, y);
default:
return G__5601__3.cljs$core$IFn$_invoke$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5601.cljs$lang$maxFixedArity = 2;
G__5601.cljs$lang$applyTo = G__5601__3.cljs$lang$applyTo;
return G__5601
}()
};
cljs.core.constantly = function constantly(x) {
return function() {
var G__5604__delegate = function(args) {
return x
};
var G__5604 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5604__delegate.call(this, args)
};
G__5604.cljs$lang$maxFixedArity = 0;
G__5604.cljs$lang$applyTo = function(arglist__5605) {
var args = cljs.core.seq(arglist__5605);
return G__5604__delegate(args)
};
G__5604.cljs$core$IFn$_invoke$arity$variadic = G__5604__delegate;
return G__5604
}()
};
cljs.core.comp = function() {
var comp = null;
var comp__0 = function() {
return cljs.core.identity
};
var comp__1 = function(f) {
return f
};
var comp__2 = function(f, g) {
return function() {
var G__5606 = null;
var G__5606__0 = function() {
return f.call(null, g.call(null))
};
var G__5606__1 = function(x) {
return f.call(null, g.call(null, x))
};
var G__5606__2 = function(x, y) {
return f.call(null, g.call(null, x, y))
};
var G__5606__3 = function(x, y, z) {
return f.call(null, g.call(null, x, y, z))
};
var G__5606__4 = function() {
var G__5607__delegate = function(x, y, z, args) {
return f.call(null, cljs.core.apply.call(null, g, x, y, z, args))
};
var G__5607 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5607__delegate.call(this, x, y, z, args)
};
G__5607.cljs$lang$maxFixedArity = 3;
G__5607.cljs$lang$applyTo = function(arglist__5608) {
var x = cljs.core.first(arglist__5608);
arglist__5608 = cljs.core.next(arglist__5608);
var y = cljs.core.first(arglist__5608);
arglist__5608 = cljs.core.next(arglist__5608);
var z = cljs.core.first(arglist__5608);
var args = cljs.core.rest(arglist__5608);
return G__5607__delegate(x, y, z, args)
};
G__5607.cljs$core$IFn$_invoke$arity$variadic = G__5607__delegate;
return G__5607
}();
G__5606 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__5606__0.call(this);
case 1:
return G__5606__1.call(this, x);
case 2:
return G__5606__2.call(this, x, y);
case 3:
return G__5606__3.call(this, x, y, z);
default:
return G__5606__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5606.cljs$lang$maxFixedArity = 3;
G__5606.cljs$lang$applyTo = G__5606__4.cljs$lang$applyTo;
return G__5606
}()
};
var comp__3 = function(f, g, h) {
return function() {
var G__5609 = null;
var G__5609__0 = function() {
return f.call(null, g.call(null, h.call(null)))
};
var G__5609__1 = function(x) {
return f.call(null, g.call(null, h.call(null, x)))
};
var G__5609__2 = function(x, y) {
return f.call(null, g.call(null, h.call(null, x, y)))
};
var G__5609__3 = function(x, y, z) {
return f.call(null, g.call(null, h.call(null, x, y, z)))
};
var G__5609__4 = function() {
var G__5610__delegate = function(x, y, z, args) {
return f.call(null, g.call(null, cljs.core.apply.call(null, h, x, y, z, args)))
};
var G__5610 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5610__delegate.call(this, x, y, z, args)
};
G__5610.cljs$lang$maxFixedArity = 3;
G__5610.cljs$lang$applyTo = function(arglist__5611) {
var x = cljs.core.first(arglist__5611);
arglist__5611 = cljs.core.next(arglist__5611);
var y = cljs.core.first(arglist__5611);
arglist__5611 = cljs.core.next(arglist__5611);
var z = cljs.core.first(arglist__5611);
var args = cljs.core.rest(arglist__5611);
return G__5610__delegate(x, y, z, args)
};
G__5610.cljs$core$IFn$_invoke$arity$variadic = G__5610__delegate;
return G__5610
}();
G__5609 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__5609__0.call(this);
case 1:
return G__5609__1.call(this, x);
case 2:
return G__5609__2.call(this, x, y);
case 3:
return G__5609__3.call(this, x, y, z);
default:
return G__5609__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5609.cljs$lang$maxFixedArity = 3;
G__5609.cljs$lang$applyTo = G__5609__4.cljs$lang$applyTo;
return G__5609
}()
};
var comp__4 = function() {
var G__5612__delegate = function(f1, f2, f3, fs) {
var fs__$1 = cljs.core.reverse.call(null, cljs.core.list_STAR_.call(null, f1, f2, f3, fs));
return function() {
var G__5613__delegate = function(args) {
var ret = cljs.core.apply.call(null, cljs.core.first.call(null, fs__$1), args);
var fs__$2 = cljs.core.next.call(null, fs__$1);
while(true) {
if(fs__$2) {
var G__5614 = cljs.core.first.call(null, fs__$2).call(null, ret);
var G__5615 = cljs.core.next.call(null, fs__$2);
ret = G__5614;
fs__$2 = G__5615;
continue
}else {
return ret
}
break
}
};
var G__5613 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5613__delegate.call(this, args)
};
G__5613.cljs$lang$maxFixedArity = 0;
G__5613.cljs$lang$applyTo = function(arglist__5616) {
var args = cljs.core.seq(arglist__5616);
return G__5613__delegate(args)
};
G__5613.cljs$core$IFn$_invoke$arity$variadic = G__5613__delegate;
return G__5613
}()
};
var G__5612 = function(f1, f2, f3, var_args) {
var fs = null;
if(arguments.length > 3) {
fs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5612__delegate.call(this, f1, f2, f3, fs)
};
G__5612.cljs$lang$maxFixedArity = 3;
G__5612.cljs$lang$applyTo = function(arglist__5617) {
var f1 = cljs.core.first(arglist__5617);
arglist__5617 = cljs.core.next(arglist__5617);
var f2 = cljs.core.first(arglist__5617);
arglist__5617 = cljs.core.next(arglist__5617);
var f3 = cljs.core.first(arglist__5617);
var fs = cljs.core.rest(arglist__5617);
return G__5612__delegate(f1, f2, f3, fs)
};
G__5612.cljs$core$IFn$_invoke$arity$variadic = G__5612__delegate;
return G__5612
}();
comp = function(f1, f2, f3, var_args) {
var fs = var_args;
switch(arguments.length) {
case 0:
return comp__0.call(this);
case 1:
return comp__1.call(this, f1);
case 2:
return comp__2.call(this, f1, f2);
case 3:
return comp__3.call(this, f1, f2, f3);
default:
return comp__4.cljs$core$IFn$_invoke$arity$variadic(f1, f2, f3, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
comp.cljs$lang$maxFixedArity = 3;
comp.cljs$lang$applyTo = comp__4.cljs$lang$applyTo;
comp.cljs$core$IFn$_invoke$arity$0 = comp__0;
comp.cljs$core$IFn$_invoke$arity$1 = comp__1;
comp.cljs$core$IFn$_invoke$arity$2 = comp__2;
comp.cljs$core$IFn$_invoke$arity$3 = comp__3;
comp.cljs$core$IFn$_invoke$arity$variadic = comp__4.cljs$core$IFn$_invoke$arity$variadic;
return comp
}();
cljs.core.partial = function() {
var partial = null;
var partial__2 = function(f, arg1) {
return function() {
var G__5618__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, args)
};
var G__5618 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5618__delegate.call(this, args)
};
G__5618.cljs$lang$maxFixedArity = 0;
G__5618.cljs$lang$applyTo = function(arglist__5619) {
var args = cljs.core.seq(arglist__5619);
return G__5618__delegate(args)
};
G__5618.cljs$core$IFn$_invoke$arity$variadic = G__5618__delegate;
return G__5618
}()
};
var partial__3 = function(f, arg1, arg2) {
return function() {
var G__5620__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, args)
};
var G__5620 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5620__delegate.call(this, args)
};
G__5620.cljs$lang$maxFixedArity = 0;
G__5620.cljs$lang$applyTo = function(arglist__5621) {
var args = cljs.core.seq(arglist__5621);
return G__5620__delegate(args)
};
G__5620.cljs$core$IFn$_invoke$arity$variadic = G__5620__delegate;
return G__5620
}()
};
var partial__4 = function(f, arg1, arg2, arg3) {
return function() {
var G__5622__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, arg3, args)
};
var G__5622 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5622__delegate.call(this, args)
};
G__5622.cljs$lang$maxFixedArity = 0;
G__5622.cljs$lang$applyTo = function(arglist__5623) {
var args = cljs.core.seq(arglist__5623);
return G__5622__delegate(args)
};
G__5622.cljs$core$IFn$_invoke$arity$variadic = G__5622__delegate;
return G__5622
}()
};
var partial__5 = function() {
var G__5624__delegate = function(f, arg1, arg2, arg3, more) {
return function() {
var G__5625__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, arg3, cljs.core.concat.call(null, more, args))
};
var G__5625 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5625__delegate.call(this, args)
};
G__5625.cljs$lang$maxFixedArity = 0;
G__5625.cljs$lang$applyTo = function(arglist__5626) {
var args = cljs.core.seq(arglist__5626);
return G__5625__delegate(args)
};
G__5625.cljs$core$IFn$_invoke$arity$variadic = G__5625__delegate;
return G__5625
}()
};
var G__5624 = function(f, arg1, arg2, arg3, var_args) {
var more = null;
if(arguments.length > 4) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4), 0)
}
return G__5624__delegate.call(this, f, arg1, arg2, arg3, more)
};
G__5624.cljs$lang$maxFixedArity = 4;
G__5624.cljs$lang$applyTo = function(arglist__5627) {
var f = cljs.core.first(arglist__5627);
arglist__5627 = cljs.core.next(arglist__5627);
var arg1 = cljs.core.first(arglist__5627);
arglist__5627 = cljs.core.next(arglist__5627);
var arg2 = cljs.core.first(arglist__5627);
arglist__5627 = cljs.core.next(arglist__5627);
var arg3 = cljs.core.first(arglist__5627);
var more = cljs.core.rest(arglist__5627);
return G__5624__delegate(f, arg1, arg2, arg3, more)
};
G__5624.cljs$core$IFn$_invoke$arity$variadic = G__5624__delegate;
return G__5624
}();
partial = function(f, arg1, arg2, arg3, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return partial__2.call(this, f, arg1);
case 3:
return partial__3.call(this, f, arg1, arg2);
case 4:
return partial__4.call(this, f, arg1, arg2, arg3);
default:
return partial__5.cljs$core$IFn$_invoke$arity$variadic(f, arg1, arg2, arg3, cljs.core.array_seq(arguments, 4))
}
throw new Error("Invalid arity: " + arguments.length);
};
partial.cljs$lang$maxFixedArity = 4;
partial.cljs$lang$applyTo = partial__5.cljs$lang$applyTo;
partial.cljs$core$IFn$_invoke$arity$2 = partial__2;
partial.cljs$core$IFn$_invoke$arity$3 = partial__3;
partial.cljs$core$IFn$_invoke$arity$4 = partial__4;
partial.cljs$core$IFn$_invoke$arity$variadic = partial__5.cljs$core$IFn$_invoke$arity$variadic;
return partial
}();
cljs.core.fnil = function() {
var fnil = null;
var fnil__2 = function(f, x) {
return function() {
var G__5628 = null;
var G__5628__1 = function(a) {
return f.call(null, a == null ? x : a)
};
var G__5628__2 = function(a, b) {
return f.call(null, a == null ? x : a, b)
};
var G__5628__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b, c)
};
var G__5628__4 = function() {
var G__5629__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b, c, ds)
};
var G__5629 = function(a, b, c, var_args) {
var ds = null;
if(arguments.length > 3) {
ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5629__delegate.call(this, a, b, c, ds)
};
G__5629.cljs$lang$maxFixedArity = 3;
G__5629.cljs$lang$applyTo = function(arglist__5630) {
var a = cljs.core.first(arglist__5630);
arglist__5630 = cljs.core.next(arglist__5630);
var b = cljs.core.first(arglist__5630);
arglist__5630 = cljs.core.next(arglist__5630);
var c = cljs.core.first(arglist__5630);
var ds = cljs.core.rest(arglist__5630);
return G__5629__delegate(a, b, c, ds)
};
G__5629.cljs$core$IFn$_invoke$arity$variadic = G__5629__delegate;
return G__5629
}();
G__5628 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 1:
return G__5628__1.call(this, a);
case 2:
return G__5628__2.call(this, a, b);
case 3:
return G__5628__3.call(this, a, b, c);
default:
return G__5628__4.cljs$core$IFn$_invoke$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5628.cljs$lang$maxFixedArity = 3;
G__5628.cljs$lang$applyTo = G__5628__4.cljs$lang$applyTo;
return G__5628
}()
};
var fnil__3 = function(f, x, y) {
return function() {
var G__5631 = null;
var G__5631__2 = function(a, b) {
return f.call(null, a == null ? x : a, b == null ? y : b)
};
var G__5631__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b == null ? y : b, c)
};
var G__5631__4 = function() {
var G__5632__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b == null ? y : b, c, ds)
};
var G__5632 = function(a, b, c, var_args) {
var ds = null;
if(arguments.length > 3) {
ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5632__delegate.call(this, a, b, c, ds)
};
G__5632.cljs$lang$maxFixedArity = 3;
G__5632.cljs$lang$applyTo = function(arglist__5633) {
var a = cljs.core.first(arglist__5633);
arglist__5633 = cljs.core.next(arglist__5633);
var b = cljs.core.first(arglist__5633);
arglist__5633 = cljs.core.next(arglist__5633);
var c = cljs.core.first(arglist__5633);
var ds = cljs.core.rest(arglist__5633);
return G__5632__delegate(a, b, c, ds)
};
G__5632.cljs$core$IFn$_invoke$arity$variadic = G__5632__delegate;
return G__5632
}();
G__5631 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 2:
return G__5631__2.call(this, a, b);
case 3:
return G__5631__3.call(this, a, b, c);
default:
return G__5631__4.cljs$core$IFn$_invoke$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5631.cljs$lang$maxFixedArity = 3;
G__5631.cljs$lang$applyTo = G__5631__4.cljs$lang$applyTo;
return G__5631
}()
};
var fnil__4 = function(f, x, y, z) {
return function() {
var G__5634 = null;
var G__5634__2 = function(a, b) {
return f.call(null, a == null ? x : a, b == null ? y : b)
};
var G__5634__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b == null ? y : b, c == null ? z : c)
};
var G__5634__4 = function() {
var G__5635__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b == null ? y : b, c == null ? z : c, ds)
};
var G__5635 = function(a, b, c, var_args) {
var ds = null;
if(arguments.length > 3) {
ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5635__delegate.call(this, a, b, c, ds)
};
G__5635.cljs$lang$maxFixedArity = 3;
G__5635.cljs$lang$applyTo = function(arglist__5636) {
var a = cljs.core.first(arglist__5636);
arglist__5636 = cljs.core.next(arglist__5636);
var b = cljs.core.first(arglist__5636);
arglist__5636 = cljs.core.next(arglist__5636);
var c = cljs.core.first(arglist__5636);
var ds = cljs.core.rest(arglist__5636);
return G__5635__delegate(a, b, c, ds)
};
G__5635.cljs$core$IFn$_invoke$arity$variadic = G__5635__delegate;
return G__5635
}();
G__5634 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 2:
return G__5634__2.call(this, a, b);
case 3:
return G__5634__3.call(this, a, b, c);
default:
return G__5634__4.cljs$core$IFn$_invoke$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5634.cljs$lang$maxFixedArity = 3;
G__5634.cljs$lang$applyTo = G__5634__4.cljs$lang$applyTo;
return G__5634
}()
};
fnil = function(f, x, y, z) {
switch(arguments.length) {
case 2:
return fnil__2.call(this, f, x);
case 3:
return fnil__3.call(this, f, x, y);
case 4:
return fnil__4.call(this, f, x, y, z)
}
throw new Error("Invalid arity: " + arguments.length);
};
fnil.cljs$core$IFn$_invoke$arity$2 = fnil__2;
fnil.cljs$core$IFn$_invoke$arity$3 = fnil__3;
fnil.cljs$core$IFn$_invoke$arity$4 = fnil__4;
return fnil
}();
cljs.core.map_indexed = function map_indexed(f, coll) {
var mapi = function mapi(idx, coll__$1) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll__$1);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, s)) {
var c = cljs.core.chunk_first.call(null, s);
var size = cljs.core.count.call(null, c);
var b = cljs.core.chunk_buffer.call(null, size);
var n__3120__auto___5637 = size;
var i_5638 = 0;
while(true) {
if(i_5638 < n__3120__auto___5637) {
cljs.core.chunk_append.call(null, b, f.call(null, idx + i_5638, cljs.core._nth.call(null, c, i_5638)));
var G__5639 = i_5638 + 1;
i_5638 = G__5639;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b), mapi.call(null, idx + size, cljs.core.chunk_rest.call(null, s)))
}else {
return cljs.core.cons.call(null, f.call(null, idx, cljs.core.first.call(null, s)), mapi.call(null, idx + 1, cljs.core.rest.call(null, s)))
}
}else {
return null
}
}, null)
};
return mapi.call(null, 0, coll)
};
cljs.core.keep = function keep(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, s)) {
var c = cljs.core.chunk_first.call(null, s);
var size = cljs.core.count.call(null, c);
var b = cljs.core.chunk_buffer.call(null, size);
var n__3120__auto___5640 = size;
var i_5641 = 0;
while(true) {
if(i_5641 < n__3120__auto___5640) {
var x_5642 = f.call(null, cljs.core._nth.call(null, c, i_5641));
if(x_5642 == null) {
}else {
cljs.core.chunk_append.call(null, b, x_5642)
}
var G__5643 = i_5641 + 1;
i_5641 = G__5643;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b), keep.call(null, f, cljs.core.chunk_rest.call(null, s)))
}else {
var x = f.call(null, cljs.core.first.call(null, s));
if(x == null) {
return keep.call(null, f, cljs.core.rest.call(null, s))
}else {
return cljs.core.cons.call(null, x, keep.call(null, f, cljs.core.rest.call(null, s)))
}
}
}else {
return null
}
}, null)
};
cljs.core.keep_indexed = function keep_indexed(f, coll) {
var keepi = function keepi(idx, coll__$1) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll__$1);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, s)) {
var c = cljs.core.chunk_first.call(null, s);
var size = cljs.core.count.call(null, c);
var b = cljs.core.chunk_buffer.call(null, size);
var n__3120__auto___5650 = size;
var i_5651 = 0;
while(true) {
if(i_5651 < n__3120__auto___5650) {
var x_5652 = f.call(null, idx + i_5651, cljs.core._nth.call(null, c, i_5651));
if(x_5652 == null) {
}else {
cljs.core.chunk_append.call(null, b, x_5652)
}
var G__5653 = i_5651 + 1;
i_5651 = G__5653;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b), keepi.call(null, idx + size, cljs.core.chunk_rest.call(null, s)))
}else {
var x = f.call(null, idx, cljs.core.first.call(null, s));
if(x == null) {
return keepi.call(null, idx + 1, cljs.core.rest.call(null, s))
}else {
return cljs.core.cons.call(null, x, keepi.call(null, idx + 1, cljs.core.rest.call(null, s)))
}
}
}else {
return null
}
}, null)
};
return keepi.call(null, 0, coll)
};
cljs.core.every_pred = function() {
var every_pred = null;
var every_pred__1 = function(p) {
return function() {
var ep1 = null;
var ep1__0 = function() {
return true
};
var ep1__1 = function(x) {
return cljs.core.boolean$.call(null, p.call(null, x))
};
var ep1__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
return p.call(null, y)
}else {
return and__3941__auto__
}
}())
};
var ep1__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p.call(null, y);
if(cljs.core.truth_(and__3941__auto____$1)) {
return p.call(null, z)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())
};
var ep1__4 = function() {
var G__5660__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = ep1.call(null, x, y, z);
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.every_QMARK_.call(null, p, args)
}else {
return and__3941__auto__
}
}())
};
var G__5660 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5660__delegate.call(this, x, y, z, args)
};
G__5660.cljs$lang$maxFixedArity = 3;
G__5660.cljs$lang$applyTo = function(arglist__5661) {
var x = cljs.core.first(arglist__5661);
arglist__5661 = cljs.core.next(arglist__5661);
var y = cljs.core.first(arglist__5661);
arglist__5661 = cljs.core.next(arglist__5661);
var z = cljs.core.first(arglist__5661);
var args = cljs.core.rest(arglist__5661);
return G__5660__delegate(x, y, z, args)
};
G__5660.cljs$core$IFn$_invoke$arity$variadic = G__5660__delegate;
return G__5660
}();
ep1 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return ep1__0.call(this);
case 1:
return ep1__1.call(this, x);
case 2:
return ep1__2.call(this, x, y);
case 3:
return ep1__3.call(this, x, y, z);
default:
return ep1__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
ep1.cljs$lang$maxFixedArity = 3;
ep1.cljs$lang$applyTo = ep1__4.cljs$lang$applyTo;
ep1.cljs$core$IFn$_invoke$arity$0 = ep1__0;
ep1.cljs$core$IFn$_invoke$arity$1 = ep1__1;
ep1.cljs$core$IFn$_invoke$arity$2 = ep1__2;
ep1.cljs$core$IFn$_invoke$arity$3 = ep1__3;
ep1.cljs$core$IFn$_invoke$arity$variadic = ep1__4.cljs$core$IFn$_invoke$arity$variadic;
return ep1
}()
};
var every_pred__2 = function(p1, p2) {
return function() {
var ep2 = null;
var ep2__0 = function() {
return true
};
var ep2__1 = function(x) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p1.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
return p2.call(null, x)
}else {
return and__3941__auto__
}
}())
};
var ep2__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p1.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p1.call(null, y);
if(cljs.core.truth_(and__3941__auto____$1)) {
var and__3941__auto____$2 = p2.call(null, x);
if(cljs.core.truth_(and__3941__auto____$2)) {
return p2.call(null, y)
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())
};
var ep2__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p1.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p1.call(null, y);
if(cljs.core.truth_(and__3941__auto____$1)) {
var and__3941__auto____$2 = p1.call(null, z);
if(cljs.core.truth_(and__3941__auto____$2)) {
var and__3941__auto____$3 = p2.call(null, x);
if(cljs.core.truth_(and__3941__auto____$3)) {
var and__3941__auto____$4 = p2.call(null, y);
if(cljs.core.truth_(and__3941__auto____$4)) {
return p2.call(null, z)
}else {
return and__3941__auto____$4
}
}else {
return and__3941__auto____$3
}
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())
};
var ep2__4 = function() {
var G__5662__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = ep2.call(null, x, y, z);
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.every_QMARK_.call(null, function(p1__5644_SHARP_) {
var and__3941__auto____$1 = p1.call(null, p1__5644_SHARP_);
if(cljs.core.truth_(and__3941__auto____$1)) {
return p2.call(null, p1__5644_SHARP_)
}else {
return and__3941__auto____$1
}
}, args)
}else {
return and__3941__auto__
}
}())
};
var G__5662 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5662__delegate.call(this, x, y, z, args)
};
G__5662.cljs$lang$maxFixedArity = 3;
G__5662.cljs$lang$applyTo = function(arglist__5663) {
var x = cljs.core.first(arglist__5663);
arglist__5663 = cljs.core.next(arglist__5663);
var y = cljs.core.first(arglist__5663);
arglist__5663 = cljs.core.next(arglist__5663);
var z = cljs.core.first(arglist__5663);
var args = cljs.core.rest(arglist__5663);
return G__5662__delegate(x, y, z, args)
};
G__5662.cljs$core$IFn$_invoke$arity$variadic = G__5662__delegate;
return G__5662
}();
ep2 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return ep2__0.call(this);
case 1:
return ep2__1.call(this, x);
case 2:
return ep2__2.call(this, x, y);
case 3:
return ep2__3.call(this, x, y, z);
default:
return ep2__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
ep2.cljs$lang$maxFixedArity = 3;
ep2.cljs$lang$applyTo = ep2__4.cljs$lang$applyTo;
ep2.cljs$core$IFn$_invoke$arity$0 = ep2__0;
ep2.cljs$core$IFn$_invoke$arity$1 = ep2__1;
ep2.cljs$core$IFn$_invoke$arity$2 = ep2__2;
ep2.cljs$core$IFn$_invoke$arity$3 = ep2__3;
ep2.cljs$core$IFn$_invoke$arity$variadic = ep2__4.cljs$core$IFn$_invoke$arity$variadic;
return ep2
}()
};
var every_pred__3 = function(p1, p2, p3) {
return function() {
var ep3 = null;
var ep3__0 = function() {
return true
};
var ep3__1 = function(x) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p1.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p2.call(null, x);
if(cljs.core.truth_(and__3941__auto____$1)) {
return p3.call(null, x)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())
};
var ep3__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p1.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p2.call(null, x);
if(cljs.core.truth_(and__3941__auto____$1)) {
var and__3941__auto____$2 = p3.call(null, x);
if(cljs.core.truth_(and__3941__auto____$2)) {
var and__3941__auto____$3 = p1.call(null, y);
if(cljs.core.truth_(and__3941__auto____$3)) {
var and__3941__auto____$4 = p2.call(null, y);
if(cljs.core.truth_(and__3941__auto____$4)) {
return p3.call(null, y)
}else {
return and__3941__auto____$4
}
}else {
return and__3941__auto____$3
}
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())
};
var ep3__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = p1.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p2.call(null, x);
if(cljs.core.truth_(and__3941__auto____$1)) {
var and__3941__auto____$2 = p3.call(null, x);
if(cljs.core.truth_(and__3941__auto____$2)) {
var and__3941__auto____$3 = p1.call(null, y);
if(cljs.core.truth_(and__3941__auto____$3)) {
var and__3941__auto____$4 = p2.call(null, y);
if(cljs.core.truth_(and__3941__auto____$4)) {
var and__3941__auto____$5 = p3.call(null, y);
if(cljs.core.truth_(and__3941__auto____$5)) {
var and__3941__auto____$6 = p1.call(null, z);
if(cljs.core.truth_(and__3941__auto____$6)) {
var and__3941__auto____$7 = p2.call(null, z);
if(cljs.core.truth_(and__3941__auto____$7)) {
return p3.call(null, z)
}else {
return and__3941__auto____$7
}
}else {
return and__3941__auto____$6
}
}else {
return and__3941__auto____$5
}
}else {
return and__3941__auto____$4
}
}else {
return and__3941__auto____$3
}
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())
};
var ep3__4 = function() {
var G__5664__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = ep3.call(null, x, y, z);
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.every_QMARK_.call(null, function(p1__5645_SHARP_) {
var and__3941__auto____$1 = p1.call(null, p1__5645_SHARP_);
if(cljs.core.truth_(and__3941__auto____$1)) {
var and__3941__auto____$2 = p2.call(null, p1__5645_SHARP_);
if(cljs.core.truth_(and__3941__auto____$2)) {
return p3.call(null, p1__5645_SHARP_)
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}, args)
}else {
return and__3941__auto__
}
}())
};
var G__5664 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5664__delegate.call(this, x, y, z, args)
};
G__5664.cljs$lang$maxFixedArity = 3;
G__5664.cljs$lang$applyTo = function(arglist__5665) {
var x = cljs.core.first(arglist__5665);
arglist__5665 = cljs.core.next(arglist__5665);
var y = cljs.core.first(arglist__5665);
arglist__5665 = cljs.core.next(arglist__5665);
var z = cljs.core.first(arglist__5665);
var args = cljs.core.rest(arglist__5665);
return G__5664__delegate(x, y, z, args)
};
G__5664.cljs$core$IFn$_invoke$arity$variadic = G__5664__delegate;
return G__5664
}();
ep3 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return ep3__0.call(this);
case 1:
return ep3__1.call(this, x);
case 2:
return ep3__2.call(this, x, y);
case 3:
return ep3__3.call(this, x, y, z);
default:
return ep3__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
ep3.cljs$lang$maxFixedArity = 3;
ep3.cljs$lang$applyTo = ep3__4.cljs$lang$applyTo;
ep3.cljs$core$IFn$_invoke$arity$0 = ep3__0;
ep3.cljs$core$IFn$_invoke$arity$1 = ep3__1;
ep3.cljs$core$IFn$_invoke$arity$2 = ep3__2;
ep3.cljs$core$IFn$_invoke$arity$3 = ep3__3;
ep3.cljs$core$IFn$_invoke$arity$variadic = ep3__4.cljs$core$IFn$_invoke$arity$variadic;
return ep3
}()
};
var every_pred__4 = function() {
var G__5666__delegate = function(p1, p2, p3, ps) {
var ps__$1 = cljs.core.list_STAR_.call(null, p1, p2, p3, ps);
return function() {
var epn = null;
var epn__0 = function() {
return true
};
var epn__1 = function(x) {
return cljs.core.every_QMARK_.call(null, function(p1__5646_SHARP_) {
return p1__5646_SHARP_.call(null, x)
}, ps__$1)
};
var epn__2 = function(x, y) {
return cljs.core.every_QMARK_.call(null, function(p1__5647_SHARP_) {
var and__3941__auto__ = p1__5647_SHARP_.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
return p1__5647_SHARP_.call(null, y)
}else {
return and__3941__auto__
}
}, ps__$1)
};
var epn__3 = function(x, y, z) {
return cljs.core.every_QMARK_.call(null, function(p1__5648_SHARP_) {
var and__3941__auto__ = p1__5648_SHARP_.call(null, x);
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = p1__5648_SHARP_.call(null, y);
if(cljs.core.truth_(and__3941__auto____$1)) {
return p1__5648_SHARP_.call(null, z)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}, ps__$1)
};
var epn__4 = function() {
var G__5667__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3941__auto__ = epn.call(null, x, y, z);
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.every_QMARK_.call(null, function(p1__5649_SHARP_) {
return cljs.core.every_QMARK_.call(null, p1__5649_SHARP_, args)
}, ps__$1)
}else {
return and__3941__auto__
}
}())
};
var G__5667 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5667__delegate.call(this, x, y, z, args)
};
G__5667.cljs$lang$maxFixedArity = 3;
G__5667.cljs$lang$applyTo = function(arglist__5668) {
var x = cljs.core.first(arglist__5668);
arglist__5668 = cljs.core.next(arglist__5668);
var y = cljs.core.first(arglist__5668);
arglist__5668 = cljs.core.next(arglist__5668);
var z = cljs.core.first(arglist__5668);
var args = cljs.core.rest(arglist__5668);
return G__5667__delegate(x, y, z, args)
};
G__5667.cljs$core$IFn$_invoke$arity$variadic = G__5667__delegate;
return G__5667
}();
epn = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return epn__0.call(this);
case 1:
return epn__1.call(this, x);
case 2:
return epn__2.call(this, x, y);
case 3:
return epn__3.call(this, x, y, z);
default:
return epn__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
epn.cljs$lang$maxFixedArity = 3;
epn.cljs$lang$applyTo = epn__4.cljs$lang$applyTo;
epn.cljs$core$IFn$_invoke$arity$0 = epn__0;
epn.cljs$core$IFn$_invoke$arity$1 = epn__1;
epn.cljs$core$IFn$_invoke$arity$2 = epn__2;
epn.cljs$core$IFn$_invoke$arity$3 = epn__3;
epn.cljs$core$IFn$_invoke$arity$variadic = epn__4.cljs$core$IFn$_invoke$arity$variadic;
return epn
}()
};
var G__5666 = function(p1, p2, p3, var_args) {
var ps = null;
if(arguments.length > 3) {
ps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5666__delegate.call(this, p1, p2, p3, ps)
};
G__5666.cljs$lang$maxFixedArity = 3;
G__5666.cljs$lang$applyTo = function(arglist__5669) {
var p1 = cljs.core.first(arglist__5669);
arglist__5669 = cljs.core.next(arglist__5669);
var p2 = cljs.core.first(arglist__5669);
arglist__5669 = cljs.core.next(arglist__5669);
var p3 = cljs.core.first(arglist__5669);
var ps = cljs.core.rest(arglist__5669);
return G__5666__delegate(p1, p2, p3, ps)
};
G__5666.cljs$core$IFn$_invoke$arity$variadic = G__5666__delegate;
return G__5666
}();
every_pred = function(p1, p2, p3, var_args) {
var ps = var_args;
switch(arguments.length) {
case 1:
return every_pred__1.call(this, p1);
case 2:
return every_pred__2.call(this, p1, p2);
case 3:
return every_pred__3.call(this, p1, p2, p3);
default:
return every_pred__4.cljs$core$IFn$_invoke$arity$variadic(p1, p2, p3, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
every_pred.cljs$lang$maxFixedArity = 3;
every_pred.cljs$lang$applyTo = every_pred__4.cljs$lang$applyTo;
every_pred.cljs$core$IFn$_invoke$arity$1 = every_pred__1;
every_pred.cljs$core$IFn$_invoke$arity$2 = every_pred__2;
every_pred.cljs$core$IFn$_invoke$arity$3 = every_pred__3;
every_pred.cljs$core$IFn$_invoke$arity$variadic = every_pred__4.cljs$core$IFn$_invoke$arity$variadic;
return every_pred
}();
cljs.core.some_fn = function() {
var some_fn = null;
var some_fn__1 = function(p) {
return function() {
var sp1 = null;
var sp1__0 = function() {
return null
};
var sp1__1 = function(x) {
return p.call(null, x)
};
var sp1__2 = function(x, y) {
var or__3943__auto__ = p.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return p.call(null, y)
}
};
var sp1__3 = function(x, y, z) {
var or__3943__auto__ = p.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p.call(null, y);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
return p.call(null, z)
}
}
};
var sp1__4 = function() {
var G__5671__delegate = function(x, y, z, args) {
var or__3943__auto__ = sp1.call(null, x, y, z);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.some.call(null, p, args)
}
};
var G__5671 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5671__delegate.call(this, x, y, z, args)
};
G__5671.cljs$lang$maxFixedArity = 3;
G__5671.cljs$lang$applyTo = function(arglist__5672) {
var x = cljs.core.first(arglist__5672);
arglist__5672 = cljs.core.next(arglist__5672);
var y = cljs.core.first(arglist__5672);
arglist__5672 = cljs.core.next(arglist__5672);
var z = cljs.core.first(arglist__5672);
var args = cljs.core.rest(arglist__5672);
return G__5671__delegate(x, y, z, args)
};
G__5671.cljs$core$IFn$_invoke$arity$variadic = G__5671__delegate;
return G__5671
}();
sp1 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return sp1__0.call(this);
case 1:
return sp1__1.call(this, x);
case 2:
return sp1__2.call(this, x, y);
case 3:
return sp1__3.call(this, x, y, z);
default:
return sp1__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
sp1.cljs$lang$maxFixedArity = 3;
sp1.cljs$lang$applyTo = sp1__4.cljs$lang$applyTo;
sp1.cljs$core$IFn$_invoke$arity$0 = sp1__0;
sp1.cljs$core$IFn$_invoke$arity$1 = sp1__1;
sp1.cljs$core$IFn$_invoke$arity$2 = sp1__2;
sp1.cljs$core$IFn$_invoke$arity$3 = sp1__3;
sp1.cljs$core$IFn$_invoke$arity$variadic = sp1__4.cljs$core$IFn$_invoke$arity$variadic;
return sp1
}()
};
var some_fn__2 = function(p1, p2) {
return function() {
var sp2 = null;
var sp2__0 = function() {
return null
};
var sp2__1 = function(x) {
var or__3943__auto__ = p1.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return p2.call(null, x)
}
};
var sp2__2 = function(x, y) {
var or__3943__auto__ = p1.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p1.call(null, y);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = p2.call(null, x);
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
return p2.call(null, y)
}
}
}
};
var sp2__3 = function(x, y, z) {
var or__3943__auto__ = p1.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p1.call(null, y);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = p1.call(null, z);
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
var or__3943__auto____$3 = p2.call(null, x);
if(cljs.core.truth_(or__3943__auto____$3)) {
return or__3943__auto____$3
}else {
var or__3943__auto____$4 = p2.call(null, y);
if(cljs.core.truth_(or__3943__auto____$4)) {
return or__3943__auto____$4
}else {
return p2.call(null, z)
}
}
}
}
}
};
var sp2__4 = function() {
var G__5673__delegate = function(x, y, z, args) {
var or__3943__auto__ = sp2.call(null, x, y, z);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.some.call(null, function(p1__5654_SHARP_) {
var or__3943__auto____$1 = p1.call(null, p1__5654_SHARP_);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
return p2.call(null, p1__5654_SHARP_)
}
}, args)
}
};
var G__5673 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5673__delegate.call(this, x, y, z, args)
};
G__5673.cljs$lang$maxFixedArity = 3;
G__5673.cljs$lang$applyTo = function(arglist__5674) {
var x = cljs.core.first(arglist__5674);
arglist__5674 = cljs.core.next(arglist__5674);
var y = cljs.core.first(arglist__5674);
arglist__5674 = cljs.core.next(arglist__5674);
var z = cljs.core.first(arglist__5674);
var args = cljs.core.rest(arglist__5674);
return G__5673__delegate(x, y, z, args)
};
G__5673.cljs$core$IFn$_invoke$arity$variadic = G__5673__delegate;
return G__5673
}();
sp2 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return sp2__0.call(this);
case 1:
return sp2__1.call(this, x);
case 2:
return sp2__2.call(this, x, y);
case 3:
return sp2__3.call(this, x, y, z);
default:
return sp2__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
sp2.cljs$lang$maxFixedArity = 3;
sp2.cljs$lang$applyTo = sp2__4.cljs$lang$applyTo;
sp2.cljs$core$IFn$_invoke$arity$0 = sp2__0;
sp2.cljs$core$IFn$_invoke$arity$1 = sp2__1;
sp2.cljs$core$IFn$_invoke$arity$2 = sp2__2;
sp2.cljs$core$IFn$_invoke$arity$3 = sp2__3;
sp2.cljs$core$IFn$_invoke$arity$variadic = sp2__4.cljs$core$IFn$_invoke$arity$variadic;
return sp2
}()
};
var some_fn__3 = function(p1, p2, p3) {
return function() {
var sp3 = null;
var sp3__0 = function() {
return null
};
var sp3__1 = function(x) {
var or__3943__auto__ = p1.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p2.call(null, x);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
return p3.call(null, x)
}
}
};
var sp3__2 = function(x, y) {
var or__3943__auto__ = p1.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p2.call(null, x);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = p3.call(null, x);
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
var or__3943__auto____$3 = p1.call(null, y);
if(cljs.core.truth_(or__3943__auto____$3)) {
return or__3943__auto____$3
}else {
var or__3943__auto____$4 = p2.call(null, y);
if(cljs.core.truth_(or__3943__auto____$4)) {
return or__3943__auto____$4
}else {
return p3.call(null, y)
}
}
}
}
}
};
var sp3__3 = function(x, y, z) {
var or__3943__auto__ = p1.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p2.call(null, x);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = p3.call(null, x);
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
var or__3943__auto____$3 = p1.call(null, y);
if(cljs.core.truth_(or__3943__auto____$3)) {
return or__3943__auto____$3
}else {
var or__3943__auto____$4 = p2.call(null, y);
if(cljs.core.truth_(or__3943__auto____$4)) {
return or__3943__auto____$4
}else {
var or__3943__auto____$5 = p3.call(null, y);
if(cljs.core.truth_(or__3943__auto____$5)) {
return or__3943__auto____$5
}else {
var or__3943__auto____$6 = p1.call(null, z);
if(cljs.core.truth_(or__3943__auto____$6)) {
return or__3943__auto____$6
}else {
var or__3943__auto____$7 = p2.call(null, z);
if(cljs.core.truth_(or__3943__auto____$7)) {
return or__3943__auto____$7
}else {
return p3.call(null, z)
}
}
}
}
}
}
}
}
};
var sp3__4 = function() {
var G__5675__delegate = function(x, y, z, args) {
var or__3943__auto__ = sp3.call(null, x, y, z);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.some.call(null, function(p1__5655_SHARP_) {
var or__3943__auto____$1 = p1.call(null, p1__5655_SHARP_);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = p2.call(null, p1__5655_SHARP_);
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
return p3.call(null, p1__5655_SHARP_)
}
}
}, args)
}
};
var G__5675 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5675__delegate.call(this, x, y, z, args)
};
G__5675.cljs$lang$maxFixedArity = 3;
G__5675.cljs$lang$applyTo = function(arglist__5676) {
var x = cljs.core.first(arglist__5676);
arglist__5676 = cljs.core.next(arglist__5676);
var y = cljs.core.first(arglist__5676);
arglist__5676 = cljs.core.next(arglist__5676);
var z = cljs.core.first(arglist__5676);
var args = cljs.core.rest(arglist__5676);
return G__5675__delegate(x, y, z, args)
};
G__5675.cljs$core$IFn$_invoke$arity$variadic = G__5675__delegate;
return G__5675
}();
sp3 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return sp3__0.call(this);
case 1:
return sp3__1.call(this, x);
case 2:
return sp3__2.call(this, x, y);
case 3:
return sp3__3.call(this, x, y, z);
default:
return sp3__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
sp3.cljs$lang$maxFixedArity = 3;
sp3.cljs$lang$applyTo = sp3__4.cljs$lang$applyTo;
sp3.cljs$core$IFn$_invoke$arity$0 = sp3__0;
sp3.cljs$core$IFn$_invoke$arity$1 = sp3__1;
sp3.cljs$core$IFn$_invoke$arity$2 = sp3__2;
sp3.cljs$core$IFn$_invoke$arity$3 = sp3__3;
sp3.cljs$core$IFn$_invoke$arity$variadic = sp3__4.cljs$core$IFn$_invoke$arity$variadic;
return sp3
}()
};
var some_fn__4 = function() {
var G__5677__delegate = function(p1, p2, p3, ps) {
var ps__$1 = cljs.core.list_STAR_.call(null, p1, p2, p3, ps);
return function() {
var spn = null;
var spn__0 = function() {
return null
};
var spn__1 = function(x) {
return cljs.core.some.call(null, function(p1__5656_SHARP_) {
return p1__5656_SHARP_.call(null, x)
}, ps__$1)
};
var spn__2 = function(x, y) {
return cljs.core.some.call(null, function(p1__5657_SHARP_) {
var or__3943__auto__ = p1__5657_SHARP_.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return p1__5657_SHARP_.call(null, y)
}
}, ps__$1)
};
var spn__3 = function(x, y, z) {
return cljs.core.some.call(null, function(p1__5658_SHARP_) {
var or__3943__auto__ = p1__5658_SHARP_.call(null, x);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = p1__5658_SHARP_.call(null, y);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
return p1__5658_SHARP_.call(null, z)
}
}
}, ps__$1)
};
var spn__4 = function() {
var G__5678__delegate = function(x, y, z, args) {
var or__3943__auto__ = spn.call(null, x, y, z);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.some.call(null, function(p1__5659_SHARP_) {
return cljs.core.some.call(null, p1__5659_SHARP_, args)
}, ps__$1)
}
};
var G__5678 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5678__delegate.call(this, x, y, z, args)
};
G__5678.cljs$lang$maxFixedArity = 3;
G__5678.cljs$lang$applyTo = function(arglist__5679) {
var x = cljs.core.first(arglist__5679);
arglist__5679 = cljs.core.next(arglist__5679);
var y = cljs.core.first(arglist__5679);
arglist__5679 = cljs.core.next(arglist__5679);
var z = cljs.core.first(arglist__5679);
var args = cljs.core.rest(arglist__5679);
return G__5678__delegate(x, y, z, args)
};
G__5678.cljs$core$IFn$_invoke$arity$variadic = G__5678__delegate;
return G__5678
}();
spn = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return spn__0.call(this);
case 1:
return spn__1.call(this, x);
case 2:
return spn__2.call(this, x, y);
case 3:
return spn__3.call(this, x, y, z);
default:
return spn__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
spn.cljs$lang$maxFixedArity = 3;
spn.cljs$lang$applyTo = spn__4.cljs$lang$applyTo;
spn.cljs$core$IFn$_invoke$arity$0 = spn__0;
spn.cljs$core$IFn$_invoke$arity$1 = spn__1;
spn.cljs$core$IFn$_invoke$arity$2 = spn__2;
spn.cljs$core$IFn$_invoke$arity$3 = spn__3;
spn.cljs$core$IFn$_invoke$arity$variadic = spn__4.cljs$core$IFn$_invoke$arity$variadic;
return spn
}()
};
var G__5677 = function(p1, p2, p3, var_args) {
var ps = null;
if(arguments.length > 3) {
ps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5677__delegate.call(this, p1, p2, p3, ps)
};
G__5677.cljs$lang$maxFixedArity = 3;
G__5677.cljs$lang$applyTo = function(arglist__5680) {
var p1 = cljs.core.first(arglist__5680);
arglist__5680 = cljs.core.next(arglist__5680);
var p2 = cljs.core.first(arglist__5680);
arglist__5680 = cljs.core.next(arglist__5680);
var p3 = cljs.core.first(arglist__5680);
var ps = cljs.core.rest(arglist__5680);
return G__5677__delegate(p1, p2, p3, ps)
};
G__5677.cljs$core$IFn$_invoke$arity$variadic = G__5677__delegate;
return G__5677
}();
some_fn = function(p1, p2, p3, var_args) {
var ps = var_args;
switch(arguments.length) {
case 1:
return some_fn__1.call(this, p1);
case 2:
return some_fn__2.call(this, p1, p2);
case 3:
return some_fn__3.call(this, p1, p2, p3);
default:
return some_fn__4.cljs$core$IFn$_invoke$arity$variadic(p1, p2, p3, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
some_fn.cljs$lang$maxFixedArity = 3;
some_fn.cljs$lang$applyTo = some_fn__4.cljs$lang$applyTo;
some_fn.cljs$core$IFn$_invoke$arity$1 = some_fn__1;
some_fn.cljs$core$IFn$_invoke$arity$2 = some_fn__2;
some_fn.cljs$core$IFn$_invoke$arity$3 = some_fn__3;
some_fn.cljs$core$IFn$_invoke$arity$variadic = some_fn__4.cljs$core$IFn$_invoke$arity$variadic;
return some_fn
}();
cljs.core.map = function() {
var map = null;
var map__2 = function(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, s)) {
var c = cljs.core.chunk_first.call(null, s);
var size = cljs.core.count.call(null, c);
var b = cljs.core.chunk_buffer.call(null, size);
var n__3120__auto___5681 = size;
var i_5682 = 0;
while(true) {
if(i_5682 < n__3120__auto___5681) {
cljs.core.chunk_append.call(null, b, f.call(null, cljs.core._nth.call(null, c, i_5682)));
var G__5683 = i_5682 + 1;
i_5682 = G__5683;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b), map.call(null, f, cljs.core.chunk_rest.call(null, s)))
}else {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s)), map.call(null, f, cljs.core.rest.call(null, s)))
}
}else {
return null
}
}, null)
};
var map__3 = function(f, c1, c2) {
return new cljs.core.LazySeq(null, false, function() {
var s1 = cljs.core.seq.call(null, c1);
var s2 = cljs.core.seq.call(null, c2);
if(function() {
var and__3941__auto__ = s1;
if(and__3941__auto__) {
return s2
}else {
return and__3941__auto__
}
}()) {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s1), cljs.core.first.call(null, s2)), map.call(null, f, cljs.core.rest.call(null, s1), cljs.core.rest.call(null, s2)))
}else {
return null
}
}, null)
};
var map__4 = function(f, c1, c2, c3) {
return new cljs.core.LazySeq(null, false, function() {
var s1 = cljs.core.seq.call(null, c1);
var s2 = cljs.core.seq.call(null, c2);
var s3 = cljs.core.seq.call(null, c3);
if(function() {
var and__3941__auto__ = s1;
if(and__3941__auto__) {
var and__3941__auto____$1 = s2;
if(and__3941__auto____$1) {
return s3
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}()) {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s1), cljs.core.first.call(null, s2), cljs.core.first.call(null, s3)), map.call(null, f, cljs.core.rest.call(null, s1), cljs.core.rest.call(null, s2), cljs.core.rest.call(null, s3)))
}else {
return null
}
}, null)
};
var map__5 = function() {
var G__5684__delegate = function(f, c1, c2, c3, colls) {
var step = function step(cs) {
return new cljs.core.LazySeq(null, false, function() {
var ss = map.call(null, cljs.core.seq, cs);
if(cljs.core.every_QMARK_.call(null, cljs.core.identity, ss)) {
return cljs.core.cons.call(null, map.call(null, cljs.core.first, ss), step.call(null, map.call(null, cljs.core.rest, ss)))
}else {
return null
}
}, null)
};
return map.call(null, function(p1__5670_SHARP_) {
return cljs.core.apply.call(null, f, p1__5670_SHARP_)
}, step.call(null, cljs.core.conj.call(null, colls, c3, c2, c1)))
};
var G__5684 = function(f, c1, c2, c3, var_args) {
var colls = null;
if(arguments.length > 4) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4), 0)
}
return G__5684__delegate.call(this, f, c1, c2, c3, colls)
};
G__5684.cljs$lang$maxFixedArity = 4;
G__5684.cljs$lang$applyTo = function(arglist__5685) {
var f = cljs.core.first(arglist__5685);
arglist__5685 = cljs.core.next(arglist__5685);
var c1 = cljs.core.first(arglist__5685);
arglist__5685 = cljs.core.next(arglist__5685);
var c2 = cljs.core.first(arglist__5685);
arglist__5685 = cljs.core.next(arglist__5685);
var c3 = cljs.core.first(arglist__5685);
var colls = cljs.core.rest(arglist__5685);
return G__5684__delegate(f, c1, c2, c3, colls)
};
G__5684.cljs$core$IFn$_invoke$arity$variadic = G__5684__delegate;
return G__5684
}();
map = function(f, c1, c2, c3, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return map__2.call(this, f, c1);
case 3:
return map__3.call(this, f, c1, c2);
case 4:
return map__4.call(this, f, c1, c2, c3);
default:
return map__5.cljs$core$IFn$_invoke$arity$variadic(f, c1, c2, c3, cljs.core.array_seq(arguments, 4))
}
throw new Error("Invalid arity: " + arguments.length);
};
map.cljs$lang$maxFixedArity = 4;
map.cljs$lang$applyTo = map__5.cljs$lang$applyTo;
map.cljs$core$IFn$_invoke$arity$2 = map__2;
map.cljs$core$IFn$_invoke$arity$3 = map__3;
map.cljs$core$IFn$_invoke$arity$4 = map__4;
map.cljs$core$IFn$_invoke$arity$variadic = map__5.cljs$core$IFn$_invoke$arity$variadic;
return map
}();
cljs.core.take = function take(n, coll) {
return new cljs.core.LazySeq(null, false, function() {
if(n > 0) {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
return cljs.core.cons.call(null, cljs.core.first.call(null, s), take.call(null, n - 1, cljs.core.rest.call(null, s)))
}else {
return null
}
}else {
return null
}
}, null)
};
cljs.core.drop = function drop(n, coll) {
var step = function(n__$1, coll__$1) {
while(true) {
var s = cljs.core.seq.call(null, coll__$1);
if(cljs.core.truth_(function() {
var and__3941__auto__ = n__$1 > 0;
if(and__3941__auto__) {
return s
}else {
return and__3941__auto__
}
}())) {
var G__5686 = n__$1 - 1;
var G__5687 = cljs.core.rest.call(null, s);
n__$1 = G__5686;
coll__$1 = G__5687;
continue
}else {
return s
}
break
}
};
return new cljs.core.LazySeq(null, false, function() {
return step.call(null, n, coll)
}, null)
};
cljs.core.drop_last = function() {
var drop_last = null;
var drop_last__1 = function(s) {
return drop_last.call(null, 1, s)
};
var drop_last__2 = function(n, s) {
return cljs.core.map.call(null, function(x, _) {
return x
}, s, cljs.core.drop.call(null, n, s))
};
drop_last = function(n, s) {
switch(arguments.length) {
case 1:
return drop_last__1.call(this, n);
case 2:
return drop_last__2.call(this, n, s)
}
throw new Error("Invalid arity: " + arguments.length);
};
drop_last.cljs$core$IFn$_invoke$arity$1 = drop_last__1;
drop_last.cljs$core$IFn$_invoke$arity$2 = drop_last__2;
return drop_last
}();
cljs.core.take_last = function take_last(n, coll) {
var s = cljs.core.seq.call(null, coll);
var lead = cljs.core.seq.call(null, cljs.core.drop.call(null, n, coll));
while(true) {
if(lead) {
var G__5688 = cljs.core.next.call(null, s);
var G__5689 = cljs.core.next.call(null, lead);
s = G__5688;
lead = G__5689;
continue
}else {
return s
}
break
}
};
cljs.core.drop_while = function drop_while(pred, coll) {
var step = function(pred__$1, coll__$1) {
while(true) {
var s = cljs.core.seq.call(null, coll__$1);
if(cljs.core.truth_(function() {
var and__3941__auto__ = s;
if(and__3941__auto__) {
return pred__$1.call(null, cljs.core.first.call(null, s))
}else {
return and__3941__auto__
}
}())) {
var G__5690 = pred__$1;
var G__5691 = cljs.core.rest.call(null, s);
pred__$1 = G__5690;
coll__$1 = G__5691;
continue
}else {
return s
}
break
}
};
return new cljs.core.LazySeq(null, false, function() {
return step.call(null, pred, coll)
}, null)
};
cljs.core.cycle = function cycle(coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
return cljs.core.concat.call(null, s, cycle.call(null, s))
}else {
return null
}
}, null)
};
cljs.core.split_at = function split_at(n, coll) {
return cljs.core.PersistentVector.fromArray([cljs.core.take.call(null, n, coll), cljs.core.drop.call(null, n, coll)], true)
};
cljs.core.repeat = function() {
var repeat = null;
var repeat__1 = function(x) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, x, repeat.call(null, x))
}, null)
};
var repeat__2 = function(n, x) {
return cljs.core.take.call(null, n, repeat.call(null, x))
};
repeat = function(n, x) {
switch(arguments.length) {
case 1:
return repeat__1.call(this, n);
case 2:
return repeat__2.call(this, n, x)
}
throw new Error("Invalid arity: " + arguments.length);
};
repeat.cljs$core$IFn$_invoke$arity$1 = repeat__1;
repeat.cljs$core$IFn$_invoke$arity$2 = repeat__2;
return repeat
}();
cljs.core.replicate = function replicate(n, x) {
return cljs.core.take.call(null, n, cljs.core.repeat.call(null, x))
};
cljs.core.repeatedly = function() {
var repeatedly = null;
var repeatedly__1 = function(f) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, f.call(null), repeatedly.call(null, f))
}, null)
};
var repeatedly__2 = function(n, f) {
return cljs.core.take.call(null, n, repeatedly.call(null, f))
};
repeatedly = function(n, f) {
switch(arguments.length) {
case 1:
return repeatedly__1.call(this, n);
case 2:
return repeatedly__2.call(this, n, f)
}
throw new Error("Invalid arity: " + arguments.length);
};
repeatedly.cljs$core$IFn$_invoke$arity$1 = repeatedly__1;
repeatedly.cljs$core$IFn$_invoke$arity$2 = repeatedly__2;
return repeatedly
}();
cljs.core.iterate = function iterate(f, x) {
return cljs.core.cons.call(null, x, new cljs.core.LazySeq(null, false, function() {
return iterate.call(null, f, f.call(null, x))
}, null))
};
cljs.core.interleave = function() {
var interleave = null;
var interleave__2 = function(c1, c2) {
return new cljs.core.LazySeq(null, false, function() {
var s1 = cljs.core.seq.call(null, c1);
var s2 = cljs.core.seq.call(null, c2);
if(function() {
var and__3941__auto__ = s1;
if(and__3941__auto__) {
return s2
}else {
return and__3941__auto__
}
}()) {
return cljs.core.cons.call(null, cljs.core.first.call(null, s1), cljs.core.cons.call(null, cljs.core.first.call(null, s2), interleave.call(null, cljs.core.rest.call(null, s1), cljs.core.rest.call(null, s2))))
}else {
return null
}
}, null)
};
var interleave__3 = function() {
var G__5692__delegate = function(c1, c2, colls) {
return new cljs.core.LazySeq(null, false, function() {
var ss = cljs.core.map.call(null, cljs.core.seq, cljs.core.conj.call(null, colls, c2, c1));
if(cljs.core.every_QMARK_.call(null, cljs.core.identity, ss)) {
return cljs.core.concat.call(null, cljs.core.map.call(null, cljs.core.first, ss), cljs.core.apply.call(null, interleave, cljs.core.map.call(null, cljs.core.rest, ss)))
}else {
return null
}
}, null)
};
var G__5692 = function(c1, c2, var_args) {
var colls = null;
if(arguments.length > 2) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5692__delegate.call(this, c1, c2, colls)
};
G__5692.cljs$lang$maxFixedArity = 2;
G__5692.cljs$lang$applyTo = function(arglist__5693) {
var c1 = cljs.core.first(arglist__5693);
arglist__5693 = cljs.core.next(arglist__5693);
var c2 = cljs.core.first(arglist__5693);
var colls = cljs.core.rest(arglist__5693);
return G__5692__delegate(c1, c2, colls)
};
G__5692.cljs$core$IFn$_invoke$arity$variadic = G__5692__delegate;
return G__5692
}();
interleave = function(c1, c2, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return interleave__2.call(this, c1, c2);
default:
return interleave__3.cljs$core$IFn$_invoke$arity$variadic(c1, c2, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
interleave.cljs$lang$maxFixedArity = 2;
interleave.cljs$lang$applyTo = interleave__3.cljs$lang$applyTo;
interleave.cljs$core$IFn$_invoke$arity$2 = interleave__2;
interleave.cljs$core$IFn$_invoke$arity$variadic = interleave__3.cljs$core$IFn$_invoke$arity$variadic;
return interleave
}();
cljs.core.interpose = function interpose(sep, coll) {
return cljs.core.drop.call(null, 1, cljs.core.interleave.call(null, cljs.core.repeat.call(null, sep), coll))
};
cljs.core.flatten1 = function flatten1(colls) {
var cat = function cat(coll, colls__$1) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4090__auto__ = cljs.core.seq.call(null, coll);
if(temp__4090__auto__) {
var coll__$1 = temp__4090__auto__;
return cljs.core.cons.call(null, cljs.core.first.call(null, coll__$1), cat.call(null, cljs.core.rest.call(null, coll__$1), colls__$1))
}else {
if(cljs.core.seq.call(null, colls__$1)) {
return cat.call(null, cljs.core.first.call(null, colls__$1), cljs.core.rest.call(null, colls__$1))
}else {
return null
}
}
}, null)
};
return cat.call(null, null, colls)
};
cljs.core.mapcat = function() {
var mapcat = null;
var mapcat__2 = function(f, coll) {
return cljs.core.flatten1.call(null, cljs.core.map.call(null, f, coll))
};
var mapcat__3 = function() {
var G__5694__delegate = function(f, coll, colls) {
return cljs.core.flatten1.call(null, cljs.core.apply.call(null, cljs.core.map, f, coll, colls))
};
var G__5694 = function(f, coll, var_args) {
var colls = null;
if(arguments.length > 2) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__5694__delegate.call(this, f, coll, colls)
};
G__5694.cljs$lang$maxFixedArity = 2;
G__5694.cljs$lang$applyTo = function(arglist__5695) {
var f = cljs.core.first(arglist__5695);
arglist__5695 = cljs.core.next(arglist__5695);
var coll = cljs.core.first(arglist__5695);
var colls = cljs.core.rest(arglist__5695);
return G__5694__delegate(f, coll, colls)
};
G__5694.cljs$core$IFn$_invoke$arity$variadic = G__5694__delegate;
return G__5694
}();
mapcat = function(f, coll, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return mapcat__2.call(this, f, coll);
default:
return mapcat__3.cljs$core$IFn$_invoke$arity$variadic(f, coll, cljs.core.array_seq(arguments, 2))
}
throw new Error("Invalid arity: " + arguments.length);
};
mapcat.cljs$lang$maxFixedArity = 2;
mapcat.cljs$lang$applyTo = mapcat__3.cljs$lang$applyTo;
mapcat.cljs$core$IFn$_invoke$arity$2 = mapcat__2;
mapcat.cljs$core$IFn$_invoke$arity$variadic = mapcat__3.cljs$core$IFn$_invoke$arity$variadic;
return mapcat
}();
cljs.core.filter = function filter(pred, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, s)) {
var c = cljs.core.chunk_first.call(null, s);
var size = cljs.core.count.call(null, c);
var b = cljs.core.chunk_buffer.call(null, size);
var n__3120__auto___5696 = size;
var i_5697 = 0;
while(true) {
if(i_5697 < n__3120__auto___5696) {
if(cljs.core.truth_(pred.call(null, cljs.core._nth.call(null, c, i_5697)))) {
cljs.core.chunk_append.call(null, b, cljs.core._nth.call(null, c, i_5697))
}else {
}
var G__5698 = i_5697 + 1;
i_5697 = G__5698;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b), filter.call(null, pred, cljs.core.chunk_rest.call(null, s)))
}else {
var f = cljs.core.first.call(null, s);
var r = cljs.core.rest.call(null, s);
if(cljs.core.truth_(pred.call(null, f))) {
return cljs.core.cons.call(null, f, filter.call(null, pred, r))
}else {
return filter.call(null, pred, r)
}
}
}else {
return null
}
}, null)
};
cljs.core.remove = function remove(pred, coll) {
return cljs.core.filter.call(null, cljs.core.complement.call(null, pred), coll)
};
cljs.core.tree_seq = function tree_seq(branch_QMARK_, children, root) {
var walk = function walk(node) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, node, cljs.core.truth_(branch_QMARK_.call(null, node)) ? cljs.core.mapcat.call(null, walk, children.call(null, node)) : null)
}, null)
};
return walk.call(null, root)
};
cljs.core.flatten = function flatten(x) {
return cljs.core.filter.call(null, function(p1__5699_SHARP_) {
return!cljs.core.sequential_QMARK_.call(null, p1__5699_SHARP_)
}, cljs.core.rest.call(null, cljs.core.tree_seq.call(null, cljs.core.sequential_QMARK_, cljs.core.seq, x)))
};
cljs.core.into = function into(to, from) {
if(!(to == null)) {
if(function() {
var G__5701 = to;
if(G__5701) {
if(function() {
var or__3943__auto__ = G__5701.cljs$lang$protocol_mask$partition1$ & 4;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5701.cljs$core$IEditableCollection$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, cljs.core._conj_BANG_, cljs.core.transient$.call(null, to), from))
}else {
return cljs.core.reduce.call(null, cljs.core._conj, to, from)
}
}else {
return cljs.core.reduce.call(null, cljs.core.conj, cljs.core.List.EMPTY, from)
}
};
cljs.core.mapv = function() {
var mapv = null;
var mapv__2 = function(f, coll) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, function(v, o) {
return cljs.core.conj_BANG_.call(null, v, f.call(null, o))
}, cljs.core.transient$.call(null, cljs.core.PersistentVector.EMPTY), coll))
};
var mapv__3 = function(f, c1, c2) {
return cljs.core.into.call(null, cljs.core.PersistentVector.EMPTY, cljs.core.map.call(null, f, c1, c2))
};
var mapv__4 = function(f, c1, c2, c3) {
return cljs.core.into.call(null, cljs.core.PersistentVector.EMPTY, cljs.core.map.call(null, f, c1, c2, c3))
};
var mapv__5 = function() {
var G__5702__delegate = function(f, c1, c2, c3, colls) {
return cljs.core.into.call(null, cljs.core.PersistentVector.EMPTY, cljs.core.apply.call(null, cljs.core.map, f, c1, c2, c3, colls))
};
var G__5702 = function(f, c1, c2, c3, var_args) {
var colls = null;
if(arguments.length > 4) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4), 0)
}
return G__5702__delegate.call(this, f, c1, c2, c3, colls)
};
G__5702.cljs$lang$maxFixedArity = 4;
G__5702.cljs$lang$applyTo = function(arglist__5703) {
var f = cljs.core.first(arglist__5703);
arglist__5703 = cljs.core.next(arglist__5703);
var c1 = cljs.core.first(arglist__5703);
arglist__5703 = cljs.core.next(arglist__5703);
var c2 = cljs.core.first(arglist__5703);
arglist__5703 = cljs.core.next(arglist__5703);
var c3 = cljs.core.first(arglist__5703);
var colls = cljs.core.rest(arglist__5703);
return G__5702__delegate(f, c1, c2, c3, colls)
};
G__5702.cljs$core$IFn$_invoke$arity$variadic = G__5702__delegate;
return G__5702
}();
mapv = function(f, c1, c2, c3, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return mapv__2.call(this, f, c1);
case 3:
return mapv__3.call(this, f, c1, c2);
case 4:
return mapv__4.call(this, f, c1, c2, c3);
default:
return mapv__5.cljs$core$IFn$_invoke$arity$variadic(f, c1, c2, c3, cljs.core.array_seq(arguments, 4))
}
throw new Error("Invalid arity: " + arguments.length);
};
mapv.cljs$lang$maxFixedArity = 4;
mapv.cljs$lang$applyTo = mapv__5.cljs$lang$applyTo;
mapv.cljs$core$IFn$_invoke$arity$2 = mapv__2;
mapv.cljs$core$IFn$_invoke$arity$3 = mapv__3;
mapv.cljs$core$IFn$_invoke$arity$4 = mapv__4;
mapv.cljs$core$IFn$_invoke$arity$variadic = mapv__5.cljs$core$IFn$_invoke$arity$variadic;
return mapv
}();
cljs.core.filterv = function filterv(pred, coll) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, function(v, o) {
if(cljs.core.truth_(pred.call(null, o))) {
return cljs.core.conj_BANG_.call(null, v, o)
}else {
return v
}
}, cljs.core.transient$.call(null, cljs.core.PersistentVector.EMPTY), coll))
};
cljs.core.partition = function() {
var partition = null;
var partition__2 = function(n, coll) {
return partition.call(null, n, n, coll)
};
var partition__3 = function(n, step, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
var p = cljs.core.take.call(null, n, s);
if(n === cljs.core.count.call(null, p)) {
return cljs.core.cons.call(null, p, partition.call(null, n, step, cljs.core.drop.call(null, step, s)))
}else {
return null
}
}else {
return null
}
}, null)
};
var partition__4 = function(n, step, pad, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
var p = cljs.core.take.call(null, n, s);
if(n === cljs.core.count.call(null, p)) {
return cljs.core.cons.call(null, p, partition.call(null, n, step, pad, cljs.core.drop.call(null, step, s)))
}else {
return cljs.core.list.call(null, cljs.core.take.call(null, n, cljs.core.concat.call(null, p, pad)))
}
}else {
return null
}
}, null)
};
partition = function(n, step, pad, coll) {
switch(arguments.length) {
case 2:
return partition__2.call(this, n, step);
case 3:
return partition__3.call(this, n, step, pad);
case 4:
return partition__4.call(this, n, step, pad, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
partition.cljs$core$IFn$_invoke$arity$2 = partition__2;
partition.cljs$core$IFn$_invoke$arity$3 = partition__3;
partition.cljs$core$IFn$_invoke$arity$4 = partition__4;
return partition
}();
cljs.core.get_in = function() {
var get_in = null;
var get_in__2 = function(m, ks) {
return get_in.call(null, m, ks, null)
};
var get_in__3 = function(m, ks, not_found) {
var sentinel = cljs.core.lookup_sentinel;
var m__$1 = m;
var ks__$1 = cljs.core.seq.call(null, ks);
while(true) {
if(ks__$1) {
if(!function() {
var G__5705 = m__$1;
if(G__5705) {
if(function() {
var or__3943__auto__ = G__5705.cljs$lang$protocol_mask$partition0$ & 256;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5705.cljs$core$ILookup$
}
}()) {
return true
}else {
if(!G__5705.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ILookup, G__5705)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ILookup, G__5705)
}
}()) {
return not_found
}else {
var m__$2 = cljs.core.get.call(null, m__$1, cljs.core.first.call(null, ks__$1), sentinel);
if(sentinel === m__$2) {
return not_found
}else {
var G__5706 = sentinel;
var G__5707 = m__$2;
var G__5708 = cljs.core.next.call(null, ks__$1);
sentinel = G__5706;
m__$1 = G__5707;
ks__$1 = G__5708;
continue
}
}
}else {
return m__$1
}
break
}
};
get_in = function(m, ks, not_found) {
switch(arguments.length) {
case 2:
return get_in__2.call(this, m, ks);
case 3:
return get_in__3.call(this, m, ks, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
get_in.cljs$core$IFn$_invoke$arity$2 = get_in__2;
get_in.cljs$core$IFn$_invoke$arity$3 = get_in__3;
return get_in
}();
cljs.core.assoc_in = function assoc_in(m, p__5709, v) {
var vec__5711 = p__5709;
var k = cljs.core.nth.call(null, vec__5711, 0, null);
var ks = cljs.core.nthnext.call(null, vec__5711, 1);
if(cljs.core.truth_(ks)) {
return cljs.core.assoc.call(null, m, k, assoc_in.call(null, cljs.core.get.call(null, m, k), ks, v))
}else {
return cljs.core.assoc.call(null, m, k, v)
}
};
cljs.core.update_in = function() {
var update_in = null;
var update_in__3 = function(m, p__5712, f) {
var vec__5722 = p__5712;
var k = cljs.core.nth.call(null, vec__5722, 0, null);
var ks = cljs.core.nthnext.call(null, vec__5722, 1);
if(cljs.core.truth_(ks)) {
return cljs.core.assoc.call(null, m, k, update_in.call(null, cljs.core.get.call(null, m, k), ks, f))
}else {
return cljs.core.assoc.call(null, m, k, f.call(null, cljs.core.get.call(null, m, k)))
}
};
var update_in__4 = function(m, p__5713, f, a) {
var vec__5723 = p__5713;
var k = cljs.core.nth.call(null, vec__5723, 0, null);
var ks = cljs.core.nthnext.call(null, vec__5723, 1);
if(cljs.core.truth_(ks)) {
return cljs.core.assoc.call(null, m, k, update_in.call(null, cljs.core.get.call(null, m, k), ks, f, a))
}else {
return cljs.core.assoc.call(null, m, k, f.call(null, cljs.core.get.call(null, m, k), a))
}
};
var update_in__5 = function(m, p__5714, f, a, b) {
var vec__5724 = p__5714;
var k = cljs.core.nth.call(null, vec__5724, 0, null);
var ks = cljs.core.nthnext.call(null, vec__5724, 1);
if(cljs.core.truth_(ks)) {
return cljs.core.assoc.call(null, m, k, update_in.call(null, cljs.core.get.call(null, m, k), ks, f, a, b))
}else {
return cljs.core.assoc.call(null, m, k, f.call(null, cljs.core.get.call(null, m, k), a, b))
}
};
var update_in__6 = function(m, p__5715, f, a, b, c) {
var vec__5725 = p__5715;
var k = cljs.core.nth.call(null, vec__5725, 0, null);
var ks = cljs.core.nthnext.call(null, vec__5725, 1);
if(cljs.core.truth_(ks)) {
return cljs.core.assoc.call(null, m, k, update_in.call(null, cljs.core.get.call(null, m, k), ks, f, a, b, c))
}else {
return cljs.core.assoc.call(null, m, k, f.call(null, cljs.core.get.call(null, m, k), a, b, c))
}
};
var update_in__7 = function() {
var G__5727__delegate = function(m, p__5716, f, a, b, c, args) {
var vec__5726 = p__5716;
var k = cljs.core.nth.call(null, vec__5726, 0, null);
var ks = cljs.core.nthnext.call(null, vec__5726, 1);
if(cljs.core.truth_(ks)) {
return cljs.core.assoc.call(null, m, k, cljs.core.apply.call(null, update_in, cljs.core.get.call(null, m, k), ks, f, a, b, c, args))
}else {
return cljs.core.assoc.call(null, m, k, cljs.core.apply.call(null, f, cljs.core.get.call(null, m, k), a, b, c, args))
}
};
var G__5727 = function(m, p__5716, f, a, b, c, var_args) {
var args = null;
if(arguments.length > 6) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 6), 0)
}
return G__5727__delegate.call(this, m, p__5716, f, a, b, c, args)
};
G__5727.cljs$lang$maxFixedArity = 6;
G__5727.cljs$lang$applyTo = function(arglist__5728) {
var m = cljs.core.first(arglist__5728);
arglist__5728 = cljs.core.next(arglist__5728);
var p__5716 = cljs.core.first(arglist__5728);
arglist__5728 = cljs.core.next(arglist__5728);
var f = cljs.core.first(arglist__5728);
arglist__5728 = cljs.core.next(arglist__5728);
var a = cljs.core.first(arglist__5728);
arglist__5728 = cljs.core.next(arglist__5728);
var b = cljs.core.first(arglist__5728);
arglist__5728 = cljs.core.next(arglist__5728);
var c = cljs.core.first(arglist__5728);
var args = cljs.core.rest(arglist__5728);
return G__5727__delegate(m, p__5716, f, a, b, c, args)
};
G__5727.cljs$core$IFn$_invoke$arity$variadic = G__5727__delegate;
return G__5727
}();
update_in = function(m, p__5716, f, a, b, c, var_args) {
var args = var_args;
switch(arguments.length) {
case 3:
return update_in__3.call(this, m, p__5716, f);
case 4:
return update_in__4.call(this, m, p__5716, f, a);
case 5:
return update_in__5.call(this, m, p__5716, f, a, b);
case 6:
return update_in__6.call(this, m, p__5716, f, a, b, c);
default:
return update_in__7.cljs$core$IFn$_invoke$arity$variadic(m, p__5716, f, a, b, c, cljs.core.array_seq(arguments, 6))
}
throw new Error("Invalid arity: " + arguments.length);
};
update_in.cljs$lang$maxFixedArity = 6;
update_in.cljs$lang$applyTo = update_in__7.cljs$lang$applyTo;
update_in.cljs$core$IFn$_invoke$arity$3 = update_in__3;
update_in.cljs$core$IFn$_invoke$arity$4 = update_in__4;
update_in.cljs$core$IFn$_invoke$arity$5 = update_in__5;
update_in.cljs$core$IFn$_invoke$arity$6 = update_in__6;
update_in.cljs$core$IFn$_invoke$arity$variadic = update_in__7.cljs$core$IFn$_invoke$arity$variadic;
return update_in
}();
goog.provide("cljs.core.VectorNode");
cljs.core.VectorNode = function(edit, arr) {
this.edit = edit;
this.arr = arr
};
cljs.core.VectorNode.cljs$lang$type = true;
cljs.core.VectorNode.cljs$lang$ctorStr = "cljs.core/VectorNode";
cljs.core.VectorNode.cljs$lang$ctorPrWriter = function(this__2885__auto__, writer__2886__auto__, opts__2887__auto__) {
return cljs.core._write.call(null, writer__2886__auto__, "cljs.core/VectorNode")
};
cljs.core.pv_fresh_node = function pv_fresh_node(edit) {
return new cljs.core.VectorNode(edit, new Array(32))
};
cljs.core.pv_aget = function pv_aget(node, idx) {
return node.arr[idx]
};
cljs.core.pv_aset = function pv_aset(node, idx, val) {
return node.arr[idx] = val
};
cljs.core.pv_clone_node = function pv_clone_node(node) {
return new cljs.core.VectorNode(node.edit, node.arr.slice())
};
cljs.core.tail_off = function tail_off(pv) {
var cnt = pv.cnt;
if(cnt < 32) {
return 0
}else {
return cnt - 1 >>> 5 << 5
}
};
cljs.core.new_path = function new_path(edit, level, node) {
var ll = level;
var ret = node;
while(true) {
if(ll === 0) {
return ret
}else {
var embed = ret;
var r = cljs.core.pv_fresh_node.call(null, edit);
var _ = cljs.core.pv_aset.call(null, r, 0, embed);
var G__5729 = ll - 5;
var G__5730 = r;
ll = G__5729;
ret = G__5730;
continue
}
break
}
};
cljs.core.push_tail = function push_tail(pv, level, parent, tailnode) {
var ret = cljs.core.pv_clone_node.call(null, parent);
var subidx = pv.cnt - 1 >>> level & 31;
if(5 === level) {
cljs.core.pv_aset.call(null, ret, subidx, tailnode);
return ret
}else {
var child = cljs.core.pv_aget.call(null, parent, subidx);
if(!(child == null)) {
var node_to_insert = push_tail.call(null, pv, level - 5, child, tailnode);
cljs.core.pv_aset.call(null, ret, subidx, node_to_insert);
return ret
}else {
var node_to_insert = cljs.core.new_path.call(null, null, level - 5, tailnode);
cljs.core.pv_aset.call(null, ret, subidx, node_to_insert);
return ret
}
}
};
cljs.core.array_for = function array_for(pv, i) {
if(function() {
var and__3941__auto__ = 0 <= i;
if(and__3941__auto__) {
return i < pv.cnt
}else {
return and__3941__auto__
}
}()) {
if(i >= cljs.core.tail_off.call(null, pv)) {
return pv.tail
}else {
var node = pv.root;
var level = pv.shift;
while(true) {
if(level > 0) {
var G__5731 = cljs.core.pv_aget.call(null, node, i >>> level & 31);
var G__5732 = level - 5;
node = G__5731;
level = G__5732;
continue
}else {
return node.arr
}
break
}
}
}else {
throw new Error([cljs.core.str("No item "), cljs.core.str(i), cljs.core.str(" in vector of length "), cljs.core.str(pv.cnt)].join(""));
}
};
cljs.core.do_assoc = function do_assoc(pv, level, node, i, val) {
var ret = cljs.core.pv_clone_node.call(null, node);
if(level === 0) {
cljs.core.pv_aset.call(null, ret, i & 31, val);
return ret
}else {
var subidx = i >>> level & 31;
cljs.core.pv_aset.call(null, ret, subidx, do_assoc.call(null, pv, level - 5, cljs.core.pv_aget.call(null, node, subidx), i, val));
return ret
}
};
cljs.core.pop_tail = function pop_tail(pv, level, node) {
var subidx = pv.cnt - 2 >>> level & 31;
if(level > 5) {
var new_child = pop_tail.call(null, pv, level - 5, cljs.core.pv_aget.call(null, node, subidx));
if(function() {
var and__3941__auto__ = new_child == null;
if(and__3941__auto__) {
return subidx === 0
}else {
return and__3941__auto__
}
}()) {
return null
}else {
var ret = cljs.core.pv_clone_node.call(null, node);
cljs.core.pv_aset.call(null, ret, subidx, new_child);
return ret
}
}else {
if(subidx === 0) {
return null
}else {
if("\ufdd0:else") {
var ret = cljs.core.pv_clone_node.call(null, node);
cljs.core.pv_aset.call(null, ret, subidx, null);
return ret
}else {
return null
}
}
}
};
goog.provide("cljs.core.PersistentVector");
cljs.core.PersistentVector = function(meta, cnt, shift, root, tail, __hash) {
this.meta = meta;
this.cnt = cnt;
this.shift = shift;
this.root = root;
this.tail = tail;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 4;
this.cljs$lang$protocol_mask$partition0$ = 167668511
};
cljs.core.PersistentVector.cljs$lang$type = true;
cljs.core.PersistentVector.cljs$lang$ctorStr = "cljs.core/PersistentVector";
cljs.core.PersistentVector.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentVector")
};
cljs.core.PersistentVector.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var self__ = this;
return new cljs.core.TransientVector(self__.cnt, self__.shift, cljs.core.tv_editable_root.call(null, self__.root), cljs.core.tv_editable_tail.call(null, self__.tail))
};
cljs.core.PersistentVector.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.PersistentVector.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var self__ = this;
if(function() {
var and__3941__auto__ = 0 <= k;
if(and__3941__auto__) {
return k < self__.cnt
}else {
return and__3941__auto__
}
}()) {
if(cljs.core.tail_off.call(null, coll) <= k) {
var new_tail = self__.tail.slice();
new_tail[k & 31] = v;
return new cljs.core.PersistentVector(self__.meta, self__.cnt, self__.shift, self__.root, new_tail, null)
}else {
return new cljs.core.PersistentVector(self__.meta, self__.cnt, self__.shift, cljs.core.do_assoc.call(null, coll, self__.shift, self__.root, k, v), self__.tail, null)
}
}else {
if(k === self__.cnt) {
return coll.cljs$core$ICollection$_conj$arity$2(coll, v)
}else {
if("\ufdd0:else") {
throw new Error([cljs.core.str("Index "), cljs.core.str(k), cljs.core.str(" out of bounds [0,"), cljs.core.str(self__.cnt), cljs.core.str("]")].join(""));
}else {
return null
}
}
}
};
cljs.core.PersistentVector.prototype.call = function() {
var G__5734 = null;
var G__5734__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5734__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5734 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5734__2.call(this, self__, k);
case 3:
return G__5734__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5734
}();
cljs.core.PersistentVector.prototype.apply = function(self__, args5733) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5733.slice()))
};
cljs.core.PersistentVector.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(v, f, init) {
var self__ = this;
var step_init = [0, init];
var i = 0;
while(true) {
if(i < self__.cnt) {
var arr = cljs.core.array_for.call(null, v, i);
var len = arr.length;
var init__$1 = function() {
var j = 0;
var init__$1 = step_init[1];
while(true) {
if(j < len) {
var init__$2 = f.call(null, init__$1, j + i, arr[j]);
if(cljs.core.reduced_QMARK_.call(null, init__$2)) {
return init__$2
}else {
var G__5735 = j + 1;
var G__5736 = init__$2;
j = G__5735;
init__$1 = G__5736;
continue
}
}else {
step_init[0] = len;
step_init[1] = init__$1;
return init__$1
}
break
}
}();
if(cljs.core.reduced_QMARK_.call(null, init__$1)) {
return cljs.core.deref.call(null, init__$1)
}else {
var G__5737 = i + step_init[0];
i = G__5737;
continue
}
}else {
return step_init[1]
}
break
}
};
cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
if(self__.cnt - cljs.core.tail_off.call(null, coll) < 32) {
var new_tail = self__.tail.slice();
new_tail.push(o);
return new cljs.core.PersistentVector(self__.meta, self__.cnt + 1, self__.shift, self__.root, new_tail, null)
}else {
var root_overflow_QMARK_ = self__.cnt >>> 5 > 1 << self__.shift;
var new_shift = root_overflow_QMARK_ ? self__.shift + 5 : self__.shift;
var new_root = root_overflow_QMARK_ ? function() {
var n_r = cljs.core.pv_fresh_node.call(null, null);
cljs.core.pv_aset.call(null, n_r, 0, self__.root);
cljs.core.pv_aset.call(null, n_r, 1, cljs.core.new_path.call(null, null, self__.shift, new cljs.core.VectorNode(null, self__.tail)));
return n_r
}() : cljs.core.push_tail.call(null, coll, self__.shift, self__.root, new cljs.core.VectorNode(null, self__.tail));
return new cljs.core.PersistentVector(self__.meta, self__.cnt + 1, new_shift, new_root, [o], null)
}
};
cljs.core.PersistentVector.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt > 0) {
return new cljs.core.RSeq(coll, self__.cnt - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.PersistentVector.prototype.cljs$core$IMapEntry$_key$arity$1 = function(coll) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$2(coll, 0)
};
cljs.core.PersistentVector.prototype.cljs$core$IMapEntry$_val$arity$1 = function(coll) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$2(coll, 1)
};
cljs.core.PersistentVector.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$2 = function(v, f) {
var self__ = this;
return cljs.core.ci_reduce.call(null, v, f)
};
cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$3 = function(v, f, start) {
var self__ = this;
return cljs.core.ci_reduce.call(null, v, f, start)
};
cljs.core.PersistentVector.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt === 0) {
return null
}else {
if(self__.cnt < 32) {
return cljs.core.array_seq.call(null, self__.tail)
}else {
if("\ufdd0:else") {
return cljs.core.chunked_seq.call(null, coll, 0, 0)
}else {
return null
}
}
}
};
cljs.core.PersistentVector.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.cnt
};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt > 0) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, self__.cnt - 1)
}else {
return null
}
};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt === 0) {
throw new Error("Can't pop empty vector");
}else {
if(1 === self__.cnt) {
return cljs.core._with_meta.call(null, cljs.core.PersistentVector.EMPTY, self__.meta)
}else {
if(1 < self__.cnt - cljs.core.tail_off.call(null, coll)) {
return new cljs.core.PersistentVector(self__.meta, self__.cnt - 1, self__.shift, self__.root, self__.tail.slice(0, -1), null)
}else {
if("\ufdd0:else") {
var new_tail = cljs.core.array_for.call(null, coll, self__.cnt - 2);
var nr = cljs.core.pop_tail.call(null, coll, self__.shift, self__.root);
var new_root = nr == null ? cljs.core.PersistentVector.EMPTY_NODE : nr;
var cnt_1 = self__.cnt - 1;
if(function() {
var and__3941__auto__ = 5 < self__.shift;
if(and__3941__auto__) {
return cljs.core.pv_aget.call(null, new_root, 1) == null
}else {
return and__3941__auto__
}
}()) {
return new cljs.core.PersistentVector(self__.meta, cnt_1, self__.shift - 5, cljs.core.pv_aget.call(null, new_root, 0), new_tail, null)
}else {
return new cljs.core.PersistentVector(self__.meta, cnt_1, self__.shift, new_root, new_tail, null)
}
}else {
return null
}
}
}
}
};
cljs.core.PersistentVector.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var self__ = this;
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, n, val)
};
cljs.core.PersistentVector.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentVector.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentVector(meta__$1, self__.cnt, self__.shift, self__.root, self__.tail, self__.__hash)
};
cljs.core.PersistentVector.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var self__ = this;
return cljs.core.array_for.call(null, coll, n)[n & 31]
};
cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var self__ = this;
if(function() {
var and__3941__auto__ = 0 <= n;
if(and__3941__auto__) {
return n < self__.cnt
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
return not_found
}
};
cljs.core.PersistentVector.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, self__.meta)
};
cljs.core.PersistentVector.EMPTY_NODE = new cljs.core.VectorNode(null, new Array(32));
cljs.core.PersistentVector.EMPTY = new cljs.core.PersistentVector(null, 0, 5, cljs.core.PersistentVector.EMPTY_NODE, [], 0);
cljs.core.PersistentVector.fromArray = function(xs, no_clone) {
var l = xs.length;
var xs__$1 = no_clone ? xs : xs.slice();
if(l < 32) {
return new cljs.core.PersistentVector(null, l, 5, cljs.core.PersistentVector.EMPTY_NODE, xs__$1, null)
}else {
var node = xs__$1.slice(0, 32);
var v = new cljs.core.PersistentVector(null, 32, 5, cljs.core.PersistentVector.EMPTY_NODE, node, null);
var i = 32;
var out = cljs.core._as_transient.call(null, v);
while(true) {
if(i < l) {
var G__5738 = i + 1;
var G__5739 = cljs.core.conj_BANG_.call(null, out, xs__$1[i]);
i = G__5738;
out = G__5739;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out)
}
break
}
}
};
cljs.core.vec = function vec(coll) {
return cljs.core._persistent_BANG_.call(null, cljs.core.reduce.call(null, cljs.core._conj_BANG_, cljs.core._as_transient.call(null, cljs.core.PersistentVector.EMPTY), coll))
};
cljs.core.vector = function() {
var vector__delegate = function(args) {
return cljs.core.vec.call(null, args)
};
var vector = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return vector__delegate.call(this, args)
};
vector.cljs$lang$maxFixedArity = 0;
vector.cljs$lang$applyTo = function(arglist__5740) {
var args = cljs.core.seq(arglist__5740);
return vector__delegate(args)
};
vector.cljs$core$IFn$_invoke$arity$variadic = vector__delegate;
return vector
}();
goog.provide("cljs.core.ChunkedSeq");
cljs.core.ChunkedSeq = function(vec, node, i, off, meta, __hash) {
this.vec = vec;
this.node = node;
this.i = i;
this.off = off;
this.meta = meta;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition0$ = 31719660;
this.cljs$lang$protocol_mask$partition1$ = 1536
};
cljs.core.ChunkedSeq.cljs$lang$type = true;
cljs.core.ChunkedSeq.cljs$lang$ctorStr = "cljs.core/ChunkedSeq";
cljs.core.ChunkedSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ChunkedSeq")
};
cljs.core.ChunkedSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var self__ = this;
if(self__.off + 1 < self__.node.length) {
var s = cljs.core.chunked_seq.call(null, self__.vec, self__.node, self__.i, self__.off + 1);
if(s == null) {
return null
}else {
return s
}
}else {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1(coll)
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.ChunkedSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return self__.node[self__.off]
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
if(self__.off + 1 < self__.node.length) {
var s = cljs.core.chunked_seq.call(null, self__.vec, self__.node, self__.i, self__.off + 1);
if(s == null) {
return cljs.core.List.EMPTY
}else {
return s
}
}else {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1(coll)
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 = function(coll) {
var self__ = this;
var l = self__.node.length;
var s = self__.i + l < cljs.core._count.call(null, self__.vec) ? cljs.core.chunked_seq.call(null, self__.vec, self__.i + l, 0) : null;
if(s == null) {
return null
}else {
return s
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, m) {
var self__ = this;
return cljs.core.chunked_seq.call(null, self__.vec, self__.node, self__.i, self__.off, m)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.ChunkedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, self__.meta)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core.array_chunk.call(null, self__.node, self__.off)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = function(coll) {
var self__ = this;
var l = self__.node.length;
var s = self__.i + l < cljs.core._count.call(null, self__.vec) ? cljs.core.chunked_seq.call(null, self__.vec, self__.i + l, 0) : null;
if(s == null) {
return cljs.core.List.EMPTY
}else {
return s
}
};
cljs.core.chunked_seq = function() {
var chunked_seq = null;
var chunked_seq__3 = function(vec, i, off) {
return new cljs.core.ChunkedSeq(vec, cljs.core.array_for.call(null, vec, i), i, off, null, null)
};
var chunked_seq__4 = function(vec, node, i, off) {
return new cljs.core.ChunkedSeq(vec, node, i, off, null, null)
};
var chunked_seq__5 = function(vec, node, i, off, meta) {
return new cljs.core.ChunkedSeq(vec, node, i, off, meta, null)
};
chunked_seq = function(vec, node, i, off, meta) {
switch(arguments.length) {
case 3:
return chunked_seq__3.call(this, vec, node, i);
case 4:
return chunked_seq__4.call(this, vec, node, i, off);
case 5:
return chunked_seq__5.call(this, vec, node, i, off, meta)
}
throw new Error("Invalid arity: " + arguments.length);
};
chunked_seq.cljs$core$IFn$_invoke$arity$3 = chunked_seq__3;
chunked_seq.cljs$core$IFn$_invoke$arity$4 = chunked_seq__4;
chunked_seq.cljs$core$IFn$_invoke$arity$5 = chunked_seq__5;
return chunked_seq
}();
goog.provide("cljs.core.Subvec");
cljs.core.Subvec = function(meta, v, start, end, __hash) {
this.meta = meta;
this.v = v;
this.start = start;
this.end = end;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32400159
};
cljs.core.Subvec.cljs$lang$type = true;
cljs.core.Subvec.cljs$lang$ctorStr = "cljs.core/Subvec";
cljs.core.Subvec.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Subvec")
};
cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.Subvec.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, key, val) {
var self__ = this;
var v_pos = self__.start + key;
return cljs.core.build_subvec.call(null, self__.meta, cljs.core.assoc.call(null, self__.v, v_pos, val), self__.start, self__.end > v_pos + 1 ? self__.end : v_pos + 1, null)
};
cljs.core.Subvec.prototype.call = function() {
var G__5742 = null;
var G__5742__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5742__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5742 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5742__2.call(this, self__, k);
case 3:
return G__5742__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5742
}();
cljs.core.Subvec.prototype.apply = function(self__, args5741) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5741.slice()))
};
cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.build_subvec.call(null, self__.meta, cljs.core._assoc_n.call(null, self__.v, self__.end, o), self__.start, self__.end + 1, null)
};
cljs.core.Subvec.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var self__ = this;
return cljs.core.ci_reduce.call(null, coll, f)
};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start__$1) {
var self__ = this;
return cljs.core.ci_reduce.call(null, coll, f, start__$1)
};
cljs.core.Subvec.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
var subvec_seq = function subvec_seq(i) {
if(i === self__.end) {
return null
}else {
return cljs.core.cons.call(null, cljs.core._nth.call(null, self__.v, i), new cljs.core.LazySeq(null, false, function() {
return subvec_seq.call(null, i + 1)
}, null))
}
};
return subvec_seq.call(null, self__.start)
};
cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.end - self__.start
};
cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var self__ = this;
return cljs.core._nth.call(null, self__.v, self__.end - 1)
};
cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var self__ = this;
if(self__.start === self__.end) {
throw new Error("Can't pop empty vector");
}else {
return cljs.core.build_subvec.call(null, self__.meta, self__.v, self__.start, self__.end - 1, null)
}
};
cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var self__ = this;
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, n, val)
};
cljs.core.Subvec.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.Subvec.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return cljs.core.build_subvec.call(null, meta__$1, self__.v, self__.start, self__.end, self__.__hash)
};
cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var self__ = this;
return cljs.core._nth.call(null, self__.v, self__.start + n)
};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var self__ = this;
return cljs.core._nth.call(null, self__.v, self__.start + n, not_found)
};
cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, self__.meta)
};
cljs.core.build_subvec = function build_subvec(meta, v, start, end, __hash) {
while(true) {
if(v instanceof cljs.core.Subvec) {
var G__5743 = meta;
var G__5744 = v.v;
var G__5745 = v.start + start;
var G__5746 = v.start + end;
var G__5747 = __hash;
meta = G__5743;
v = G__5744;
start = G__5745;
end = G__5746;
__hash = G__5747;
continue
}else {
var c = cljs.core.count.call(null, v);
if(function() {
var or__3943__auto__ = start < 0;
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = end < 0;
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = start > c;
if(or__3943__auto____$2) {
return or__3943__auto____$2
}else {
return end > c
}
}
}
}()) {
throw new Error("Index out of bounds");
}else {
}
return new cljs.core.Subvec(meta, v, start, end, __hash)
}
break
}
};
cljs.core.subvec = function() {
var subvec = null;
var subvec__2 = function(v, start) {
return subvec.call(null, v, start, cljs.core.count.call(null, v))
};
var subvec__3 = function(v, start, end) {
return cljs.core.build_subvec.call(null, null, v, start, end, null)
};
subvec = function(v, start, end) {
switch(arguments.length) {
case 2:
return subvec__2.call(this, v, start);
case 3:
return subvec__3.call(this, v, start, end)
}
throw new Error("Invalid arity: " + arguments.length);
};
subvec.cljs$core$IFn$_invoke$arity$2 = subvec__2;
subvec.cljs$core$IFn$_invoke$arity$3 = subvec__3;
return subvec
}();
cljs.core.tv_ensure_editable = function tv_ensure_editable(edit, node) {
if(edit === node.edit) {
return node
}else {
return new cljs.core.VectorNode(edit, node.arr.slice())
}
};
cljs.core.tv_editable_root = function tv_editable_root(node) {
return new cljs.core.VectorNode({}, node.arr.slice())
};
cljs.core.tv_editable_tail = function tv_editable_tail(tl) {
var ret = new Array(32);
cljs.core.array_copy.call(null, tl, 0, ret, 0, tl.length);
return ret
};
cljs.core.tv_push_tail = function tv_push_tail(tv, level, parent, tail_node) {
var ret = cljs.core.tv_ensure_editable.call(null, tv.root.edit, parent);
var subidx = tv.cnt - 1 >>> level & 31;
cljs.core.pv_aset.call(null, ret, subidx, level === 5 ? tail_node : function() {
var child = cljs.core.pv_aget.call(null, ret, subidx);
if(!(child == null)) {
return tv_push_tail.call(null, tv, level - 5, child, tail_node)
}else {
return cljs.core.new_path.call(null, tv.root.edit, level - 5, tail_node)
}
}());
return ret
};
cljs.core.tv_pop_tail = function tv_pop_tail(tv, level, node) {
var node__$1 = cljs.core.tv_ensure_editable.call(null, tv.root.edit, node);
var subidx = tv.cnt - 2 >>> level & 31;
if(level > 5) {
var new_child = tv_pop_tail.call(null, tv, level - 5, cljs.core.pv_aget.call(null, node__$1, subidx));
if(function() {
var and__3941__auto__ = new_child == null;
if(and__3941__auto__) {
return subidx === 0
}else {
return and__3941__auto__
}
}()) {
return null
}else {
cljs.core.pv_aset.call(null, node__$1, subidx, new_child);
return node__$1
}
}else {
if(subidx === 0) {
return null
}else {
if("\ufdd0:else") {
cljs.core.pv_aset.call(null, node__$1, subidx, null);
return node__$1
}else {
return null
}
}
}
};
cljs.core.editable_array_for = function editable_array_for(tv, i) {
if(function() {
var and__3941__auto__ = 0 <= i;
if(and__3941__auto__) {
return i < tv.cnt
}else {
return and__3941__auto__
}
}()) {
if(i >= cljs.core.tail_off.call(null, tv)) {
return tv.tail
}else {
var root = tv.root;
var node = root;
var level = tv.shift;
while(true) {
if(level > 0) {
var G__5748 = cljs.core.tv_ensure_editable.call(null, root.edit, cljs.core.pv_aget.call(null, node, i >>> level & 31));
var G__5749 = level - 5;
node = G__5748;
level = G__5749;
continue
}else {
return node.arr
}
break
}
}
}else {
throw new Error([cljs.core.str("No item "), cljs.core.str(i), cljs.core.str(" in transient vector of length "), cljs.core.str(tv.cnt)].join(""));
}
};
goog.provide("cljs.core.TransientVector");
cljs.core.TransientVector = function(cnt, shift, root, tail) {
this.cnt = cnt;
this.shift = shift;
this.root = root;
this.tail = tail;
this.cljs$lang$protocol_mask$partition0$ = 275;
this.cljs$lang$protocol_mask$partition1$ = 88
};
cljs.core.TransientVector.cljs$lang$type = true;
cljs.core.TransientVector.cljs$lang$ctorStr = "cljs.core/TransientVector";
cljs.core.TransientVector.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/TransientVector")
};
cljs.core.TransientVector.prototype.call = function() {
var G__5751 = null;
var G__5751__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5751__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5751 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5751__2.call(this, self__, k);
case 3:
return G__5751__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5751
}();
cljs.core.TransientVector.prototype.apply = function(self__, args5750) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5750.slice()))
};
cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var self__ = this;
if(self__.root.edit) {
return cljs.core.array_for.call(null, coll, n)[n & 31]
}else {
throw new Error("nth after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var self__ = this;
if(function() {
var and__3941__auto__ = 0 <= n;
if(and__3941__auto__) {
return n < self__.cnt
}else {
return and__3941__auto__
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
return not_found
}
};
cljs.core.TransientVector.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
if(self__.root.edit) {
return self__.cnt
}else {
throw new Error("count after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3 = function(tcoll, n, val) {
var self__ = this;
if(self__.root.edit) {
if(function() {
var and__3941__auto__ = 0 <= n;
if(and__3941__auto__) {
return n < self__.cnt
}else {
return and__3941__auto__
}
}()) {
if(cljs.core.tail_off.call(null, tcoll) <= n) {
self__.tail[n & 31] = val;
return tcoll
}else {
var new_root = function go(level, node) {
var node__$1 = cljs.core.tv_ensure_editable.call(null, self__.root.edit, node);
if(level === 0) {
cljs.core.pv_aset.call(null, node__$1, n & 31, val);
return node__$1
}else {
var subidx = n >>> level & 31;
cljs.core.pv_aset.call(null, node__$1, subidx, go.call(null, level - 5, cljs.core.pv_aget.call(null, node__$1, subidx)));
return node__$1
}
}.call(null, self__.shift, self__.root);
self__.root = new_root;
return tcoll
}
}else {
if(n === self__.cnt) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2(tcoll, val)
}else {
if("\ufdd0:else") {
throw new Error([cljs.core.str("Index "), cljs.core.str(n), cljs.core.str(" out of bounds for TransientVector of length"), cljs.core.str(self__.cnt)].join(""));
}else {
return null
}
}
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_pop_BANG_$arity$1 = function(tcoll) {
var self__ = this;
if(self__.root.edit) {
if(self__.cnt === 0) {
throw new Error("Can't pop empty vector");
}else {
if(1 === self__.cnt) {
self__.cnt = 0;
return tcoll
}else {
if((self__.cnt - 1 & 31) > 0) {
self__.cnt = self__.cnt - 1;
return tcoll
}else {
if("\ufdd0:else") {
var new_tail = cljs.core.editable_array_for.call(null, tcoll, self__.cnt - 2);
var new_root = function() {
var nr = cljs.core.tv_pop_tail.call(null, tcoll, self__.shift, self__.root);
if(!(nr == null)) {
return nr
}else {
return new cljs.core.VectorNode(self__.root.edit, new Array(32))
}
}();
if(function() {
var and__3941__auto__ = 5 < self__.shift;
if(and__3941__auto__) {
return cljs.core.pv_aget.call(null, new_root, 1) == null
}else {
return and__3941__auto__
}
}()) {
var new_root__$1 = cljs.core.tv_ensure_editable.call(null, self__.root.edit, cljs.core.pv_aget.call(null, new_root, 0));
self__.root = new_root__$1;
self__.shift = self__.shift - 5;
self__.cnt = self__.cnt - 1;
self__.tail = new_tail;
return tcoll
}else {
self__.root = new_root;
self__.cnt = self__.cnt - 1;
self__.tail = new_tail;
return tcoll
}
}else {
return null
}
}
}
}
}else {
throw new Error("pop! after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var self__ = this;
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(tcoll, key, val)
};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var self__ = this;
if(self__.root.edit) {
if(self__.cnt - cljs.core.tail_off.call(null, tcoll) < 32) {
self__.tail[self__.cnt & 31] = o;
self__.cnt = self__.cnt + 1;
return tcoll
}else {
var tail_node = new cljs.core.VectorNode(self__.root.edit, self__.tail);
var new_tail = new Array(32);
new_tail[0] = o;
self__.tail = new_tail;
if(self__.cnt >>> 5 > 1 << self__.shift) {
var new_root_array = new Array(32);
var new_shift = self__.shift + 5;
new_root_array[0] = self__.root;
new_root_array[1] = cljs.core.new_path.call(null, self__.root.edit, self__.shift, tail_node);
self__.root = new cljs.core.VectorNode(self__.root.edit, new_root_array);
self__.shift = new_shift;
self__.cnt = self__.cnt + 1;
return tcoll
}else {
var new_root = cljs.core.tv_push_tail.call(null, tcoll, self__.shift, self__.root, tail_node);
self__.root = new_root;
self__.cnt = self__.cnt + 1;
return tcoll
}
}
}else {
throw new Error("conj! after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var self__ = this;
if(self__.root.edit) {
self__.root.edit = null;
var len = self__.cnt - cljs.core.tail_off.call(null, tcoll);
var trimmed_tail = new Array(len);
cljs.core.array_copy.call(null, self__.tail, 0, trimmed_tail, 0, len);
return new cljs.core.PersistentVector(null, self__.cnt, self__.shift, self__.root, trimmed_tail, null)
}else {
throw new Error("persistent! called twice");
}
};
goog.provide("cljs.core.PersistentQueueSeq");
cljs.core.PersistentQueueSeq = function(meta, front, rear, __hash) {
this.meta = meta;
this.front = front;
this.rear = rear;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850572
};
cljs.core.PersistentQueueSeq.cljs$lang$type = true;
cljs.core.PersistentQueueSeq.cljs$lang$ctorStr = "cljs.core/PersistentQueueSeq";
cljs.core.PersistentQueueSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentQueueSeq")
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.PersistentQueueSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return coll
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core.first.call(null, self__.front)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
var temp__4090__auto__ = cljs.core.next.call(null, self__.front);
if(temp__4090__auto__) {
var f1 = temp__4090__auto__;
return new cljs.core.PersistentQueueSeq(self__.meta, f1, self__.rear, null)
}else {
if(self__.rear == null) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
return new cljs.core.PersistentQueueSeq(self__.meta, self__.rear, null, null)
}
}
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentQueueSeq(meta__$1, self__.front, self__.rear, self__.__hash)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
goog.provide("cljs.core.PersistentQueue");
cljs.core.PersistentQueue = function(meta, count, front, rear, __hash) {
this.meta = meta;
this.count = count;
this.front = front;
this.rear = rear;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31858766
};
cljs.core.PersistentQueue.cljs$lang$type = true;
cljs.core.PersistentQueue.cljs$lang$ctorStr = "cljs.core/PersistentQueue";
cljs.core.PersistentQueue.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentQueue")
};
cljs.core.PersistentQueue.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
if(cljs.core.truth_(self__.front)) {
return new cljs.core.PersistentQueue(self__.meta, self__.count + 1, self__.front, cljs.core.conj.call(null, function() {
var or__3943__auto__ = self__.rear;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.PersistentVector.EMPTY
}
}(), o), null)
}else {
return new cljs.core.PersistentQueue(self__.meta, self__.count + 1, cljs.core.conj.call(null, self__.front, o), cljs.core.PersistentVector.EMPTY, null)
}
};
cljs.core.PersistentQueue.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
var rear__$1 = cljs.core.seq.call(null, self__.rear);
if(cljs.core.truth_(function() {
var or__3943__auto__ = self__.front;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return rear__$1
}
}())) {
return new cljs.core.PersistentQueueSeq(null, self__.front, cljs.core.seq.call(null, rear__$1), null)
}else {
return null
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.count
};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var self__ = this;
return cljs.core.first.call(null, self__.front)
};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var self__ = this;
if(cljs.core.truth_(self__.front)) {
var temp__4090__auto__ = cljs.core.next.call(null, self__.front);
if(temp__4090__auto__) {
var f1 = temp__4090__auto__;
return new cljs.core.PersistentQueue(self__.meta, self__.count - 1, f1, self__.rear, null)
}else {
return new cljs.core.PersistentQueue(self__.meta, self__.count - 1, cljs.core.seq.call(null, self__.rear), cljs.core.PersistentVector.EMPTY, null)
}
}else {
return coll
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core.first.call(null, self__.front)
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
return cljs.core.rest.call(null, cljs.core.seq.call(null, coll))
};
cljs.core.PersistentQueue.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentQueue.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentQueue(meta__$1, self__.count, self__.front, self__.rear, self__.__hash)
};
cljs.core.PersistentQueue.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentQueue.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.PersistentQueue.EMPTY
};
cljs.core.PersistentQueue.EMPTY = new cljs.core.PersistentQueue(null, 0, null, cljs.core.PersistentVector.EMPTY, 0);
goog.provide("cljs.core.NeverEquiv");
cljs.core.NeverEquiv = function() {
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2097152
};
cljs.core.NeverEquiv.cljs$lang$type = true;
cljs.core.NeverEquiv.cljs$lang$ctorStr = "cljs.core/NeverEquiv";
cljs.core.NeverEquiv.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/NeverEquiv")
};
cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var self__ = this;
return false
};
cljs.core.never_equiv = new cljs.core.NeverEquiv;
cljs.core.equiv_map = function equiv_map(x, y) {
return cljs.core.boolean$.call(null, cljs.core.map_QMARK_.call(null, y) ? cljs.core.count.call(null, x) === cljs.core.count.call(null, y) ? cljs.core.every_QMARK_.call(null, cljs.core.identity, cljs.core.map.call(null, function(xkv) {
return cljs.core._EQ_.call(null, cljs.core.get.call(null, y, cljs.core.first.call(null, xkv), cljs.core.never_equiv), cljs.core.second.call(null, xkv))
}, x)) : null : null)
};
cljs.core.scan_array = function scan_array(incr, k, array) {
var len = array.length;
var i = 0;
while(true) {
if(i < len) {
if(k === array[i]) {
return i
}else {
var G__5752 = i + incr;
i = G__5752;
continue
}
}else {
return null
}
break
}
};
cljs.core.obj_map_compare_keys = function obj_map_compare_keys(a, b) {
var a__$1 = cljs.core.hash.call(null, a);
var b__$1 = cljs.core.hash.call(null, b);
if(a__$1 < b__$1) {
return-1
}else {
if(a__$1 > b__$1) {
return 1
}else {
if("\ufdd0:else") {
return 0
}else {
return null
}
}
}
};
cljs.core.obj_map__GT_hash_map = function obj_map__GT_hash_map(m, k, v) {
var ks = m.keys;
var len = ks.length;
var so = m.strobj;
var mm = cljs.core.meta.call(null, m);
var i = 0;
var out = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(i < len) {
var k__$1 = ks[i];
var G__5753 = i + 1;
var G__5754 = cljs.core.assoc_BANG_.call(null, out, k__$1, so[k__$1]);
i = G__5753;
out = G__5754;
continue
}else {
return cljs.core.with_meta.call(null, cljs.core.persistent_BANG_.call(null, cljs.core.assoc_BANG_.call(null, out, k, v)), mm)
}
break
}
};
cljs.core.obj_clone = function obj_clone(obj, ks) {
var new_obj = {};
var l = ks.length;
var i_5756 = 0;
while(true) {
if(i_5756 < l) {
var k_5757 = ks[i_5756];
new_obj[k_5757] = obj[k_5757];
var G__5758 = i_5756 + 1;
i_5756 = G__5758;
continue
}else {
}
break
}
return new_obj
};
goog.provide("cljs.core.ObjMap");
cljs.core.ObjMap = function(meta, keys, strobj, update_count, __hash) {
this.meta = meta;
this.keys = keys;
this.strobj = strobj;
this.update_count = update_count;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 4;
this.cljs$lang$protocol_mask$partition0$ = 16123663
};
cljs.core.ObjMap.cljs$lang$type = true;
cljs.core.ObjMap.cljs$lang$ctorStr = "cljs.core/ObjMap";
cljs.core.ObjMap.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ObjMap")
};
cljs.core.ObjMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var self__ = this;
return cljs.core.transient$.call(null, cljs.core.into.call(null, cljs.core.hash_map.call(null), coll))
};
cljs.core.ObjMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_imap.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
if(function() {
var and__3941__auto__ = goog.isString(k);
if(and__3941__auto__) {
return!(cljs.core.scan_array.call(null, 1, k, self__.keys) == null)
}else {
return and__3941__auto__
}
}()) {
return self__.strobj[k]
}else {
return not_found
}
};
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var self__ = this;
if(goog.isString(k)) {
if(function() {
var or__3943__auto__ = self__.update_count > cljs.core.ObjMap.HASHMAP_THRESHOLD;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return self__.keys.length >= cljs.core.ObjMap.HASHMAP_THRESHOLD
}
}()) {
return cljs.core.obj_map__GT_hash_map.call(null, coll, k, v)
}else {
if(!(cljs.core.scan_array.call(null, 1, k, self__.keys) == null)) {
var new_strobj = cljs.core.obj_clone.call(null, self__.strobj, self__.keys);
new_strobj[k] = v;
return new cljs.core.ObjMap(self__.meta, self__.keys, new_strobj, self__.update_count + 1, null)
}else {
var new_strobj = cljs.core.obj_clone.call(null, self__.strobj, self__.keys);
var new_keys = self__.keys.slice();
new_strobj[k] = v;
new_keys.push(k);
return new cljs.core.ObjMap(self__.meta, new_keys, new_strobj, self__.update_count + 1, null)
}
}
}else {
return cljs.core.obj_map__GT_hash_map.call(null, coll, k, v)
}
};
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var self__ = this;
if(function() {
var and__3941__auto__ = goog.isString(k);
if(and__3941__auto__) {
return!(cljs.core.scan_array.call(null, 1, k, self__.keys) == null)
}else {
return and__3941__auto__
}
}()) {
return true
}else {
return false
}
};
cljs.core.ObjMap.prototype.call = function() {
var G__5760 = null;
var G__5760__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5760__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5760 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5760__2.call(this, self__, k);
case 3:
return G__5760__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5760
}();
cljs.core.ObjMap.prototype.apply = function(self__, args5759) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5759.slice()))
};
cljs.core.ObjMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var self__ = this;
var len = self__.keys.length;
var keys__$1 = self__.keys.sort(cljs.core.obj_map_compare_keys);
var init__$1 = init;
while(true) {
if(cljs.core.seq.call(null, keys__$1)) {
var k = cljs.core.first.call(null, keys__$1);
var init__$2 = f.call(null, init__$1, k, self__.strobj[k]);
if(cljs.core.reduced_QMARK_.call(null, init__$2)) {
return cljs.core.deref.call(null, init__$2)
}else {
var G__5761 = cljs.core.rest.call(null, keys__$1);
var G__5762 = init__$2;
keys__$1 = G__5761;
init__$1 = G__5762;
continue
}
}else {
return init__$1
}
break
}
};
cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var self__ = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, cljs.core._nth.call(null, entry, 0), cljs.core._nth.call(null, entry, 1))
}else {
return cljs.core.reduce.call(null, cljs.core._conj, coll, entry)
}
};
cljs.core.ObjMap.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
if(self__.keys.length > 0) {
return cljs.core.map.call(null, function(p1__5755_SHARP_) {
return cljs.core.vector.call(null, p1__5755_SHARP_, self__.strobj[p1__5755_SHARP_])
}, self__.keys.sort(cljs.core.obj_map_compare_keys))
}else {
return null
}
};
cljs.core.ObjMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.keys.length
};
cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.ObjMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.ObjMap(meta__$1, self__.keys, self__.strobj, self__.update_count, self__.__hash)
};
cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.ObjMap.EMPTY, self__.meta)
};
cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var self__ = this;
if(function() {
var and__3941__auto__ = goog.isString(k);
if(and__3941__auto__) {
return!(cljs.core.scan_array.call(null, 1, k, self__.keys) == null)
}else {
return and__3941__auto__
}
}()) {
var new_keys = self__.keys.slice();
var new_strobj = cljs.core.obj_clone.call(null, self__.strobj, self__.keys);
new_keys.splice(cljs.core.scan_array.call(null, 1, k, new_keys), 1);
delete new_strobj[k];
return new cljs.core.ObjMap(self__.meta, new_keys, new_strobj, self__.update_count + 1, null)
}else {
return coll
}
};
cljs.core.ObjMap.EMPTY = new cljs.core.ObjMap(null, [], {}, 0, 0);
cljs.core.ObjMap.HASHMAP_THRESHOLD = 8;
cljs.core.ObjMap.fromObject = function(ks, obj) {
return new cljs.core.ObjMap(null, ks, obj, 0, null)
};
cljs.core.array_map_index_of_nil_QMARK_ = function array_map_index_of_nil_QMARK_(arr, m, k) {
var len = arr.length;
var i = 0;
while(true) {
if(len <= i) {
return-1
}else {
if(arr[i] == null) {
return i
}else {
if("\ufdd0:else") {
var G__5763 = i + 2;
i = G__5763;
continue
}else {
return null
}
}
}
break
}
};
cljs.core.array_map_index_of_symbol_QMARK_ = function array_map_index_of_symbol_QMARK_(arr, m, k) {
var len = arr.length;
var kstr = k.str;
var i = 0;
while(true) {
if(len <= i) {
return-1
}else {
if(function() {
var k_SINGLEQUOTE_ = arr[i];
var and__3941__auto__ = k_SINGLEQUOTE_ instanceof cljs.core.Symbol;
if(and__3941__auto__) {
return kstr === k_SINGLEQUOTE_.str
}else {
return and__3941__auto__
}
}()) {
return i
}else {
if("\ufdd0:else") {
var G__5764 = i + 2;
i = G__5764;
continue
}else {
return null
}
}
}
break
}
};
cljs.core.array_map_index_of_identical_QMARK_ = function array_map_index_of_identical_QMARK_(arr, m, k) {
var len = arr.length;
var i = 0;
while(true) {
if(len <= i) {
return-1
}else {
if(k === arr[i]) {
return i
}else {
if("\ufdd0:else") {
var G__5765 = i + 2;
i = G__5765;
continue
}else {
return null
}
}
}
break
}
};
cljs.core.array_map_index_of_equiv_QMARK_ = function array_map_index_of_equiv_QMARK_(arr, m, k) {
var len = arr.length;
var i = 0;
while(true) {
if(len <= i) {
return-1
}else {
if(cljs.core._EQ_.call(null, k, arr[i])) {
return i
}else {
if("\ufdd0:else") {
var G__5766 = i + 2;
i = G__5766;
continue
}else {
return null
}
}
}
break
}
};
cljs.core.array_map_index_of = function array_map_index_of(m, k) {
var arr = m.arr;
if(function() {
var or__3943__auto__ = goog.isString(k);
if(or__3943__auto__) {
return or__3943__auto__
}else {
return typeof k === "number"
}
}()) {
return cljs.core.array_map_index_of_identical_QMARK_.call(null, arr, m, k)
}else {
if(k instanceof cljs.core.Symbol) {
return cljs.core.array_map_index_of_symbol_QMARK_.call(null, arr, m, k)
}else {
if(k == null) {
return cljs.core.array_map_index_of_nil_QMARK_.call(null, arr, m, k)
}else {
if("\ufdd0:else") {
return cljs.core.array_map_index_of_equiv_QMARK_.call(null, arr, m, k)
}else {
return null
}
}
}
}
};
cljs.core.array_map_extend_kv = function array_map_extend_kv(m, k, v) {
var arr = m.arr;
var l = arr.length;
var narr = new Array(l + 2);
var i_5767 = 0;
while(true) {
if(i_5767 < l) {
narr[i_5767] = arr[i_5767];
var G__5768 = i_5767 + 1;
i_5767 = G__5768;
continue
}else {
}
break
}
narr[l] = k;
narr[l + 1] = v;
return narr
};
goog.provide("cljs.core.PersistentArrayMap");
cljs.core.PersistentArrayMap = function(meta, cnt, arr, __hash) {
this.meta = meta;
this.cnt = cnt;
this.arr = arr;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 4;
this.cljs$lang$protocol_mask$partition0$ = 16123663
};
cljs.core.PersistentArrayMap.cljs$lang$type = true;
cljs.core.PersistentArrayMap.cljs$lang$ctorStr = "cljs.core/PersistentArrayMap";
cljs.core.PersistentArrayMap.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentArrayMap")
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var self__ = this;
return new cljs.core.TransientArrayMap({}, self__.arr.length, self__.arr.slice())
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_imap.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
var idx = cljs.core.array_map_index_of.call(null, coll, k);
if(idx === -1) {
return not_found
}else {
return self__.arr[idx + 1]
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var self__ = this;
var idx = cljs.core.array_map_index_of.call(null, coll, k);
if(idx === -1) {
if(self__.cnt < cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
var arr__$1 = cljs.core.array_map_extend_kv.call(null, coll, k, v);
return new cljs.core.PersistentArrayMap(self__.meta, self__.cnt + 1, arr__$1, null)
}else {
return cljs.core._with_meta.call(null, cljs.core._assoc.call(null, cljs.core.into.call(null, cljs.core.PersistentHashMap.EMPTY, coll), k, v), self__.meta)
}
}else {
if(v === self__.arr[idx + 1]) {
return coll
}else {
if("\ufdd0:else") {
var arr__$1 = function() {
var G__5770 = self__.arr.slice();
G__5770[idx + 1] = v;
return G__5770
}();
return new cljs.core.PersistentArrayMap(self__.meta, self__.cnt, arr__$1, null)
}else {
return null
}
}
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var self__ = this;
return!(cljs.core.array_map_index_of.call(null, coll, k) === -1)
};
cljs.core.PersistentArrayMap.prototype.call = function() {
var G__5771 = null;
var G__5771__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5771__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5771 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5771__2.call(this, self__, k);
case 3:
return G__5771__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5771
}();
cljs.core.PersistentArrayMap.prototype.apply = function(self__, args5769) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5769.slice()))
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var self__ = this;
var len = self__.arr.length;
var i = 0;
var init__$1 = init;
while(true) {
if(i < len) {
var init__$2 = f.call(null, init__$1, self__.arr[i], self__.arr[i + 1]);
if(cljs.core.reduced_QMARK_.call(null, init__$2)) {
return cljs.core.deref.call(null, init__$2)
}else {
var G__5772 = i + 2;
var G__5773 = init__$2;
i = G__5772;
init__$1 = G__5773;
continue
}
}else {
return init__$1
}
break
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var self__ = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, cljs.core._nth.call(null, entry, 0), cljs.core._nth.call(null, entry, 1))
}else {
return cljs.core.reduce.call(null, cljs.core._conj, coll, entry)
}
};
cljs.core.PersistentArrayMap.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt > 0) {
var len = self__.arr.length;
var array_map_seq = function(len) {
return function array_map_seq(i) {
return new cljs.core.LazySeq(null, false, function(len) {
return function() {
if(i < len) {
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([self__.arr[i], self__.arr[i + 1]], true), array_map_seq.call(null, i + 2))
}else {
return null
}
}
}(len), null)
}
}(len);
return array_map_seq.call(null, 0)
}else {
return null
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.cnt
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentArrayMap(meta__$1, self__.cnt, self__.arr, self__.__hash)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core._with_meta.call(null, cljs.core.PersistentArrayMap.EMPTY, self__.meta)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var self__ = this;
var idx = cljs.core.array_map_index_of.call(null, coll, k);
if(idx >= 0) {
var len = self__.arr.length;
var new_len = len - 2;
if(new_len === 0) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
var new_arr = new Array(new_len);
var s = 0;
var d = 0;
while(true) {
if(s >= len) {
return new cljs.core.PersistentArrayMap(self__.meta, self__.cnt - 1, new_arr, null)
}else {
if(cljs.core._EQ_.call(null, k, self__.arr[s])) {
var G__5774 = s + 2;
var G__5775 = d;
s = G__5774;
d = G__5775;
continue
}else {
if("\ufdd0:else") {
new_arr[d] = self__.arr[s];
new_arr[d + 1] = self__.arr[s + 1];
var G__5776 = s + 2;
var G__5777 = d + 2;
s = G__5776;
d = G__5777;
continue
}else {
return null
}
}
}
break
}
}
}else {
return coll
}
};
cljs.core.PersistentArrayMap.EMPTY = new cljs.core.PersistentArrayMap(null, 0, [], null);
cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD = 8;
cljs.core.PersistentArrayMap.fromArray = function(arr, no_clone) {
var arr__$1 = no_clone ? arr : arr.slice();
var cnt = arr__$1.length / 2;
return new cljs.core.PersistentArrayMap(null, cnt, arr__$1, null)
};
goog.provide("cljs.core.TransientArrayMap");
cljs.core.TransientArrayMap = function(editable_QMARK_, len, arr) {
this.editable_QMARK_ = editable_QMARK_;
this.len = len;
this.arr = arr;
this.cljs$lang$protocol_mask$partition1$ = 56;
this.cljs$lang$protocol_mask$partition0$ = 258
};
cljs.core.TransientArrayMap.cljs$lang$type = true;
cljs.core.TransientArrayMap.cljs$lang$ctorStr = "cljs.core/TransientArrayMap";
cljs.core.TransientArrayMap.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/TransientArrayMap")
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 = function(tcoll, key) {
var self__ = this;
if(cljs.core.truth_(self__.editable_QMARK_)) {
var idx = cljs.core.array_map_index_of.call(null, tcoll, key);
if(idx >= 0) {
self__.arr[idx] = self__.arr[self__.len - 2];
self__.arr[idx + 1] = self__.arr[self__.len - 1];
var G__5778_5780 = self__.arr;
G__5778_5780.pop();
G__5778_5780.pop();
self__.len = self__.len - 2
}else {
}
return tcoll
}else {
throw new Error("dissoc! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var self__ = this;
if(cljs.core.truth_(self__.editable_QMARK_)) {
var idx = cljs.core.array_map_index_of.call(null, tcoll, key);
if(idx === -1) {
if(self__.len + 2 <= 2 * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
self__.len = self__.len + 2;
self__.arr.push(key);
self__.arr.push(val);
return tcoll
}else {
return cljs.core.assoc_BANG_.call(null, cljs.core.array__GT_transient_hash_map.call(null, self__.len, self__.arr), key, val)
}
}else {
if(val === self__.arr[idx + 1]) {
return tcoll
}else {
self__.arr[idx + 1] = val;
return tcoll
}
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var self__ = this;
if(cljs.core.truth_(self__.editable_QMARK_)) {
if(function() {
var G__5779 = o;
if(G__5779) {
if(function() {
var or__3943__auto__ = G__5779.cljs$lang$protocol_mask$partition0$ & 2048;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5779.cljs$core$IMapEntry$
}
}()) {
return true
}else {
if(!G__5779.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__5779)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__5779)
}
}()) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll, cljs.core.key.call(null, o), cljs.core.val.call(null, o))
}else {
var es = cljs.core.seq.call(null, o);
var tcoll__$1 = tcoll;
while(true) {
var temp__4090__auto__ = cljs.core.first.call(null, es);
if(cljs.core.truth_(temp__4090__auto__)) {
var e = temp__4090__auto__;
var G__5781 = cljs.core.next.call(null, es);
var G__5782 = tcoll__$1.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll__$1, cljs.core.key.call(null, e), cljs.core.val.call(null, e));
es = G__5781;
tcoll__$1 = G__5782;
continue
}else {
return tcoll__$1
}
break
}
}
}else {
throw new Error("conj! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var self__ = this;
if(cljs.core.truth_(self__.editable_QMARK_)) {
self__.editable_QMARK_ = false;
return new cljs.core.PersistentArrayMap(null, cljs.core.quot.call(null, self__.len, 2), self__.arr, null)
}else {
throw new Error("persistent! called twice");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, k) {
var self__ = this;
return tcoll.cljs$core$ILookup$_lookup$arity$3(tcoll, k, null)
};
cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(tcoll, k, not_found) {
var self__ = this;
if(cljs.core.truth_(self__.editable_QMARK_)) {
var idx = cljs.core.array_map_index_of.call(null, tcoll, k);
if(idx === -1) {
return not_found
}else {
return self__.arr[idx + 1]
}
}else {
throw new Error("lookup after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ICounted$_count$arity$1 = function(tcoll) {
var self__ = this;
if(cljs.core.truth_(self__.editable_QMARK_)) {
return cljs.core.quot.call(null, self__.len, 2)
}else {
throw new Error("count after persistent!");
}
};
cljs.core.array__GT_transient_hash_map = function array__GT_transient_hash_map(len, arr) {
var out = cljs.core.transient$.call(null, cljs.core.ObjMap.EMPTY);
var i = 0;
while(true) {
if(i < len) {
var G__5783 = cljs.core.assoc_BANG_.call(null, out, arr[i], arr[i + 1]);
var G__5784 = i + 2;
out = G__5783;
i = G__5784;
continue
}else {
return out
}
break
}
};
goog.provide("cljs.core.Box");
cljs.core.Box = function(val) {
this.val = val
};
cljs.core.Box.cljs$lang$type = true;
cljs.core.Box.cljs$lang$ctorStr = "cljs.core/Box";
cljs.core.Box.cljs$lang$ctorPrWriter = function(this__2885__auto__, writer__2886__auto__, opts__2887__auto__) {
return cljs.core._write.call(null, writer__2886__auto__, "cljs.core/Box")
};
cljs.core.key_test = function key_test(key, other) {
if(goog.isString(key)) {
return key === other
}else {
return cljs.core._EQ_.call(null, key, other)
}
};
cljs.core.mask = function mask(hash, shift) {
return hash >>> shift & 31
};
cljs.core.clone_and_set = function() {
var clone_and_set = null;
var clone_and_set__3 = function(arr, i, a) {
var G__5787 = arr.slice();
G__5787[i] = a;
return G__5787
};
var clone_and_set__5 = function(arr, i, a, j, b) {
var G__5788 = arr.slice();
G__5788[i] = a;
G__5788[j] = b;
return G__5788
};
clone_and_set = function(arr, i, a, j, b) {
switch(arguments.length) {
case 3:
return clone_and_set__3.call(this, arr, i, a);
case 5:
return clone_and_set__5.call(this, arr, i, a, j, b)
}
throw new Error("Invalid arity: " + arguments.length);
};
clone_and_set.cljs$core$IFn$_invoke$arity$3 = clone_and_set__3;
clone_and_set.cljs$core$IFn$_invoke$arity$5 = clone_and_set__5;
return clone_and_set
}();
cljs.core.remove_pair = function remove_pair(arr, i) {
var new_arr = new Array(arr.length - 2);
cljs.core.array_copy.call(null, arr, 0, new_arr, 0, 2 * i);
cljs.core.array_copy.call(null, arr, 2 * (i + 1), new_arr, 2 * i, new_arr.length - 2 * i);
return new_arr
};
cljs.core.bitmap_indexed_node_index = function bitmap_indexed_node_index(bitmap, bit) {
return cljs.core.bit_count.call(null, bitmap & bit - 1)
};
cljs.core.bitpos = function bitpos(hash, shift) {
return 1 << (hash >>> shift & 31)
};
cljs.core.edit_and_set = function() {
var edit_and_set = null;
var edit_and_set__4 = function(inode, edit, i, a) {
var editable = inode.ensure_editable(edit);
editable.arr[i] = a;
return editable
};
var edit_and_set__6 = function(inode, edit, i, a, j, b) {
var editable = inode.ensure_editable(edit);
editable.arr[i] = a;
editable.arr[j] = b;
return editable
};
edit_and_set = function(inode, edit, i, a, j, b) {
switch(arguments.length) {
case 4:
return edit_and_set__4.call(this, inode, edit, i, a);
case 6:
return edit_and_set__6.call(this, inode, edit, i, a, j, b)
}
throw new Error("Invalid arity: " + arguments.length);
};
edit_and_set.cljs$core$IFn$_invoke$arity$4 = edit_and_set__4;
edit_and_set.cljs$core$IFn$_invoke$arity$6 = edit_and_set__6;
return edit_and_set
}();
cljs.core.inode_kv_reduce = function inode_kv_reduce(arr, f, init) {
var len = arr.length;
var i = 0;
var init__$1 = init;
while(true) {
if(i < len) {
var init__$2 = function() {
var k = arr[i];
if(!(k == null)) {
return f.call(null, init__$1, k, arr[i + 1])
}else {
var node = arr[i + 1];
if(!(node == null)) {
return node.kv_reduce(f, init__$1)
}else {
return init__$1
}
}
}();
if(cljs.core.reduced_QMARK_.call(null, init__$2)) {
return cljs.core.deref.call(null, init__$2)
}else {
var G__5789 = i + 2;
var G__5790 = init__$2;
i = G__5789;
init__$1 = G__5790;
continue
}
}else {
return init__$1
}
break
}
};
goog.provide("cljs.core.BitmapIndexedNode");
cljs.core.BitmapIndexedNode = function(edit, bitmap, arr) {
this.edit = edit;
this.bitmap = bitmap;
this.arr = arr
};
cljs.core.BitmapIndexedNode.cljs$lang$type = true;
cljs.core.BitmapIndexedNode.cljs$lang$ctorStr = "cljs.core/BitmapIndexedNode";
cljs.core.BitmapIndexedNode.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/BitmapIndexedNode")
};
cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair = function(e, bit, i) {
var self__ = this;
var inode = this;
if(self__.bitmap === bit) {
return null
}else {
var editable = inode.ensure_editable(e);
var earr = editable.arr;
var len = earr.length;
editable.bitmap = bit ^ editable.bitmap;
cljs.core.array_copy.call(null, earr, 2 * (i + 1), earr, 2 * i, len - 2 * (i + 1));
earr[len - 2] = null;
earr[len - 1] = null;
return editable
}
};
cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_ = function(edit__$1, shift, hash, key, val, added_leaf_QMARK_) {
var self__ = this;
var inode = this;
var bit = 1 << (hash >>> shift & 31);
var idx = cljs.core.bitmap_indexed_node_index.call(null, self__.bitmap, bit);
if((self__.bitmap & bit) === 0) {
var n = cljs.core.bit_count.call(null, self__.bitmap);
if(2 * n < self__.arr.length) {
var editable = inode.ensure_editable(edit__$1);
var earr = editable.arr;
added_leaf_QMARK_.val = true;
cljs.core.array_copy_downward.call(null, earr, 2 * idx, earr, 2 * (idx + 1), 2 * (n - idx));
earr[2 * idx] = key;
earr[2 * idx + 1] = val;
editable.bitmap = editable.bitmap | bit;
return editable
}else {
if(n >= 16) {
var nodes = new Array(32);
var jdx = hash >>> shift & 31;
nodes[jdx] = cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit__$1, shift + 5, hash, key, val, added_leaf_QMARK_);
var i_5791 = 0;
var j_5792 = 0;
while(true) {
if(i_5791 < 32) {
if((self__.bitmap >>> i_5791 & 1) === 0) {
var G__5793 = i_5791 + 1;
var G__5794 = j_5792;
i_5791 = G__5793;
j_5792 = G__5794;
continue
}else {
nodes[i_5791] = !(self__.arr[j_5792] == null) ? cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit__$1, shift + 5, cljs.core.hash.call(null, self__.arr[j_5792]), self__.arr[j_5792], self__.arr[j_5792 + 1], added_leaf_QMARK_) : self__.arr[j_5792 + 1];
var G__5795 = i_5791 + 1;
var G__5796 = j_5792 + 2;
i_5791 = G__5795;
j_5792 = G__5796;
continue
}
}else {
}
break
}
return new cljs.core.ArrayNode(edit__$1, n + 1, nodes)
}else {
if("\ufdd0:else") {
var new_arr = new Array(2 * (n + 4));
cljs.core.array_copy.call(null, self__.arr, 0, new_arr, 0, 2 * idx);
new_arr[2 * idx] = key;
new_arr[2 * idx + 1] = val;
cljs.core.array_copy.call(null, self__.arr, 2 * idx, new_arr, 2 * (idx + 1), 2 * (n - idx));
added_leaf_QMARK_.val = true;
var editable = inode.ensure_editable(edit__$1);
editable.arr = new_arr;
editable.bitmap = editable.bitmap | bit;
return editable
}else {
return null
}
}
}
}else {
var key_or_nil = self__.arr[2 * idx];
var val_or_node = self__.arr[2 * idx + 1];
if(key_or_nil == null) {
var n = val_or_node.inode_assoc_BANG_(edit__$1, shift + 5, hash, key, val, added_leaf_QMARK_);
if(n === val_or_node) {
return inode
}else {
return cljs.core.edit_and_set.call(null, inode, edit__$1, 2 * idx + 1, n)
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil)) {
if(val === val_or_node) {
return inode
}else {
return cljs.core.edit_and_set.call(null, inode, edit__$1, 2 * idx + 1, val)
}
}else {
if("\ufdd0:else") {
added_leaf_QMARK_.val = true;
return cljs.core.edit_and_set.call(null, inode, edit__$1, 2 * idx, null, 2 * idx + 1, cljs.core.create_node.call(null, edit__$1, shift + 5, key_or_nil, val_or_node, hash, key, val))
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_seq = function() {
var self__ = this;
var inode = this;
return cljs.core.create_inode_seq.call(null, self__.arr)
};
cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_ = function(edit__$1, shift, hash, key, removed_leaf_QMARK_) {
var self__ = this;
var inode = this;
var bit = 1 << (hash >>> shift & 31);
if((self__.bitmap & bit) === 0) {
return inode
}else {
var idx = cljs.core.bitmap_indexed_node_index.call(null, self__.bitmap, bit);
var key_or_nil = self__.arr[2 * idx];
var val_or_node = self__.arr[2 * idx + 1];
if(key_or_nil == null) {
var n = val_or_node.inode_without_BANG_(edit__$1, shift + 5, hash, key, removed_leaf_QMARK_);
if(n === val_or_node) {
return inode
}else {
if(!(n == null)) {
return cljs.core.edit_and_set.call(null, inode, edit__$1, 2 * idx + 1, n)
}else {
if(self__.bitmap === bit) {
return null
}else {
if("\ufdd0:else") {
return inode.edit_and_remove_pair(edit__$1, bit, idx)
}else {
return null
}
}
}
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil)) {
removed_leaf_QMARK_[0] = true;
return inode.edit_and_remove_pair(edit__$1, bit, idx)
}else {
if("\ufdd0:else") {
return inode
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.ensure_editable = function(e) {
var self__ = this;
var inode = this;
if(e === self__.edit) {
return inode
}else {
var n = cljs.core.bit_count.call(null, self__.bitmap);
var new_arr = new Array(n < 0 ? 4 : 2 * (n + 1));
cljs.core.array_copy.call(null, self__.arr, 0, new_arr, 0, 2 * n);
return new cljs.core.BitmapIndexedNode(e, self__.bitmap, new_arr)
}
};
cljs.core.BitmapIndexedNode.prototype.kv_reduce = function(f, init) {
var self__ = this;
var inode = this;
return cljs.core.inode_kv_reduce.call(null, self__.arr, f, init)
};
cljs.core.BitmapIndexedNode.prototype.inode_find = function(shift, hash, key, not_found) {
var self__ = this;
var inode = this;
var bit = 1 << (hash >>> shift & 31);
if((self__.bitmap & bit) === 0) {
return not_found
}else {
var idx = cljs.core.bitmap_indexed_node_index.call(null, self__.bitmap, bit);
var key_or_nil = self__.arr[2 * idx];
var val_or_node = self__.arr[2 * idx + 1];
if(key_or_nil == null) {
return val_or_node.inode_find(shift + 5, hash, key, not_found)
}else {
if(cljs.core.key_test.call(null, key, key_or_nil)) {
return cljs.core.PersistentVector.fromArray([key_or_nil, val_or_node], true)
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_without = function(shift, hash, key) {
var self__ = this;
var inode = this;
var bit = 1 << (hash >>> shift & 31);
if((self__.bitmap & bit) === 0) {
return inode
}else {
var idx = cljs.core.bitmap_indexed_node_index.call(null, self__.bitmap, bit);
var key_or_nil = self__.arr[2 * idx];
var val_or_node = self__.arr[2 * idx + 1];
if(key_or_nil == null) {
var n = val_or_node.inode_without(shift + 5, hash, key);
if(n === val_or_node) {
return inode
}else {
if(!(n == null)) {
return new cljs.core.BitmapIndexedNode(null, self__.bitmap, cljs.core.clone_and_set.call(null, self__.arr, 2 * idx + 1, n))
}else {
if(self__.bitmap === bit) {
return null
}else {
if("\ufdd0:else") {
return new cljs.core.BitmapIndexedNode(null, self__.bitmap ^ bit, cljs.core.remove_pair.call(null, self__.arr, idx))
}else {
return null
}
}
}
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil)) {
return new cljs.core.BitmapIndexedNode(null, self__.bitmap ^ bit, cljs.core.remove_pair.call(null, self__.arr, idx))
}else {
if("\ufdd0:else") {
return inode
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var self__ = this;
var inode = this;
var bit = 1 << (hash >>> shift & 31);
var idx = cljs.core.bitmap_indexed_node_index.call(null, self__.bitmap, bit);
if((self__.bitmap & bit) === 0) {
var n = cljs.core.bit_count.call(null, self__.bitmap);
if(n >= 16) {
var nodes = new Array(32);
var jdx = hash >>> shift & 31;
nodes[jdx] = cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
var i_5797 = 0;
var j_5798 = 0;
while(true) {
if(i_5797 < 32) {
if((self__.bitmap >>> i_5797 & 1) === 0) {
var G__5799 = i_5797 + 1;
var G__5800 = j_5798;
i_5797 = G__5799;
j_5798 = G__5800;
continue
}else {
nodes[i_5797] = !(self__.arr[j_5798] == null) ? cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, cljs.core.hash.call(null, self__.arr[j_5798]), self__.arr[j_5798], self__.arr[j_5798 + 1], added_leaf_QMARK_) : self__.arr[j_5798 + 1];
var G__5801 = i_5797 + 1;
var G__5802 = j_5798 + 2;
i_5797 = G__5801;
j_5798 = G__5802;
continue
}
}else {
}
break
}
return new cljs.core.ArrayNode(null, n + 1, nodes)
}else {
var new_arr = new Array(2 * (n + 1));
cljs.core.array_copy.call(null, self__.arr, 0, new_arr, 0, 2 * idx);
new_arr[2 * idx] = key;
new_arr[2 * idx + 1] = val;
cljs.core.array_copy.call(null, self__.arr, 2 * idx, new_arr, 2 * (idx + 1), 2 * (n - idx));
added_leaf_QMARK_.val = true;
return new cljs.core.BitmapIndexedNode(null, self__.bitmap | bit, new_arr)
}
}else {
var key_or_nil = self__.arr[2 * idx];
var val_or_node = self__.arr[2 * idx + 1];
if(key_or_nil == null) {
var n = val_or_node.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
if(n === val_or_node) {
return inode
}else {
return new cljs.core.BitmapIndexedNode(null, self__.bitmap, cljs.core.clone_and_set.call(null, self__.arr, 2 * idx + 1, n))
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil)) {
if(val === val_or_node) {
return inode
}else {
return new cljs.core.BitmapIndexedNode(null, self__.bitmap, cljs.core.clone_and_set.call(null, self__.arr, 2 * idx + 1, val))
}
}else {
if("\ufdd0:else") {
added_leaf_QMARK_.val = true;
return new cljs.core.BitmapIndexedNode(null, self__.bitmap, cljs.core.clone_and_set.call(null, self__.arr, 2 * idx, null, 2 * idx + 1, cljs.core.create_node.call(null, shift + 5, key_or_nil, val_or_node, hash, key, val)))
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var self__ = this;
var inode = this;
var bit = 1 << (hash >>> shift & 31);
if((self__.bitmap & bit) === 0) {
return not_found
}else {
var idx = cljs.core.bitmap_indexed_node_index.call(null, self__.bitmap, bit);
var key_or_nil = self__.arr[2 * idx];
var val_or_node = self__.arr[2 * idx + 1];
if(key_or_nil == null) {
return val_or_node.inode_lookup(shift + 5, hash, key, not_found)
}else {
if(cljs.core.key_test.call(null, key, key_or_nil)) {
return val_or_node
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.EMPTY = new cljs.core.BitmapIndexedNode(null, 0, new Array(0));
cljs.core.pack_array_node = function pack_array_node(array_node, edit, idx) {
var arr = array_node.arr;
var len = 2 * (array_node.cnt - 1);
var new_arr = new Array(len);
var i = 0;
var j = 1;
var bitmap = 0;
while(true) {
if(i < len) {
if(function() {
var and__3941__auto__ = !(i === idx);
if(and__3941__auto__) {
return!(arr[i] == null)
}else {
return and__3941__auto__
}
}()) {
new_arr[j] = arr[i];
var G__5803 = i + 1;
var G__5804 = j + 2;
var G__5805 = bitmap | 1 << i;
i = G__5803;
j = G__5804;
bitmap = G__5805;
continue
}else {
var G__5806 = i + 1;
var G__5807 = j;
var G__5808 = bitmap;
i = G__5806;
j = G__5807;
bitmap = G__5808;
continue
}
}else {
return new cljs.core.BitmapIndexedNode(edit, bitmap, new_arr)
}
break
}
};
goog.provide("cljs.core.ArrayNode");
cljs.core.ArrayNode = function(edit, cnt, arr) {
this.edit = edit;
this.cnt = cnt;
this.arr = arr
};
cljs.core.ArrayNode.cljs$lang$type = true;
cljs.core.ArrayNode.cljs$lang$ctorStr = "cljs.core/ArrayNode";
cljs.core.ArrayNode.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ArrayNode")
};
cljs.core.ArrayNode.prototype.inode_assoc_BANG_ = function(edit__$1, shift, hash, key, val, added_leaf_QMARK_) {
var self__ = this;
var inode = this;
var idx = hash >>> shift & 31;
var node = self__.arr[idx];
if(node == null) {
var editable = cljs.core.edit_and_set.call(null, inode, edit__$1, idx, cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit__$1, shift + 5, hash, key, val, added_leaf_QMARK_));
editable.cnt = editable.cnt + 1;
return editable
}else {
var n = node.inode_assoc_BANG_(edit__$1, shift + 5, hash, key, val, added_leaf_QMARK_);
if(n === node) {
return inode
}else {
return cljs.core.edit_and_set.call(null, inode, edit__$1, idx, n)
}
}
};
cljs.core.ArrayNode.prototype.inode_seq = function() {
var self__ = this;
var inode = this;
return cljs.core.create_array_node_seq.call(null, self__.arr)
};
cljs.core.ArrayNode.prototype.inode_without_BANG_ = function(edit__$1, shift, hash, key, removed_leaf_QMARK_) {
var self__ = this;
var inode = this;
var idx = hash >>> shift & 31;
var node = self__.arr[idx];
if(node == null) {
return inode
}else {
var n = node.inode_without_BANG_(edit__$1, shift + 5, hash, key, removed_leaf_QMARK_);
if(n === node) {
return inode
}else {
if(n == null) {
if(self__.cnt <= 8) {
return cljs.core.pack_array_node.call(null, inode, edit__$1, idx)
}else {
var editable = cljs.core.edit_and_set.call(null, inode, edit__$1, idx, n);
editable.cnt = editable.cnt - 1;
return editable
}
}else {
if("\ufdd0:else") {
return cljs.core.edit_and_set.call(null, inode, edit__$1, idx, n)
}else {
return null
}
}
}
}
};
cljs.core.ArrayNode.prototype.ensure_editable = function(e) {
var self__ = this;
var inode = this;
if(e === self__.edit) {
return inode
}else {
return new cljs.core.ArrayNode(e, self__.cnt, self__.arr.slice())
}
};
cljs.core.ArrayNode.prototype.kv_reduce = function(f, init) {
var self__ = this;
var inode = this;
var len = self__.arr.length;
var i = 0;
var init__$1 = init;
while(true) {
if(i < len) {
var node = self__.arr[i];
if(!(node == null)) {
var init__$2 = node.kv_reduce(f, init__$1);
if(cljs.core.reduced_QMARK_.call(null, init__$2)) {
return cljs.core.deref.call(null, init__$2)
}else {
var G__5809 = i + 1;
var G__5810 = init__$2;
i = G__5809;
init__$1 = G__5810;
continue
}
}else {
var G__5811 = i + 1;
var G__5812 = init__$1;
i = G__5811;
init__$1 = G__5812;
continue
}
}else {
return init__$1
}
break
}
};
cljs.core.ArrayNode.prototype.inode_find = function(shift, hash, key, not_found) {
var self__ = this;
var inode = this;
var idx = hash >>> shift & 31;
var node = self__.arr[idx];
if(!(node == null)) {
return node.inode_find(shift + 5, hash, key, not_found)
}else {
return not_found
}
};
cljs.core.ArrayNode.prototype.inode_without = function(shift, hash, key) {
var self__ = this;
var inode = this;
var idx = hash >>> shift & 31;
var node = self__.arr[idx];
if(!(node == null)) {
var n = node.inode_without(shift + 5, hash, key);
if(n === node) {
return inode
}else {
if(n == null) {
if(self__.cnt <= 8) {
return cljs.core.pack_array_node.call(null, inode, null, idx)
}else {
return new cljs.core.ArrayNode(null, self__.cnt - 1, cljs.core.clone_and_set.call(null, self__.arr, idx, n))
}
}else {
if("\ufdd0:else") {
return new cljs.core.ArrayNode(null, self__.cnt, cljs.core.clone_and_set.call(null, self__.arr, idx, n))
}else {
return null
}
}
}
}else {
return inode
}
};
cljs.core.ArrayNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var self__ = this;
var inode = this;
var idx = hash >>> shift & 31;
var node = self__.arr[idx];
if(node == null) {
return new cljs.core.ArrayNode(null, self__.cnt + 1, cljs.core.clone_and_set.call(null, self__.arr, idx, cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_)))
}else {
var n = node.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
if(n === node) {
return inode
}else {
return new cljs.core.ArrayNode(null, self__.cnt, cljs.core.clone_and_set.call(null, self__.arr, idx, n))
}
}
};
cljs.core.ArrayNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var self__ = this;
var inode = this;
var idx = hash >>> shift & 31;
var node = self__.arr[idx];
if(!(node == null)) {
return node.inode_lookup(shift + 5, hash, key, not_found)
}else {
return not_found
}
};
cljs.core.hash_collision_node_find_index = function hash_collision_node_find_index(arr, cnt, key) {
var lim = 2 * cnt;
var i = 0;
while(true) {
if(i < lim) {
if(cljs.core.key_test.call(null, key, arr[i])) {
return i
}else {
var G__5813 = i + 2;
i = G__5813;
continue
}
}else {
return-1
}
break
}
};
goog.provide("cljs.core.HashCollisionNode");
cljs.core.HashCollisionNode = function(edit, collision_hash, cnt, arr) {
this.edit = edit;
this.collision_hash = collision_hash;
this.cnt = cnt;
this.arr = arr
};
cljs.core.HashCollisionNode.cljs$lang$type = true;
cljs.core.HashCollisionNode.cljs$lang$ctorStr = "cljs.core/HashCollisionNode";
cljs.core.HashCollisionNode.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/HashCollisionNode")
};
cljs.core.HashCollisionNode.prototype.inode_assoc_BANG_ = function(edit__$1, shift, hash, key, val, added_leaf_QMARK_) {
var self__ = this;
var inode = this;
if(hash === self__.collision_hash) {
var idx = cljs.core.hash_collision_node_find_index.call(null, self__.arr, self__.cnt, key);
if(idx === -1) {
if(self__.arr.length > 2 * self__.cnt) {
var editable = cljs.core.edit_and_set.call(null, inode, edit__$1, 2 * self__.cnt, key, 2 * self__.cnt + 1, val);
added_leaf_QMARK_.val = true;
editable.cnt = editable.cnt + 1;
return editable
}else {
var len = self__.arr.length;
var new_arr = new Array(len + 2);
cljs.core.array_copy.call(null, self__.arr, 0, new_arr, 0, len);
new_arr[len] = key;
new_arr[len + 1] = val;
added_leaf_QMARK_.val = true;
return inode.ensure_editable_array(edit__$1, self__.cnt + 1, new_arr)
}
}else {
if(self__.arr[idx + 1] === val) {
return inode
}else {
return cljs.core.edit_and_set.call(null, inode, edit__$1, idx + 1, val)
}
}
}else {
return(new cljs.core.BitmapIndexedNode(edit__$1, 1 << (self__.collision_hash >>> shift & 31), [null, inode, null, null])).inode_assoc_BANG_(edit__$1, shift, hash, key, val, added_leaf_QMARK_)
}
};
cljs.core.HashCollisionNode.prototype.inode_seq = function() {
var self__ = this;
var inode = this;
return cljs.core.create_inode_seq.call(null, self__.arr)
};
cljs.core.HashCollisionNode.prototype.inode_without_BANG_ = function(edit__$1, shift, hash, key, removed_leaf_QMARK_) {
var self__ = this;
var inode = this;
var idx = cljs.core.hash_collision_node_find_index.call(null, self__.arr, self__.cnt, key);
if(idx === -1) {
return inode
}else {
removed_leaf_QMARK_[0] = true;
if(self__.cnt === 1) {
return null
}else {
var editable = inode.ensure_editable(edit__$1);
var earr = editable.arr;
earr[idx] = earr[2 * self__.cnt - 2];
earr[idx + 1] = earr[2 * self__.cnt - 1];
earr[2 * self__.cnt - 1] = null;
earr[2 * self__.cnt - 2] = null;
editable.cnt = editable.cnt - 1;
return editable
}
}
};
cljs.core.HashCollisionNode.prototype.ensure_editable = function(e) {
var self__ = this;
var inode = this;
if(e === self__.edit) {
return inode
}else {
var new_arr = new Array(2 * (self__.cnt + 1));
cljs.core.array_copy.call(null, self__.arr, 0, new_arr, 0, 2 * self__.cnt);
return new cljs.core.HashCollisionNode(e, self__.collision_hash, self__.cnt, new_arr)
}
};
cljs.core.HashCollisionNode.prototype.kv_reduce = function(f, init) {
var self__ = this;
var inode = this;
return cljs.core.inode_kv_reduce.call(null, self__.arr, f, init)
};
cljs.core.HashCollisionNode.prototype.inode_find = function(shift, hash, key, not_found) {
var self__ = this;
var inode = this;
var idx = cljs.core.hash_collision_node_find_index.call(null, self__.arr, self__.cnt, key);
if(idx < 0) {
return not_found
}else {
if(cljs.core.key_test.call(null, key, self__.arr[idx])) {
return cljs.core.PersistentVector.fromArray([self__.arr[idx], self__.arr[idx + 1]], true)
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.inode_without = function(shift, hash, key) {
var self__ = this;
var inode = this;
var idx = cljs.core.hash_collision_node_find_index.call(null, self__.arr, self__.cnt, key);
if(idx === -1) {
return inode
}else {
if(self__.cnt === 1) {
return null
}else {
if("\ufdd0:else") {
return new cljs.core.HashCollisionNode(null, self__.collision_hash, self__.cnt - 1, cljs.core.remove_pair.call(null, self__.arr, cljs.core.quot.call(null, idx, 2)))
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var self__ = this;
var inode = this;
if(hash === self__.collision_hash) {
var idx = cljs.core.hash_collision_node_find_index.call(null, self__.arr, self__.cnt, key);
if(idx === -1) {
var len = self__.arr.length;
var new_arr = new Array(len + 2);
cljs.core.array_copy.call(null, self__.arr, 0, new_arr, 0, len);
new_arr[len] = key;
new_arr[len + 1] = val;
added_leaf_QMARK_.val = true;
return new cljs.core.HashCollisionNode(null, self__.collision_hash, self__.cnt + 1, new_arr)
}else {
if(cljs.core._EQ_.call(null, self__.arr[idx], val)) {
return inode
}else {
return new cljs.core.HashCollisionNode(null, self__.collision_hash, self__.cnt, cljs.core.clone_and_set.call(null, self__.arr, idx + 1, val))
}
}
}else {
return(new cljs.core.BitmapIndexedNode(null, 1 << (self__.collision_hash >>> shift & 31), [null, inode])).inode_assoc(shift, hash, key, val, added_leaf_QMARK_)
}
};
cljs.core.HashCollisionNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var self__ = this;
var inode = this;
var idx = cljs.core.hash_collision_node_find_index.call(null, self__.arr, self__.cnt, key);
if(idx < 0) {
return not_found
}else {
if(cljs.core.key_test.call(null, key, self__.arr[idx])) {
return self__.arr[idx + 1]
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.ensure_editable_array = function(e, count, array) {
var self__ = this;
var inode = this;
if(e === self__.edit) {
self__.arr = array;
self__.cnt = count;
return inode
}else {
return new cljs.core.HashCollisionNode(self__.edit, self__.collision_hash, count, array)
}
};
cljs.core.create_node = function() {
var create_node = null;
var create_node__6 = function(shift, key1, val1, key2hash, key2, val2) {
var key1hash = cljs.core.hash.call(null, key1);
if(key1hash === key2hash) {
return new cljs.core.HashCollisionNode(null, key1hash, 2, [key1, val1, key2, val2])
}else {
var added_leaf_QMARK_ = new cljs.core.Box(false);
return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift, key1hash, key1, val1, added_leaf_QMARK_).inode_assoc(shift, key2hash, key2, val2, added_leaf_QMARK_)
}
};
var create_node__7 = function(edit, shift, key1, val1, key2hash, key2, val2) {
var key1hash = cljs.core.hash.call(null, key1);
if(key1hash === key2hash) {
return new cljs.core.HashCollisionNode(null, key1hash, 2, [key1, val1, key2, val2])
}else {
var added_leaf_QMARK_ = new cljs.core.Box(false);
return 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_)
}
};
create_node = function(edit, shift, key1, val1, key2hash, key2, val2) {
switch(arguments.length) {
case 6:
return create_node__6.call(this, edit, shift, key1, val1, key2hash, key2);
case 7:
return create_node__7.call(this, edit, shift, key1, val1, key2hash, key2, val2)
}
throw new Error("Invalid arity: " + arguments.length);
};
create_node.cljs$core$IFn$_invoke$arity$6 = create_node__6;
create_node.cljs$core$IFn$_invoke$arity$7 = create_node__7;
return create_node
}();
goog.provide("cljs.core.NodeSeq");
cljs.core.NodeSeq = function(meta, nodes, i, s, __hash) {
this.meta = meta;
this.nodes = nodes;
this.i = i;
this.s = s;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850572
};
cljs.core.NodeSeq.cljs$lang$type = true;
cljs.core.NodeSeq.cljs$lang$ctorStr = "cljs.core/NodeSeq";
cljs.core.NodeSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/NodeSeq")
};
cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.NodeSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var self__ = this;
return this$
};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
if(self__.s == null) {
return cljs.core.PersistentVector.fromArray([self__.nodes[self__.i], self__.nodes[self__.i + 1]], true)
}else {
return cljs.core.first.call(null, self__.s)
}
};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
if(self__.s == null) {
return cljs.core.create_inode_seq.call(null, self__.nodes, self__.i + 2, null)
}else {
return cljs.core.create_inode_seq.call(null, self__.nodes, self__.i, cljs.core.next.call(null, self__.s))
}
};
cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.NodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.NodeSeq(meta__$1, self__.nodes, self__.i, self__.s, self__.__hash)
};
cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.create_inode_seq = function() {
var create_inode_seq = null;
var create_inode_seq__1 = function(nodes) {
return create_inode_seq.call(null, nodes, 0, null)
};
var create_inode_seq__3 = function(nodes, i, s) {
if(s == null) {
var len = nodes.length;
var j = i;
while(true) {
if(j < len) {
if(!(nodes[j] == null)) {
return new cljs.core.NodeSeq(null, nodes, j, null, null)
}else {
var temp__4090__auto__ = nodes[j + 1];
if(cljs.core.truth_(temp__4090__auto__)) {
var node = temp__4090__auto__;
var temp__4090__auto____$1 = node.inode_seq();
if(cljs.core.truth_(temp__4090__auto____$1)) {
var node_seq = temp__4090__auto____$1;
return new cljs.core.NodeSeq(null, nodes, j + 2, node_seq, null)
}else {
var G__5814 = j + 2;
j = G__5814;
continue
}
}else {
var G__5815 = j + 2;
j = G__5815;
continue
}
}
}else {
return null
}
break
}
}else {
return new cljs.core.NodeSeq(null, nodes, i, s, null)
}
};
create_inode_seq = function(nodes, i, s) {
switch(arguments.length) {
case 1:
return create_inode_seq__1.call(this, nodes);
case 3:
return create_inode_seq__3.call(this, nodes, i, s)
}
throw new Error("Invalid arity: " + arguments.length);
};
create_inode_seq.cljs$core$IFn$_invoke$arity$1 = create_inode_seq__1;
create_inode_seq.cljs$core$IFn$_invoke$arity$3 = create_inode_seq__3;
return create_inode_seq
}();
goog.provide("cljs.core.ArrayNodeSeq");
cljs.core.ArrayNodeSeq = function(meta, nodes, i, s, __hash) {
this.meta = meta;
this.nodes = nodes;
this.i = i;
this.s = s;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850572
};
cljs.core.ArrayNodeSeq.cljs$lang$type = true;
cljs.core.ArrayNodeSeq.cljs$lang$ctorStr = "cljs.core/ArrayNodeSeq";
cljs.core.ArrayNodeSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/ArrayNodeSeq")
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.ArrayNodeSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var self__ = this;
return this$
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var self__ = this;
return cljs.core.first.call(null, self__.s)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var self__ = this;
return cljs.core.create_array_node_seq.call(null, null, self__.nodes, self__.i, cljs.core.next.call(null, self__.s))
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.ArrayNodeSeq(meta__$1, self__.nodes, self__.i, self__.s, self__.__hash)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.create_array_node_seq = function() {
var create_array_node_seq = null;
var create_array_node_seq__1 = function(nodes) {
return create_array_node_seq.call(null, null, nodes, 0, null)
};
var create_array_node_seq__4 = function(meta, nodes, i, s) {
if(s == null) {
var len = nodes.length;
var j = i;
while(true) {
if(j < len) {
var temp__4090__auto__ = nodes[j];
if(cljs.core.truth_(temp__4090__auto__)) {
var nj = temp__4090__auto__;
var temp__4090__auto____$1 = nj.inode_seq();
if(cljs.core.truth_(temp__4090__auto____$1)) {
var ns = temp__4090__auto____$1;
return new cljs.core.ArrayNodeSeq(meta, nodes, j + 1, ns, null)
}else {
var G__5816 = j + 1;
j = G__5816;
continue
}
}else {
var G__5817 = j + 1;
j = G__5817;
continue
}
}else {
return null
}
break
}
}else {
return new cljs.core.ArrayNodeSeq(meta, nodes, i, s, null)
}
};
create_array_node_seq = function(meta, nodes, i, s) {
switch(arguments.length) {
case 1:
return create_array_node_seq__1.call(this, meta);
case 4:
return create_array_node_seq__4.call(this, meta, nodes, i, s)
}
throw new Error("Invalid arity: " + arguments.length);
};
create_array_node_seq.cljs$core$IFn$_invoke$arity$1 = create_array_node_seq__1;
create_array_node_seq.cljs$core$IFn$_invoke$arity$4 = create_array_node_seq__4;
return create_array_node_seq
}();
goog.provide("cljs.core.PersistentHashMap");
cljs.core.PersistentHashMap = function(meta, cnt, root, has_nil_QMARK_, nil_val, __hash) {
this.meta = meta;
this.cnt = cnt;
this.root = root;
this.has_nil_QMARK_ = has_nil_QMARK_;
this.nil_val = nil_val;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 4;
this.cljs$lang$protocol_mask$partition0$ = 16123663
};
cljs.core.PersistentHashMap.cljs$lang$type = true;
cljs.core.PersistentHashMap.cljs$lang$ctorStr = "cljs.core/PersistentHashMap";
cljs.core.PersistentHashMap.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentHashMap")
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var self__ = this;
return new cljs.core.TransientHashMap({}, self__.root, self__.cnt, self__.has_nil_QMARK_, self__.nil_val)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_imap.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
if(k == null) {
if(self__.has_nil_QMARK_) {
return self__.nil_val
}else {
return not_found
}
}else {
if(self__.root == null) {
return not_found
}else {
if("\ufdd0:else") {
return self__.root.inode_lookup(0, cljs.core.hash.call(null, k), k, not_found)
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var self__ = this;
if(k == null) {
if(function() {
var and__3941__auto__ = self__.has_nil_QMARK_;
if(and__3941__auto__) {
return v === self__.nil_val
}else {
return and__3941__auto__
}
}()) {
return coll
}else {
return new cljs.core.PersistentHashMap(self__.meta, self__.has_nil_QMARK_ ? self__.cnt : self__.cnt + 1, self__.root, true, v, null)
}
}else {
var added_leaf_QMARK_ = new cljs.core.Box(false);
var new_root = (self__.root == null ? cljs.core.BitmapIndexedNode.EMPTY : self__.root).inode_assoc(0, cljs.core.hash.call(null, k), k, v, added_leaf_QMARK_);
if(new_root === self__.root) {
return coll
}else {
return 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)
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var self__ = this;
if(k == null) {
return self__.has_nil_QMARK_
}else {
if(self__.root == null) {
return false
}else {
if("\ufdd0:else") {
return!(self__.root.inode_lookup(0, cljs.core.hash.call(null, k), k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel)
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.call = function() {
var G__5819 = null;
var G__5819__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5819__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5819 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5819__2.call(this, self__, k);
case 3:
return G__5819__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5819
}();
cljs.core.PersistentHashMap.prototype.apply = function(self__, args5818) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5818.slice()))
};
cljs.core.PersistentHashMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var self__ = this;
var init__$1 = self__.has_nil_QMARK_ ? f.call(null, init, null, self__.nil_val) : init;
if(cljs.core.reduced_QMARK_.call(null, init__$1)) {
return cljs.core.deref.call(null, init__$1)
}else {
if(!(self__.root == null)) {
return self__.root.kv_reduce(f, init__$1)
}else {
if("\ufdd0:else") {
return init__$1
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var self__ = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, cljs.core._nth.call(null, entry, 0), cljs.core._nth.call(null, entry, 1))
}else {
return cljs.core.reduce.call(null, cljs.core._conj, coll, entry)
}
};
cljs.core.PersistentHashMap.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentHashMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt > 0) {
var s = !(self__.root == null) ? self__.root.inode_seq() : null;
if(self__.has_nil_QMARK_) {
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([null, self__.nil_val], true), s)
}else {
return s
}
}else {
return null
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.cnt
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentHashMap(meta__$1, self__.cnt, self__.root, self__.has_nil_QMARK_, self__.nil_val, self__.__hash)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core._with_meta.call(null, cljs.core.PersistentHashMap.EMPTY, self__.meta)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var self__ = this;
if(k == null) {
if(self__.has_nil_QMARK_) {
return new cljs.core.PersistentHashMap(self__.meta, self__.cnt - 1, self__.root, false, null, null)
}else {
return coll
}
}else {
if(self__.root == null) {
return coll
}else {
if("\ufdd0:else") {
var new_root = self__.root.inode_without(0, cljs.core.hash.call(null, k), k);
if(new_root === self__.root) {
return coll
}else {
return new cljs.core.PersistentHashMap(self__.meta, self__.cnt - 1, new_root, self__.has_nil_QMARK_, self__.nil_val, null)
}
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.EMPTY = new cljs.core.PersistentHashMap(null, 0, null, false, null, 0);
cljs.core.PersistentHashMap.fromArrays = function(ks, vs) {
var len = ks.length;
var i = 0;
var out = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(i < len) {
var G__5820 = i + 1;
var G__5821 = cljs.core.assoc_BANG_.call(null, out, ks[i], vs[i]);
i = G__5820;
out = G__5821;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out)
}
break
}
};
goog.provide("cljs.core.TransientHashMap");
cljs.core.TransientHashMap = function(edit, root, count, has_nil_QMARK_, nil_val) {
this.edit = edit;
this.root = root;
this.count = count;
this.has_nil_QMARK_ = has_nil_QMARK_;
this.nil_val = nil_val;
this.cljs$lang$protocol_mask$partition1$ = 56;
this.cljs$lang$protocol_mask$partition0$ = 258
};
cljs.core.TransientHashMap.cljs$lang$type = true;
cljs.core.TransientHashMap.cljs$lang$ctorStr = "cljs.core/TransientHashMap";
cljs.core.TransientHashMap.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/TransientHashMap")
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 = function(tcoll, key) {
var self__ = this;
return tcoll.without_BANG_(key)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var self__ = this;
return tcoll.assoc_BANG_(key, val)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, val) {
var self__ = this;
return tcoll.conj_BANG_(val)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var self__ = this;
return tcoll.persistent_BANG_()
};
cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, k) {
var self__ = this;
if(k == null) {
if(self__.has_nil_QMARK_) {
return self__.nil_val
}else {
return null
}
}else {
if(self__.root == null) {
return null
}else {
return self__.root.inode_lookup(0, cljs.core.hash.call(null, k), k)
}
}
};
cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(tcoll, k, not_found) {
var self__ = this;
if(k == null) {
if(self__.has_nil_QMARK_) {
return self__.nil_val
}else {
return not_found
}
}else {
if(self__.root == null) {
return not_found
}else {
return self__.root.inode_lookup(0, cljs.core.hash.call(null, k), k, not_found)
}
}
};
cljs.core.TransientHashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
if(self__.edit) {
return self__.count
}else {
throw new Error("count after persistent!");
}
};
cljs.core.TransientHashMap.prototype.conj_BANG_ = function(o) {
var self__ = this;
var tcoll = this;
if(self__.edit) {
if(function() {
var G__5822 = o;
if(G__5822) {
if(function() {
var or__3943__auto__ = G__5822.cljs$lang$protocol_mask$partition0$ & 2048;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5822.cljs$core$IMapEntry$
}
}()) {
return true
}else {
if(!G__5822.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__5822)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__5822)
}
}()) {
return tcoll.assoc_BANG_(cljs.core.key.call(null, o), cljs.core.val.call(null, o))
}else {
var es = cljs.core.seq.call(null, o);
var tcoll__$1 = tcoll;
while(true) {
var temp__4090__auto__ = cljs.core.first.call(null, es);
if(cljs.core.truth_(temp__4090__auto__)) {
var e = temp__4090__auto__;
var G__5823 = cljs.core.next.call(null, es);
var G__5824 = tcoll__$1.assoc_BANG_(cljs.core.key.call(null, e), cljs.core.val.call(null, e));
es = G__5823;
tcoll__$1 = G__5824;
continue
}else {
return tcoll__$1
}
break
}
}
}else {
throw new Error("conj! after persistent");
}
};
cljs.core.TransientHashMap.prototype.assoc_BANG_ = function(k, v) {
var self__ = this;
var tcoll = this;
if(self__.edit) {
if(k == null) {
if(self__.nil_val === v) {
}else {
self__.nil_val = v
}
if(self__.has_nil_QMARK_) {
}else {
self__.count = self__.count + 1;
self__.has_nil_QMARK_ = true
}
return tcoll
}else {
var added_leaf_QMARK_ = new cljs.core.Box(false);
var node = (self__.root == null ? cljs.core.BitmapIndexedNode.EMPTY : self__.root).inode_assoc_BANG_(self__.edit, 0, cljs.core.hash.call(null, k), k, v, added_leaf_QMARK_);
if(node === self__.root) {
}else {
self__.root = node
}
if(added_leaf_QMARK_.val) {
self__.count = self__.count + 1
}else {
}
return tcoll
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientHashMap.prototype.without_BANG_ = function(k) {
var self__ = this;
var tcoll = this;
if(self__.edit) {
if(k == null) {
if(self__.has_nil_QMARK_) {
self__.has_nil_QMARK_ = false;
self__.nil_val = null;
self__.count = self__.count - 1;
return tcoll
}else {
return tcoll
}
}else {
if(self__.root == null) {
return tcoll
}else {
var removed_leaf_QMARK_ = new cljs.core.Box(false);
var node = self__.root.inode_without_BANG_(self__.edit, 0, cljs.core.hash.call(null, k), k, removed_leaf_QMARK_);
if(node === self__.root) {
}else {
self__.root = node
}
if(cljs.core.truth_(removed_leaf_QMARK_[0])) {
self__.count = self__.count - 1
}else {
}
return tcoll
}
}
}else {
throw new Error("dissoc! after persistent!");
}
};
cljs.core.TransientHashMap.prototype.persistent_BANG_ = function() {
var self__ = this;
var tcoll = this;
if(self__.edit) {
self__.edit = null;
return new cljs.core.PersistentHashMap(null, self__.count, self__.root, self__.has_nil_QMARK_, self__.nil_val, null)
}else {
throw new Error("persistent! called twice");
}
};
cljs.core.tree_map_seq_push = function tree_map_seq_push(node, stack, ascending_QMARK_) {
var t = node;
var stack__$1 = stack;
while(true) {
if(!(t == null)) {
var G__5825 = ascending_QMARK_ ? t.left : t.right;
var G__5826 = cljs.core.conj.call(null, stack__$1, t);
t = G__5825;
stack__$1 = G__5826;
continue
}else {
return stack__$1
}
break
}
};
goog.provide("cljs.core.PersistentTreeMapSeq");
cljs.core.PersistentTreeMapSeq = function(meta, stack, ascending_QMARK_, cnt, __hash) {
this.meta = meta;
this.stack = stack;
this.ascending_QMARK_ = ascending_QMARK_;
this.cnt = cnt;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850574
};
cljs.core.PersistentTreeMapSeq.cljs$lang$type = true;
cljs.core.PersistentTreeMapSeq.cljs$lang$ctorStr = "cljs.core/PersistentTreeMapSeq";
cljs.core.PersistentTreeMapSeq.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentTreeMapSeq")
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.PersistentTreeMapSeq.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var self__ = this;
return this$
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt < 0) {
return cljs.core.count.call(null, cljs.core.next.call(null, coll)) + 1
}else {
return self__.cnt
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(this$) {
var self__ = this;
return cljs.core.peek.call(null, self__.stack)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(this$) {
var self__ = this;
var t = cljs.core.first.call(null, self__.stack);
var next_stack = cljs.core.tree_map_seq_push.call(null, self__.ascending_QMARK_ ? t.right : t.left, cljs.core.next.call(null, self__.stack), self__.ascending_QMARK_);
if(!(next_stack == null)) {
return new cljs.core.PersistentTreeMapSeq(null, next_stack, self__.ascending_QMARK_, self__.cnt - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentTreeMapSeq(meta__$1, self__.stack, self__.ascending_QMARK_, self__.cnt, self__.__hash)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.create_tree_map_seq = function create_tree_map_seq(tree, ascending_QMARK_, cnt) {
return new cljs.core.PersistentTreeMapSeq(null, cljs.core.tree_map_seq_push.call(null, tree, null, ascending_QMARK_), ascending_QMARK_, cnt, null)
};
cljs.core.balance_left = function balance_left(key, val, ins, right) {
if(ins instanceof cljs.core.RedNode) {
if(ins.left instanceof cljs.core.RedNode) {
return new cljs.core.RedNode(ins.key, ins.val, ins.left.blacken(), new cljs.core.BlackNode(key, val, ins.right, right, null), null)
}else {
if(ins.right instanceof cljs.core.RedNode) {
return 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)
}else {
if("\ufdd0:else") {
return new cljs.core.BlackNode(key, val, ins, right, null)
}else {
return null
}
}
}
}else {
return new cljs.core.BlackNode(key, val, ins, right, null)
}
};
cljs.core.balance_right = function balance_right(key, val, left, ins) {
if(ins instanceof cljs.core.RedNode) {
if(ins.right instanceof cljs.core.RedNode) {
return new cljs.core.RedNode(ins.key, ins.val, new cljs.core.BlackNode(key, val, left, ins.left, null), ins.right.blacken(), null)
}else {
if(ins.left instanceof cljs.core.RedNode) {
return 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)
}else {
if("\ufdd0:else") {
return new cljs.core.BlackNode(key, val, left, ins, null)
}else {
return null
}
}
}
}else {
return new cljs.core.BlackNode(key, val, left, ins, null)
}
};
cljs.core.balance_left_del = function balance_left_del(key, val, del, right) {
if(del instanceof cljs.core.RedNode) {
return new cljs.core.RedNode(key, val, del.blacken(), right, null)
}else {
if(right instanceof cljs.core.BlackNode) {
return cljs.core.balance_right.call(null, key, val, del, right.redden())
}else {
if(function() {
var and__3941__auto__ = right instanceof cljs.core.RedNode;
if(and__3941__auto__) {
return right.left instanceof cljs.core.BlackNode
}else {
return and__3941__auto__
}
}()) {
return 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.call(null, right.key, right.val, right.left.right, right.right.redden()), null)
}else {
if("\ufdd0:else") {
throw new Error("red-black tree invariant violation");
}else {
return null
}
}
}
}
};
cljs.core.balance_right_del = function balance_right_del(key, val, left, del) {
if(del instanceof cljs.core.RedNode) {
return new cljs.core.RedNode(key, val, left, del.blacken(), null)
}else {
if(left instanceof cljs.core.BlackNode) {
return cljs.core.balance_left.call(null, key, val, left.redden(), del)
}else {
if(function() {
var and__3941__auto__ = left instanceof cljs.core.RedNode;
if(and__3941__auto__) {
return left.right instanceof cljs.core.BlackNode
}else {
return and__3941__auto__
}
}()) {
return new cljs.core.RedNode(left.right.key, left.right.val, cljs.core.balance_left.call(null, left.key, left.val, left.left.redden(), left.right.left), new cljs.core.BlackNode(key, val, left.right.right, del, null), null)
}else {
if("\ufdd0:else") {
throw new Error("red-black tree invariant violation");
}else {
return null
}
}
}
}
};
cljs.core.tree_map_kv_reduce = function tree_map_kv_reduce(node, f, init) {
var init__$1 = !(node.left == null) ? tree_map_kv_reduce.call(null, node.left, f, init) : init;
if(cljs.core.reduced_QMARK_.call(null, init__$1)) {
return cljs.core.deref.call(null, init__$1)
}else {
var init__$2 = f.call(null, init__$1, node.key, node.val);
if(cljs.core.reduced_QMARK_.call(null, init__$2)) {
return cljs.core.deref.call(null, init__$2)
}else {
var init__$3 = !(node.right == null) ? tree_map_kv_reduce.call(null, node.right, f, init__$2) : init__$2;
if(cljs.core.reduced_QMARK_.call(null, init__$3)) {
return cljs.core.deref.call(null, init__$3)
}else {
return init__$3
}
}
}
};
goog.provide("cljs.core.BlackNode");
cljs.core.BlackNode = function(key, val, left, right, __hash) {
this.key = key;
this.val = val;
this.left = left;
this.right = right;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32402207
};
cljs.core.BlackNode.cljs$lang$type = true;
cljs.core.BlackNode.cljs$lang$ctorStr = "cljs.core/BlackNode";
cljs.core.BlackNode.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/BlackNode")
};
cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2 = function(node, k) {
var self__ = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, null)
};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$3 = function(node, k, not_found) {
var self__ = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, not_found)
};
cljs.core.BlackNode.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(node, k, v) {
var self__ = this;
return cljs.core.assoc.call(null, cljs.core.PersistentVector.fromArray([self__.key, self__.val], true), k, v)
};
cljs.core.BlackNode.prototype.call = function() {
var G__5828 = null;
var G__5828__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var node = self____$1;
return node.cljs$core$ILookup$_lookup$arity$2(node, k)
};
var G__5828__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var node = self____$1;
return node.cljs$core$ILookup$_lookup$arity$3(node, k, not_found)
};
G__5828 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5828__2.call(this, self__, k);
case 3:
return G__5828__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5828
}();
cljs.core.BlackNode.prototype.apply = function(self__, args5827) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5827.slice()))
};
cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2 = function(node, o) {
var self__ = this;
return cljs.core.PersistentVector.fromArray([self__.key, self__.val, o], true)
};
cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1 = function(node) {
var self__ = this;
return self__.key
};
cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1 = function(node) {
var self__ = this;
return self__.val
};
cljs.core.BlackNode.prototype.add_right = function(ins) {
var self__ = this;
var node = this;
return ins.balance_right(node)
};
cljs.core.BlackNode.prototype.redden = function() {
var self__ = this;
var node = this;
return new cljs.core.RedNode(self__.key, self__.val, self__.left, self__.right, null)
};
cljs.core.BlackNode.prototype.remove_right = function(del) {
var self__ = this;
var node = this;
return cljs.core.balance_right_del.call(null, self__.key, self__.val, self__.left, del)
};
cljs.core.BlackNode.prototype.replace = function(key__$1, val__$1, left__$1, right__$1) {
var self__ = this;
var node = this;
return new cljs.core.BlackNode(key__$1, val__$1, left__$1, right__$1, null)
};
cljs.core.BlackNode.prototype.kv_reduce = function(f, init) {
var self__ = this;
var node = this;
return cljs.core.tree_map_kv_reduce.call(null, node, f, init)
};
cljs.core.BlackNode.prototype.remove_left = function(del) {
var self__ = this;
var node = this;
return cljs.core.balance_left_del.call(null, self__.key, self__.val, del, self__.right)
};
cljs.core.BlackNode.prototype.add_left = function(ins) {
var self__ = this;
var node = this;
return ins.balance_left(node)
};
cljs.core.BlackNode.prototype.balance_left = function(parent) {
var self__ = this;
var node = this;
return new cljs.core.BlackNode(parent.key, parent.val, node, parent.right, null)
};
cljs.core.BlackNode.prototype.balance_right = function(parent) {
var self__ = this;
var node = this;
return new cljs.core.BlackNode(parent.key, parent.val, parent.left, node, null)
};
cljs.core.BlackNode.prototype.blacken = function() {
var self__ = this;
var node = this;
return node
};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2 = function(node, f) {
var self__ = this;
return cljs.core.ci_reduce.call(null, node, f)
};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$3 = function(node, f, start) {
var self__ = this;
return cljs.core.ci_reduce.call(null, node, f, start)
};
cljs.core.BlackNode.prototype.cljs$core$ISeqable$_seq$arity$1 = function(node) {
var self__ = this;
return cljs.core.list.call(null, self__.key, self__.val)
};
cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1 = function(node) {
var self__ = this;
return 2
};
cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1 = function(node) {
var self__ = this;
return self__.val
};
cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1 = function(node) {
var self__ = this;
return cljs.core.PersistentVector.fromArray([self__.key], true)
};
cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(node, n, v) {
var self__ = this;
return cljs.core._assoc_n.call(null, cljs.core.PersistentVector.fromArray([self__.key, self__.val], true), n, v)
};
cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.BlackNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(node, meta) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([self__.key, self__.val], true), meta)
};
cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1 = function(node) {
var self__ = this;
return null
};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2 = function(node, n) {
var self__ = this;
if(n === 0) {
return self__.key
}else {
if(n === 1) {
return self__.val
}else {
if("\ufdd0:else") {
return null
}else {
return null
}
}
}
};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$3 = function(node, n, not_found) {
var self__ = this;
if(n === 0) {
return self__.key
}else {
if(n === 1) {
return self__.val
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.BlackNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(node) {
var self__ = this;
return cljs.core.PersistentVector.EMPTY
};
goog.provide("cljs.core.RedNode");
cljs.core.RedNode = function(key, val, left, right, __hash) {
this.key = key;
this.val = val;
this.left = left;
this.right = right;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32402207
};
cljs.core.RedNode.cljs$lang$type = true;
cljs.core.RedNode.cljs$lang$ctorStr = "cljs.core/RedNode";
cljs.core.RedNode.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/RedNode")
};
cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2 = function(node, k) {
var self__ = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, null)
};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$3 = function(node, k, not_found) {
var self__ = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, not_found)
};
cljs.core.RedNode.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(node, k, v) {
var self__ = this;
return cljs.core.assoc.call(null, cljs.core.PersistentVector.fromArray([self__.key, self__.val], true), k, v)
};
cljs.core.RedNode.prototype.call = function() {
var G__5830 = null;
var G__5830__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var node = self____$1;
return node.cljs$core$ILookup$_lookup$arity$2(node, k)
};
var G__5830__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var node = self____$1;
return node.cljs$core$ILookup$_lookup$arity$3(node, k, not_found)
};
G__5830 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5830__2.call(this, self__, k);
case 3:
return G__5830__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5830
}();
cljs.core.RedNode.prototype.apply = function(self__, args5829) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5829.slice()))
};
cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2 = function(node, o) {
var self__ = this;
return cljs.core.PersistentVector.fromArray([self__.key, self__.val, o], true)
};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1 = function(node) {
var self__ = this;
return self__.key
};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1 = function(node) {
var self__ = this;
return self__.val
};
cljs.core.RedNode.prototype.add_right = function(ins) {
var self__ = this;
var node = this;
return new cljs.core.RedNode(self__.key, self__.val, self__.left, ins, null)
};
cljs.core.RedNode.prototype.redden = function() {
var self__ = this;
var node = this;
throw new Error("red-black tree invariant violation");
};
cljs.core.RedNode.prototype.remove_right = function(del) {
var self__ = this;
var node = this;
return new cljs.core.RedNode(self__.key, self__.val, self__.left, del, null)
};
cljs.core.RedNode.prototype.replace = function(key__$1, val__$1, left__$1, right__$1) {
var self__ = this;
var node = this;
return new cljs.core.RedNode(key__$1, val__$1, left__$1, right__$1, null)
};
cljs.core.RedNode.prototype.kv_reduce = function(f, init) {
var self__ = this;
var node = this;
return cljs.core.tree_map_kv_reduce.call(null, node, f, init)
};
cljs.core.RedNode.prototype.remove_left = function(del) {
var self__ = this;
var node = this;
return new cljs.core.RedNode(self__.key, self__.val, del, self__.right, null)
};
cljs.core.RedNode.prototype.add_left = function(ins) {
var self__ = this;
var node = this;
return new cljs.core.RedNode(self__.key, self__.val, ins, self__.right, null)
};
cljs.core.RedNode.prototype.balance_left = function(parent) {
var self__ = this;
var node = this;
if(self__.left instanceof cljs.core.RedNode) {
return 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)
}else {
if(self__.right instanceof cljs.core.RedNode) {
return 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)
}else {
if("\ufdd0:else") {
return new cljs.core.BlackNode(parent.key, parent.val, node, parent.right, null)
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.balance_right = function(parent) {
var self__ = this;
var node = this;
if(self__.right instanceof cljs.core.RedNode) {
return 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)
}else {
if(self__.left instanceof cljs.core.RedNode) {
return 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)
}else {
if("\ufdd0:else") {
return new cljs.core.BlackNode(parent.key, parent.val, parent.left, node, null)
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.blacken = function() {
var self__ = this;
var node = this;
return new cljs.core.BlackNode(self__.key, self__.val, self__.left, self__.right, null)
};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2 = function(node, f) {
var self__ = this;
return cljs.core.ci_reduce.call(null, node, f)
};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$3 = function(node, f, start) {
var self__ = this;
return cljs.core.ci_reduce.call(null, node, f, start)
};
cljs.core.RedNode.prototype.cljs$core$ISeqable$_seq$arity$1 = function(node) {
var self__ = this;
return cljs.core.list.call(null, self__.key, self__.val)
};
cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1 = function(node) {
var self__ = this;
return 2
};
cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1 = function(node) {
var self__ = this;
return self__.val
};
cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1 = function(node) {
var self__ = this;
return cljs.core.PersistentVector.fromArray([self__.key], true)
};
cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(node, n, v) {
var self__ = this;
return cljs.core._assoc_n.call(null, cljs.core.PersistentVector.fromArray([self__.key, self__.val], true), n, v)
};
cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.RedNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(node, meta) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([self__.key, self__.val], true), meta)
};
cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1 = function(node) {
var self__ = this;
return null
};
cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2 = function(node, n) {
var self__ = this;
if(n === 0) {
return self__.key
}else {
if(n === 1) {
return self__.val
}else {
if("\ufdd0:else") {
return null
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$3 = function(node, n, not_found) {
var self__ = this;
if(n === 0) {
return self__.key
}else {
if(n === 1) {
return self__.val
}else {
if("\ufdd0:else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(node) {
var self__ = this;
return cljs.core.PersistentVector.EMPTY
};
cljs.core.tree_map_add = function tree_map_add(comp, tree, k, v, found) {
if(tree == null) {
return new cljs.core.RedNode(k, v, null, null, null)
}else {
var c = comp.call(null, k, tree.key);
if(c === 0) {
found[0] = tree;
return null
}else {
if(c < 0) {
var ins = tree_map_add.call(null, comp, tree.left, k, v, found);
if(!(ins == null)) {
return tree.add_left(ins)
}else {
return null
}
}else {
if("\ufdd0:else") {
var ins = tree_map_add.call(null, comp, tree.right, k, v, found);
if(!(ins == null)) {
return tree.add_right(ins)
}else {
return null
}
}else {
return null
}
}
}
}
};
cljs.core.tree_map_append = function tree_map_append(left, right) {
if(left == null) {
return right
}else {
if(right == null) {
return left
}else {
if(left instanceof cljs.core.RedNode) {
if(right instanceof cljs.core.RedNode) {
var app = tree_map_append.call(null, left.right, right.left);
if(app instanceof cljs.core.RedNode) {
return 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)
}else {
return new cljs.core.RedNode(left.key, left.val, left.left, new cljs.core.RedNode(right.key, right.val, app, right.right, null), null)
}
}else {
return new cljs.core.RedNode(left.key, left.val, left.left, tree_map_append.call(null, left.right, right), null)
}
}else {
if(right instanceof cljs.core.RedNode) {
return new cljs.core.RedNode(right.key, right.val, tree_map_append.call(null, left, right.left), right.right, null)
}else {
if("\ufdd0:else") {
var app = tree_map_append.call(null, left.right, right.left);
if(app instanceof cljs.core.RedNode) {
return 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)
}else {
return cljs.core.balance_left_del.call(null, left.key, left.val, left.left, new cljs.core.BlackNode(right.key, right.val, app, right.right, null))
}
}else {
return null
}
}
}
}
}
};
cljs.core.tree_map_remove = function tree_map_remove(comp, tree, k, found) {
if(!(tree == null)) {
var c = comp.call(null, k, tree.key);
if(c === 0) {
found[0] = tree;
return cljs.core.tree_map_append.call(null, tree.left, tree.right)
}else {
if(c < 0) {
var del = tree_map_remove.call(null, comp, tree.left, k, found);
if(function() {
var or__3943__auto__ = !(del == null);
if(or__3943__auto__) {
return or__3943__auto__
}else {
return!(found[0] == null)
}
}()) {
if(tree.left instanceof cljs.core.BlackNode) {
return cljs.core.balance_left_del.call(null, tree.key, tree.val, del, tree.right)
}else {
return new cljs.core.RedNode(tree.key, tree.val, del, tree.right, null)
}
}else {
return null
}
}else {
if("\ufdd0:else") {
var del = tree_map_remove.call(null, comp, tree.right, k, found);
if(function() {
var or__3943__auto__ = !(del == null);
if(or__3943__auto__) {
return or__3943__auto__
}else {
return!(found[0] == null)
}
}()) {
if(tree.right instanceof cljs.core.BlackNode) {
return cljs.core.balance_right_del.call(null, tree.key, tree.val, tree.left, del)
}else {
return new cljs.core.RedNode(tree.key, tree.val, tree.left, del, null)
}
}else {
return null
}
}else {
return null
}
}
}
}else {
return null
}
};
cljs.core.tree_map_replace = function tree_map_replace(comp, tree, k, v) {
var tk = tree.key;
var c = comp.call(null, k, tk);
if(c === 0) {
return tree.replace(tk, v, tree.left, tree.right)
}else {
if(c < 0) {
return tree.replace(tk, tree.val, tree_map_replace.call(null, comp, tree.left, k, v), tree.right)
}else {
if("\ufdd0:else") {
return tree.replace(tk, tree.val, tree.left, tree_map_replace.call(null, comp, tree.right, k, v))
}else {
return null
}
}
}
};
goog.provide("cljs.core.PersistentTreeMap");
cljs.core.PersistentTreeMap = function(comp, tree, cnt, meta, __hash) {
this.comp = comp;
this.tree = tree;
this.cnt = cnt;
this.meta = meta;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 418776847
};
cljs.core.PersistentTreeMap.cljs$lang$type = true;
cljs.core.PersistentTreeMap.cljs$lang$ctorStr = "cljs.core/PersistentTreeMap";
cljs.core.PersistentTreeMap.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentTreeMap")
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_imap.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var self__ = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var self__ = this;
var n = coll.entry_at(k);
if(!(n == null)) {
return n.val
}else {
return not_found
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var self__ = this;
var found = [null];
var t = cljs.core.tree_map_add.call(null, self__.comp, self__.tree, k, v, found);
if(t == null) {
var found_node = cljs.core.nth.call(null, found, 0);
if(cljs.core._EQ_.call(null, v, found_node.val)) {
return coll
}else {
return new cljs.core.PersistentTreeMap(self__.comp, cljs.core.tree_map_replace.call(null, self__.comp, self__.tree, k, v), self__.cnt, self__.meta, null)
}
}else {
return new cljs.core.PersistentTreeMap(self__.comp, t.blacken(), self__.cnt + 1, self__.meta, null)
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var self__ = this;
return!(coll.entry_at(k) == null)
};
cljs.core.PersistentTreeMap.prototype.call = function() {
var G__5832 = null;
var G__5832__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5832__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5832 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5832__2.call(this, self__, k);
case 3:
return G__5832__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5832
}();
cljs.core.PersistentTreeMap.prototype.apply = function(self__, args5831) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5831.slice()))
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var self__ = this;
if(!(self__.tree == null)) {
return cljs.core.tree_map_kv_reduce.call(null, self__.tree, f, init)
}else {
return init
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var self__ = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, cljs.core._nth.call(null, entry, 0), cljs.core._nth.call(null, entry, 1))
}else {
return cljs.core.reduce.call(null, cljs.core._conj, coll, entry)
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, self__.tree, false, self__.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.entry_at = function(k) {
var self__ = this;
var coll = this;
var t = self__.tree;
while(true) {
if(!(t == null)) {
var c = self__.comp.call(null, k, t.key);
if(c === 0) {
return t
}else {
if(c < 0) {
var G__5833 = t.left;
t = G__5833;
continue
}else {
if("\ufdd0:else") {
var G__5834 = t.right;
t = G__5834;
continue
}else {
return null
}
}
}
}else {
return null
}
break
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq$arity$2 = function(coll, ascending_QMARK_) {
var self__ = this;
if(self__.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, self__.tree, ascending_QMARK_, self__.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 = function(coll, k, ascending_QMARK_) {
var self__ = this;
if(self__.cnt > 0) {
var stack = null;
var t = self__.tree;
while(true) {
if(!(t == null)) {
var c = self__.comp.call(null, k, t.key);
if(c === 0) {
return new cljs.core.PersistentTreeMapSeq(null, cljs.core.conj.call(null, stack, t), ascending_QMARK_, -1, null)
}else {
if(cljs.core.truth_(ascending_QMARK_)) {
if(c < 0) {
var G__5835 = cljs.core.conj.call(null, stack, t);
var G__5836 = t.left;
stack = G__5835;
t = G__5836;
continue
}else {
var G__5837 = stack;
var G__5838 = t.right;
stack = G__5837;
t = G__5838;
continue
}
}else {
if("\ufdd0:else") {
if(c > 0) {
var G__5839 = cljs.core.conj.call(null, stack, t);
var G__5840 = t.right;
stack = G__5839;
t = G__5840;
continue
}else {
var G__5841 = stack;
var G__5842 = t.left;
stack = G__5841;
t = G__5842;
continue
}
}else {
return null
}
}
}
}else {
if(stack == null) {
return null
}else {
return new cljs.core.PersistentTreeMapSeq(null, stack, ascending_QMARK_, -1, null)
}
}
break
}
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_entry_key$arity$2 = function(coll, entry) {
var self__ = this;
return cljs.core.key.call(null, entry)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_comparator$arity$1 = function(coll) {
var self__ = this;
return self__.comp
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
if(self__.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, self__.tree, true, self__.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return self__.cnt
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentTreeMap(self__.comp, self__.tree, self__.cnt, meta__$1, self__.__hash)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentTreeMap.EMPTY, self__.meta)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var self__ = this;
var found = [null];
var t = cljs.core.tree_map_remove.call(null, self__.comp, self__.tree, k, found);
if(t == null) {
if(cljs.core.nth.call(null, found, 0) == null) {
return coll
}else {
return new cljs.core.PersistentTreeMap(self__.comp, null, 0, self__.meta, null)
}
}else {
return new cljs.core.PersistentTreeMap(self__.comp, t.blacken(), self__.cnt - 1, self__.meta, null)
}
};
cljs.core.PersistentTreeMap.EMPTY = new cljs.core.PersistentTreeMap(cljs.core.compare, null, 0, null, 0);
cljs.core.hash_map = function() {
var hash_map__delegate = function(keyvals) {
var in$ = cljs.core.seq.call(null, keyvals);
var out = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(in$) {
var G__5843 = cljs.core.nnext.call(null, in$);
var G__5844 = cljs.core.assoc_BANG_.call(null, out, cljs.core.first.call(null, in$), cljs.core.second.call(null, in$));
in$ = G__5843;
out = G__5844;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out)
}
break
}
};
var hash_map = function(var_args) {
var keyvals = null;
if(arguments.length > 0) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return hash_map__delegate.call(this, keyvals)
};
hash_map.cljs$lang$maxFixedArity = 0;
hash_map.cljs$lang$applyTo = function(arglist__5845) {
var keyvals = cljs.core.seq(arglist__5845);
return hash_map__delegate(keyvals)
};
hash_map.cljs$core$IFn$_invoke$arity$variadic = hash_map__delegate;
return hash_map
}();
cljs.core.array_map = function() {
var array_map__delegate = function(keyvals) {
return new cljs.core.PersistentArrayMap(null, cljs.core.quot.call(null, cljs.core.count.call(null, keyvals), 2), cljs.core.apply.call(null, cljs.core.array, keyvals), null)
};
var array_map = function(var_args) {
var keyvals = null;
if(arguments.length > 0) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return array_map__delegate.call(this, keyvals)
};
array_map.cljs$lang$maxFixedArity = 0;
array_map.cljs$lang$applyTo = function(arglist__5846) {
var keyvals = cljs.core.seq(arglist__5846);
return array_map__delegate(keyvals)
};
array_map.cljs$core$IFn$_invoke$arity$variadic = array_map__delegate;
return array_map
}();
cljs.core.obj_map = function() {
var obj_map__delegate = function(keyvals) {
var ks = [];
var obj = {};
var kvs = cljs.core.seq.call(null, keyvals);
while(true) {
if(kvs) {
ks.push(cljs.core.first.call(null, kvs));
obj[cljs.core.first.call(null, kvs)] = cljs.core.second.call(null, kvs);
var G__5847 = cljs.core.nnext.call(null, kvs);
kvs = G__5847;
continue
}else {
return cljs.core.ObjMap.fromObject.call(null, ks, obj)
}
break
}
};
var obj_map = function(var_args) {
var keyvals = null;
if(arguments.length > 0) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return obj_map__delegate.call(this, keyvals)
};
obj_map.cljs$lang$maxFixedArity = 0;
obj_map.cljs$lang$applyTo = function(arglist__5848) {
var keyvals = cljs.core.seq(arglist__5848);
return obj_map__delegate(keyvals)
};
obj_map.cljs$core$IFn$_invoke$arity$variadic = obj_map__delegate;
return obj_map
}();
cljs.core.sorted_map = function() {
var sorted_map__delegate = function(keyvals) {
var in$ = cljs.core.seq.call(null, keyvals);
var out = cljs.core.PersistentTreeMap.EMPTY;
while(true) {
if(in$) {
var G__5849 = cljs.core.nnext.call(null, in$);
var G__5850 = cljs.core.assoc.call(null, out, cljs.core.first.call(null, in$), cljs.core.second.call(null, in$));
in$ = G__5849;
out = G__5850;
continue
}else {
return out
}
break
}
};
var sorted_map = function(var_args) {
var keyvals = null;
if(arguments.length > 0) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return sorted_map__delegate.call(this, keyvals)
};
sorted_map.cljs$lang$maxFixedArity = 0;
sorted_map.cljs$lang$applyTo = function(arglist__5851) {
var keyvals = cljs.core.seq(arglist__5851);
return sorted_map__delegate(keyvals)
};
sorted_map.cljs$core$IFn$_invoke$arity$variadic = sorted_map__delegate;
return sorted_map
}();
cljs.core.sorted_map_by = function() {
var sorted_map_by__delegate = function(comparator, keyvals) {
var in$ = cljs.core.seq.call(null, keyvals);
var out = new cljs.core.PersistentTreeMap(cljs.core.fn__GT_comparator.call(null, comparator), null, 0, null, 0);
while(true) {
if(in$) {
var G__5852 = cljs.core.nnext.call(null, in$);
var G__5853 = cljs.core.assoc.call(null, out, cljs.core.first.call(null, in$), cljs.core.second.call(null, in$));
in$ = G__5852;
out = G__5853;
continue
}else {
return out
}
break
}
};
var sorted_map_by = function(comparator, var_args) {
var keyvals = null;
if(arguments.length > 1) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return sorted_map_by__delegate.call(this, comparator, keyvals)
};
sorted_map_by.cljs$lang$maxFixedArity = 1;
sorted_map_by.cljs$lang$applyTo = function(arglist__5854) {
var comparator = cljs.core.first(arglist__5854);
var keyvals = cljs.core.rest(arglist__5854);
return sorted_map_by__delegate(comparator, keyvals)
};
sorted_map_by.cljs$core$IFn$_invoke$arity$variadic = sorted_map_by__delegate;
return sorted_map_by
}();
cljs.core.keys = function keys(hash_map) {
return cljs.core.seq.call(null, cljs.core.map.call(null, cljs.core.first, hash_map))
};
cljs.core.key = function key(map_entry) {
return cljs.core._key.call(null, map_entry)
};
cljs.core.vals = function vals(hash_map) {
return cljs.core.seq.call(null, cljs.core.map.call(null, cljs.core.second, hash_map))
};
cljs.core.val = function val(map_entry) {
return cljs.core._val.call(null, map_entry)
};
cljs.core.merge = function() {
var merge__delegate = function(maps) {
if(cljs.core.truth_(cljs.core.some.call(null, cljs.core.identity, maps))) {
return cljs.core.reduce.call(null, function(p1__5855_SHARP_, p2__5856_SHARP_) {
return cljs.core.conj.call(null, function() {
var or__3943__auto__ = p1__5855_SHARP_;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.ObjMap.EMPTY
}
}(), p2__5856_SHARP_)
}, maps)
}else {
return null
}
};
var merge = function(var_args) {
var maps = null;
if(arguments.length > 0) {
maps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return merge__delegate.call(this, maps)
};
merge.cljs$lang$maxFixedArity = 0;
merge.cljs$lang$applyTo = function(arglist__5857) {
var maps = cljs.core.seq(arglist__5857);
return merge__delegate(maps)
};
merge.cljs$core$IFn$_invoke$arity$variadic = merge__delegate;
return merge
}();
cljs.core.merge_with = function() {
var merge_with__delegate = function(f, maps) {
if(cljs.core.truth_(cljs.core.some.call(null, cljs.core.identity, maps))) {
var merge_entry = function(m, e) {
var k = cljs.core.first.call(null, e);
var v = cljs.core.second.call(null, e);
if(cljs.core.contains_QMARK_.call(null, m, k)) {
return cljs.core.assoc.call(null, m, k, f.call(null, cljs.core.get.call(null, m, k), v))
}else {
return cljs.core.assoc.call(null, m, k, v)
}
};
var merge2 = function(merge_entry) {
return function(m1, m2) {
return cljs.core.reduce.call(null, merge_entry, function() {
var or__3943__auto__ = m1;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.ObjMap.EMPTY
}
}(), cljs.core.seq.call(null, m2))
}
}(merge_entry);
return cljs.core.reduce.call(null, merge2, maps)
}else {
return null
}
};
var merge_with = function(f, var_args) {
var maps = null;
if(arguments.length > 1) {
maps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return merge_with__delegate.call(this, f, maps)
};
merge_with.cljs$lang$maxFixedArity = 1;
merge_with.cljs$lang$applyTo = function(arglist__5858) {
var f = cljs.core.first(arglist__5858);
var maps = cljs.core.rest(arglist__5858);
return merge_with__delegate(f, maps)
};
merge_with.cljs$core$IFn$_invoke$arity$variadic = merge_with__delegate;
return merge_with
}();
cljs.core.select_keys = function select_keys(map, keyseq) {
var ret = cljs.core.ObjMap.EMPTY;
var keys = cljs.core.seq.call(null, keyseq);
while(true) {
if(keys) {
var key = cljs.core.first.call(null, keys);
var entry = cljs.core.get.call(null, map, key, "\ufdd0:cljs.core/not-found");
var G__5859 = cljs.core.not_EQ_.call(null, entry, "\ufdd0:cljs.core/not-found") ? cljs.core.assoc.call(null, ret, key, entry) : ret;
var G__5860 = cljs.core.next.call(null, keys);
ret = G__5859;
keys = G__5860;
continue
}else {
return ret
}
break
}
};
goog.provide("cljs.core.PersistentHashSet");
cljs.core.PersistentHashSet = function(meta, hash_map, __hash) {
this.meta = meta;
this.hash_map = hash_map;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 4;
this.cljs$lang$protocol_mask$partition0$ = 15077647
};
cljs.core.PersistentHashSet.cljs$lang$type = true;
cljs.core.PersistentHashSet.cljs$lang$ctorStr = "cljs.core/PersistentHashSet";
cljs.core.PersistentHashSet.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentHashSet")
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var self__ = this;
return new cljs.core.TransientHashSet(cljs.core._as_transient.call(null, self__.hash_map))
};
cljs.core.PersistentHashSet.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_iset.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, v) {
var self__ = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, v, null)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, v, not_found) {
var self__ = this;
if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null, self__.hash_map, v))) {
return v
}else {
return not_found
}
};
cljs.core.PersistentHashSet.prototype.call = function() {
var G__5863 = null;
var G__5863__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5863__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5863 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5863__2.call(this, self__, k);
case 3:
return G__5863__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5863
}();
cljs.core.PersistentHashSet.prototype.apply = function(self__, args5862) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5862.slice()))
};
cljs.core.PersistentHashSet.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return new cljs.core.PersistentHashSet(self__.meta, cljs.core.assoc.call(null, self__.hash_map, o, null), null)
};
cljs.core.PersistentHashSet.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return cljs.core.keys.call(null, self__.hash_map)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ISet$_disjoin$arity$2 = function(coll, v) {
var self__ = this;
return new cljs.core.PersistentHashSet(self__.meta, cljs.core._dissoc.call(null, self__.hash_map, v), null)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return cljs.core._count.call(null, self__.hash_map)
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
var and__3941__auto__ = cljs.core.set_QMARK_.call(null, other);
if(and__3941__auto__) {
var and__3941__auto____$1 = cljs.core.count.call(null, coll) === cljs.core.count.call(null, other);
if(and__3941__auto____$1) {
return cljs.core.every_QMARK_.call(null, function(p1__5861_SHARP_) {
return cljs.core.contains_QMARK_.call(null, coll, p1__5861_SHARP_)
}, other)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
};
cljs.core.PersistentHashSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentHashSet(meta__$1, self__.hash_map, self__.__hash)
};
cljs.core.PersistentHashSet.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentHashSet.EMPTY, self__.meta)
};
cljs.core.PersistentHashSet.EMPTY = new cljs.core.PersistentHashSet(null, cljs.core.PersistentArrayMap.EMPTY, 0);
cljs.core.PersistentHashSet.fromArray = function(items, no_clone) {
var len = items.length;
if(len / 2 <= cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
var arr = no_clone ? items : items.slice();
return new cljs.core.PersistentHashSet(null, cljs.core.PersistentArrayMap.fromArray.call(null, arr, true), null)
}else {
var i = 0;
var out = cljs.core.transient$.call(null, cljs.core.PersistentHashSet.EMPTY);
while(true) {
if(i < len) {
var G__5864 = i + 2;
var G__5865 = cljs.core.conj_BANG_.call(null, out, items[i]);
i = G__5864;
out = G__5865;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out)
}
break
}
}
};
goog.provide("cljs.core.TransientHashSet");
cljs.core.TransientHashSet = function(transient_map) {
this.transient_map = transient_map;
this.cljs$lang$protocol_mask$partition0$ = 259;
this.cljs$lang$protocol_mask$partition1$ = 136
};
cljs.core.TransientHashSet.cljs$lang$type = true;
cljs.core.TransientHashSet.cljs$lang$ctorStr = "cljs.core/TransientHashSet";
cljs.core.TransientHashSet.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/TransientHashSet")
};
cljs.core.TransientHashSet.prototype.call = function() {
var G__5868 = null;
var G__5868__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var tcoll = self____$1;
if(cljs.core._lookup.call(null, self__.transient_map, k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return null
}else {
return k
}
};
var G__5868__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var tcoll = self____$1;
if(cljs.core._lookup.call(null, self__.transient_map, k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return not_found
}else {
return k
}
};
G__5868 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5868__2.call(this, self__, k);
case 3:
return G__5868__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5868
}();
cljs.core.TransientHashSet.prototype.apply = function(self__, args5867) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5867.slice()))
};
cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, v) {
var self__ = this;
return tcoll.cljs$core$ILookup$_lookup$arity$3(tcoll, v, null)
};
cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$3 = function(tcoll, v, not_found) {
var self__ = this;
if(cljs.core._lookup.call(null, self__.transient_map, v, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return not_found
}else {
return v
}
};
cljs.core.TransientHashSet.prototype.cljs$core$ICounted$_count$arity$1 = function(tcoll) {
var self__ = this;
return cljs.core.count.call(null, self__.transient_map)
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 = function(tcoll, v) {
var self__ = this;
self__.transient_map = cljs.core.dissoc_BANG_.call(null, self__.transient_map, v);
return tcoll
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var self__ = this;
self__.transient_map = cljs.core.assoc_BANG_.call(null, self__.transient_map, o, null);
return tcoll
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var self__ = this;
return new cljs.core.PersistentHashSet(null, cljs.core.persistent_BANG_.call(null, self__.transient_map), null)
};
goog.provide("cljs.core.PersistentTreeSet");
cljs.core.PersistentTreeSet = function(meta, tree_map, __hash) {
this.meta = meta;
this.tree_map = tree_map;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 417730831
};
cljs.core.PersistentTreeSet.cljs$lang$type = true;
cljs.core.PersistentTreeSet.cljs$lang$ctorStr = "cljs.core/PersistentTreeSet";
cljs.core.PersistentTreeSet.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/PersistentTreeSet")
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_iset.call(null, coll);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, v) {
var self__ = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, v, null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, v, not_found) {
var self__ = this;
var n = self__.tree_map.entry_at(v);
if(!(n == null)) {
return n.key
}else {
return not_found
}
};
cljs.core.PersistentTreeSet.prototype.call = function() {
var G__5870 = null;
var G__5870__2 = function(self__, k) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$2(coll, k)
};
var G__5870__3 = function(self__, k, not_found) {
var self__ = this;
var self____$1 = this;
var coll = self____$1;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, not_found)
};
G__5870 = function(self__, k, not_found) {
switch(arguments.length) {
case 2:
return G__5870__2.call(this, self__, k);
case 3:
return G__5870__3.call(this, self__, k, not_found)
}
throw new Error("Invalid arity: " + arguments.length);
};
return G__5870
}();
cljs.core.PersistentTreeSet.prototype.apply = function(self__, args5869) {
var self__ = this;
return self__.call.apply(self__, [self__].concat(args5869.slice()))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var self__ = this;
return new cljs.core.PersistentTreeSet(self__.meta, cljs.core.assoc.call(null, self__.tree_map, o, null), null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var self__ = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core.rseq.call(null, self__.tree_map))
};
cljs.core.PersistentTreeSet.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq$arity$2 = function(coll, ascending_QMARK_) {
var self__ = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core._sorted_seq.call(null, self__.tree_map, ascending_QMARK_))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 = function(coll, k, ascending_QMARK_) {
var self__ = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core._sorted_seq_from.call(null, self__.tree_map, k, ascending_QMARK_))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_entry_key$arity$2 = function(coll, entry) {
var self__ = this;
return entry
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_comparator$arity$1 = function(coll) {
var self__ = this;
return cljs.core._comparator.call(null, self__.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var self__ = this;
return cljs.core.keys.call(null, self__.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISet$_disjoin$arity$2 = function(coll, v) {
var self__ = this;
return new cljs.core.PersistentTreeSet(self__.meta, cljs.core.dissoc.call(null, self__.tree_map, v), null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var self__ = this;
return cljs.core.count.call(null, self__.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var self__ = this;
var and__3941__auto__ = cljs.core.set_QMARK_.call(null, other);
if(and__3941__auto__) {
var and__3941__auto____$1 = cljs.core.count.call(null, coll) === cljs.core.count.call(null, other);
if(and__3941__auto____$1) {
return cljs.core.every_QMARK_.call(null, function(p1__5866_SHARP_) {
return cljs.core.contains_QMARK_.call(null, coll, p1__5866_SHARP_)
}, other)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta__$1) {
var self__ = this;
return new cljs.core.PersistentTreeSet(meta__$1, self__.tree_map, self__.__hash)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var self__ = this;
return self__.meta
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentTreeSet.EMPTY, self__.meta)
};
cljs.core.PersistentTreeSet.EMPTY = new cljs.core.PersistentTreeSet(null, cljs.core.PersistentTreeMap.EMPTY, 0);
cljs.core.hash_set = function() {
var hash_set = null;
var hash_set__0 = function() {
return cljs.core.PersistentHashSet.EMPTY
};
var hash_set__1 = function() {
var G__5871__delegate = function(keys) {
if(function() {
var and__3941__auto__ = keys instanceof cljs.core.IndexedSeq;
if(and__3941__auto__) {
return keys.arr.length < cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD
}else {
return and__3941__auto__
}
}()) {
var karr = keys.arr;
var klen = karr.length;
var alen = 2 * klen;
var arr = new Array(alen);
var ki = 0;
while(true) {
if(ki < klen) {
var ai = 2 * ki;
arr[ai] = karr[ki];
arr[ai + 1] = null;
var G__5872 = ki + 1;
ki = G__5872;
continue
}else {
return cljs.core.PersistentHashSet.fromArray.call(null, arr, true)
}
break
}
}else {
var in$ = keys;
var out = cljs.core._as_transient.call(null, cljs.core.PersistentHashSet.EMPTY);
while(true) {
if(!(in$ == null)) {
var G__5873 = cljs.core._next.call(null, in$);
var G__5874 = cljs.core._conj_BANG_.call(null, out, cljs.core._first.call(null, in$));
in$ = G__5873;
out = G__5874;
continue
}else {
return cljs.core._persistent_BANG_.call(null, out)
}
break
}
}
};
var G__5871 = function(var_args) {
var keys = null;
if(arguments.length > 0) {
keys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__5871__delegate.call(this, keys)
};
G__5871.cljs$lang$maxFixedArity = 0;
G__5871.cljs$lang$applyTo = function(arglist__5875) {
var keys = cljs.core.seq(arglist__5875);
return G__5871__delegate(keys)
};
G__5871.cljs$core$IFn$_invoke$arity$variadic = G__5871__delegate;
return G__5871
}();
hash_set = function(var_args) {
var keys = var_args;
switch(arguments.length) {
case 0:
return hash_set__0.call(this);
default:
return hash_set__1.cljs$core$IFn$_invoke$arity$variadic(cljs.core.array_seq(arguments, 0))
}
throw new Error("Invalid arity: " + arguments.length);
};
hash_set.cljs$lang$maxFixedArity = 0;
hash_set.cljs$lang$applyTo = hash_set__1.cljs$lang$applyTo;
hash_set.cljs$core$IFn$_invoke$arity$0 = hash_set__0;
hash_set.cljs$core$IFn$_invoke$arity$variadic = hash_set__1.cljs$core$IFn$_invoke$arity$variadic;
return hash_set
}();
cljs.core.set = function set(coll) {
return cljs.core.apply.call(null, cljs.core.hash_set, coll)
};
cljs.core.sorted_set = function() {
var sorted_set__delegate = function(keys) {
return cljs.core.reduce.call(null, cljs.core._conj, cljs.core.PersistentTreeSet.EMPTY, keys)
};
var sorted_set = function(var_args) {
var keys = null;
if(arguments.length > 0) {
keys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return sorted_set__delegate.call(this, keys)
};
sorted_set.cljs$lang$maxFixedArity = 0;
sorted_set.cljs$lang$applyTo = function(arglist__5876) {
var keys = cljs.core.seq(arglist__5876);
return sorted_set__delegate(keys)
};
sorted_set.cljs$core$IFn$_invoke$arity$variadic = sorted_set__delegate;
return sorted_set
}();
cljs.core.sorted_set_by = function() {
var sorted_set_by__delegate = function(comparator, keys) {
return cljs.core.reduce.call(null, cljs.core._conj, new cljs.core.PersistentTreeSet(null, cljs.core.sorted_map_by.call(null, comparator), 0), keys)
};
var sorted_set_by = function(comparator, var_args) {
var keys = null;
if(arguments.length > 1) {
keys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return sorted_set_by__delegate.call(this, comparator, keys)
};
sorted_set_by.cljs$lang$maxFixedArity = 1;
sorted_set_by.cljs$lang$applyTo = function(arglist__5878) {
var comparator = cljs.core.first(arglist__5878);
var keys = cljs.core.rest(arglist__5878);
return sorted_set_by__delegate(comparator, keys)
};
sorted_set_by.cljs$core$IFn$_invoke$arity$variadic = sorted_set_by__delegate;
return sorted_set_by
}();
cljs.core.replace = function replace(smap, coll) {
if(cljs.core.vector_QMARK_.call(null, coll)) {
var n = cljs.core.count.call(null, coll);
return cljs.core.reduce.call(null, function(v, i) {
var temp__4090__auto__ = cljs.core.find.call(null, smap, cljs.core.nth.call(null, v, i));
if(cljs.core.truth_(temp__4090__auto__)) {
var e = temp__4090__auto__;
return cljs.core.assoc.call(null, v, i, cljs.core.second.call(null, e))
}else {
return v
}
}, coll, cljs.core.take.call(null, n, cljs.core.iterate.call(null, cljs.core.inc, 0)))
}else {
return cljs.core.map.call(null, function(p1__5877_SHARP_) {
var temp__4090__auto__ = cljs.core.find.call(null, smap, p1__5877_SHARP_);
if(cljs.core.truth_(temp__4090__auto__)) {
var e = temp__4090__auto__;
return cljs.core.second.call(null, e)
}else {
return p1__5877_SHARP_
}
}, coll)
}
};
cljs.core.distinct = function distinct(coll) {
var step = function step(xs, seen) {
return new cljs.core.LazySeq(null, false, function() {
return function(p__5885, seen__$1) {
while(true) {
var vec__5886 = p__5885;
var f = cljs.core.nth.call(null, vec__5886, 0, null);
var xs__$1 = vec__5886;
var temp__4092__auto__ = cljs.core.seq.call(null, xs__$1);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.contains_QMARK_.call(null, seen__$1, f)) {
var G__5887 = cljs.core.rest.call(null, s);
var G__5888 = seen__$1;
p__5885 = G__5887;
seen__$1 = G__5888;
continue
}else {
return cljs.core.cons.call(null, f, step.call(null, cljs.core.rest.call(null, s), cljs.core.conj.call(null, seen__$1, f)))
}
}else {
return null
}
break
}
}.call(null, xs, seen)
}, null)
};
return step.call(null, coll, cljs.core.PersistentHashSet.EMPTY)
};
cljs.core.butlast = function butlast(s) {
var ret = cljs.core.PersistentVector.EMPTY;
var s__$1 = s;
while(true) {
if(cljs.core.next.call(null, s__$1)) {
var G__5889 = cljs.core.conj.call(null, ret, cljs.core.first.call(null, s__$1));
var G__5890 = cljs.core.next.call(null, s__$1);
ret = G__5889;
s__$1 = G__5890;
continue
}else {
return cljs.core.seq.call(null, ret)
}
break
}
};
cljs.core.name = function name(x) {
if(function() {
var G__5892 = x;
if(G__5892) {
if(cljs.core.truth_(function() {
var or__3943__auto__ = null;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return G__5892.cljs$core$INamed$
}
}())) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._name.call(null, x)
}else {
if(cljs.core.string_QMARK_.call(null, x)) {
return x
}else {
if(cljs.core.keyword_QMARK_.call(null, x)) {
var i = x.lastIndexOf("/", x.length - 2);
if(i < 0) {
return cljs.core.subs.call(null, x, 2)
}else {
return cljs.core.subs.call(null, x, i + 1)
}
}else {
if("\ufdd0:else") {
throw new Error([cljs.core.str("Doesn't support name: "), cljs.core.str(x)].join(""));
}else {
return null
}
}
}
}
};
cljs.core.namespace = function namespace(x) {
if(function() {
var G__5894 = x;
if(G__5894) {
if(cljs.core.truth_(function() {
var or__3943__auto__ = null;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return G__5894.cljs$core$INamed$
}
}())) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._namespace.call(null, x)
}else {
if(cljs.core.keyword_QMARK_.call(null, x)) {
var i = x.lastIndexOf("/", x.length - 2);
if(i > -1) {
return cljs.core.subs.call(null, x, 2, i)
}else {
return null
}
}else {
throw new Error([cljs.core.str("Doesn't support namespace: "), cljs.core.str(x)].join(""));
}
}
};
cljs.core.zipmap = function zipmap(keys, vals) {
var map = cljs.core.ObjMap.EMPTY;
var ks = cljs.core.seq.call(null, keys);
var vs = cljs.core.seq.call(null, vals);
while(true) {
if(function() {
var and__3941__auto__ = ks;
if(and__3941__auto__) {
return vs
}else {
return and__3941__auto__
}
}()) {
var G__5897 = cljs.core.assoc.call(null, map, cljs.core.first.call(null, ks), cljs.core.first.call(null, vs));
var G__5898 = cljs.core.next.call(null, ks);
var G__5899 = cljs.core.next.call(null, vs);
map = G__5897;
ks = G__5898;
vs = G__5899;
continue
}else {
return map
}
break
}
};
cljs.core.max_key = function() {
var max_key = null;
var max_key__2 = function(k, x) {
return x
};
var max_key__3 = function(k, x, y) {
if(k.call(null, x) > k.call(null, y)) {
return x
}else {
return y
}
};
var max_key__4 = function() {
var G__5902__delegate = function(k, x, y, more) {
return cljs.core.reduce.call(null, function(p1__5895_SHARP_, p2__5896_SHARP_) {
return max_key.call(null, k, p1__5895_SHARP_, p2__5896_SHARP_)
}, max_key.call(null, k, x, y), more)
};
var G__5902 = function(k, x, y, var_args) {
var more = null;
if(arguments.length > 3) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5902__delegate.call(this, k, x, y, more)
};
G__5902.cljs$lang$maxFixedArity = 3;
G__5902.cljs$lang$applyTo = function(arglist__5903) {
var k = cljs.core.first(arglist__5903);
arglist__5903 = cljs.core.next(arglist__5903);
var x = cljs.core.first(arglist__5903);
arglist__5903 = cljs.core.next(arglist__5903);
var y = cljs.core.first(arglist__5903);
var more = cljs.core.rest(arglist__5903);
return G__5902__delegate(k, x, y, more)
};
G__5902.cljs$core$IFn$_invoke$arity$variadic = G__5902__delegate;
return G__5902
}();
max_key = function(k, x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return max_key__2.call(this, k, x);
case 3:
return max_key__3.call(this, k, x, y);
default:
return max_key__4.cljs$core$IFn$_invoke$arity$variadic(k, x, y, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
max_key.cljs$lang$maxFixedArity = 3;
max_key.cljs$lang$applyTo = max_key__4.cljs$lang$applyTo;
max_key.cljs$core$IFn$_invoke$arity$2 = max_key__2;
max_key.cljs$core$IFn$_invoke$arity$3 = max_key__3;
max_key.cljs$core$IFn$_invoke$arity$variadic = max_key__4.cljs$core$IFn$_invoke$arity$variadic;
return max_key
}();
cljs.core.min_key = function() {
var min_key = null;
var min_key__2 = function(k, x) {
return x
};
var min_key__3 = function(k, x, y) {
if(k.call(null, x) < k.call(null, y)) {
return x
}else {
return y
}
};
var min_key__4 = function() {
var G__5904__delegate = function(k, x, y, more) {
return cljs.core.reduce.call(null, function(p1__5900_SHARP_, p2__5901_SHARP_) {
return min_key.call(null, k, p1__5900_SHARP_, p2__5901_SHARP_)
}, min_key.call(null, k, x, y), more)
};
var G__5904 = function(k, x, y, var_args) {
var more = null;
if(arguments.length > 3) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5904__delegate.call(this, k, x, y, more)
};
G__5904.cljs$lang$maxFixedArity = 3;
G__5904.cljs$lang$applyTo = function(arglist__5905) {
var k = cljs.core.first(arglist__5905);
arglist__5905 = cljs.core.next(arglist__5905);
var x = cljs.core.first(arglist__5905);
arglist__5905 = cljs.core.next(arglist__5905);
var y = cljs.core.first(arglist__5905);
var more = cljs.core.rest(arglist__5905);
return G__5904__delegate(k, x, y, more)
};
G__5904.cljs$core$IFn$_invoke$arity$variadic = G__5904__delegate;
return G__5904
}();
min_key = function(k, x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return min_key__2.call(this, k, x);
case 3:
return min_key__3.call(this, k, x, y);
default:
return min_key__4.cljs$core$IFn$_invoke$arity$variadic(k, x, y, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
min_key.cljs$lang$maxFixedArity = 3;
min_key.cljs$lang$applyTo = min_key__4.cljs$lang$applyTo;
min_key.cljs$core$IFn$_invoke$arity$2 = min_key__2;
min_key.cljs$core$IFn$_invoke$arity$3 = min_key__3;
min_key.cljs$core$IFn$_invoke$arity$variadic = min_key__4.cljs$core$IFn$_invoke$arity$variadic;
return min_key
}();
cljs.core.partition_all = function() {
var partition_all = null;
var partition_all__2 = function(n, coll) {
return partition_all.call(null, n, n, coll)
};
var partition_all__3 = function(n, step, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
return cljs.core.cons.call(null, cljs.core.take.call(null, n, s), partition_all.call(null, n, step, cljs.core.drop.call(null, step, s)))
}else {
return null
}
}, null)
};
partition_all = function(n, step, coll) {
switch(arguments.length) {
case 2:
return partition_all__2.call(this, n, step);
case 3:
return partition_all__3.call(this, n, step, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
partition_all.cljs$core$IFn$_invoke$arity$2 = partition_all__2;
partition_all.cljs$core$IFn$_invoke$arity$3 = partition_all__3;
return partition_all
}();
cljs.core.take_while = function take_while(pred, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
if(cljs.core.truth_(pred.call(null, cljs.core.first.call(null, s)))) {
return cljs.core.cons.call(null, cljs.core.first.call(null, s), take_while.call(null, pred, cljs.core.rest.call(null, s)))
}else {
return null
}
}else {
return null
}
}, null)
};
cljs.core.mk_bound_fn = function mk_bound_fn(sc, test, key) {
return function(e) {
var comp = cljs.core._comparator.call(null, sc);
return test.call(null, comp.call(null, cljs.core._entry_key.call(null, sc, e), key), 0)
}
};
cljs.core.subseq = function() {
var subseq = null;
var subseq__3 = function(sc, test, key) {
var include = cljs.core.mk_bound_fn.call(null, sc, test, key);
if(cljs.core.truth_(cljs.core.PersistentHashSet.fromArray([cljs.core._GT_, null, cljs.core._GT__EQ_, null], true).call(null, test))) {
var temp__4092__auto__ = cljs.core._sorted_seq_from.call(null, sc, key, true);
if(cljs.core.truth_(temp__4092__auto__)) {
var vec__5908 = temp__4092__auto__;
var e = cljs.core.nth.call(null, vec__5908, 0, null);
var s = vec__5908;
if(cljs.core.truth_(include.call(null, e))) {
return s
}else {
return cljs.core.next.call(null, s)
}
}else {
return null
}
}else {
return cljs.core.take_while.call(null, include, cljs.core._sorted_seq.call(null, sc, true))
}
};
var subseq__5 = function(sc, start_test, start_key, end_test, end_key) {
var temp__4092__auto__ = cljs.core._sorted_seq_from.call(null, sc, start_key, true);
if(cljs.core.truth_(temp__4092__auto__)) {
var vec__5909 = temp__4092__auto__;
var e = cljs.core.nth.call(null, vec__5909, 0, null);
var s = vec__5909;
return cljs.core.take_while.call(null, cljs.core.mk_bound_fn.call(null, sc, end_test, end_key), cljs.core.truth_(cljs.core.mk_bound_fn.call(null, sc, start_test, start_key).call(null, e)) ? s : cljs.core.next.call(null, s))
}else {
return null
}
};
subseq = function(sc, start_test, start_key, end_test, end_key) {
switch(arguments.length) {
case 3:
return subseq__3.call(this, sc, start_test, start_key);
case 5:
return subseq__5.call(this, sc, start_test, start_key, end_test, end_key)
}
throw new Error("Invalid arity: " + arguments.length);
};
subseq.cljs$core$IFn$_invoke$arity$3 = subseq__3;
subseq.cljs$core$IFn$_invoke$arity$5 = subseq__5;
return subseq
}();
cljs.core.rsubseq = function() {
var rsubseq = null;
var rsubseq__3 = function(sc, test, key) {
var include = cljs.core.mk_bound_fn.call(null, sc, test, key);
if(cljs.core.truth_(cljs.core.PersistentHashSet.fromArray([cljs.core._LT_, null, cljs.core._LT__EQ_, null], true).call(null, test))) {
var temp__4092__auto__ = cljs.core._sorted_seq_from.call(null, sc, key, false);
if(cljs.core.truth_(temp__4092__auto__)) {
var vec__5912 = temp__4092__auto__;
var e = cljs.core.nth.call(null, vec__5912, 0, null);
var s = vec__5912;
if(cljs.core.truth_(include.call(null, e))) {
return s
}else {
return cljs.core.next.call(null, s)
}
}else {
return null
}
}else {
return cljs.core.take_while.call(null, include, cljs.core._sorted_seq.call(null, sc, false))
}
};
var rsubseq__5 = function(sc, start_test, start_key, end_test, end_key) {
var temp__4092__auto__ = cljs.core._sorted_seq_from.call(null, sc, end_key, false);
if(cljs.core.truth_(temp__4092__auto__)) {
var vec__5913 = temp__4092__auto__;
var e = cljs.core.nth.call(null, vec__5913, 0, null);
var s = vec__5913;
return cljs.core.take_while.call(null, cljs.core.mk_bound_fn.call(null, sc, start_test, start_key), cljs.core.truth_(cljs.core.mk_bound_fn.call(null, sc, end_test, end_key).call(null, e)) ? s : cljs.core.next.call(null, s))
}else {
return null
}
};
rsubseq = function(sc, start_test, start_key, end_test, end_key) {
switch(arguments.length) {
case 3:
return rsubseq__3.call(this, sc, start_test, start_key);
case 5:
return rsubseq__5.call(this, sc, start_test, start_key, end_test, end_key)
}
throw new Error("Invalid arity: " + arguments.length);
};
rsubseq.cljs$core$IFn$_invoke$arity$3 = rsubseq__3;
rsubseq.cljs$core$IFn$_invoke$arity$5 = rsubseq__5;
return rsubseq
}();
goog.provide("cljs.core.Range");
cljs.core.Range = function(meta, start, end, step, __hash) {
this.meta = meta;
this.start = start;
this.end = end;
this.step = step;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32375006
};
cljs.core.Range.cljs$lang$type = true;
cljs.core.Range.cljs$lang$ctorStr = "cljs.core/Range";
cljs.core.Range.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Range")
};
cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1 = function(rng) {
var self__ = this;
var h__2768__auto__ = self__.__hash;
if(!(h__2768__auto__ == null)) {
return h__2768__auto__
}else {
var h__2768__auto____$1 = cljs.core.hash_coll.call(null, rng);
self__.__hash = h__2768__auto____$1;
return h__2768__auto____$1
}
};
cljs.core.Range.prototype.cljs$core$INext$_next$arity$1 = function(rng) {
var self__ = this;
if(self__.step > 0) {
if(self__.start + self__.step < self__.end) {
return new cljs.core.Range(self__.meta, self__.start + self__.step, self__.end, self__.step, null)
}else {
return null
}
}else {
if(self__.start + self__.step > self__.end) {
return new cljs.core.Range(self__.meta, self__.start + self__.step, self__.end, self__.step, null)
}else {
return null
}
}
};
cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2 = function(rng, o) {
var self__ = this;
return cljs.core.cons.call(null, o, rng)
};
cljs.core.Range.prototype.toString = function() {
var self__ = this;
var coll = this;
return cljs.core.pr_str_STAR_.call(null, coll)
};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2 = function(rng, f) {
var self__ = this;
return cljs.core.ci_reduce.call(null, rng, f)
};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$3 = function(rng, f, s) {
var self__ = this;
return cljs.core.ci_reduce.call(null, rng, f, s)
};
cljs.core.Range.prototype.cljs$core$ISeqable$_seq$arity$1 = function(rng) {
var self__ = this;
if(self__.step > 0) {
if(self__.start < self__.end) {
return rng
}else {
return null
}
}else {
if(self__.start > self__.end) {
return rng
}else {
return null
}
}
};
cljs.core.Range.prototype.cljs$core$ICounted$_count$arity$1 = function(rng) {
var self__ = this;
if(cljs.core.not.call(null, rng.cljs$core$ISeqable$_seq$arity$1(rng))) {
return 0
}else {
return Math.ceil((self__.end - self__.start) / self__.step)
}
};
cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1 = function(rng) {
var self__ = this;
return self__.start
};
cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1 = function(rng) {
var self__ = this;
if(!(rng.cljs$core$ISeqable$_seq$arity$1(rng) == null)) {
return new cljs.core.Range(self__.meta, self__.start + self__.step, self__.end, self__.step, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(rng, other) {
var self__ = this;
return cljs.core.equiv_sequential.call(null, rng, other)
};
cljs.core.Range.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(rng, meta__$1) {
var self__ = this;
return new cljs.core.Range(meta__$1, self__.start, self__.end, self__.step, self__.__hash)
};
cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1 = function(rng) {
var self__ = this;
return self__.meta
};
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$2 = function(rng, n) {
var self__ = this;
if(n < rng.cljs$core$ICounted$_count$arity$1(rng)) {
return self__.start + n * self__.step
}else {
if(function() {
var and__3941__auto__ = self__.start > self__.end;
if(and__3941__auto__) {
return self__.step === 0
}else {
return and__3941__auto__
}
}()) {
return self__.start
}else {
throw new Error("Index out of bounds");
}
}
};
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$3 = function(rng, n, not_found) {
var self__ = this;
if(n < rng.cljs$core$ICounted$_count$arity$1(rng)) {
return self__.start + n * self__.step
}else {
if(function() {
var and__3941__auto__ = self__.start > self__.end;
if(and__3941__auto__) {
return self__.step === 0
}else {
return and__3941__auto__
}
}()) {
return self__.start
}else {
return not_found
}
}
};
cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(rng) {
var self__ = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, self__.meta)
};
cljs.core.range = function() {
var range = null;
var range__0 = function() {
return range.call(null, 0, Number.MAX_VALUE, 1)
};
var range__1 = function(end) {
return range.call(null, 0, end, 1)
};
var range__2 = function(start, end) {
return range.call(null, start, end, 1)
};
var range__3 = function(start, end, step) {
return new cljs.core.Range(null, start, end, step, null)
};
range = function(start, end, step) {
switch(arguments.length) {
case 0:
return range__0.call(this);
case 1:
return range__1.call(this, start);
case 2:
return range__2.call(this, start, end);
case 3:
return range__3.call(this, start, end, step)
}
throw new Error("Invalid arity: " + arguments.length);
};
range.cljs$core$IFn$_invoke$arity$0 = range__0;
range.cljs$core$IFn$_invoke$arity$1 = range__1;
range.cljs$core$IFn$_invoke$arity$2 = range__2;
range.cljs$core$IFn$_invoke$arity$3 = range__3;
return range
}();
cljs.core.take_nth = function take_nth(n, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
return cljs.core.cons.call(null, cljs.core.first.call(null, s), take_nth.call(null, n, cljs.core.drop.call(null, n, s)))
}else {
return null
}
}, null)
};
cljs.core.split_with = function split_with(pred, coll) {
return cljs.core.PersistentVector.fromArray([cljs.core.take_while.call(null, pred, coll), cljs.core.drop_while.call(null, pred, coll)], true)
};
cljs.core.partition_by = function partition_by(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
var fst = cljs.core.first.call(null, s);
var fv = f.call(null, fst);
var run = cljs.core.cons.call(null, fst, cljs.core.take_while.call(null, function(fst, fv) {
return function(p1__5914_SHARP_) {
return cljs.core._EQ_.call(null, fv, f.call(null, p1__5914_SHARP_))
}
}(fst, fv), cljs.core.next.call(null, s)));
return cljs.core.cons.call(null, run, partition_by.call(null, f, cljs.core.seq.call(null, cljs.core.drop.call(null, cljs.core.count.call(null, run), s))))
}else {
return null
}
}, null)
};
cljs.core.frequencies = function frequencies(coll) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, function(counts, x) {
return cljs.core.assoc_BANG_.call(null, counts, x, cljs.core.get.call(null, counts, x, 0) + 1)
}, cljs.core.transient$.call(null, cljs.core.ObjMap.EMPTY), coll))
};
cljs.core.reductions = function() {
var reductions = null;
var reductions__2 = function(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__4090__auto__ = cljs.core.seq.call(null, coll);
if(temp__4090__auto__) {
var s = temp__4090__auto__;
return reductions.call(null, f, cljs.core.first.call(null, s), cljs.core.rest.call(null, s))
}else {
return cljs.core.list.call(null, f.call(null))
}
}, null)
};
var reductions__3 = function(f, init, coll) {
return cljs.core.cons.call(null, init, new cljs.core.LazySeq(null, false, function() {
var temp__4092__auto__ = cljs.core.seq.call(null, coll);
if(temp__4092__auto__) {
var s = temp__4092__auto__;
return reductions.call(null, f, f.call(null, init, cljs.core.first.call(null, s)), cljs.core.rest.call(null, s))
}else {
return null
}
}, null))
};
reductions = function(f, init, coll) {
switch(arguments.length) {
case 2:
return reductions__2.call(this, f, init);
case 3:
return reductions__3.call(this, f, init, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
reductions.cljs$core$IFn$_invoke$arity$2 = reductions__2;
reductions.cljs$core$IFn$_invoke$arity$3 = reductions__3;
return reductions
}();
cljs.core.juxt = function() {
var juxt = null;
var juxt__1 = function(f) {
return function() {
var G__5925 = null;
var G__5925__0 = function() {
return cljs.core.vector.call(null, f.call(null))
};
var G__5925__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x))
};
var G__5925__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y))
};
var G__5925__3 = function(x, y, z) {
return cljs.core.vector.call(null, f.call(null, x, y, z))
};
var G__5925__4 = function() {
var G__5926__delegate = function(x, y, z, args) {
return cljs.core.vector.call(null, cljs.core.apply.call(null, f, x, y, z, args))
};
var G__5926 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5926__delegate.call(this, x, y, z, args)
};
G__5926.cljs$lang$maxFixedArity = 3;
G__5926.cljs$lang$applyTo = function(arglist__5927) {
var x = cljs.core.first(arglist__5927);
arglist__5927 = cljs.core.next(arglist__5927);
var y = cljs.core.first(arglist__5927);
arglist__5927 = cljs.core.next(arglist__5927);
var z = cljs.core.first(arglist__5927);
var args = cljs.core.rest(arglist__5927);
return G__5926__delegate(x, y, z, args)
};
G__5926.cljs$core$IFn$_invoke$arity$variadic = G__5926__delegate;
return G__5926
}();
G__5925 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__5925__0.call(this);
case 1:
return G__5925__1.call(this, x);
case 2:
return G__5925__2.call(this, x, y);
case 3:
return G__5925__3.call(this, x, y, z);
default:
return G__5925__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5925.cljs$lang$maxFixedArity = 3;
G__5925.cljs$lang$applyTo = G__5925__4.cljs$lang$applyTo;
return G__5925
}()
};
var juxt__2 = function(f, g) {
return function() {
var G__5928 = null;
var G__5928__0 = function() {
return cljs.core.vector.call(null, f.call(null), g.call(null))
};
var G__5928__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x), g.call(null, x))
};
var G__5928__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y), g.call(null, x, y))
};
var G__5928__3 = function(x, y, z) {
return cljs.core.vector.call(null, f.call(null, x, y, z), g.call(null, x, y, z))
};
var G__5928__4 = function() {
var G__5929__delegate = function(x, y, z, args) {
return cljs.core.vector.call(null, cljs.core.apply.call(null, f, x, y, z, args), cljs.core.apply.call(null, g, x, y, z, args))
};
var G__5929 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5929__delegate.call(this, x, y, z, args)
};
G__5929.cljs$lang$maxFixedArity = 3;
G__5929.cljs$lang$applyTo = function(arglist__5930) {
var x = cljs.core.first(arglist__5930);
arglist__5930 = cljs.core.next(arglist__5930);
var y = cljs.core.first(arglist__5930);
arglist__5930 = cljs.core.next(arglist__5930);
var z = cljs.core.first(arglist__5930);
var args = cljs.core.rest(arglist__5930);
return G__5929__delegate(x, y, z, args)
};
G__5929.cljs$core$IFn$_invoke$arity$variadic = G__5929__delegate;
return G__5929
}();
G__5928 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__5928__0.call(this);
case 1:
return G__5928__1.call(this, x);
case 2:
return G__5928__2.call(this, x, y);
case 3:
return G__5928__3.call(this, x, y, z);
default:
return G__5928__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5928.cljs$lang$maxFixedArity = 3;
G__5928.cljs$lang$applyTo = G__5928__4.cljs$lang$applyTo;
return G__5928
}()
};
var juxt__3 = function(f, g, h) {
return function() {
var G__5931 = null;
var G__5931__0 = function() {
return cljs.core.vector.call(null, f.call(null), g.call(null), h.call(null))
};
var G__5931__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x), g.call(null, x), h.call(null, x))
};
var G__5931__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y), g.call(null, x, y), h.call(null, x, y))
};
var G__5931__3 = function(x, y, z) {
return cljs.core.vector.call(null, f.call(null, x, y, z), g.call(null, x, y, z), h.call(null, x, y, z))
};
var G__5931__4 = function() {
var G__5932__delegate = function(x, y, z, args) {
return cljs.core.vector.call(null, cljs.core.apply.call(null, f, x, y, z, args), cljs.core.apply.call(null, g, x, y, z, args), cljs.core.apply.call(null, h, x, y, z, args))
};
var G__5932 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5932__delegate.call(this, x, y, z, args)
};
G__5932.cljs$lang$maxFixedArity = 3;
G__5932.cljs$lang$applyTo = function(arglist__5933) {
var x = cljs.core.first(arglist__5933);
arglist__5933 = cljs.core.next(arglist__5933);
var y = cljs.core.first(arglist__5933);
arglist__5933 = cljs.core.next(arglist__5933);
var z = cljs.core.first(arglist__5933);
var args = cljs.core.rest(arglist__5933);
return G__5932__delegate(x, y, z, args)
};
G__5932.cljs$core$IFn$_invoke$arity$variadic = G__5932__delegate;
return G__5932
}();
G__5931 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__5931__0.call(this);
case 1:
return G__5931__1.call(this, x);
case 2:
return G__5931__2.call(this, x, y);
case 3:
return G__5931__3.call(this, x, y, z);
default:
return G__5931__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5931.cljs$lang$maxFixedArity = 3;
G__5931.cljs$lang$applyTo = G__5931__4.cljs$lang$applyTo;
return G__5931
}()
};
var juxt__4 = function() {
var G__5934__delegate = function(f, g, h, fs) {
var fs__$1 = cljs.core.list_STAR_.call(null, f, g, h, fs);
return function() {
var G__5935 = null;
var G__5935__0 = function() {
return cljs.core.reduce.call(null, function(p1__5915_SHARP_, p2__5916_SHARP_) {
return cljs.core.conj.call(null, p1__5915_SHARP_, p2__5916_SHARP_.call(null))
}, cljs.core.PersistentVector.EMPTY, fs__$1)
};
var G__5935__1 = function(x) {
return cljs.core.reduce.call(null, function(p1__5917_SHARP_, p2__5918_SHARP_) {
return cljs.core.conj.call(null, p1__5917_SHARP_, p2__5918_SHARP_.call(null, x))
}, cljs.core.PersistentVector.EMPTY, fs__$1)
};
var G__5935__2 = function(x, y) {
return cljs.core.reduce.call(null, function(p1__5919_SHARP_, p2__5920_SHARP_) {
return cljs.core.conj.call(null, p1__5919_SHARP_, p2__5920_SHARP_.call(null, x, y))
}, cljs.core.PersistentVector.EMPTY, fs__$1)
};
var G__5935__3 = function(x, y, z) {
return cljs.core.reduce.call(null, function(p1__5921_SHARP_, p2__5922_SHARP_) {
return cljs.core.conj.call(null, p1__5921_SHARP_, p2__5922_SHARP_.call(null, x, y, z))
}, cljs.core.PersistentVector.EMPTY, fs__$1)
};
var G__5935__4 = function() {
var G__5936__delegate = function(x, y, z, args) {
return cljs.core.reduce.call(null, function(p1__5923_SHARP_, p2__5924_SHARP_) {
return cljs.core.conj.call(null, p1__5923_SHARP_, cljs.core.apply.call(null, p2__5924_SHARP_, x, y, z, args))
}, cljs.core.PersistentVector.EMPTY, fs__$1)
};
var G__5936 = function(x, y, z, var_args) {
var args = null;
if(arguments.length > 3) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5936__delegate.call(this, x, y, z, args)
};
G__5936.cljs$lang$maxFixedArity = 3;
G__5936.cljs$lang$applyTo = function(arglist__5937) {
var x = cljs.core.first(arglist__5937);
arglist__5937 = cljs.core.next(arglist__5937);
var y = cljs.core.first(arglist__5937);
arglist__5937 = cljs.core.next(arglist__5937);
var z = cljs.core.first(arglist__5937);
var args = cljs.core.rest(arglist__5937);
return G__5936__delegate(x, y, z, args)
};
G__5936.cljs$core$IFn$_invoke$arity$variadic = G__5936__delegate;
return G__5936
}();
G__5935 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__5935__0.call(this);
case 1:
return G__5935__1.call(this, x);
case 2:
return G__5935__2.call(this, x, y);
case 3:
return G__5935__3.call(this, x, y, z);
default:
return G__5935__4.cljs$core$IFn$_invoke$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
G__5935.cljs$lang$maxFixedArity = 3;
G__5935.cljs$lang$applyTo = G__5935__4.cljs$lang$applyTo;
return G__5935
}()
};
var G__5934 = function(f, g, h, var_args) {
var fs = null;
if(arguments.length > 3) {
fs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__5934__delegate.call(this, f, g, h, fs)
};
G__5934.cljs$lang$maxFixedArity = 3;
G__5934.cljs$lang$applyTo = function(arglist__5938) {
var f = cljs.core.first(arglist__5938);
arglist__5938 = cljs.core.next(arglist__5938);
var g = cljs.core.first(arglist__5938);
arglist__5938 = cljs.core.next(arglist__5938);
var h = cljs.core.first(arglist__5938);
var fs = cljs.core.rest(arglist__5938);
return G__5934__delegate(f, g, h, fs)
};
G__5934.cljs$core$IFn$_invoke$arity$variadic = G__5934__delegate;
return G__5934
}();
juxt = function(f, g, h, var_args) {
var fs = var_args;
switch(arguments.length) {
case 1:
return juxt__1.call(this, f);
case 2:
return juxt__2.call(this, f, g);
case 3:
return juxt__3.call(this, f, g, h);
default:
return juxt__4.cljs$core$IFn$_invoke$arity$variadic(f, g, h, cljs.core.array_seq(arguments, 3))
}
throw new Error("Invalid arity: " + arguments.length);
};
juxt.cljs$lang$maxFixedArity = 3;
juxt.cljs$lang$applyTo = juxt__4.cljs$lang$applyTo;
juxt.cljs$core$IFn$_invoke$arity$1 = juxt__1;
juxt.cljs$core$IFn$_invoke$arity$2 = juxt__2;
juxt.cljs$core$IFn$_invoke$arity$3 = juxt__3;
juxt.cljs$core$IFn$_invoke$arity$variadic = juxt__4.cljs$core$IFn$_invoke$arity$variadic;
return juxt
}();
cljs.core.dorun = function() {
var dorun = null;
var dorun__1 = function(coll) {
while(true) {
if(cljs.core.seq.call(null, coll)) {
var G__5939 = cljs.core.next.call(null, coll);
coll = G__5939;
continue
}else {
return null
}
break
}
};
var dorun__2 = function(n, coll) {
while(true) {
if(cljs.core.truth_(function() {
var and__3941__auto__ = cljs.core.seq.call(null, coll);
if(and__3941__auto__) {
return n > 0
}else {
return and__3941__auto__
}
}())) {
var G__5940 = n - 1;
var G__5941 = cljs.core.next.call(null, coll);
n = G__5940;
coll = G__5941;
continue
}else {
return null
}
break
}
};
dorun = function(n, coll) {
switch(arguments.length) {
case 1:
return dorun__1.call(this, n);
case 2:
return dorun__2.call(this, n, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
dorun.cljs$core$IFn$_invoke$arity$1 = dorun__1;
dorun.cljs$core$IFn$_invoke$arity$2 = dorun__2;
return dorun
}();
cljs.core.doall = function() {
var doall = null;
var doall__1 = function(coll) {
cljs.core.dorun.call(null, coll);
return coll
};
var doall__2 = function(n, coll) {
cljs.core.dorun.call(null, n, coll);
return coll
};
doall = function(n, coll) {
switch(arguments.length) {
case 1:
return doall__1.call(this, n);
case 2:
return doall__2.call(this, n, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
doall.cljs$core$IFn$_invoke$arity$1 = doall__1;
doall.cljs$core$IFn$_invoke$arity$2 = doall__2;
return doall
}();
cljs.core.regexp_QMARK_ = function regexp_QMARK_(o) {
return o instanceof RegExp
};
cljs.core.re_matches = function re_matches(re, s) {
var matches = re.exec(s);
if(cljs.core._EQ_.call(null, cljs.core.first.call(null, matches), s)) {
if(cljs.core.count.call(null, matches) === 1) {
return cljs.core.first.call(null, matches)
}else {
return cljs.core.vec.call(null, matches)
}
}else {
return null
}
};
cljs.core.re_find = function re_find(re, s) {
var matches = re.exec(s);
if(matches == null) {
return null
}else {
if(cljs.core.count.call(null, matches) === 1) {
return cljs.core.first.call(null, matches)
}else {
return cljs.core.vec.call(null, matches)
}
}
};
cljs.core.re_seq = function re_seq(re, s) {
var match_data = cljs.core.re_find.call(null, re, s);
var match_idx = s.search(re);
var match_str = cljs.core.coll_QMARK_.call(null, match_data) ? cljs.core.first.call(null, match_data) : match_data;
var post_match = cljs.core.subs.call(null, s, match_idx + cljs.core.count.call(null, match_str));
if(cljs.core.truth_(match_data)) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, match_data, re_seq.call(null, re, post_match))
}, null)
}else {
return null
}
};
cljs.core.re_pattern = function re_pattern(s) {
var vec__5943 = cljs.core.re_find.call(null, /^(?:\(\?([idmsux]*)\))?(.*)/, s);
var _ = cljs.core.nth.call(null, vec__5943, 0, null);
var flags = cljs.core.nth.call(null, vec__5943, 1, null);
var pattern = cljs.core.nth.call(null, vec__5943, 2, null);
return new RegExp(pattern, flags)
};
cljs.core.pr_sequential_writer = function pr_sequential_writer(writer, print_one, begin, sep, end, opts, coll) {
cljs.core._write.call(null, writer, begin);
if(cljs.core.seq.call(null, coll)) {
print_one.call(null, cljs.core.first.call(null, coll), writer, opts)
}else {
}
var seq__5948_5952 = cljs.core.seq.call(null, cljs.core.next.call(null, coll));
var chunk__5949_5953 = null;
var count__5950_5954 = 0;
var i__5951_5955 = 0;
while(true) {
if(i__5951_5955 < count__5950_5954) {
var o_5956 = cljs.core._nth.call(null, chunk__5949_5953, i__5951_5955);
cljs.core._write.call(null, writer, sep);
print_one.call(null, o_5956, writer, opts);
var G__5957 = seq__5948_5952;
var G__5958 = chunk__5949_5953;
var G__5959 = count__5950_5954;
var G__5960 = i__5951_5955 + 1;
seq__5948_5952 = G__5957;
chunk__5949_5953 = G__5958;
count__5950_5954 = G__5959;
i__5951_5955 = G__5960;
continue
}else {
var temp__4092__auto___5961 = cljs.core.seq.call(null, seq__5948_5952);
if(temp__4092__auto___5961) {
var seq__5948_5962__$1 = temp__4092__auto___5961;
if(cljs.core.chunked_seq_QMARK_.call(null, seq__5948_5962__$1)) {
var c__3073__auto___5963 = cljs.core.chunk_first.call(null, seq__5948_5962__$1);
var G__5964 = cljs.core.chunk_rest.call(null, seq__5948_5962__$1);
var G__5965 = c__3073__auto___5963;
var G__5966 = cljs.core.count.call(null, c__3073__auto___5963);
var G__5967 = 0;
seq__5948_5952 = G__5964;
chunk__5949_5953 = G__5965;
count__5950_5954 = G__5966;
i__5951_5955 = G__5967;
continue
}else {
var o_5968 = cljs.core.first.call(null, seq__5948_5962__$1);
cljs.core._write.call(null, writer, sep);
print_one.call(null, o_5968, writer, opts);
var G__5969 = cljs.core.next.call(null, seq__5948_5962__$1);
var G__5970 = null;
var G__5971 = 0;
var G__5972 = 0;
seq__5948_5952 = G__5969;
chunk__5949_5953 = G__5970;
count__5950_5954 = G__5971;
i__5951_5955 = G__5972;
continue
}
}else {
}
}
break
}
return cljs.core._write.call(null, writer, end)
};
cljs.core.write_all = function() {
var write_all__delegate = function(writer, ss) {
var seq__5977 = cljs.core.seq.call(null, ss);
var chunk__5978 = null;
var count__5979 = 0;
var i__5980 = 0;
while(true) {
if(i__5980 < count__5979) {
var s = cljs.core._nth.call(null, chunk__5978, i__5980);
cljs.core._write.call(null, writer, s);
var G__5981 = seq__5977;
var G__5982 = chunk__5978;
var G__5983 = count__5979;
var G__5984 = i__5980 + 1;
seq__5977 = G__5981;
chunk__5978 = G__5982;
count__5979 = G__5983;
i__5980 = G__5984;
continue
}else {
var temp__4092__auto__ = cljs.core.seq.call(null, seq__5977);
if(temp__4092__auto__) {
var seq__5977__$1 = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, seq__5977__$1)) {
var c__3073__auto__ = cljs.core.chunk_first.call(null, seq__5977__$1);
var G__5985 = cljs.core.chunk_rest.call(null, seq__5977__$1);
var G__5986 = c__3073__auto__;
var G__5987 = cljs.core.count.call(null, c__3073__auto__);
var G__5988 = 0;
seq__5977 = G__5985;
chunk__5978 = G__5986;
count__5979 = G__5987;
i__5980 = G__5988;
continue
}else {
var s = cljs.core.first.call(null, seq__5977__$1);
cljs.core._write.call(null, writer, s);
var G__5989 = cljs.core.next.call(null, seq__5977__$1);
var G__5990 = null;
var G__5991 = 0;
var G__5992 = 0;
seq__5977 = G__5989;
chunk__5978 = G__5990;
count__5979 = G__5991;
i__5980 = G__5992;
continue
}
}else {
return null
}
}
break
}
};
var write_all = function(writer, var_args) {
var ss = null;
if(arguments.length > 1) {
ss = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return write_all__delegate.call(this, writer, ss)
};
write_all.cljs$lang$maxFixedArity = 1;
write_all.cljs$lang$applyTo = function(arglist__5993) {
var writer = cljs.core.first(arglist__5993);
var ss = cljs.core.rest(arglist__5993);
return write_all__delegate(writer, ss)
};
write_all.cljs$core$IFn$_invoke$arity$variadic = write_all__delegate;
return write_all
}();
cljs.core.string_print = function string_print(x) {
cljs.core._STAR_print_fn_STAR_.call(null, x);
return null
};
cljs.core.flush = function flush() {
return null
};
cljs.core.char_escapes = {'"':'\\"', "\\":"\\\\", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t"};
cljs.core.quote_string = function quote_string(s) {
return[cljs.core.str('"'), cljs.core.str(s.replace(RegExp('[\\\\"\b\f\n\r\t]', "g"), function(match) {
return cljs.core.char_escapes[match]
})), cljs.core.str('"')].join("")
};
cljs.core.pr_writer = function pr_writer(obj, writer, opts) {
if(obj == null) {
return cljs.core._write.call(null, writer, "nil")
}else {
if(void 0 === obj) {
return cljs.core._write.call(null, writer, "#<undefined>")
}else {
if("\ufdd0:else") {
if(cljs.core.truth_(function() {
var and__3941__auto__ = cljs.core.get.call(null, opts, "\ufdd0:meta");
if(cljs.core.truth_(and__3941__auto__)) {
var and__3941__auto____$1 = function() {
var G__5996 = obj;
if(G__5996) {
if(function() {
var or__3943__auto__ = G__5996.cljs$lang$protocol_mask$partition0$ & 131072;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5996.cljs$core$IMeta$
}
}()) {
return true
}else {
if(!G__5996.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__5996)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__5996)
}
}();
if(cljs.core.truth_(and__3941__auto____$1)) {
return cljs.core.meta.call(null, obj)
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}())) {
cljs.core._write.call(null, writer, "^");
pr_writer.call(null, cljs.core.meta.call(null, obj), writer, opts);
cljs.core._write.call(null, writer, " ")
}else {
}
if(obj == null) {
return cljs.core._write.call(null, writer, "nil")
}else {
if(obj.cljs$lang$type) {
return obj.cljs$lang$ctorPrWriter(obj, writer, opts)
}else {
if(function() {
var G__5997 = obj;
if(G__5997) {
if(function() {
var or__3943__auto__ = G__5997.cljs$lang$protocol_mask$partition0$ & 2147483648;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return G__5997.cljs$core$IPrintWithWriter$
}
}()) {
return true
}else {
return false
}
}else {
return false
}
}()) {
return cljs.core._pr_writer.call(null, obj, writer, opts)
}else {
if(function() {
var or__3943__auto__ = cljs.core.type.call(null, obj) === Boolean;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return typeof obj === "number"
}
}()) {
return cljs.core._write.call(null, writer, [cljs.core.str(obj)].join(""))
}else {
if(obj instanceof Array) {
return cljs.core.pr_sequential_writer.call(null, writer, pr_writer, "#<Array [", ", ", "]>", opts, obj)
}else {
if(goog.isString(obj)) {
if(cljs.core.keyword_QMARK_.call(null, obj)) {
cljs.core._write.call(null, writer, ":");
var temp__4092__auto___5998 = cljs.core.namespace.call(null, obj);
if(cljs.core.truth_(temp__4092__auto___5998)) {
var nspc_5999 = temp__4092__auto___5998;
cljs.core.write_all.call(null, writer, [cljs.core.str(nspc_5999)].join(""), "/")
}else {
}
return cljs.core._write.call(null, writer, cljs.core.name.call(null, obj))
}else {
if(obj instanceof cljs.core.Symbol) {
var temp__4092__auto___6000 = cljs.core.namespace.call(null, obj);
if(cljs.core.truth_(temp__4092__auto___6000)) {
var nspc_6001 = temp__4092__auto___6000;
cljs.core.write_all.call(null, writer, [cljs.core.str(nspc_6001)].join(""), "/")
}else {
}
return cljs.core._write.call(null, writer, cljs.core.name.call(null, obj))
}else {
if("\ufdd0:else") {
if(cljs.core.truth_((new cljs.core.Keyword("\ufdd0:readably")).call(null, opts))) {
return cljs.core._write.call(null, writer, cljs.core.quote_string.call(null, obj))
}else {
return cljs.core._write.call(null, writer, obj)
}
}else {
return null
}
}
}
}else {
if(cljs.core.fn_QMARK_.call(null, obj)) {
return cljs.core.write_all.call(null, writer, "#<", [cljs.core.str(obj)].join(""), ">")
}else {
if(obj instanceof Date) {
var normalize = function(n, len) {
var ns = [cljs.core.str(n)].join("");
while(true) {
if(cljs.core.count.call(null, ns) < len) {
var G__6002 = [cljs.core.str("0"), cljs.core.str(ns)].join("");
ns = G__6002;
continue
}else {
return ns
}
break
}
};
return cljs.core.write_all.call(null, writer, '#inst "', [cljs.core.str(obj.getUTCFullYear())].join(""), "-", normalize.call(null, obj.getUTCMonth() + 1, 2), "-", normalize.call(null, obj.getUTCDate(), 2), "T", normalize.call(null, obj.getUTCHours(), 2), ":", normalize.call(null, obj.getUTCMinutes(), 2), ":", normalize.call(null, obj.getUTCSeconds(), 2), ".", normalize.call(null, obj.getUTCMilliseconds(), 3), "-", '00:00"')
}else {
if(cljs.core.truth_(cljs.core.regexp_QMARK_.call(null, obj))) {
return cljs.core.write_all.call(null, writer, '#"', obj.source, '"')
}else {
if("\ufdd0:else") {
return cljs.core.write_all.call(null, writer, "#<", [cljs.core.str(obj)].join(""), ">")
}else {
return null
}
}
}
}
}
}
}
}
}
}
}else {
return null
}
}
}
};
cljs.core.pr_seq_writer = function pr_seq_writer(objs, writer, opts) {
cljs.core.pr_writer.call(null, cljs.core.first.call(null, objs), writer, opts);
var seq__6007 = cljs.core.seq.call(null, cljs.core.next.call(null, objs));
var chunk__6008 = null;
var count__6009 = 0;
var i__6010 = 0;
while(true) {
if(i__6010 < count__6009) {
var obj = cljs.core._nth.call(null, chunk__6008, i__6010);
cljs.core._write.call(null, writer, " ");
cljs.core.pr_writer.call(null, obj, writer, opts);
var G__6011 = seq__6007;
var G__6012 = chunk__6008;
var G__6013 = count__6009;
var G__6014 = i__6010 + 1;
seq__6007 = G__6011;
chunk__6008 = G__6012;
count__6009 = G__6013;
i__6010 = G__6014;
continue
}else {
var temp__4092__auto__ = cljs.core.seq.call(null, seq__6007);
if(temp__4092__auto__) {
var seq__6007__$1 = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, seq__6007__$1)) {
var c__3073__auto__ = cljs.core.chunk_first.call(null, seq__6007__$1);
var G__6015 = cljs.core.chunk_rest.call(null, seq__6007__$1);
var G__6016 = c__3073__auto__;
var G__6017 = cljs.core.count.call(null, c__3073__auto__);
var G__6018 = 0;
seq__6007 = G__6015;
chunk__6008 = G__6016;
count__6009 = G__6017;
i__6010 = G__6018;
continue
}else {
var obj = cljs.core.first.call(null, seq__6007__$1);
cljs.core._write.call(null, writer, " ");
cljs.core.pr_writer.call(null, obj, writer, opts);
var G__6019 = cljs.core.next.call(null, seq__6007__$1);
var G__6020 = null;
var G__6021 = 0;
var G__6022 = 0;
seq__6007 = G__6019;
chunk__6008 = G__6020;
count__6009 = G__6021;
i__6010 = G__6022;
continue
}
}else {
return null
}
}
break
}
};
cljs.core.pr_sb_with_opts = function pr_sb_with_opts(objs, opts) {
var sb = new goog.string.StringBuffer;
var writer = new cljs.core.StringBufferWriter(sb);
cljs.core.pr_seq_writer.call(null, objs, writer, opts);
cljs.core._flush.call(null, writer);
return sb
};
cljs.core.pr_str_with_opts = function pr_str_with_opts(objs, opts) {
if(cljs.core.empty_QMARK_.call(null, objs)) {
return""
}else {
return[cljs.core.str(cljs.core.pr_sb_with_opts.call(null, objs, opts))].join("")
}
};
cljs.core.prn_str_with_opts = function prn_str_with_opts(objs, opts) {
if(cljs.core.empty_QMARK_.call(null, objs)) {
return"\n"
}else {
var sb = cljs.core.pr_sb_with_opts.call(null, objs, opts);
sb.append("\n");
return[cljs.core.str(sb)].join("")
}
};
cljs.core.pr_with_opts = function pr_with_opts(objs, opts) {
return cljs.core.string_print.call(null, cljs.core.pr_str_with_opts.call(null, objs, opts))
};
cljs.core.newline = function newline(opts) {
cljs.core.string_print.call(null, "\n");
if(cljs.core.truth_(cljs.core.get.call(null, opts, "\ufdd0:flush-on-newline"))) {
return cljs.core.flush.call(null)
}else {
return null
}
};
cljs.core.pr_str = function() {
var pr_str__delegate = function(objs) {
return cljs.core.pr_str_with_opts.call(null, objs, cljs.core.pr_opts.call(null))
};
var pr_str = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return pr_str__delegate.call(this, objs)
};
pr_str.cljs$lang$maxFixedArity = 0;
pr_str.cljs$lang$applyTo = function(arglist__6023) {
var objs = cljs.core.seq(arglist__6023);
return pr_str__delegate(objs)
};
pr_str.cljs$core$IFn$_invoke$arity$variadic = pr_str__delegate;
return pr_str
}();
cljs.core.prn_str = function() {
var prn_str__delegate = function(objs) {
return cljs.core.prn_str_with_opts.call(null, objs, cljs.core.pr_opts.call(null))
};
var prn_str = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return prn_str__delegate.call(this, objs)
};
prn_str.cljs$lang$maxFixedArity = 0;
prn_str.cljs$lang$applyTo = function(arglist__6024) {
var objs = cljs.core.seq(arglist__6024);
return prn_str__delegate(objs)
};
prn_str.cljs$core$IFn$_invoke$arity$variadic = prn_str__delegate;
return prn_str
}();
cljs.core.pr = function() {
var pr__delegate = function(objs) {
return cljs.core.pr_with_opts.call(null, objs, cljs.core.pr_opts.call(null))
};
var pr = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return pr__delegate.call(this, objs)
};
pr.cljs$lang$maxFixedArity = 0;
pr.cljs$lang$applyTo = function(arglist__6025) {
var objs = cljs.core.seq(arglist__6025);
return pr__delegate(objs)
};
pr.cljs$core$IFn$_invoke$arity$variadic = pr__delegate;
return pr
}();
cljs.core.print = function() {
var cljs_core_print__delegate = function(objs) {
return cljs.core.pr_with_opts.call(null, objs, cljs.core.assoc.call(null, cljs.core.pr_opts.call(null), "\ufdd0:readably", false))
};
var cljs_core_print = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return cljs_core_print__delegate.call(this, objs)
};
cljs_core_print.cljs$lang$maxFixedArity = 0;
cljs_core_print.cljs$lang$applyTo = function(arglist__6026) {
var objs = cljs.core.seq(arglist__6026);
return cljs_core_print__delegate(objs)
};
cljs_core_print.cljs$core$IFn$_invoke$arity$variadic = cljs_core_print__delegate;
return cljs_core_print
}();
cljs.core.print_str = function() {
var print_str__delegate = function(objs) {
return cljs.core.pr_str_with_opts.call(null, objs, cljs.core.assoc.call(null, cljs.core.pr_opts.call(null), "\ufdd0:readably", false))
};
var print_str = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return print_str__delegate.call(this, objs)
};
print_str.cljs$lang$maxFixedArity = 0;
print_str.cljs$lang$applyTo = function(arglist__6027) {
var objs = cljs.core.seq(arglist__6027);
return print_str__delegate(objs)
};
print_str.cljs$core$IFn$_invoke$arity$variadic = print_str__delegate;
return print_str
}();
cljs.core.println = function() {
var println__delegate = function(objs) {
cljs.core.pr_with_opts.call(null, objs, cljs.core.assoc.call(null, cljs.core.pr_opts.call(null), "\ufdd0:readably", false));
return cljs.core.newline.call(null, cljs.core.pr_opts.call(null))
};
var println = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return println__delegate.call(this, objs)
};
println.cljs$lang$maxFixedArity = 0;
println.cljs$lang$applyTo = function(arglist__6028) {
var objs = cljs.core.seq(arglist__6028);
return println__delegate(objs)
};
println.cljs$core$IFn$_invoke$arity$variadic = println__delegate;
return println
}();
cljs.core.println_str = function() {
var println_str__delegate = function(objs) {
return cljs.core.prn_str_with_opts.call(null, objs, cljs.core.assoc.call(null, cljs.core.pr_opts.call(null), "\ufdd0:readably", false))
};
var println_str = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return println_str__delegate.call(this, objs)
};
println_str.cljs$lang$maxFixedArity = 0;
println_str.cljs$lang$applyTo = function(arglist__6029) {
var objs = cljs.core.seq(arglist__6029);
return println_str__delegate(objs)
};
println_str.cljs$core$IFn$_invoke$arity$variadic = println_str__delegate;
return println_str
}();
cljs.core.prn = function() {
var prn__delegate = function(objs) {
cljs.core.pr_with_opts.call(null, objs, cljs.core.pr_opts.call(null));
return cljs.core.newline.call(null, cljs.core.pr_opts.call(null))
};
var prn = function(var_args) {
var objs = null;
if(arguments.length > 0) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return prn__delegate.call(this, objs)
};
prn.cljs$lang$maxFixedArity = 0;
prn.cljs$lang$applyTo = function(arglist__6030) {
var objs = cljs.core.seq(arglist__6030);
return prn__delegate(objs)
};
prn.cljs$core$IFn$_invoke$arity$variadic = prn__delegate;
return prn
}();
cljs.core.printf = function() {
var printf__delegate = function(fmt, args) {
return cljs.core.print.call(null, cljs.core.apply.call(null, cljs.core.format, fmt, args))
};
var printf = function(fmt, var_args) {
var args = null;
if(arguments.length > 1) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return printf__delegate.call(this, fmt, args)
};
printf.cljs$lang$maxFixedArity = 1;
printf.cljs$lang$applyTo = function(arglist__6031) {
var fmt = cljs.core.first(arglist__6031);
var args = cljs.core.rest(arglist__6031);
return printf__delegate(fmt, args)
};
printf.cljs$core$IFn$_invoke$arity$variadic = printf__delegate;
return printf
}();
cljs.core.IndexedSeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.Subvec.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.Subvec.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "[", " ", "]", opts, coll)
};
cljs.core.ChunkedCons.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.ChunkedCons.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
var pr_pair = function(keyval) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential_writer.call(null, writer, pr_pair, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
var pr_pair = function(keyval) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential_writer.call(null, writer, pr_pair, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentQueue.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentQueue.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "#queue [", " ", "]", opts, cljs.core.seq.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.RSeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.RSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "#{", " ", "}", opts, coll)
};
cljs.core.NodeSeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.NodeSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.RedNode.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.RedNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "[", " ", "]", opts, coll)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.ChunkedSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentHashMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
var pr_pair = function(keyval) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential_writer.call(null, writer, pr_pair, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentHashSet.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentHashSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "#{", " ", "}", opts, coll)
};
cljs.core.PersistentVector.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentVector.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "[", " ", "]", opts, coll)
};
cljs.core.List.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.List.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.EmptyList.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.EmptyList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core._write.call(null, writer, "()")
};
cljs.core.BlackNode.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.BlackNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "[", " ", "]", opts, coll)
};
cljs.core.Cons.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.Cons.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.Range.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.Range.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.ObjMap.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.ObjMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
var pr_pair = function(keyval) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential_writer.call(null, writer, pr_pair, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintWithWriter$ = true;
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(coll, writer, opts) {
return cljs.core.pr_sequential_writer.call(null, writer, cljs.core.pr_writer, "(", " ", ")", opts, coll)
};
cljs.core.PersistentVector.prototype.cljs$core$IComparable$ = true;
cljs.core.PersistentVector.prototype.cljs$core$IComparable$_compare$arity$2 = function(x, y) {
return cljs.core.compare_indexed.call(null, x, y)
};
cljs.core.Subvec.prototype.cljs$core$IComparable$ = true;
cljs.core.Subvec.prototype.cljs$core$IComparable$_compare$arity$2 = function(x, y) {
return cljs.core.compare_indexed.call(null, x, y)
};
goog.provide("cljs.core.Atom");
cljs.core.Atom = function(state, meta, validator, watches) {
this.state = state;
this.meta = meta;
this.validator = validator;
this.watches = watches;
this.cljs$lang$protocol_mask$partition0$ = 2153938944;
this.cljs$lang$protocol_mask$partition1$ = 2
};
cljs.core.Atom.cljs$lang$type = true;
cljs.core.Atom.cljs$lang$ctorStr = "cljs.core/Atom";
cljs.core.Atom.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Atom")
};
cljs.core.Atom.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var self__ = this;
return goog.getUid(this$)
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = function(this$, oldval, newval) {
var self__ = this;
var seq__6032 = cljs.core.seq.call(null, self__.watches);
var chunk__6033 = null;
var count__6034 = 0;
var i__6035 = 0;
while(true) {
if(i__6035 < count__6034) {
var vec__6036 = cljs.core._nth.call(null, chunk__6033, i__6035);
var key = cljs.core.nth.call(null, vec__6036, 0, null);
var f = cljs.core.nth.call(null, vec__6036, 1, null);
f.call(null, key, this$, oldval, newval);
var G__6038 = seq__6032;
var G__6039 = chunk__6033;
var G__6040 = count__6034;
var G__6041 = i__6035 + 1;
seq__6032 = G__6038;
chunk__6033 = G__6039;
count__6034 = G__6040;
i__6035 = G__6041;
continue
}else {
var temp__4092__auto__ = cljs.core.seq.call(null, seq__6032);
if(temp__4092__auto__) {
var seq__6032__$1 = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, seq__6032__$1)) {
var c__3073__auto__ = cljs.core.chunk_first.call(null, seq__6032__$1);
var G__6042 = cljs.core.chunk_rest.call(null, seq__6032__$1);
var G__6043 = c__3073__auto__;
var G__6044 = cljs.core.count.call(null, c__3073__auto__);
var G__6045 = 0;
seq__6032 = G__6042;
chunk__6033 = G__6043;
count__6034 = G__6044;
i__6035 = G__6045;
continue
}else {
var vec__6037 = cljs.core.first.call(null, seq__6032__$1);
var key = cljs.core.nth.call(null, vec__6037, 0, null);
var f = cljs.core.nth.call(null, vec__6037, 1, null);
f.call(null, key, this$, oldval, newval);
var G__6046 = cljs.core.next.call(null, seq__6032__$1);
var G__6047 = null;
var G__6048 = 0;
var G__6049 = 0;
seq__6032 = G__6046;
chunk__6033 = G__6047;
count__6034 = G__6048;
i__6035 = G__6049;
continue
}
}else {
return null
}
}
break
}
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_add_watch$arity$3 = function(this$, key, f) {
var self__ = this;
return this$.watches = cljs.core.assoc.call(null, self__.watches, key, f)
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = function(this$, key) {
var self__ = this;
return this$.watches = cljs.core.dissoc.call(null, self__.watches, key)
};
cljs.core.Atom.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(a, writer, opts) {
var self__ = this;
cljs.core._write.call(null, writer, "#<Atom: ");
cljs.core.pr_writer.call(null, self__.state, writer, opts);
return cljs.core._write.call(null, writer, ">")
};
cljs.core.Atom.prototype.cljs$core$IMeta$_meta$arity$1 = function(_) {
var self__ = this;
return self__.meta
};
cljs.core.Atom.prototype.cljs$core$IDeref$_deref$arity$1 = function(_) {
var self__ = this;
return self__.state
};
cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var self__ = this;
return o === other
};
cljs.core.atom = function() {
var atom = null;
var atom__1 = function(x) {
return new cljs.core.Atom(x, null, null, null)
};
var atom__2 = function() {
var G__6053__delegate = function(x, p__6050) {
var map__6052 = p__6050;
var map__6052__$1 = cljs.core.seq_QMARK_.call(null, map__6052) ? cljs.core.apply.call(null, cljs.core.hash_map, map__6052) : map__6052;
var validator = cljs.core.get.call(null, map__6052__$1, "\ufdd0:validator");
var meta = cljs.core.get.call(null, map__6052__$1, "\ufdd0:meta");
return new cljs.core.Atom(x, meta, validator, null)
};
var G__6053 = function(x, var_args) {
var p__6050 = null;
if(arguments.length > 1) {
p__6050 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__6053__delegate.call(this, x, p__6050)
};
G__6053.cljs$lang$maxFixedArity = 1;
G__6053.cljs$lang$applyTo = function(arglist__6054) {
var x = cljs.core.first(arglist__6054);
var p__6050 = cljs.core.rest(arglist__6054);
return G__6053__delegate(x, p__6050)
};
G__6053.cljs$core$IFn$_invoke$arity$variadic = G__6053__delegate;
return G__6053
}();
atom = function(x, var_args) {
var p__6050 = var_args;
switch(arguments.length) {
case 1:
return atom__1.call(this, x);
default:
return atom__2.cljs$core$IFn$_invoke$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw new Error("Invalid arity: " + arguments.length);
};
atom.cljs$lang$maxFixedArity = 1;
atom.cljs$lang$applyTo = atom__2.cljs$lang$applyTo;
atom.cljs$core$IFn$_invoke$arity$1 = atom__1;
atom.cljs$core$IFn$_invoke$arity$variadic = atom__2.cljs$core$IFn$_invoke$arity$variadic;
return atom
}();
cljs.core.reset_BANG_ = function reset_BANG_(a, new_value) {
var temp__4092__auto___6055 = a.validator;
if(cljs.core.truth_(temp__4092__auto___6055)) {
var validate_6056 = temp__4092__auto___6055;
if(cljs.core.truth_(validate_6056.call(null, new_value))) {
}else {
throw new Error([cljs.core.str("Assert failed: "), cljs.core.str("Validator rejected reference state"), cljs.core.str("\n"), cljs.core.str(cljs.core.pr_str.call(null, cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "validate", "validate", 1233162959, null), new cljs.core.Symbol(null, "new-value", "new-value", 972165309, null)), cljs.core.hash_map("\ufdd0:line", 6673, "\ufdd0:column", 13))))].join(""));
}
}else {
}
var old_value_6057 = a.state;
a.state = new_value;
cljs.core._notify_watches.call(null, a, old_value_6057, new_value);
return new_value
};
cljs.core.swap_BANG_ = function() {
var swap_BANG_ = null;
var swap_BANG___2 = function(a, f) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state))
};
var swap_BANG___3 = function(a, f, x) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state, x))
};
var swap_BANG___4 = function(a, f, x, y) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state, x, y))
};
var swap_BANG___5 = function(a, f, x, y, z) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state, x, y, z))
};
var swap_BANG___6 = function() {
var G__6058__delegate = function(a, f, x, y, z, more) {
return cljs.core.reset_BANG_.call(null, a, cljs.core.apply.call(null, f, a.state, x, y, z, more))
};
var G__6058 = function(a, f, x, y, z, var_args) {
var more = null;
if(arguments.length > 5) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 5), 0)
}
return G__6058__delegate.call(this, a, f, x, y, z, more)
};
G__6058.cljs$lang$maxFixedArity = 5;
G__6058.cljs$lang$applyTo = function(arglist__6059) {
var a = cljs.core.first(arglist__6059);
arglist__6059 = cljs.core.next(arglist__6059);
var f = cljs.core.first(arglist__6059);
arglist__6059 = cljs.core.next(arglist__6059);
var x = cljs.core.first(arglist__6059);
arglist__6059 = cljs.core.next(arglist__6059);
var y = cljs.core.first(arglist__6059);
arglist__6059 = cljs.core.next(arglist__6059);
var z = cljs.core.first(arglist__6059);
var more = cljs.core.rest(arglist__6059);
return G__6058__delegate(a, f, x, y, z, more)
};
G__6058.cljs$core$IFn$_invoke$arity$variadic = G__6058__delegate;
return G__6058
}();
swap_BANG_ = function(a, f, x, y, z, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return swap_BANG___2.call(this, a, f);
case 3:
return swap_BANG___3.call(this, a, f, x);
case 4:
return swap_BANG___4.call(this, a, f, x, y);
case 5:
return swap_BANG___5.call(this, a, f, x, y, z);
default:
return swap_BANG___6.cljs$core$IFn$_invoke$arity$variadic(a, f, x, y, z, cljs.core.array_seq(arguments, 5))
}
throw new Error("Invalid arity: " + arguments.length);
};
swap_BANG_.cljs$lang$maxFixedArity = 5;
swap_BANG_.cljs$lang$applyTo = swap_BANG___6.cljs$lang$applyTo;
swap_BANG_.cljs$core$IFn$_invoke$arity$2 = swap_BANG___2;
swap_BANG_.cljs$core$IFn$_invoke$arity$3 = swap_BANG___3;
swap_BANG_.cljs$core$IFn$_invoke$arity$4 = swap_BANG___4;
swap_BANG_.cljs$core$IFn$_invoke$arity$5 = swap_BANG___5;
swap_BANG_.cljs$core$IFn$_invoke$arity$variadic = swap_BANG___6.cljs$core$IFn$_invoke$arity$variadic;
return swap_BANG_
}();
cljs.core.compare_and_set_BANG_ = function compare_and_set_BANG_(a, oldval, newval) {
if(cljs.core._EQ_.call(null, a.state, oldval)) {
cljs.core.reset_BANG_.call(null, a, newval);
return true
}else {
return false
}
};
cljs.core.deref = function deref(o) {
return cljs.core._deref.call(null, o)
};
cljs.core.set_validator_BANG_ = function set_validator_BANG_(iref, val) {
return iref.validator = val
};
cljs.core.get_validator = function get_validator(iref) {
return iref.validator
};
cljs.core.alter_meta_BANG_ = function() {
var alter_meta_BANG___delegate = function(iref, f, args) {
return iref.meta = cljs.core.apply.call(null, f, iref.meta, args)
};
var alter_meta_BANG_ = function(iref, f, var_args) {
var args = null;
if(arguments.length > 2) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return alter_meta_BANG___delegate.call(this, iref, f, args)
};
alter_meta_BANG_.cljs$lang$maxFixedArity = 2;
alter_meta_BANG_.cljs$lang$applyTo = function(arglist__6060) {
var iref = cljs.core.first(arglist__6060);
arglist__6060 = cljs.core.next(arglist__6060);
var f = cljs.core.first(arglist__6060);
var args = cljs.core.rest(arglist__6060);
return alter_meta_BANG___delegate(iref, f, args)
};
alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic = alter_meta_BANG___delegate;
return alter_meta_BANG_
}();
cljs.core.reset_meta_BANG_ = function reset_meta_BANG_(iref, m) {
return iref.meta = m
};
cljs.core.add_watch = function add_watch(iref, key, f) {
return cljs.core._add_watch.call(null, iref, key, f)
};
cljs.core.remove_watch = function remove_watch(iref, key) {
return cljs.core._remove_watch.call(null, iref, key)
};
cljs.core.gensym_counter = null;
cljs.core.gensym = function() {
var gensym = null;
var gensym__0 = function() {
return gensym.call(null, "G__")
};
var gensym__1 = function(prefix_string) {
if(cljs.core.gensym_counter == null) {
cljs.core.gensym_counter = cljs.core.atom.call(null, 0)
}else {
}
return cljs.core.symbol.call(null, [cljs.core.str(prefix_string), cljs.core.str(cljs.core.swap_BANG_.call(null, cljs.core.gensym_counter, cljs.core.inc))].join(""))
};
gensym = function(prefix_string) {
switch(arguments.length) {
case 0:
return gensym__0.call(this);
case 1:
return gensym__1.call(this, prefix_string)
}
throw new Error("Invalid arity: " + arguments.length);
};
gensym.cljs$core$IFn$_invoke$arity$0 = gensym__0;
gensym.cljs$core$IFn$_invoke$arity$1 = gensym__1;
return gensym
}();
cljs.core.fixture1 = 1;
cljs.core.fixture2 = 2;
goog.provide("cljs.core.Delay");
cljs.core.Delay = function(state, f) {
this.state = state;
this.f = f;
this.cljs$lang$protocol_mask$partition1$ = 1;
this.cljs$lang$protocol_mask$partition0$ = 32768
};
cljs.core.Delay.cljs$lang$type = true;
cljs.core.Delay.cljs$lang$ctorStr = "cljs.core/Delay";
cljs.core.Delay.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/Delay")
};
cljs.core.Delay.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 = function(d) {
var self__ = this;
return(new cljs.core.Keyword("\ufdd0:done")).call(null, cljs.core.deref.call(null, self__.state))
};
cljs.core.Delay.prototype.cljs$core$IDeref$_deref$arity$1 = function(_) {
var self__ = this;
return(new cljs.core.Keyword("\ufdd0:value")).call(null, cljs.core.swap_BANG_.call(null, self__.state, function(p__6061) {
var map__6062 = p__6061;
var map__6062__$1 = cljs.core.seq_QMARK_.call(null, map__6062) ? cljs.core.apply.call(null, cljs.core.hash_map, map__6062) : map__6062;
var curr_state = map__6062__$1;
var done = cljs.core.get.call(null, map__6062__$1, "\ufdd0:done");
if(cljs.core.truth_(done)) {
return curr_state
}else {
return cljs.core.PersistentArrayMap.fromArray(["\ufdd0:done", true, "\ufdd0:value", self__.f.call(null)], true)
}
}))
};
cljs.core.delay_QMARK_ = function delay_QMARK_(x) {
return x instanceof cljs.core.Delay
};
cljs.core.force = function force(x) {
if(cljs.core.delay_QMARK_.call(null, x)) {
return cljs.core.deref.call(null, x)
}else {
return x
}
};
cljs.core.realized_QMARK_ = function realized_QMARK_(d) {
return cljs.core._realized_QMARK_.call(null, d)
};
cljs.core.IEncodeJS = {};
cljs.core._clj__GT_js = function _clj__GT_js(x) {
if(function() {
var and__3941__auto__ = x;
if(and__3941__auto__) {
return x.cljs$core$IEncodeJS$_clj__GT_js$arity$1
}else {
return and__3941__auto__
}
}()) {
return x.cljs$core$IEncodeJS$_clj__GT_js$arity$1(x)
}else {
var x__2942__auto__ = x == null ? null : x;
return function() {
var or__3943__auto__ = cljs.core._clj__GT_js[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._clj__GT_js["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IEncodeJS.-clj->js", x);
}
}
}().call(null, x)
}
};
cljs.core._key__GT_js = function _key__GT_js(x) {
if(function() {
var and__3941__auto__ = x;
if(and__3941__auto__) {
return x.cljs$core$IEncodeJS$_key__GT_js$arity$1
}else {
return and__3941__auto__
}
}()) {
return x.cljs$core$IEncodeJS$_key__GT_js$arity$1(x)
}else {
var x__2942__auto__ = x == null ? null : x;
return function() {
var or__3943__auto__ = cljs.core._key__GT_js[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._key__GT_js["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IEncodeJS.-key->js", x);
}
}
}().call(null, x)
}
};
cljs.core.key__GT_js = function key__GT_js(k) {
if(function() {
var G__6064 = k;
if(G__6064) {
if(cljs.core.truth_(function() {
var or__3943__auto__ = null;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return G__6064.cljs$core$IEncodeJS$
}
}())) {
return true
}else {
if(!G__6064.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IEncodeJS, G__6064)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IEncodeJS, G__6064)
}
}()) {
return cljs.core._clj__GT_js.call(null, k)
}else {
if(function() {
var or__3943__auto__ = cljs.core.string_QMARK_.call(null, k);
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = typeof k === "number";
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = cljs.core.keyword_QMARK_.call(null, k);
if(or__3943__auto____$2) {
return or__3943__auto____$2
}else {
return k instanceof cljs.core.Symbol
}
}
}
}()) {
return cljs.core.clj__GT_js.call(null, k)
}else {
return cljs.core.pr_str.call(null, k)
}
}
};
cljs.core.clj__GT_js = function clj__GT_js(x) {
if(x == null) {
return null
}else {
if(function() {
var G__6072 = x;
if(G__6072) {
if(cljs.core.truth_(function() {
var or__3943__auto__ = null;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return G__6072.cljs$core$IEncodeJS$
}
}())) {
return true
}else {
if(!G__6072.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IEncodeJS, G__6072)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IEncodeJS, G__6072)
}
}()) {
return cljs.core._clj__GT_js.call(null, x)
}else {
if(cljs.core.keyword_QMARK_.call(null, x)) {
return cljs.core.name.call(null, x)
}else {
if(x instanceof cljs.core.Symbol) {
return[cljs.core.str(x)].join("")
}else {
if(cljs.core.map_QMARK_.call(null, x)) {
var m = {};
var seq__6073_6079 = cljs.core.seq.call(null, x);
var chunk__6074_6080 = null;
var count__6075_6081 = 0;
var i__6076_6082 = 0;
while(true) {
if(i__6076_6082 < count__6075_6081) {
var vec__6077_6083 = cljs.core._nth.call(null, chunk__6074_6080, i__6076_6082);
var k_6084 = cljs.core.nth.call(null, vec__6077_6083, 0, null);
var v_6085 = cljs.core.nth.call(null, vec__6077_6083, 1, null);
m[cljs.core.key__GT_js.call(null, k_6084)] = clj__GT_js.call(null, v_6085);
var G__6086 = seq__6073_6079;
var G__6087 = chunk__6074_6080;
var G__6088 = count__6075_6081;
var G__6089 = i__6076_6082 + 1;
seq__6073_6079 = G__6086;
chunk__6074_6080 = G__6087;
count__6075_6081 = G__6088;
i__6076_6082 = G__6089;
continue
}else {
var temp__4092__auto___6090 = cljs.core.seq.call(null, seq__6073_6079);
if(temp__4092__auto___6090) {
var seq__6073_6091__$1 = temp__4092__auto___6090;
if(cljs.core.chunked_seq_QMARK_.call(null, seq__6073_6091__$1)) {
var c__3073__auto___6092 = cljs.core.chunk_first.call(null, seq__6073_6091__$1);
var G__6093 = cljs.core.chunk_rest.call(null, seq__6073_6091__$1);
var G__6094 = c__3073__auto___6092;
var G__6095 = cljs.core.count.call(null, c__3073__auto___6092);
var G__6096 = 0;
seq__6073_6079 = G__6093;
chunk__6074_6080 = G__6094;
count__6075_6081 = G__6095;
i__6076_6082 = G__6096;
continue
}else {
var vec__6078_6097 = cljs.core.first.call(null, seq__6073_6091__$1);
var k_6098 = cljs.core.nth.call(null, vec__6078_6097, 0, null);
var v_6099 = cljs.core.nth.call(null, vec__6078_6097, 1, null);
m[cljs.core.key__GT_js.call(null, k_6098)] = clj__GT_js.call(null, v_6099);
var G__6100 = cljs.core.next.call(null, seq__6073_6091__$1);
var G__6101 = null;
var G__6102 = 0;
var G__6103 = 0;
seq__6073_6079 = G__6100;
chunk__6074_6080 = G__6101;
count__6075_6081 = G__6102;
i__6076_6082 = G__6103;
continue
}
}else {
}
}
break
}
return m
}else {
if(cljs.core.coll_QMARK_.call(null, x)) {
return cljs.core.apply.call(null, cljs.core.array, cljs.core.map.call(null, clj__GT_js, x))
}else {
if("\ufdd0:else") {
return x
}else {
return null
}
}
}
}
}
}
}
};
cljs.core.IEncodeClojure = {};
cljs.core._js__GT_clj = function _js__GT_clj(x, options) {
if(function() {
var and__3941__auto__ = x;
if(and__3941__auto__) {
return x.cljs$core$IEncodeClojure$_js__GT_clj$arity$2
}else {
return and__3941__auto__
}
}()) {
return x.cljs$core$IEncodeClojure$_js__GT_clj$arity$2(x, options)
}else {
var x__2942__auto__ = x == null ? null : x;
return function() {
var or__3943__auto__ = cljs.core._js__GT_clj[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._js__GT_clj["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IEncodeClojure.-js->clj", x);
}
}
}().call(null, x, options)
}
};
cljs.core.js__GT_clj = function() {
var js__GT_clj = null;
var js__GT_clj__1 = function(x) {
return js__GT_clj.call(null, x, cljs.core.PersistentArrayMap.fromArray(["\ufdd0:keywordize-keys", false], true))
};
var js__GT_clj__2 = function() {
var G__6124__delegate = function(x, opts) {
if(function() {
var G__6114 = cljs.core.IEncodeClojure;
if(G__6114) {
if(cljs.core.truth_(function() {
var or__3943__auto__ = null;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return G__6114.cljs$core$x$
}
}())) {
return true
}else {
if(!G__6114.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, x, G__6114)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, x, G__6114)
}
}()) {
return cljs.core._js__GT_clj.call(null, x, cljs.core.apply.call(null, cljs.core.array_map, opts))
}else {
if(cljs.core.seq.call(null, opts)) {
var map__6115 = opts;
var map__6115__$1 = cljs.core.seq_QMARK_.call(null, map__6115) ? cljs.core.apply.call(null, cljs.core.hash_map, map__6115) : map__6115;
var keywordize_keys = cljs.core.get.call(null, map__6115__$1, "\ufdd0:keywordize-keys");
var keyfn = cljs.core.truth_(keywordize_keys) ? cljs.core.keyword : cljs.core.str;
var f = function(map__6115, map__6115__$1, keywordize_keys, keyfn) {
return function thisfn(x__$1) {
if(cljs.core.seq_QMARK_.call(null, x__$1)) {
return cljs.core.doall.call(null, cljs.core.map.call(null, thisfn, x__$1))
}else {
if(cljs.core.coll_QMARK_.call(null, x__$1)) {
return cljs.core.into.call(null, cljs.core.empty.call(null, x__$1), cljs.core.map.call(null, thisfn, x__$1))
}else {
if(x__$1 instanceof Array) {
return cljs.core.vec.call(null, cljs.core.map.call(null, thisfn, x__$1))
}else {
if(cljs.core.type.call(null, x__$1) === Object) {
return cljs.core.into.call(null, cljs.core.ObjMap.EMPTY, function() {
var iter__3042__auto__ = function(map__6115, map__6115__$1, keywordize_keys, keyfn) {
return function iter__6120(s__6121) {
return new cljs.core.LazySeq(null, false, function(map__6115, map__6115__$1, keywordize_keys, keyfn) {
return function() {
var s__6121__$1 = s__6121;
while(true) {
var temp__4092__auto__ = cljs.core.seq.call(null, s__6121__$1);
if(temp__4092__auto__) {
var s__6121__$2 = temp__4092__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null, s__6121__$2)) {
var c__3040__auto__ = cljs.core.chunk_first.call(null, s__6121__$2);
var size__3041__auto__ = cljs.core.count.call(null, c__3040__auto__);
var b__6123 = cljs.core.chunk_buffer.call(null, size__3041__auto__);
if(function() {
var i__6122 = 0;
while(true) {
if(i__6122 < size__3041__auto__) {
var k = cljs.core._nth.call(null, c__3040__auto__, i__6122);
cljs.core.chunk_append.call(null, b__6123, cljs.core.PersistentVector.fromArray([keyfn.call(null, k), thisfn.call(null, x__$1[k])], true));
var G__6125 = i__6122 + 1;
i__6122 = G__6125;
continue
}else {
return true
}
break
}
}()) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__6123), iter__6120.call(null, cljs.core.chunk_rest.call(null, s__6121__$2)))
}else {
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__6123), null)
}
}else {
var k = cljs.core.first.call(null, s__6121__$2);
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([keyfn.call(null, k), thisfn.call(null, x__$1[k])], true), iter__6120.call(null, cljs.core.rest.call(null, s__6121__$2)))
}
}else {
return null
}
break
}
}
}(map__6115, map__6115__$1, keywordize_keys, keyfn), null)
}
}(map__6115, map__6115__$1, keywordize_keys, keyfn);
return iter__3042__auto__.call(null, cljs.core.js_keys.call(null, x__$1))
}())
}else {
if("\ufdd0:else") {
return x__$1
}else {
return null
}
}
}
}
}
}
}(map__6115, map__6115__$1, keywordize_keys, keyfn);
return f.call(null, x)
}else {
return null
}
}
};
var G__6124 = function(x, var_args) {
var opts = null;
if(arguments.length > 1) {
opts = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__6124__delegate.call(this, x, opts)
};
G__6124.cljs$lang$maxFixedArity = 1;
G__6124.cljs$lang$applyTo = function(arglist__6126) {
var x = cljs.core.first(arglist__6126);
var opts = cljs.core.rest(arglist__6126);
return G__6124__delegate(x, opts)
};
G__6124.cljs$core$IFn$_invoke$arity$variadic = G__6124__delegate;
return G__6124
}();
js__GT_clj = function(x, var_args) {
var opts = var_args;
switch(arguments.length) {
case 1:
return js__GT_clj__1.call(this, x);
default:
return js__GT_clj__2.cljs$core$IFn$_invoke$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw new Error("Invalid arity: " + arguments.length);
};
js__GT_clj.cljs$lang$maxFixedArity = 1;
js__GT_clj.cljs$lang$applyTo = js__GT_clj__2.cljs$lang$applyTo;
js__GT_clj.cljs$core$IFn$_invoke$arity$1 = js__GT_clj__1;
js__GT_clj.cljs$core$IFn$_invoke$arity$variadic = js__GT_clj__2.cljs$core$IFn$_invoke$arity$variadic;
return js__GT_clj
}();
cljs.core.memoize = function memoize(f) {
var mem = cljs.core.atom.call(null, cljs.core.ObjMap.EMPTY);
return function() {
var G__6127__delegate = function(args) {
var temp__4090__auto__ = cljs.core.get.call(null, cljs.core.deref.call(null, mem), args);
if(cljs.core.truth_(temp__4090__auto__)) {
var v = temp__4090__auto__;
return v
}else {
var ret = cljs.core.apply.call(null, f, args);
cljs.core.swap_BANG_.call(null, mem, cljs.core.assoc, args, ret);
return ret
}
};
var G__6127 = function(var_args) {
var args = null;
if(arguments.length > 0) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__6127__delegate.call(this, args)
};
G__6127.cljs$lang$maxFixedArity = 0;
G__6127.cljs$lang$applyTo = function(arglist__6128) {
var args = cljs.core.seq(arglist__6128);
return G__6127__delegate(args)
};
G__6127.cljs$core$IFn$_invoke$arity$variadic = G__6127__delegate;
return G__6127
}()
};
cljs.core.trampoline = function() {
var trampoline = null;
var trampoline__1 = function(f) {
while(true) {
var ret = f.call(null);
if(cljs.core.fn_QMARK_.call(null, ret)) {
var G__6129 = ret;
f = G__6129;
continue
}else {
return ret
}
break
}
};
var trampoline__2 = function() {
var G__6130__delegate = function(f, args) {
return trampoline.call(null, function() {
return cljs.core.apply.call(null, f, args)
})
};
var G__6130 = function(f, var_args) {
var args = null;
if(arguments.length > 1) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__6130__delegate.call(this, f, args)
};
G__6130.cljs$lang$maxFixedArity = 1;
G__6130.cljs$lang$applyTo = function(arglist__6131) {
var f = cljs.core.first(arglist__6131);
var args = cljs.core.rest(arglist__6131);
return G__6130__delegate(f, args)
};
G__6130.cljs$core$IFn$_invoke$arity$variadic = G__6130__delegate;
return G__6130
}();
trampoline = function(f, var_args) {
var args = var_args;
switch(arguments.length) {
case 1:
return trampoline__1.call(this, f);
default:
return trampoline__2.cljs$core$IFn$_invoke$arity$variadic(f, cljs.core.array_seq(arguments, 1))
}
throw new Error("Invalid arity: " + arguments.length);
};
trampoline.cljs$lang$maxFixedArity = 1;
trampoline.cljs$lang$applyTo = trampoline__2.cljs$lang$applyTo;
trampoline.cljs$core$IFn$_invoke$arity$1 = trampoline__1;
trampoline.cljs$core$IFn$_invoke$arity$variadic = trampoline__2.cljs$core$IFn$_invoke$arity$variadic;
return trampoline
}();
cljs.core.rand = function() {
var rand = null;
var rand__0 = function() {
return rand.call(null, 1)
};
var rand__1 = function(n) {
return Math.random.call(null) * n
};
rand = function(n) {
switch(arguments.length) {
case 0:
return rand__0.call(this);
case 1:
return rand__1.call(this, n)
}
throw new Error("Invalid arity: " + arguments.length);
};
rand.cljs$core$IFn$_invoke$arity$0 = rand__0;
rand.cljs$core$IFn$_invoke$arity$1 = rand__1;
return rand
}();
cljs.core.rand_int = function rand_int(n) {
return Math.floor.call(null, Math.random.call(null) * n)
};
cljs.core.rand_nth = function rand_nth(coll) {
return cljs.core.nth.call(null, coll, cljs.core.rand_int.call(null, cljs.core.count.call(null, coll)))
};
cljs.core.group_by = function group_by(f, coll) {
return cljs.core.reduce.call(null, function(ret, x) {
var k = f.call(null, x);
return cljs.core.assoc.call(null, ret, k, cljs.core.conj.call(null, cljs.core.get.call(null, ret, k, cljs.core.PersistentVector.EMPTY), x))
}, cljs.core.ObjMap.EMPTY, coll)
};
cljs.core.make_hierarchy = function make_hierarchy() {
return cljs.core.PersistentArrayMap.fromArray(["\ufdd0:parents", cljs.core.ObjMap.EMPTY, "\ufdd0:descendants", cljs.core.ObjMap.EMPTY, "\ufdd0:ancestors", cljs.core.ObjMap.EMPTY], true)
};
cljs.core._global_hierarchy = null;
cljs.core.get_global_hierarchy = function get_global_hierarchy() {
if(cljs.core._global_hierarchy == null) {
cljs.core._global_hierarchy = cljs.core.atom.call(null, cljs.core.make_hierarchy.call(null))
}else {
}
return cljs.core._global_hierarchy
};
cljs.core.swap_global_hierarchy_BANG_ = function() {
var swap_global_hierarchy_BANG___delegate = function(f, args) {
return cljs.core.apply.call(null, cljs.core.swap_BANG_, cljs.core.get_global_hierarchy.call(null), f, args)
};
var swap_global_hierarchy_BANG_ = function(f, var_args) {
var args = null;
if(arguments.length > 1) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return swap_global_hierarchy_BANG___delegate.call(this, f, args)
};
swap_global_hierarchy_BANG_.cljs$lang$maxFixedArity = 1;
swap_global_hierarchy_BANG_.cljs$lang$applyTo = function(arglist__6132) {
var f = cljs.core.first(arglist__6132);
var args = cljs.core.rest(arglist__6132);
return swap_global_hierarchy_BANG___delegate(f, args)
};
swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic = swap_global_hierarchy_BANG___delegate;
return swap_global_hierarchy_BANG_
}();
cljs.core.isa_QMARK_ = function() {
var isa_QMARK_ = null;
var isa_QMARK___2 = function(child, parent) {
return isa_QMARK_.call(null, cljs.core.deref.call(null, cljs.core.get_global_hierarchy.call(null)), child, parent)
};
var isa_QMARK___3 = function(h, child, parent) {
var or__3943__auto__ = cljs.core._EQ_.call(null, child, parent);
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core.contains_QMARK_.call(null, (new cljs.core.Keyword("\ufdd0:ancestors")).call(null, h).call(null, child), parent);
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
var and__3941__auto__ = cljs.core.vector_QMARK_.call(null, parent);
if(and__3941__auto__) {
var and__3941__auto____$1 = cljs.core.vector_QMARK_.call(null, child);
if(and__3941__auto____$1) {
var and__3941__auto____$2 = cljs.core.count.call(null, parent) === cljs.core.count.call(null, child);
if(and__3941__auto____$2) {
var ret = true;
var i = 0;
while(true) {
if(function() {
var or__3943__auto____$2 = cljs.core.not.call(null, ret);
if(or__3943__auto____$2) {
return or__3943__auto____$2
}else {
return i === cljs.core.count.call(null, parent)
}
}()) {
return ret
}else {
var G__6133 = isa_QMARK_.call(null, h, child.call(null, i), parent.call(null, i));
var G__6134 = i + 1;
ret = G__6133;
i = G__6134;
continue
}
break
}
}else {
return and__3941__auto____$2
}
}else {
return and__3941__auto____$1
}
}else {
return and__3941__auto__
}
}
}
};
isa_QMARK_ = function(h, child, parent) {
switch(arguments.length) {
case 2:
return isa_QMARK___2.call(this, h, child);
case 3:
return isa_QMARK___3.call(this, h, child, parent)
}
throw new Error("Invalid arity: " + arguments.length);
};
isa_QMARK_.cljs$core$IFn$_invoke$arity$2 = isa_QMARK___2;
isa_QMARK_.cljs$core$IFn$_invoke$arity$3 = isa_QMARK___3;
return isa_QMARK_
}();
cljs.core.parents = function() {
var parents = null;
var parents__1 = function(tag) {
return parents.call(null, cljs.core.deref.call(null, cljs.core.get_global_hierarchy.call(null)), tag)
};
var parents__2 = function(h, tag) {
return cljs.core.not_empty.call(null, cljs.core.get.call(null, (new cljs.core.Keyword("\ufdd0:parents")).call(null, h), tag))
};
parents = function(h, tag) {
switch(arguments.length) {
case 1:
return parents__1.call(this, h);
case 2:
return parents__2.call(this, h, tag)
}
throw new Error("Invalid arity: " + arguments.length);
};
parents.cljs$core$IFn$_invoke$arity$1 = parents__1;
parents.cljs$core$IFn$_invoke$arity$2 = parents__2;
return parents
}();
cljs.core.ancestors = function() {
var ancestors = null;
var ancestors__1 = function(tag) {
return ancestors.call(null, cljs.core.deref.call(null, cljs.core.get_global_hierarchy.call(null)), tag)
};
var ancestors__2 = function(h, tag) {
return cljs.core.not_empty.call(null, cljs.core.get.call(null, (new cljs.core.Keyword("\ufdd0:ancestors")).call(null, h), tag))
};
ancestors = function(h, tag) {
switch(arguments.length) {
case 1:
return ancestors__1.call(this, h);
case 2:
return ancestors__2.call(this, h, tag)
}
throw new Error("Invalid arity: " + arguments.length);
};
ancestors.cljs$core$IFn$_invoke$arity$1 = ancestors__1;
ancestors.cljs$core$IFn$_invoke$arity$2 = ancestors__2;
return ancestors
}();
cljs.core.descendants = function() {
var descendants = null;
var descendants__1 = function(tag) {
return descendants.call(null, cljs.core.deref.call(null, cljs.core.get_global_hierarchy.call(null)), tag)
};
var descendants__2 = function(h, tag) {
return cljs.core.not_empty.call(null, cljs.core.get.call(null, (new cljs.core.Keyword("\ufdd0:descendants")).call(null, h), tag))
};
descendants = function(h, tag) {
switch(arguments.length) {
case 1:
return descendants__1.call(this, h);
case 2:
return descendants__2.call(this, h, tag)
}
throw new Error("Invalid arity: " + arguments.length);
};
descendants.cljs$core$IFn$_invoke$arity$1 = descendants__1;
descendants.cljs$core$IFn$_invoke$arity$2 = descendants__2;
return descendants
}();
cljs.core.derive = function() {
var derive = null;
var derive__2 = function(tag, parent) {
if(cljs.core.truth_(cljs.core.namespace.call(null, parent))) {
}else {
throw new Error([cljs.core.str("Assert failed: "), cljs.core.str(cljs.core.pr_str.call(null, cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "namespace", "namespace", -388313324, null), new cljs.core.Symbol(null, "parent", "parent", 1659011683, null)), cljs.core.hash_map("\ufdd0:line", 7014, "\ufdd0:column", 12))))].join(""));
}
cljs.core.swap_global_hierarchy_BANG_.call(null, derive, tag, parent);
return null
};
var derive__3 = function(h, tag, parent) {
if(cljs.core.not_EQ_.call(null, tag, parent)) {
}else {
throw new Error([cljs.core.str("Assert failed: "), cljs.core.str(cljs.core.pr_str.call(null, cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "not=", "not=", -1637144189, null), new cljs.core.Symbol(null, "tag", "tag", -1640416941, null), new cljs.core.Symbol(null, "parent", "parent", 1659011683, null)), cljs.core.hash_map("\ufdd0:line", 7018, "\ufdd0:column", 12))))].join(""));
}
var tp = (new cljs.core.Keyword("\ufdd0:parents")).call(null, h);
var td = (new cljs.core.Keyword("\ufdd0:descendants")).call(null, h);
var ta = (new cljs.core.Keyword("\ufdd0:ancestors")).call(null, h);
var tf = function(tp, td, ta) {
return function(m, source, sources, target, targets) {
return cljs.core.reduce.call(null, function(tp, td, ta) {
return function(ret, k) {
return cljs.core.assoc.call(null, ret, k, cljs.core.reduce.call(null, cljs.core.conj, cljs.core.get.call(null, targets, k, cljs.core.PersistentHashSet.EMPTY), cljs.core.cons.call(null, target, targets.call(null, target))))
}
}(tp, td, ta), m, cljs.core.cons.call(null, source, sources.call(null, source)))
}
}(tp, td, ta);
var or__3943__auto__ = cljs.core.contains_QMARK_.call(null, tp.call(null, tag), parent) ? null : function() {
if(cljs.core.contains_QMARK_.call(null, ta.call(null, tag), parent)) {
throw new Error([cljs.core.str(tag), cljs.core.str("already has"), cljs.core.str(parent), cljs.core.str("as ancestor")].join(""));
}else {
}
if(cljs.core.contains_QMARK_.call(null, ta.call(null, parent), tag)) {
throw new Error([cljs.core.str("Cyclic derivation:"), cljs.core.str(parent), cljs.core.str("has"), cljs.core.str(tag), cljs.core.str("as ancestor")].join(""));
}else {
}
return cljs.core.PersistentArrayMap.fromArray(["\ufdd0:parents", cljs.core.assoc.call(null, (new cljs.core.Keyword("\ufdd0:parents")).call(null, h), tag, cljs.core.conj.call(null, cljs.core.get.call(null, tp, tag, cljs.core.PersistentHashSet.EMPTY), parent)), "\ufdd0:ancestors", tf.call(null, (new cljs.core.Keyword("\ufdd0:ancestors")).call(null, h), tag, td, parent, ta), "\ufdd0:descendants", tf.call(null, (new cljs.core.Keyword("\ufdd0:descendants")).call(null, h), parent, ta, tag, td)],
true)
}();
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return h
}
};
derive = function(h, tag, parent) {
switch(arguments.length) {
case 2:
return derive__2.call(this, h, tag);
case 3:
return derive__3.call(this, h, tag, parent)
}
throw new Error("Invalid arity: " + arguments.length);
};
derive.cljs$core$IFn$_invoke$arity$2 = derive__2;
derive.cljs$core$IFn$_invoke$arity$3 = derive__3;
return derive
}();
cljs.core.underive = function() {
var underive = null;
var underive__2 = function(tag, parent) {
cljs.core.swap_global_hierarchy_BANG_.call(null, underive, tag, parent);
return null
};
var underive__3 = function(h, tag, parent) {
var parentMap = (new cljs.core.Keyword("\ufdd0:parents")).call(null, h);
var childsParents = cljs.core.truth_(parentMap.call(null, tag)) ? cljs.core.disj.call(null, parentMap.call(null, tag), parent) : cljs.core.PersistentHashSet.EMPTY;
var newParents = cljs.core.truth_(cljs.core.not_empty.call(null, childsParents)) ? cljs.core.assoc.call(null, parentMap, tag, childsParents) : cljs.core.dissoc.call(null, parentMap, tag);
var deriv_seq = cljs.core.flatten.call(null, cljs.core.map.call(null, function(parentMap, childsParents, newParents) {
return function(p1__6135_SHARP_) {
return cljs.core.cons.call(null, cljs.core.first.call(null, p1__6135_SHARP_), cljs.core.interpose.call(null, cljs.core.first.call(null, p1__6135_SHARP_), cljs.core.second.call(null, p1__6135_SHARP_)))
}
}(parentMap, childsParents, newParents), cljs.core.seq.call(null, newParents)));
if(cljs.core.contains_QMARK_.call(null, parentMap.call(null, tag), parent)) {
return cljs.core.reduce.call(null, function(p1__6136_SHARP_, p2__6137_SHARP_) {
return cljs.core.apply.call(null, cljs.core.derive, p1__6136_SHARP_, p2__6137_SHARP_)
}, cljs.core.make_hierarchy.call(null), cljs.core.partition.call(null, 2, deriv_seq))
}else {
return h
}
};
underive = function(h, tag, parent) {
switch(arguments.length) {
case 2:
return underive__2.call(this, h, tag);
case 3:
return underive__3.call(this, h, tag, parent)
}
throw new Error("Invalid arity: " + arguments.length);
};
underive.cljs$core$IFn$_invoke$arity$2 = underive__2;
underive.cljs$core$IFn$_invoke$arity$3 = underive__3;
return underive
}();
cljs.core.reset_cache = function reset_cache(method_cache, method_table, cached_hierarchy, hierarchy) {
cljs.core.swap_BANG_.call(null, method_cache, function(_) {
return cljs.core.deref.call(null, method_table)
});
return cljs.core.swap_BANG_.call(null, cached_hierarchy, function(_) {
return cljs.core.deref.call(null, hierarchy)
})
};
cljs.core.prefers_STAR_ = function prefers_STAR_(x, y, prefer_table) {
var xprefs = cljs.core.deref.call(null, prefer_table).call(null, x);
var or__3943__auto__ = cljs.core.truth_(function() {
var and__3941__auto__ = xprefs;
if(cljs.core.truth_(and__3941__auto__)) {
return xprefs.call(null, y)
}else {
return and__3941__auto__
}
}()) ? true : null;
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = function() {
var ps = cljs.core.parents.call(null, y);
while(true) {
if(cljs.core.count.call(null, ps) > 0) {
if(cljs.core.truth_(prefers_STAR_.call(null, x, cljs.core.first.call(null, ps), prefer_table))) {
}else {
}
var G__6138 = cljs.core.rest.call(null, ps);
ps = G__6138;
continue
}else {
return null
}
break
}
}();
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var or__3943__auto____$2 = function() {
var ps = cljs.core.parents.call(null, x);
while(true) {
if(cljs.core.count.call(null, ps) > 0) {
if(cljs.core.truth_(prefers_STAR_.call(null, cljs.core.first.call(null, ps), y, prefer_table))) {
}else {
}
var G__6139 = cljs.core.rest.call(null, ps);
ps = G__6139;
continue
}else {
return null
}
break
}
}();
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
return false
}
}
}
};
cljs.core.dominates = function dominates(x, y, prefer_table) {
var or__3943__auto__ = cljs.core.prefers_STAR_.call(null, x, y, prefer_table);
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
return cljs.core.isa_QMARK_.call(null, x, y)
}
};
cljs.core.find_and_cache_best_method = function find_and_cache_best_method(name, dispatch_val, hierarchy, method_table, prefer_table, method_cache, cached_hierarchy) {
var best_entry = cljs.core.reduce.call(null, function(be, p__6142) {
var vec__6143 = p__6142;
var k = cljs.core.nth.call(null, vec__6143, 0, null);
var _ = cljs.core.nth.call(null, vec__6143, 1, null);
var e = vec__6143;
if(cljs.core.isa_QMARK_.call(null, cljs.core.deref.call(null, hierarchy), dispatch_val, k)) {
var be2 = cljs.core.truth_(function() {
var or__3943__auto__ = be == null;
if(or__3943__auto__) {
return or__3943__auto__
}else {
return cljs.core.dominates.call(null, k, cljs.core.first.call(null, be), prefer_table)
}
}()) ? e : be;
if(cljs.core.truth_(cljs.core.dominates.call(null, cljs.core.first.call(null, be2), k, prefer_table))) {
}else {
throw new Error([cljs.core.str("Multiple methods in multimethod '"), cljs.core.str(name), cljs.core.str("' match dispatch value: "), cljs.core.str(dispatch_val), cljs.core.str(" -> "), cljs.core.str(k), cljs.core.str(" and "), cljs.core.str(cljs.core.first.call(null, be2)), cljs.core.str(", and neither is preferred")].join(""));
}
return be2
}else {
return be
}
}, null, cljs.core.deref.call(null, method_table));
if(cljs.core.truth_(best_entry)) {
if(cljs.core._EQ_.call(null, cljs.core.deref.call(null, cached_hierarchy), cljs.core.deref.call(null, hierarchy))) {
cljs.core.swap_BANG_.call(null, method_cache, cljs.core.assoc, dispatch_val, cljs.core.second.call(null, best_entry));
return cljs.core.second.call(null, best_entry)
}else {
cljs.core.reset_cache.call(null, method_cache, method_table, cached_hierarchy, hierarchy);
return find_and_cache_best_method.call(null, name, dispatch_val, hierarchy, method_table, prefer_table, method_cache, cached_hierarchy)
}
}else {
return null
}
};
cljs.core.IMultiFn = {};
cljs.core._reset = function _reset(mf) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_reset$arity$1
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_reset$arity$1(mf)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._reset[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._reset["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-reset", mf);
}
}
}().call(null, mf)
}
};
cljs.core._add_method = function _add_method(mf, dispatch_val, method) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_add_method$arity$3
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_add_method$arity$3(mf, dispatch_val, method)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._add_method[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._add_method["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-add-method", mf);
}
}
}().call(null, mf, dispatch_val, method)
}
};
cljs.core._remove_method = function _remove_method(mf, dispatch_val) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_remove_method$arity$2
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_remove_method$arity$2(mf, dispatch_val)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._remove_method[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._remove_method["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-remove-method", mf);
}
}
}().call(null, mf, dispatch_val)
}
};
cljs.core._prefer_method = function _prefer_method(mf, dispatch_val, dispatch_val_y) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_prefer_method$arity$3
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_prefer_method$arity$3(mf, dispatch_val, dispatch_val_y)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._prefer_method[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._prefer_method["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-prefer-method", mf);
}
}
}().call(null, mf, dispatch_val, dispatch_val_y)
}
};
cljs.core._get_method = function _get_method(mf, dispatch_val) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_get_method$arity$2
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_get_method$arity$2(mf, dispatch_val)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._get_method[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._get_method["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-get-method", mf);
}
}
}().call(null, mf, dispatch_val)
}
};
cljs.core._methods = function _methods(mf) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_methods$arity$1
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_methods$arity$1(mf)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._methods[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._methods["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-methods", mf);
}
}
}().call(null, mf)
}
};
cljs.core._prefers = function _prefers(mf) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_prefers$arity$1
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_prefers$arity$1(mf)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._prefers[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._prefers["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-prefers", mf);
}
}
}().call(null, mf)
}
};
cljs.core._dispatch = function _dispatch(mf, args) {
if(function() {
var and__3941__auto__ = mf;
if(and__3941__auto__) {
return mf.cljs$core$IMultiFn$_dispatch$arity$2
}else {
return and__3941__auto__
}
}()) {
return mf.cljs$core$IMultiFn$_dispatch$arity$2(mf, args)
}else {
var x__2942__auto__ = mf == null ? null : mf;
return function() {
var or__3943__auto__ = cljs.core._dispatch[goog.typeOf(x__2942__auto__)];
if(or__3943__auto__) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = cljs.core._dispatch["_"];
if(or__3943__auto____$1) {
return or__3943__auto____$1
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-dispatch", mf);
}
}
}().call(null, mf, args)
}
};
cljs.core.do_dispatch = function do_dispatch(mf, dispatch_fn, args) {
var dispatch_val = cljs.core.apply.call(null, dispatch_fn, args);
var target_fn = cljs.core._get_method.call(null, mf, dispatch_val);
if(cljs.core.truth_(target_fn)) {
}else {
throw new Error([cljs.core.str("No method in multimethod '"), cljs.core.str(cljs.core.name), cljs.core.str("' for dispatch value: "), cljs.core.str(dispatch_val)].join(""));
}
return cljs.core.apply.call(null, target_fn, args)
};
goog.provide("cljs.core.MultiFn");
cljs.core.MultiFn = function(name, dispatch_fn, default_dispatch_val, hierarchy, method_table, prefer_table, method_cache, cached_hierarchy) {
this.name = name;
this.dispatch_fn = dispatch_fn;
this.default_dispatch_val = default_dispatch_val;
this.hierarchy = hierarchy;
this.method_table = method_table;
this.prefer_table = prefer_table;
this.method_cache = method_cache;
this.cached_hierarchy = cached_hierarchy;
this.cljs$lang$protocol_mask$partition0$ = 4194304;
this.cljs$lang$protocol_mask$partition1$ = 256
};
cljs.core.MultiFn.cljs$lang$type = true;
cljs.core.MultiFn.cljs$lang$ctorStr = "cljs.core/MultiFn";
cljs.core.MultiFn.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/MultiFn")
};
cljs.core.MultiFn.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var self__ = this;
return goog.getUid(this$)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset$arity$1 = function(mf) {
var self__ = this;
cljs.core.swap_BANG_.call(null, self__.method_table, function(mf__$1) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, self__.method_cache, function(mf__$1) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, self__.prefer_table, function(mf__$1) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, self__.cached_hierarchy, function(mf__$1) {
return null
});
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_add_method$arity$3 = function(mf, dispatch_val, method) {
var self__ = this;
cljs.core.swap_BANG_.call(null, self__.method_table, cljs.core.assoc, dispatch_val, method);
cljs.core.reset_cache.call(null, self__.method_cache, self__.method_table, self__.cached_hierarchy, self__.hierarchy);
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method$arity$2 = function(mf, dispatch_val) {
var self__ = this;
cljs.core.swap_BANG_.call(null, self__.method_table, cljs.core.dissoc, dispatch_val);
cljs.core.reset_cache.call(null, self__.method_cache, self__.method_table, self__.cached_hierarchy, self__.hierarchy);
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method$arity$2 = function(mf, dispatch_val) {
var self__ = this;
if(cljs.core._EQ_.call(null, cljs.core.deref.call(null, self__.cached_hierarchy), cljs.core.deref.call(null, self__.hierarchy))) {
}else {
cljs.core.reset_cache.call(null, self__.method_cache, self__.method_table, self__.cached_hierarchy, self__.hierarchy)
}
var temp__4090__auto__ = cljs.core.deref.call(null, self__.method_cache).call(null, dispatch_val);
if(cljs.core.truth_(temp__4090__auto__)) {
var target_fn = temp__4090__auto__;
return target_fn
}else {
var temp__4090__auto____$1 = cljs.core.find_and_cache_best_method.call(null, self__.name, dispatch_val, self__.hierarchy, self__.method_table, self__.prefer_table, self__.method_cache, self__.cached_hierarchy);
if(cljs.core.truth_(temp__4090__auto____$1)) {
var target_fn = temp__4090__auto____$1;
return target_fn
}else {
return cljs.core.deref.call(null, self__.method_table).call(null, self__.default_dispatch_val)
}
}
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method$arity$3 = function(mf, dispatch_val_x, dispatch_val_y) {
var self__ = this;
if(cljs.core.truth_(cljs.core.prefers_STAR_.call(null, dispatch_val_x, dispatch_val_y, self__.prefer_table))) {
throw new Error([cljs.core.str("Preference conflict in multimethod '"), cljs.core.str(self__.name), cljs.core.str("': "), cljs.core.str(dispatch_val_y), cljs.core.str(" is already preferred to "), cljs.core.str(dispatch_val_x)].join(""));
}else {
}
cljs.core.swap_BANG_.call(null, self__.prefer_table, function(old) {
return cljs.core.assoc.call(null, old, dispatch_val_x, cljs.core.conj.call(null, cljs.core.get.call(null, old, dispatch_val_x, cljs.core.PersistentHashSet.EMPTY), dispatch_val_y))
});
return cljs.core.reset_cache.call(null, self__.method_cache, self__.method_table, self__.cached_hierarchy, self__.hierarchy)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods$arity$1 = function(mf) {
var self__ = this;
return cljs.core.deref.call(null, self__.method_table)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers$arity$1 = function(mf) {
var self__ = this;
return cljs.core.deref.call(null, self__.prefer_table)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_dispatch$arity$2 = function(mf, args) {
var self__ = this;
return cljs.core.do_dispatch.call(null, mf, self__.dispatch_fn, args)
};
cljs.core.MultiFn.prototype.call = function() {
var G__6144__delegate = function(_, args) {
var self = this;
return cljs.core._dispatch.call(null, self, args)
};
var G__6144 = function(_, var_args) {
var args = null;
if(arguments.length > 1) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__6144__delegate.call(this, _, args)
};
G__6144.cljs$lang$maxFixedArity = 1;
G__6144.cljs$lang$applyTo = function(arglist__6145) {
var _ = cljs.core.first(arglist__6145);
var args = cljs.core.rest(arglist__6145);
return G__6144__delegate(_, args)
};
G__6144.cljs$core$IFn$_invoke$arity$variadic = G__6144__delegate;
return G__6144
}();
cljs.core.MultiFn.prototype.apply = function(_, args) {
var self = this;
return cljs.core._dispatch.call(null, self, args)
};
cljs.core.remove_all_methods = function remove_all_methods(multifn) {
return cljs.core._reset.call(null, multifn)
};
cljs.core.remove_method = function remove_method(multifn, dispatch_val) {
return cljs.core._remove_method.call(null, multifn, dispatch_val)
};
cljs.core.prefer_method = function prefer_method(multifn, dispatch_val_x, dispatch_val_y) {
return cljs.core._prefer_method.call(null, multifn, dispatch_val_x, dispatch_val_y)
};
cljs.core.methods$ = function methods$(multifn) {
return cljs.core._methods.call(null, multifn)
};
cljs.core.get_method = function get_method(multifn, dispatch_val) {
return cljs.core._get_method.call(null, multifn, dispatch_val)
};
cljs.core.prefers = function prefers(multifn) {
return cljs.core._prefers.call(null, multifn)
};
goog.provide("cljs.core.UUID");
cljs.core.UUID = function(uuid) {
this.uuid = uuid;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2153775104
};
cljs.core.UUID.cljs$lang$type = true;
cljs.core.UUID.cljs$lang$ctorStr = "cljs.core/UUID";
cljs.core.UUID.cljs$lang$ctorPrWriter = function(this__2882__auto__, writer__2883__auto__, opt__2884__auto__) {
return cljs.core._write.call(null, writer__2883__auto__, "cljs.core/UUID")
};
cljs.core.UUID.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var self__ = this;
return goog.string.hashCode(cljs.core.pr_str.call(null, this$))
};
cljs.core.UUID.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = function(_, writer, ___$1) {
var self__ = this;
return cljs.core._write.call(null, writer, [cljs.core.str('#uuid "'), cljs.core.str(self__.uuid), cljs.core.str('"')].join(""))
};
cljs.core.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(_, other) {
var self__ = this;
var and__3941__auto__ = other instanceof cljs.core.UUID;
if(and__3941__auto__) {
return self__.uuid === other.uuid
}else {
return and__3941__auto__
}
};
goog.provide("cljs.core.ExceptionInfo");
cljs.core.ExceptionInfo = function(message, data, cause) {
this.message = message;
this.data = data;
this.cause = cause
};
cljs.core.ExceptionInfo.cljs$lang$type = true;
cljs.core.ExceptionInfo.cljs$lang$ctorStr = "cljs.core/ExceptionInfo";
cljs.core.ExceptionInfo.cljs$lang$ctorPrWriter = function(this__2885__auto__, writer__2886__auto__, opts__2887__auto__) {
return cljs.core._write.call(null, writer__2886__auto__, "cljs.core/ExceptionInfo")
};
cljs.core.ExceptionInfo.prototype = new Error;
cljs.core.ExceptionInfo.prototype.constructor = cljs.core.ExceptionInfo;
cljs.core.ex_info = function() {
var ex_info = null;
var ex_info__2 = function(msg, map) {
return new cljs.core.ExceptionInfo(msg, map, null)
};
var ex_info__3 = function(msg, map, cause) {
return new cljs.core.ExceptionInfo(msg, map, cause)
};
ex_info = function(msg, map, cause) {
switch(arguments.length) {
case 2:
return ex_info__2.call(this, msg, map);
case 3:
return ex_info__3.call(this, msg, map, cause)
}
throw new Error("Invalid arity: " + arguments.length);
};
ex_info.cljs$core$IFn$_invoke$arity$2 = ex_info__2;
ex_info.cljs$core$IFn$_invoke$arity$3 = ex_info__3;
return ex_info
}();
cljs.core.ex_data = function ex_data(ex) {
if(ex instanceof cljs.core.ExceptionInfo) {
return ex.data
}else {
return null
}
};
cljs.core.ex_message = function ex_message(ex) {
if(ex instanceof Error) {
return ex.message
}else {
return null
}
};
cljs.core.ex_cause = function ex_cause(ex) {
if(ex instanceof cljs.core.ExceptionInfo) {
return ex.cause
}else {
return null
}
};
cljs.core.comparator = function comparator(pred) {
return function(x, y) {
if(cljs.core.truth_(pred.call(null, x, y))) {
return-1
}else {
if(cljs.core.truth_(pred.call(null, y, x))) {
return 1
}else {
if("\ufdd0:else") {
return 0
}else {
return null
}
}
}
}
};
cljs.core.special_symbol_QMARK_ = function special_symbol_QMARK_(x) {
return cljs.core.contains_QMARK_.call(null, cljs.core.set([new cljs.core.Symbol(null, "deftype*", "deftype*", -978581244, null), new cljs.core.Symbol(null, "new", "new", -1640422567, null), new cljs.core.Symbol(null, "try*", "try*", -1636962424, null), new cljs.core.Symbol(null, "quote", "quote", -1532577739, null), new cljs.core.Symbol(null, "&", "&", -1640531489, null), new cljs.core.Symbol(null, "set!", "set!", -1637004872, null), new cljs.core.Symbol(null, "recur", "recur", -1532142362, null),
new cljs.core.Symbol(null, ".", ".", -1640531481, null), new cljs.core.Symbol(null, "ns", "ns", -1640528002, null), new cljs.core.Symbol(null, "do", "do", -1640528316, null), new cljs.core.Symbol(null, "fn*", "fn*", -1640430053, null), new cljs.core.Symbol(null, "throw", "throw", -1530191713, null), new cljs.core.Symbol(null, "letfn*", "letfn*", 1548249632, null), new cljs.core.Symbol(null, "js*", "js*", -1640426054, null), new cljs.core.Symbol(null, "defrecord*", "defrecord*", 774272013, null),
new cljs.core.Symbol(null, "let*", "let*", -1637213400, null), new cljs.core.Symbol(null, "loop*", "loop*", -1537374273, null), new cljs.core.Symbol(null, "if", "if", -1640528170, null), new cljs.core.Symbol(null, "def", "def", -1640432194, null)]), x)
};
goog.provide("clojure.zip");
goog.require("cljs.core");
clojure.zip.zipper = function zipper(branch_QMARK_, children, make_node, root) {
return cljs.core.with_meta(cljs.core.PersistentVector.fromArray([root, null], true), cljs.core.PersistentArrayMap.fromArray(["\ufdd0:zip/make-node", make_node, "\ufdd0:zip/children", children, "\ufdd0:zip/branch?", branch_QMARK_], true))
};
clojure.zip.seq_zip = function seq_zip(root) {
return clojure.zip.zipper.call(null, cljs.core.seq_QMARK_, cljs.core.identity, function(node, children) {
return cljs.core.with_meta.call(null, children, cljs.core.meta.call(null, node))
}, root)
};
clojure.zip.vector_zip = function vector_zip(root) {
return clojure.zip.zipper.call(null, cljs.core.vector_QMARK_, cljs.core.seq, function(node, children) {
return cljs.core.with_meta.call(null, cljs.core.vec.call(null, children), cljs.core.meta.call(null, node))
}, root)
};
clojure.zip.xml_zip = function xml_zip(root) {
return clojure.zip.zipper.call(null, cljs.core.complement.call(null, cljs.core.string_QMARK_), cljs.core.comp.call(null, cljs.core.seq, "\ufdd0:content"), function(node, children) {
return cljs.core.assoc.call(null, node, "\ufdd0:content", function() {
var and__3941__auto__ = children;
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.apply.call(null, cljs.core.vector, children)
}else {
return and__3941__auto__
}
}())
}, root)
};
clojure.zip.node = function node(loc) {
return loc.call(null, 0)
};
clojure.zip.branch_QMARK_ = function branch_QMARK_(loc) {
return(new cljs.core.Keyword("\ufdd0:zip/branch?")).call(null, cljs.core.meta.call(null, loc)).call(null, clojure.zip.node.call(null, loc))
};
clojure.zip.children = function children(loc) {
if(cljs.core.truth_(clojure.zip.branch_QMARK_.call(null, loc))) {
return(new cljs.core.Keyword("\ufdd0:zip/children")).call(null, cljs.core.meta.call(null, loc)).call(null, clojure.zip.node.call(null, loc))
}else {
throw"called children on a leaf node";
}
};
clojure.zip.make_node = function make_node(loc, node, children) {
return(new cljs.core.Keyword("\ufdd0:zip/make-node")).call(null, cljs.core.meta.call(null, loc)).call(null, node, children)
};
clojure.zip.path = function path(loc) {
return(new cljs.core.Keyword("\ufdd0:pnodes")).call(null, loc.call(null, 1))
};
clojure.zip.lefts = function lefts(loc) {
return cljs.core.seq.call(null, (new cljs.core.Keyword("\ufdd0:l")).call(null, loc.call(null, 1)))
};
clojure.zip.rights = function rights(loc) {
return(new cljs.core.Keyword("\ufdd0:r")).call(null, loc.call(null, 1))
};
clojure.zip.down = function down(loc) {
if(cljs.core.truth_(clojure.zip.branch_QMARK_.call(null, loc))) {
var vec__3668 = loc;
var node = cljs.core.nth.call(null, vec__3668, 0, null);
var path = cljs.core.nth.call(null, vec__3668, 1, null);
var vec__3669 = clojure.zip.children.call(null, loc);
var c = cljs.core.nth.call(null, vec__3669, 0, null);
var cnext = cljs.core.nthnext.call(null, vec__3669, 1);
var cs = vec__3669;
if(cljs.core.truth_(cs)) {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([c, cljs.core.PersistentArrayMap.fromArray(["\ufdd0:l", cljs.core.PersistentVector.EMPTY, "\ufdd0:pnodes", cljs.core.truth_(path) ? cljs.core.conj.call(null, (new cljs.core.Keyword("\ufdd0:pnodes")).call(null, path), node) : cljs.core.PersistentVector.fromArray([node], true), "\ufdd0:ppath", path, "\ufdd0:r", cnext], true)], true), cljs.core.meta.call(null, loc))
}else {
return null
}
}else {
return null
}
};
clojure.zip.up = function up(loc) {
var vec__3672 = loc;
var node = cljs.core.nth.call(null, vec__3672, 0, null);
var map__3673 = cljs.core.nth.call(null, vec__3672, 1, null);
var map__3673__$1 = cljs.core.seq_QMARK_.call(null, map__3673) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3673) : map__3673;
var path = map__3673__$1;
var l = cljs.core.get.call(null, map__3673__$1, "\ufdd0:l");
var ppath = cljs.core.get.call(null, map__3673__$1, "\ufdd0:ppath");
var pnodes = cljs.core.get.call(null, map__3673__$1, "\ufdd0:pnodes");
var r = cljs.core.get.call(null, map__3673__$1, "\ufdd0:r");
var changed_QMARK_ = cljs.core.get.call(null, map__3673__$1, "\ufdd0:changed?");
if(cljs.core.truth_(pnodes)) {
var pnode = cljs.core.peek.call(null, pnodes);
return cljs.core.with_meta.call(null, cljs.core.truth_(changed_QMARK_) ? cljs.core.PersistentVector.fromArray([clojure.zip.make_node.call(null, loc, pnode, cljs.core.concat.call(null, l, cljs.core.cons.call(null, node, r))), function() {
var and__3941__auto__ = ppath;
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.assoc.call(null, ppath, "\ufdd0:changed?", true)
}else {
return and__3941__auto__
}
}()], true) : cljs.core.PersistentVector.fromArray([pnode, ppath], true), cljs.core.meta.call(null, loc))
}else {
return null
}
};
clojure.zip.root = function root(loc) {
while(true) {
if(cljs.core._EQ_.call(null, "\ufdd0:end", loc.call(null, 1))) {
return clojure.zip.node.call(null, loc)
}else {
var p = clojure.zip.up.call(null, loc);
if(cljs.core.truth_(p)) {
var G__3674 = p;
loc = G__3674;
continue
}else {
return clojure.zip.node.call(null, loc)
}
}
break
}
};
clojure.zip.right = function right(loc) {
var vec__3678 = loc;
var node = cljs.core.nth.call(null, vec__3678, 0, null);
var map__3679 = cljs.core.nth.call(null, vec__3678, 1, null);
var map__3679__$1 = cljs.core.seq_QMARK_.call(null, map__3679) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3679) : map__3679;
var path = map__3679__$1;
var l = cljs.core.get.call(null, map__3679__$1, "\ufdd0:l");
var vec__3680 = cljs.core.get.call(null, map__3679__$1, "\ufdd0:r");
var r = cljs.core.nth.call(null, vec__3680, 0, null);
var rnext = cljs.core.nthnext.call(null, vec__3680, 1);
var rs = vec__3680;
if(cljs.core.truth_(function() {
var and__3941__auto__ = path;
if(cljs.core.truth_(and__3941__auto__)) {
return rs
}else {
return and__3941__auto__
}
}())) {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([r, cljs.core.assoc.call(null, path, "\ufdd0:l", cljs.core.conj.call(null, l, node), "\ufdd0:r", rnext)], true), cljs.core.meta.call(null, loc))
}else {
return null
}
};
clojure.zip.rightmost = function rightmost(loc) {
var vec__3683 = loc;
var node = cljs.core.nth.call(null, vec__3683, 0, null);
var map__3684 = cljs.core.nth.call(null, vec__3683, 1, null);
var map__3684__$1 = cljs.core.seq_QMARK_.call(null, map__3684) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3684) : map__3684;
var path = map__3684__$1;
var l = cljs.core.get.call(null, map__3684__$1, "\ufdd0:l");
var r = cljs.core.get.call(null, map__3684__$1, "\ufdd0:r");
if(cljs.core.truth_(function() {
var and__3941__auto__ = path;
if(cljs.core.truth_(and__3941__auto__)) {
return r
}else {
return and__3941__auto__
}
}())) {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([cljs.core.last.call(null, r), cljs.core.assoc.call(null, path, "\ufdd0:l", cljs.core.apply.call(null, cljs.core.conj, l, node, cljs.core.butlast.call(null, r)), "\ufdd0:r", null)], true), cljs.core.meta.call(null, loc))
}else {
return loc
}
};
clojure.zip.left = function left(loc) {
var vec__3687 = loc;
var node = cljs.core.nth.call(null, vec__3687, 0, null);
var map__3688 = cljs.core.nth.call(null, vec__3687, 1, null);
var map__3688__$1 = cljs.core.seq_QMARK_.call(null, map__3688) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3688) : map__3688;
var path = map__3688__$1;
var l = cljs.core.get.call(null, map__3688__$1, "\ufdd0:l");
var r = cljs.core.get.call(null, map__3688__$1, "\ufdd0:r");
if(cljs.core.truth_(function() {
var and__3941__auto__ = path;
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.seq.call(null, l)
}else {
return and__3941__auto__
}
}())) {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([cljs.core.peek.call(null, l), cljs.core.assoc.call(null, path, "\ufdd0:l", cljs.core.pop.call(null, l), "\ufdd0:r", cljs.core.cons.call(null, node, r))], true), cljs.core.meta.call(null, loc))
}else {
return null
}
};
clojure.zip.leftmost = function leftmost(loc) {
var vec__3691 = loc;
var node = cljs.core.nth.call(null, vec__3691, 0, null);
var map__3692 = cljs.core.nth.call(null, vec__3691, 1, null);
var map__3692__$1 = cljs.core.seq_QMARK_.call(null, map__3692) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3692) : map__3692;
var path = map__3692__$1;
var l = cljs.core.get.call(null, map__3692__$1, "\ufdd0:l");
var r = cljs.core.get.call(null, map__3692__$1, "\ufdd0:r");
if(cljs.core.truth_(function() {
var and__3941__auto__ = path;
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.seq.call(null, l)
}else {
return and__3941__auto__
}
}())) {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([cljs.core.first.call(null, l), cljs.core.assoc.call(null, path, "\ufdd0:l", cljs.core.PersistentVector.EMPTY, "\ufdd0:r", cljs.core.concat.call(null, cljs.core.rest.call(null, l), cljs.core.PersistentVector.fromArray([node], true), r))], true), cljs.core.meta.call(null, loc))
}else {
return loc
}
};
clojure.zip.insert_left = function insert_left(loc, item) {
var vec__3695 = loc;
var node = cljs.core.nth.call(null, vec__3695, 0, null);
var map__3696 = cljs.core.nth.call(null, vec__3695, 1, null);
var map__3696__$1 = cljs.core.seq_QMARK_.call(null, map__3696) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3696) : map__3696;
var path = map__3696__$1;
var l = cljs.core.get.call(null, map__3696__$1, "\ufdd0:l");
if(path == null) {
throw"Insert at top";
}else {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([node, cljs.core.assoc.call(null, path, "\ufdd0:l", cljs.core.conj.call(null, l, item), "\ufdd0:changed?", true)], true), cljs.core.meta.call(null, loc))
}
};
clojure.zip.insert_right = function insert_right(loc, item) {
var vec__3699 = loc;
var node = cljs.core.nth.call(null, vec__3699, 0, null);
var map__3700 = cljs.core.nth.call(null, vec__3699, 1, null);
var map__3700__$1 = cljs.core.seq_QMARK_.call(null, map__3700) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3700) : map__3700;
var path = map__3700__$1;
var r = cljs.core.get.call(null, map__3700__$1, "\ufdd0:r");
if(path == null) {
throw"Insert at top";
}else {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([node, cljs.core.assoc.call(null, path, "\ufdd0:r", cljs.core.cons.call(null, item, r), "\ufdd0:changed?", true)], true), cljs.core.meta.call(null, loc))
}
};
clojure.zip.replace = function replace(loc, node) {
var vec__3702 = loc;
var _ = cljs.core.nth.call(null, vec__3702, 0, null);
var path = cljs.core.nth.call(null, vec__3702, 1, null);
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([node, cljs.core.assoc.call(null, path, "\ufdd0:changed?", true)], true), cljs.core.meta.call(null, loc))
};
clojure.zip.edit = function() {
var edit__delegate = function(loc, f, args) {
return clojure.zip.replace.call(null, loc, cljs.core.apply.call(null, f, clojure.zip.node.call(null, loc), args))
};
var edit = function(loc, f, var_args) {
var args = null;
if(arguments.length > 2) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return edit__delegate.call(this, loc, f, args)
};
edit.cljs$lang$maxFixedArity = 2;
edit.cljs$lang$applyTo = function(arglist__3703) {
var loc = cljs.core.first(arglist__3703);
arglist__3703 = cljs.core.next(arglist__3703);
var f = cljs.core.first(arglist__3703);
var args = cljs.core.rest(arglist__3703);
return edit__delegate(loc, f, args)
};
edit.cljs$core$IFn$_invoke$arity$variadic = edit__delegate;
return edit
}();
clojure.zip.insert_child = function insert_child(loc, item) {
return clojure.zip.replace.call(null, loc, clojure.zip.make_node.call(null, loc, clojure.zip.node.call(null, loc), cljs.core.cons.call(null, item, clojure.zip.children.call(null, loc))))
};
clojure.zip.append_child = function append_child(loc, item) {
return clojure.zip.replace.call(null, loc, clojure.zip.make_node.call(null, loc, clojure.zip.node.call(null, loc), cljs.core.concat.call(null, clojure.zip.children.call(null, loc), cljs.core.PersistentVector.fromArray([item], true))))
};
clojure.zip.next = function next(loc) {
if(cljs.core._EQ_.call(null, "\ufdd0:end", loc.call(null, 1))) {
return loc
}else {
var or__3943__auto__ = function() {
var and__3941__auto__ = clojure.zip.branch_QMARK_.call(null, loc);
if(cljs.core.truth_(and__3941__auto__)) {
return clojure.zip.down.call(null, loc)
}else {
return and__3941__auto__
}
}();
if(cljs.core.truth_(or__3943__auto__)) {
return or__3943__auto__
}else {
var or__3943__auto____$1 = clojure.zip.right.call(null, loc);
if(cljs.core.truth_(or__3943__auto____$1)) {
return or__3943__auto____$1
}else {
var p = loc;
while(true) {
if(cljs.core.truth_(clojure.zip.up.call(null, p))) {
var or__3943__auto____$2 = clojure.zip.right.call(null, clojure.zip.up.call(null, p));
if(cljs.core.truth_(or__3943__auto____$2)) {
return or__3943__auto____$2
}else {
var G__3704 = clojure.zip.up.call(null, p);
p = G__3704;
continue
}
}else {
return cljs.core.PersistentVector.fromArray([clojure.zip.node.call(null, p), "\ufdd0:end"], true)
}
break
}
}
}
}
};
clojure.zip.prev = function prev(loc) {
var temp__4090__auto__ = clojure.zip.left.call(null, loc);
if(cljs.core.truth_(temp__4090__auto__)) {
var lloc = temp__4090__auto__;
var loc__$1 = lloc;
while(true) {
var temp__4090__auto____$1 = function() {
var and__3941__auto__ = clojure.zip.branch_QMARK_.call(null, loc__$1);
if(cljs.core.truth_(and__3941__auto__)) {
return clojure.zip.down.call(null, loc__$1)
}else {
return and__3941__auto__
}
}();
if(cljs.core.truth_(temp__4090__auto____$1)) {
var child = temp__4090__auto____$1;
var G__3705 = clojure.zip.rightmost.call(null, child);
loc__$1 = G__3705;
continue
}else {
return loc__$1
}
break
}
}else {
return clojure.zip.up.call(null, loc)
}
};
clojure.zip.end_QMARK_ = function end_QMARK_(loc) {
return cljs.core._EQ_.call(null, "\ufdd0:end", loc.call(null, 1))
};
clojure.zip.remove = function remove(loc) {
var vec__3708 = loc;
var node = cljs.core.nth.call(null, vec__3708, 0, null);
var map__3709 = cljs.core.nth.call(null, vec__3708, 1, null);
var map__3709__$1 = cljs.core.seq_QMARK_.call(null, map__3709) ? cljs.core.apply.call(null, cljs.core.hash_map, map__3709) : map__3709;
var path = map__3709__$1;
var l = cljs.core.get.call(null, map__3709__$1, "\ufdd0:l");
var ppath = cljs.core.get.call(null, map__3709__$1, "\ufdd0:ppath");
var pnodes = cljs.core.get.call(null, map__3709__$1, "\ufdd0:pnodes");
var rs = cljs.core.get.call(null, map__3709__$1, "\ufdd0:r");
if(path == null) {
throw"Remove at top";
}else {
if(cljs.core.count.call(null, l) > 0) {
var loc__$1 = cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([cljs.core.peek.call(null, l), cljs.core.assoc.call(null, path, "\ufdd0:l", cljs.core.pop.call(null, l), "\ufdd0:changed?", true)], true), cljs.core.meta.call(null, loc));
while(true) {
var temp__4090__auto__ = function() {
var and__3941__auto__ = clojure.zip.branch_QMARK_.call(null, loc__$1);
if(cljs.core.truth_(and__3941__auto__)) {
return clojure.zip.down.call(null, loc__$1)
}else {
return and__3941__auto__
}
}();
if(cljs.core.truth_(temp__4090__auto__)) {
var child = temp__4090__auto__;
var G__3710 = clojure.zip.rightmost.call(null, child);
loc__$1 = G__3710;
continue
}else {
return loc__$1
}
break
}
}else {
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([clojure.zip.make_node.call(null, loc, cljs.core.peek.call(null, pnodes), rs), function() {
var and__3941__auto__ = ppath;
if(cljs.core.truth_(and__3941__auto__)) {
return cljs.core.assoc.call(null, ppath, "\ufdd0:changed?", true)
}else {
return and__3941__auto__
}
}()], true), cljs.core.meta.call(null, loc))
}
}
};
goog.provide("clojure.walk");
goog.require("cljs.core");
clojure.walk.walk = function walk(inner, outer, form) {
if(cljs.core.seq_QMARK_.call(null, form)) {
return outer.call(null, cljs.core.doall.call(null, cljs.core.map.call(null, inner, form)))
}else {
if(cljs.core.coll_QMARK_.call(null, form)) {
return outer.call(null, cljs.core.into.call(null, cljs.core.empty.call(null, form), cljs.core.map.call(null, inner, form)))
}else {
if("\ufdd0:else") {
return outer.call(null, form)
}else {
return null
}
}
}
};
clojure.walk.postwalk = function postwalk(f, form) {
return clojure.walk.walk.call(null, cljs.core.partial.call(null, postwalk, f), f, form)
};
clojure.walk.prewalk = function prewalk(f, form) {
return clojure.walk.walk.call(null, cljs.core.partial.call(null, prewalk, f), cljs.core.identity, f.call(null, form))
};
clojure.walk.keywordize_keys = function keywordize_keys(m) {
var f = function(p__10410) {
var vec__10411 = p__10410;
var k = cljs.core.nth.call(null, vec__10411, 0, null);
var v = cljs.core.nth.call(null, vec__10411, 1, null);
if(cljs.core.string_QMARK_.call(null, k)) {
return cljs.core.PersistentVector.fromArray([cljs.core.keyword.call(null, k), v], true)
}else {
return cljs.core.PersistentVector.fromArray([k, v], true)
}
};
return clojure.walk.postwalk.call(null, function(x) {
if(cljs.core.map_QMARK_.call(null, x)) {
return cljs.core.into.call(null, cljs.core.ObjMap.EMPTY, cljs.core.map.call(null, f, x))
}else {
return x
}
}, m)
};
clojure.walk.stringify_keys = function stringify_keys(m) {
var f = function(p__10414) {
var vec__10415 = p__10414;
var k = cljs.core.nth.call(null, vec__10415, 0, null);
var v = cljs.core.nth.call(null, vec__10415, 1, null);
if(cljs.core.keyword_QMARK_.call(null, k)) {
return cljs.core.PersistentVector.fromArray([cljs.core.name.call(null, k), v], true)
}else {
return cljs.core.PersistentVector.fromArray([k, v], true)
}
};
return clojure.walk.postwalk.call(null, function(x) {
if(cljs.core.map_QMARK_.call(null, x)) {
return cljs.core.into.call(null, cljs.core.ObjMap.EMPTY, cljs.core.map.call(null, f, x))
}else {
return x
}
}, m)
};
clojure.walk.prewalk_replace = function prewalk_replace(smap, form) {
return clojure.walk.prewalk.call(null, function(x) {
if(cljs.core.contains_QMARK_.call(null, smap, x)) {
return smap.call(null, x)
}else {
return x
}
}, form)
};
clojure.walk.postwalk_replace = function postwalk_replace(smap, form) {
return clojure.walk.postwalk.call(null, function(x) {
if(cljs.core.contains_QMARK_.call(null, smap, x)) {
return smap.call(null, x)
}else {
return x
}
}, form)
};
goog.provide("clojure.string");
goog.require("cljs.core");
goog.require("goog.string.StringBuffer");
goog.require("goog.string");
clojure.string.seq_reverse = function seq_reverse(coll) {
return cljs.core.reduce.call(null, cljs.core.conj, cljs.core.List.EMPTY, coll)
};
clojure.string.reverse = function reverse(s) {
return s.split("").reverse().join("")
};
clojure.string.replace = function replace(s, match, replacement) {
if(cljs.core.string_QMARK_.call(null, match)) {
return s.replace(new RegExp(goog.string.regExpEscape(match), "g"), replacement)
}else {
if(cljs.core.truth_(match.hasOwnProperty("source"))) {
return s.replace(new RegExp(match.source, "g"), replacement)
}else {
if("\ufdd0:else") {
throw[cljs.core.str("Invalid match arg: "), cljs.core.str(match)].join("");
}else {
return null
}
}
}
};
clojure.string.replace_first = function replace_first(s, match, replacement) {
return s.replace(match, replacement)
};
clojure.string.join = function() {
var join = null;
var join__1 = function(coll) {
return cljs.core.apply.call(null, cljs.core.str, coll)
};
var join__2 = function(separator, coll) {
return cljs.core.apply.call(null, cljs.core.str, cljs.core.interpose.call(null, separator, coll))
};
join = function(separator, coll) {
switch(arguments.length) {
case 1:
return join__1.call(this, separator);
case 2:
return join__2.call(this, separator, coll)
}
throw new Error("Invalid arity: " + arguments.length);
};
join.cljs$core$IFn$_invoke$arity$1 = join__1;
join.cljs$core$IFn$_invoke$arity$2 = join__2;
return join
}();
clojure.string.upper_case = function upper_case(s) {
return s.toUpperCase()
};
clojure.string.lower_case = function lower_case(s) {
return s.toLowerCase()
};
clojure.string.capitalize = function capitalize(s) {
if(cljs.core.count.call(null, s) < 2) {
return clojure.string.upper_case.call(null, s)
}else {
return[cljs.core.str(clojure.string.upper_case.call(null, cljs.core.subs.call(null, s, 0, 1))), cljs.core.str(clojure.string.lower_case.call(null, cljs.core.subs.call(null, s, 1)))].join("")
}
};
clojure.string.split = function() {
var split = null;
var split__2 = function(s, re) {
return cljs.core.vec.call(null, [cljs.core.str(s)].join("").split(re))
};
var split__3 = function(s, re, limit) {
if(limit < 1) {
return cljs.core.vec.call(null, [cljs.core.str(s)].join("").split(re))
}else {
var s__$1 = s;
var limit__$1 = limit;
var parts = cljs.core.PersistentVector.EMPTY;
while(true) {
if(cljs.core._EQ_.call(null, limit__$1, 1)) {
return cljs.core.conj.call(null, parts, s__$1)
}else {
var temp__4090__auto__ = cljs.core.re_find.call(null, re, s__$1);
if(cljs.core.truth_(temp__4090__auto__)) {
var m = temp__4090__auto__;
var index = s__$1.indexOf(m);
var G__6591 = s__$1.substring(index + cljs.core.count.call(null, m));
var G__6592 = limit__$1 - 1;
var G__6593 = cljs.core.conj.call(null, parts, s__$1.substring(0, index));
s__$1 = G__6591;
limit__$1 = G__6592;
parts = G__6593;
continue
}else {
return cljs.core.conj.call(null, parts, s__$1)
}
}
break
}
}
};
split = function(s, re, limit) {
switch(arguments.length) {
case 2:
return split__2.call(this, s, re);
case 3:
return split__3.call(this, s, re, limit)
}
throw new Error("Invalid arity: " + arguments.length);
};
split.cljs$core$IFn$_invoke$arity$2 = split__2;
split.cljs$core$IFn$_invoke$arity$3 = split__3;
return split
}();
clojure.string.split_lines = function split_lines(s) {
return clojure.string.split.call(null, s, /\n|\r\n/)
};
clojure.string.trim = function trim(s) {
return goog.string.trim(s)
};
clojure.string.triml = function triml(s) {
return goog.string.trimLeft(s)
};
clojure.string.trimr = function trimr(s) {
return goog.string.trimRight(s)
};
clojure.string.trim_newline = function trim_newline(s) {
var index = s.length;
while(true) {
if(index === 0) {
return""
}else {
var ch = cljs.core.get.call(null, s, index - 1);
if(function() {
var or__3943__auto__ = cljs.core._EQ_.call(null, ch, "\n");
if(or__3943__auto__) {
return or__3943__auto__
}else {
return cljs.core._EQ_.call(null, ch, "\r")
}
}()) {
var G__6594 = index - 1;
index = G__6594;
continue
}else {
return s.substring(0, index)
}
}
break
}
};
clojure.string.blank_QMARK_ = function blank_QMARK_(s) {
return goog.string.isEmptySafe(s)
};
clojure.string.escape = function escape(s, cmap) {
var buffer = new goog.string.StringBuffer;
var length = s.length;
var index = 0;
while(true) {
if(cljs.core._EQ_.call(null, length, index)) {
return buffer.toString()
}else {
var ch = s.charAt(index);
var temp__4090__auto___6595 = cljs.core.get.call(null, cmap, ch);
if(cljs.core.truth_(temp__4090__auto___6595)) {
var replacement_6596 = temp__4090__auto___6595;
buffer.append([cljs.core.str(replacement_6596)].join(""))
}else {
buffer.append(ch)
}
var G__6597 = index + 1;
index = G__6597;
continue
}
break
}
};
goog.provide("enlil.gp");
goog.require("cljs.core");
goog.require("clojure.string");
goog.require("clojure.walk");
goog.require("clojure.zip");
enlil.gp.popsize = 1E3;
enlil.gp.target_data = cljs.core.map.call(null, function(p1__6122_SHARP_) {
return cljs.core.vector.call(null, p1__6122_SHARP_, 2 * p1__6122_SHARP_ * p1__6122_SHARP_ + 3 * p1__6122_SHARP_ + 4)
}, cljs.core.range.call(null, -1, 1, 0.01));
enlil.gp.g1 = cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "+", "+", -1640531484, null), 8, cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "*", "*", -1640531485, null), 9, 0), cljs.core.hash_map("\ufdd0:line", 13, "\ufdd0:column", 15))), cljs.core.hash_map("\ufdd0:line", 13, "\ufdd0:column", 10));
enlil.gp.g2 = cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "*", "*", -1640531485, null), cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "+", "+", -1640531484, null), 1, 2), cljs.core.hash_map("\ufdd0:line", 15, "\ufdd0:column", 13)), cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "-", "-", -1640531482, null), cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "*", "*", -1640531485, null), 3, 4), cljs.core.hash_map("\ufdd0:line", 15, "\ufdd0:column",
24)), cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "+", "+", -1640531484, null), 5, cljs.core.with_meta(cljs.core.list(new cljs.core.Symbol(null, "+", "+", -1640531484, null), 6, 7), cljs.core.hash_map("\ufdd0:line", 15, "\ufdd0:column", 37))), cljs.core.hash_map("\ufdd0:line", 15, "\ufdd0:column", 32))), cljs.core.hash_map("\ufdd0:line", 15, "\ufdd0:column", 21))), cljs.core.hash_map("\ufdd0:line", 15, "\ufdd0:column", 10));
enlil.gp.fns = cljs.core.PersistentHashSet.fromArray([new cljs.core.Symbol(null, "+", "+", -1640531484, null), null, new cljs.core.Symbol(null, "*", "*", -1640531485, null), null, new cljs.core.Symbol(null, "-", "-", -1640531482, null), null], true);
enlil.gp.fn_map = cljs.core.PersistentArrayMap.fromArray([new cljs.core.Symbol(null, "+", "+", -1640531484, null), cljs.core._PLUS_, new cljs.core.Symbol(null, "*", "*", -1640531485, null), cljs.core._STAR_, new cljs.core.Symbol(null, "-", "-", -1640531482, null), cljs.core._], true);
enlil.gp.locs = function locs(G) {
var zipper = clojure.zip.seq_zip.call(null, G);
var all_locs = cljs.core.take_while.call(null, function(zipper) {
return function(p1__6123_SHARP_) {
return cljs.core.not.call(null, clojure.zip.end_QMARK_.call(null, p1__6123_SHARP_))
}
}(zipper), cljs.core.iterate.call(null, clojure.zip.next, zipper));
return cljs.core.filter.call(null, function(p1__6124_SHARP_) {
return cljs.core.not.call(null, enlil.gp.fns.call(null, clojure.zip.node.call(null, p1__6124_SHARP_)))
}, all_locs)
};
enlil.gp.replace_loc = function replace_loc(l, r) {
return clojure.zip.root.call(null, clojure.zip.replace.call(null, l, clojure.zip.node.call(null, r)))
};
enlil.gp.breed = function breed(L, R) {
var l = cljs.core.rand_nth.call(null, enlil.gp.locs.call(null, L));
var r = cljs.core.rand_nth.call(null, enlil.gp.locs.call(null, R));
return cljs.core.rand_nth.call(null, cljs.core.PersistentVector.fromArray([enlil.gp.replace_loc.call(null, l, r), enlil.gp.replace_loc.call(null, r, l)], true))
};
enlil.gp.mutate = function mutate(G) {
return enlil.gp.breed.call(null, G, enlil.gp.random_code.call(null))
};
enlil.gp.vec_fns = cljs.core.vec.call(null, enlil.gp.fns);
enlil.gp.random_fn = function random_fn() {
return cljs.core.rand_nth.call(null, enlil.gp.vec_fns)
};
enlil.gp.random_terminal = function random_terminal() {
if(cljs.core.rand.call(null) < 0.5) {
return new cljs.core.Symbol(null, "x", "x", -1640531407, null)
}else {
return cljs.core.rand.call(null, 10) - 5
}
};
enlil.gp.eval = function eval(expression, bindings) {
return clojure.walk.postwalk.call(null, function(exp) {
if(cljs.core.seq_QMARK_.call(null, exp)) {
return cljs.core.apply.call(null, enlil.gp.fn_map.call(null, cljs.core.first.call(null, exp)), cljs.core.rest.call(null, exp))
}else {
return exp
}
}, clojure.walk.postwalk_replace.call(null, bindings, expression))
};
enlil.gp.random_code = function() {
var random_code = null;
var random_code__0 = function() {
return random_code.call(null, 2)
};
var random_code__1 = function(depth) {
if(cljs.core.rand_int.call(null, depth) === 0) {
return cljs.core.cons.call(null, enlil.gp.random_fn.call(null), cljs.core.repeatedly.call(null, 2, function() {
return random_code.call(null, depth + 1)
}))
}else {
return enlil.gp.random_terminal.call(null)
}
};
random_code = function(depth) {
switch(arguments.length) {
case 0:
return random_code__0.call(this);
case 1:
return random_code__1.call(this, depth)
}
throw new Error("Invalid arity: " + arguments.length);
};
random_code.cljs$core$IFn$_invoke$arity$0 = random_code__0;
random_code.cljs$core$IFn$_invoke$arity$1 = random_code__1;
return random_code
}();
enlil.gp.error = function error(individual) {
return cljs.core.reduce.call(null, cljs.core._PLUS_, cljs.core.map.call(null, function(p__6128) {
var vec__6129 = p__6128;
var x = cljs.core.nth.call(null, vec__6129, 0, null);
var y = cljs.core.nth.call(null, vec__6129, 1, null);
return Math.abs.call(null, enlil.gp.eval.call(null, individual, cljs.core.PersistentArrayMap.fromArray([new cljs.core.Symbol(null, "x", "x", -1640531407, null), x], true)) - y)
}, enlil.gp.target_data))
};
enlil.gp.sort_by_error = function sort_by_error(population) {
return cljs.core.vec.call(null, cljs.core.map.call(null, cljs.core.second, cljs.core.sort.call(null, function(p__6134, p__6135) {
var vec__6136 = p__6134;
var err1 = cljs.core.nth.call(null, vec__6136, 0, null);
var ind1 = cljs.core.nth.call(null, vec__6136, 1, null);
var vec__6137 = p__6135;
var err2 = cljs.core.nth.call(null, vec__6137, 0, null);
var ind2 = cljs.core.nth.call(null, vec__6137, 1, null);
return err1 < err2
}, cljs.core.map.call(null, function(p1__6125_SHARP_) {
return cljs.core.vector.call(null, enlil.gp.error.call(null, p1__6125_SHARP_), p1__6125_SHARP_)
}, population))))
};
enlil.gp.select = function select(population, tournament_size) {
var size = cljs.core.count.call(null, population);
return cljs.core.nth.call(null, population, cljs.core.apply.call(null, cljs.core.min, cljs.core.repeatedly.call(null, tournament_size, function() {
return cljs.core.rand_int.call(null, size)
})))
};
enlil.gp.println = function() {
var println__delegate = function(stuff) {
return console.log(clojure.string.join.call(null, " ", stuff))
};
var println = function(var_args) {
var stuff = null;
if(arguments.length > 0) {
stuff = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return println__delegate.call(this, stuff)
};
println.cljs$lang$maxFixedArity = 0;
println.cljs$lang$applyTo = function(arglist__6138) {
var stuff = cljs.core.seq(arglist__6138);
return println__delegate(stuff)
};
println.cljs$core$IFn$_invoke$arity$variadic = println__delegate;
return println
}();
enlil.gp.evolve = function evolve() {
var initial_population = enlil.gp.sort_by_error.call(null, cljs.core.repeatedly.call(null, enlil.gp.popsize, function() {
return enlil.gp.random_code.call(null)
}));
enlil.gp.println.call(null, "Starting evolution...");
var generation = 0;
var population = initial_population;
while(true) {
var best = cljs.core.first.call(null, population);
var best_error = enlil.gp.error.call(null, best);
enlil.gp.println.call(null, "======================");
enlil.gp.println.call(null, "Generation:", generation);
enlil.gp.println.call(null, "Best error:", best_error);
enlil.gp.println.call(null, "Best program:", best);
enlil.gp.println.call(null, " Average program size:", cljs.core.reduce.call(null, cljs.core._PLUS_, cljs.core.map.call(null, cljs.core.count, cljs.core.map.call(null, cljs.core.flatten, population))) / cljs.core.count.call(null, population));
if(best_error < 0.1) {
return enlil.gp.println.call(null, "Success:", best)
}else {
var G__6139 = generation + 1;
var G__6140 = enlil.gp.sort_by_error.call(null, cljs.core.concat.call(null, cljs.core.repeatedly.call(null, 0.5 * enlil.gp.popsize, function(generation, population, best, best_error) {
return function() {
return enlil.gp.mutate.call(null, enlil.gp.select.call(null, population, 7))
}
}(generation, population, best, best_error)), cljs.core.repeatedly.call(null, 0.25 * enlil.gp.popsize, function(generation, population, best, best_error) {
return function() {
return enlil.gp.breed.call(null, enlil.gp.select.call(null, population, 7), enlil.gp.select.call(null, population, 7))
}
}(generation, population, best, best_error)), cljs.core.repeatedly.call(null, 0.25 * enlil.gp.popsize, function(generation, population, best, best_error) {
return function() {
return enlil.gp.select.call(null, population, 7)
}
}(generation, population, best, best_error))));
generation = G__6139;
population = G__6140;
continue
}
break
}
};
enlil.gp._main = function _main() {
return enlil.gp.evolve.call(null)
};
goog.provide("goog.disposable.IDisposable");
goog.disposable.IDisposable = function() {
};
goog.disposable.IDisposable.prototype.dispose;
goog.disposable.IDisposable.prototype.isDisposed;
goog.provide("goog.Disposable");
goog.provide("goog.dispose");
goog.require("goog.disposable.IDisposable");
goog.Disposable = function() {
this.disposed_ = false;
if(goog.Disposable.ENABLE_MONITORING) {
this.creationStack = (new Error).stack;
goog.Disposable.instances_[goog.getUid(this)] = this
}
};
goog.Disposable.ENABLE_MONITORING = false;
goog.Disposable.instances_ = {};
goog.Disposable.getUndisposedObjects = function() {
var ret = [];
for(var id in goog.Disposable.instances_) {
if(goog.Disposable.instances_.hasOwnProperty(id)) {
ret.push(goog.Disposable.instances_[Number(id)])
}
}
return ret
};
goog.Disposable.clearUndisposedObjects = function() {
goog.Disposable.instances_ = {}
};
goog.Disposable.prototype.dependentDisposables_;
goog.Disposable.prototype.onDisposeCallbacks_;
goog.Disposable.prototype.creationStack;
goog.Disposable.prototype.isDisposed = function() {
return!!this.disposed_
};
goog.Disposable.prototype.getDisposed = goog.Disposable.prototype.isDisposed;
goog.Disposable.prototype.dispose = function() {
if(!this.disposed_) {
if(goog.Disposable.ENABLE_MONITORING) {
if(this.disposed_ == undefined) {
throw Error(this + " did not call the goog.Disposable base " + "constructor");
}
var uid = goog.getUid(this);
delete goog.Disposable.instances_[uid]
}
this.disposed_ = true;
this.disposeInternal()
}
};
goog.Disposable.prototype.registerDisposable = function(disposable) {
if(!this.dependentDisposables_) {
this.dependentDisposables_ = []
}
this.dependentDisposables_.push(disposable)
};
goog.Disposable.prototype.addOnDisposeCallback = function(callback, opt_scope) {
if(!this.onDisposeCallbacks_) {
this.onDisposeCallbacks_ = []
}
this.onDisposeCallbacks_.push(goog.bind(callback, opt_scope))
};
goog.Disposable.prototype.disposeInternal = function() {
if(this.dependentDisposables_) {
goog.disposeAll.apply(null, this.dependentDisposables_)
}
if(this.onDisposeCallbacks_) {
while(this.onDisposeCallbacks_.length) {
this.onDisposeCallbacks_.shift()()
}
}
};
goog.dispose = function(obj) {
if(obj && typeof obj.dispose == "function") {
obj.dispose()
}
};
goog.disposeAll = function(var_args) {
for(var i = 0, len = arguments.length;i < len;++i) {
var disposable = arguments[i];
if(goog.isArrayLike(disposable)) {
goog.disposeAll.apply(null, disposable)
}else {
goog.dispose(disposable)
}
}
};
goog.provide("goog.debug.EntryPointMonitor");
goog.provide("goog.debug.entryPointRegistry");
goog.require("goog.asserts");
goog.debug.EntryPointMonitor = function() {
};
goog.debug.EntryPointMonitor.prototype.wrap;
goog.debug.EntryPointMonitor.prototype.unwrap;
goog.debug.entryPointRegistry.refList_ = [];
goog.debug.entryPointRegistry.monitors_ = [];
goog.debug.entryPointRegistry.monitorsMayExist_ = false;
goog.debug.entryPointRegistry.register = function(callback) {
goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length] = callback;
if(goog.debug.entryPointRegistry.monitorsMayExist_) {
var monitors = goog.debug.entryPointRegistry.monitors_;
for(var i = 0;i < monitors.length;i++) {
callback(goog.bind(monitors[i].wrap, monitors[i]))
}
}
};
goog.debug.entryPointRegistry.monitorAll = function(monitor) {
goog.debug.entryPointRegistry.monitorsMayExist_ = true;
var transformer = goog.bind(monitor.wrap, monitor);
for(var i = 0;i < goog.debug.entryPointRegistry.refList_.length;i++) {
goog.debug.entryPointRegistry.refList_[i](transformer)
}
goog.debug.entryPointRegistry.monitors_.push(monitor)
};
goog.debug.entryPointRegistry.unmonitorAllIfPossible = function(monitor) {
var monitors = goog.debug.entryPointRegistry.monitors_;
goog.asserts.assert(monitor == monitors[monitors.length - 1], "Only the most recent monitor can be unwrapped.");
var transformer = goog.bind(monitor.unwrap, monitor);
for(var i = 0;i < goog.debug.entryPointRegistry.refList_.length;i++) {
goog.debug.entryPointRegistry.refList_[i](transformer)
}
monitors.length--
};
goog.provide("goog.debug.errorHandlerWeakDep");
goog.debug.errorHandlerWeakDep = {protectEntryPoint:function(fn, opt_tracers) {
return fn
}};
goog.provide("goog.userAgent");
goog.require("goog.string");
goog.userAgent.ASSUME_IE = false;
goog.userAgent.ASSUME_GECKO = false;
goog.userAgent.ASSUME_WEBKIT = false;
goog.userAgent.ASSUME_MOBILE_WEBKIT = false;
goog.userAgent.ASSUME_OPERA = false;
goog.userAgent.ASSUME_ANY_VERSION = false;
goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;
goog.userAgent.getUserAgentString = function() {
return goog.global["navigator"] ? goog.global["navigator"].userAgent : null
};
goog.userAgent.getNavigator = function() {
return goog.global["navigator"]
};
goog.userAgent.init_ = function() {
goog.userAgent.detectedOpera_ = false;
goog.userAgent.detectedIe_ = false;
goog.userAgent.detectedWebkit_ = false;
goog.userAgent.detectedMobile_ = false;
goog.userAgent.detectedGecko_ = false;
var ua;
if(!goog.userAgent.BROWSER_KNOWN_ && (ua = goog.userAgent.getUserAgentString())) {
var navigator = goog.userAgent.getNavigator();
goog.userAgent.detectedOpera_ = ua.indexOf("Opera") == 0;
goog.userAgent.detectedIe_ = !goog.userAgent.detectedOpera_ && ua.indexOf("MSIE") != -1;
goog.userAgent.detectedWebkit_ = !goog.userAgent.detectedOpera_ && ua.indexOf("WebKit") != -1;
goog.userAgent.detectedMobile_ = goog.userAgent.detectedWebkit_ && ua.indexOf("Mobile") != -1;
goog.userAgent.detectedGecko_ = !goog.userAgent.detectedOpera_ && !goog.userAgent.detectedWebkit_ && navigator.product == "Gecko"
}
};
if(!goog.userAgent.BROWSER_KNOWN_) {
goog.userAgent.init_()
}
goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.userAgent.detectedOpera_;
goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.userAgent.detectedIe_;
goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.userAgent.detectedGecko_;
goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.userAgent.detectedWebkit_;
goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.detectedMobile_;
goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
goog.userAgent.determinePlatform_ = function() {
var navigator = goog.userAgent.getNavigator();
return navigator && navigator.platform || ""
};
goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
goog.userAgent.ASSUME_MAC = false;
goog.userAgent.ASSUME_WINDOWS = false;
goog.userAgent.ASSUME_LINUX = false;
goog.userAgent.ASSUME_X11 = false;
goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11;
goog.userAgent.initPlatform_ = function() {
goog.userAgent.detectedMac_ = goog.string.contains(goog.userAgent.PLATFORM, "Mac");
goog.userAgent.detectedWindows_ = goog.string.contains(goog.userAgent.PLATFORM, "Win");
goog.userAgent.detectedLinux_ = goog.string.contains(goog.userAgent.PLATFORM, "Linux");
goog.userAgent.detectedX11_ = !!goog.userAgent.getNavigator() && goog.string.contains(goog.userAgent.getNavigator()["appVersion"] || "", "X11")
};
if(!goog.userAgent.PLATFORM_KNOWN_) {
goog.userAgent.initPlatform_()
}
goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.userAgent.detectedMac_;
goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.userAgent.detectedWindows_;
goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.detectedLinux_;
goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.detectedX11_;
goog.userAgent.determineVersion_ = function() {
var version = "", re;
if(goog.userAgent.OPERA && goog.global["opera"]) {
var operaVersion = goog.global["opera"].version;
version = typeof operaVersion == "function" ? operaVersion() : operaVersion
}else {
if(goog.userAgent.GECKO) {
re = /rv\:([^\);]+)(\)|;)/
}else {
if(goog.userAgent.IE) {
re = /MSIE\s+([^\);]+)(\)|;)/
}else {
if(goog.userAgent.WEBKIT) {
re = /WebKit\/(\S+)/
}
}
}
if(re) {
var arr = re.exec(goog.userAgent.getUserAgentString());
version = arr ? arr[1] : ""
}
}
if(goog.userAgent.IE) {
var docMode = goog.userAgent.getDocumentMode_();
if(docMode > parseFloat(version)) {
return String(docMode)
}
}
return version
};
goog.userAgent.getDocumentMode_ = function() {
var doc = goog.global["document"];
return doc ? doc["documentMode"] : undefined
};
goog.userAgent.VERSION = goog.userAgent.determineVersion_();
goog.userAgent.compare = function(v1, v2) {
return goog.string.compareVersions(v1, v2)
};
goog.userAgent.isVersionCache_ = {};
goog.userAgent.isVersion = function(version) {
return goog.userAgent.ASSUME_ANY_VERSION || goog.userAgent.isVersionCache_[version] || (goog.userAgent.isVersionCache_[version] = goog.string.compareVersions(goog.userAgent.VERSION, version) >= 0)
};
goog.userAgent.isDocumentModeCache_ = {};
goog.userAgent.isDocumentMode = function(documentMode) {
return goog.userAgent.isDocumentModeCache_[documentMode] || (goog.userAgent.isDocumentModeCache_[documentMode] = goog.userAgent.IE && !!document.documentMode && document.documentMode >= documentMode)
};
goog.provide("goog.events.BrowserFeature");
goog.require("goog.userAgent");
goog.events.BrowserFeature = {HAS_W3C_BUTTON:!goog.userAgent.IE || goog.userAgent.isDocumentMode(9), HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE || goog.userAgent.isDocumentMode(9), SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE && !goog.userAgent.isVersion("8"), HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT || goog.userAgent.isVersion("528"), HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO && goog.userAgent.isVersion("1.9b") || goog.userAgent.IE && goog.userAgent.isVersion("8") || goog.userAgent.OPERA &&
goog.userAgent.isVersion("9.5") || goog.userAgent.WEBKIT && goog.userAgent.isVersion("528"), HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO && !goog.userAgent.isVersion("8") || goog.userAgent.IE && !goog.userAgent.isVersion("9")};
goog.provide("goog.events.Event");
goog.require("goog.Disposable");
goog.events.Event = function(type, opt_target) {
this.type = type;
this.target = opt_target;
this.currentTarget = this.target
};
goog.events.Event.prototype.disposeInternal = function() {
};
goog.events.Event.prototype.dispose = function() {
};
goog.events.Event.prototype.propagationStopped_ = false;
goog.events.Event.prototype.defaultPrevented = false;
goog.events.Event.prototype.returnValue_ = true;
goog.events.Event.prototype.stopPropagation = function() {
this.propagationStopped_ = true
};
goog.events.Event.prototype.preventDefault = function() {
this.defaultPrevented = true;
this.returnValue_ = false
};
goog.events.Event.stopPropagation = function(e) {
e.stopPropagation()
};
goog.events.Event.preventDefault = function(e) {
e.preventDefault()
};
goog.provide("goog.events.EventType");
goog.require("goog.userAgent");
goog.events.EventType = {CLICK:"click", DBLCLICK:"dblclick", MOUSEDOWN:"mousedown", MOUSEUP:"mouseup", MOUSEOVER:"mouseover", MOUSEOUT:"mouseout", MOUSEMOVE:"mousemove", SELECTSTART:"selectstart", KEYPRESS:"keypress", KEYDOWN:"keydown", KEYUP:"keyup", BLUR:"blur", FOCUS:"focus", DEACTIVATE:"deactivate", FOCUSIN:goog.userAgent.IE ? "focusin" : "DOMFocusIn", FOCUSOUT:goog.userAgent.IE ? "focusout" : "DOMFocusOut", CHANGE:"change", SELECT:"select", SUBMIT:"submit", INPUT:"input", PROPERTYCHANGE:"propertychange",
DRAGSTART:"dragstart", DRAGENTER:"dragenter", DRAGOVER:"dragover", DRAGLEAVE:"dragleave", DROP:"drop", TOUCHSTART:"touchstart", TOUCHMOVE:"touchmove", TOUCHEND:"touchend", TOUCHCANCEL:"touchcancel", CONTEXTMENU:"contextmenu", ERROR:"error", HELP:"help", LOAD:"load", LOSECAPTURE:"losecapture", READYSTATECHANGE:"readystatechange", RESIZE:"resize", SCROLL:"scroll", UNLOAD:"unload", HASHCHANGE:"hashchange", PAGEHIDE:"pagehide", PAGESHOW:"pageshow", POPSTATE:"popstate", COPY:"copy", PASTE:"paste", CUT:"cut",
BEFORECOPY:"beforecopy", BEFORECUT:"beforecut", BEFOREPASTE:"beforepaste", ONLINE:"online", OFFLINE:"offline", MESSAGE:"message", CONNECT:"connect", TRANSITIONEND:goog.userAgent.WEBKIT ? "webkitTransitionEnd" : goog.userAgent.OPERA ? "oTransitionEnd" : "transitionend"};
goog.provide("goog.reflect");
goog.reflect.object = function(type, object) {
return object
};
goog.reflect.sinkValue = function(x) {
goog.reflect.sinkValue[" "](x);
return x
};
goog.reflect.sinkValue[" "] = goog.nullFunction;
goog.reflect.canAccessProperty = function(obj, prop) {
try {
goog.reflect.sinkValue(obj[prop]);
return true
}catch(e) {
}
return false
};
goog.provide("goog.events.BrowserEvent");
goog.provide("goog.events.BrowserEvent.MouseButton");
goog.require("goog.events.BrowserFeature");
goog.require("goog.events.Event");
goog.require("goog.events.EventType");
goog.require("goog.reflect");
goog.require("goog.userAgent");
goog.events.BrowserEvent = function(opt_e, opt_currentTarget) {
if(opt_e) {
this.init(opt_e, opt_currentTarget)
}
};
goog.inherits(goog.events.BrowserEvent, goog.events.Event);
goog.events.BrowserEvent.MouseButton = {LEFT:0, MIDDLE:1, RIGHT:2};
goog.events.BrowserEvent.IEButtonMap = [1, 4, 2];
goog.events.BrowserEvent.prototype.target = null;
goog.events.BrowserEvent.prototype.currentTarget;
goog.events.BrowserEvent.prototype.relatedTarget = null;
goog.events.BrowserEvent.prototype.offsetX = 0;
goog.events.BrowserEvent.prototype.offsetY = 0;
goog.events.BrowserEvent.prototype.clientX = 0;
goog.events.BrowserEvent.prototype.clientY = 0;
goog.events.BrowserEvent.prototype.screenX = 0;
goog.events.BrowserEvent.prototype.screenY = 0;
goog.events.BrowserEvent.prototype.button = 0;
goog.events.BrowserEvent.prototype.keyCode = 0;
goog.events.BrowserEvent.prototype.charCode = 0;
goog.events.BrowserEvent.prototype.ctrlKey = false;
goog.events.BrowserEvent.prototype.altKey = false;
goog.events.BrowserEvent.prototype.shiftKey = false;
goog.events.BrowserEvent.prototype.metaKey = false;
goog.events.BrowserEvent.prototype.state;
goog.events.BrowserEvent.prototype.platformModifierKey = false;
goog.events.BrowserEvent.prototype.event_ = null;
goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) {
var type = this.type = e.type;
goog.events.Event.call(this, type);
this.target = e.target || e.srcElement;
this.currentTarget = opt_currentTarget;
var relatedTarget = e.relatedTarget;
if(relatedTarget) {
if(goog.userAgent.GECKO) {
if(!goog.reflect.canAccessProperty(relatedTarget, "nodeName")) {
relatedTarget = null
}
}
}else {
if(type == goog.events.EventType.MOUSEOVER) {
relatedTarget = e.fromElement
}else {
if(type == goog.events.EventType.MOUSEOUT) {
relatedTarget = e.toElement
}
}
}
this.relatedTarget = relatedTarget;
this.offsetX = goog.userAgent.WEBKIT || e.offsetX !== undefined ? e.offsetX : e.layerX;
this.offsetY = goog.userAgent.WEBKIT || e.offsetY !== undefined ? e.offsetY : e.layerY;
this.clientX = e.clientX !== undefined ? e.clientX : e.pageX;
this.clientY = e.clientY !== undefined ? e.clientY : e.pageY;
this.screenX = e.screenX || 0;
this.screenY = e.screenY || 0;
this.button = e.button;
this.keyCode = e.keyCode || 0;
this.charCode = e.charCode || (type == "keypress" ? e.keyCode : 0);
this.ctrlKey = e.ctrlKey;
this.altKey = e.altKey;
this.shiftKey = e.shiftKey;
this.metaKey = e.metaKey;
this.platformModifierKey = goog.userAgent.MAC ? e.metaKey : e.ctrlKey;
this.state = e.state;
this.event_ = e;
if(e.defaultPrevented) {
this.preventDefault()
}
delete this.propagationStopped_
};
goog.events.BrowserEvent.prototype.isButton = function(button) {
if(!goog.events.BrowserFeature.HAS_W3C_BUTTON) {
if(this.type == "click") {
return button == goog.events.BrowserEvent.MouseButton.LEFT
}else {
return!!(this.event_.button & goog.events.BrowserEvent.IEButtonMap[button])
}
}else {
return this.event_.button == button
}
};
goog.events.BrowserEvent.prototype.isMouseActionButton = function() {
return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT) && !(goog.userAgent.WEBKIT && goog.userAgent.MAC && this.ctrlKey)
};
goog.events.BrowserEvent.prototype.stopPropagation = function() {
goog.events.BrowserEvent.superClass_.stopPropagation.call(this);
if(this.event_.stopPropagation) {
this.event_.stopPropagation()
}else {
this.event_.cancelBubble = true
}
};
goog.events.BrowserEvent.prototype.preventDefault = function() {
goog.events.BrowserEvent.superClass_.preventDefault.call(this);
var be = this.event_;
if(!be.preventDefault) {
be.returnValue = false;
if(goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT) {
try {
var VK_F1 = 112;
var VK_F12 = 123;
if(be.ctrlKey || be.keyCode >= VK_F1 && be.keyCode <= VK_F12) {
be.keyCode = -1
}
}catch(ex) {
}
}
}else {
be.preventDefault()
}
};
goog.events.BrowserEvent.prototype.getBrowserEvent = function() {
return this.event_
};
goog.events.BrowserEvent.prototype.disposeInternal = function() {
};
goog.provide("goog.events.EventWrapper");
goog.events.EventWrapper = function() {
};
goog.events.EventWrapper.prototype.listen = function(src, listener, opt_capt, opt_scope, opt_eventHandler) {
};
goog.events.EventWrapper.prototype.unlisten = function(src, listener, opt_capt, opt_scope, opt_eventHandler) {
};
goog.provide("goog.events.Listener");
goog.events.Listener = function() {
if(goog.events.Listener.ENABLE_MONITORING) {
this.creationStack = (new Error).stack
}
};
goog.events.Listener.counter_ = 0;
goog.events.Listener.ENABLE_MONITORING = false;
goog.events.Listener.prototype.isFunctionListener_;
goog.events.Listener.prototype.listener;
goog.events.Listener.prototype.proxy;
goog.events.Listener.prototype.src;
goog.events.Listener.prototype.type;
goog.events.Listener.prototype.capture;
goog.events.Listener.prototype.handler;
goog.events.Listener.prototype.key = 0;
goog.events.Listener.prototype.removed = false;
goog.events.Listener.prototype.callOnce = false;
goog.events.Listener.prototype.creationStack;
goog.events.Listener.prototype.init = function(listener, proxy, src, type, capture, opt_handler) {
if(goog.isFunction(listener)) {
this.isFunctionListener_ = true
}else {
if(listener && listener.handleEvent && goog.isFunction(listener.handleEvent)) {
this.isFunctionListener_ = false
}else {
throw Error("Invalid listener argument");
}
}
this.listener = listener;
this.proxy = proxy;
this.src = src;
this.type = type;
this.capture = !!capture;
this.handler = opt_handler;
this.callOnce = false;
this.key = ++goog.events.Listener.counter_;
this.removed = false
};
goog.events.Listener.prototype.handleEvent = function(eventObject) {
if(this.isFunctionListener_) {
return this.listener.call(this.handler || this.src, eventObject)
}
return this.listener.handleEvent.call(this.listener, eventObject)
};
goog.provide("goog.events");
goog.require("goog.array");
goog.require("goog.debug.entryPointRegistry");
goog.require("goog.debug.errorHandlerWeakDep");
goog.require("goog.events.BrowserEvent");
goog.require("goog.events.BrowserFeature");
goog.require("goog.events.Event");
goog.require("goog.events.EventWrapper");
goog.require("goog.events.Listener");
goog.require("goog.object");
goog.require("goog.userAgent");
goog.events.listeners_ = {};
goog.events.listenerTree_ = {};
goog.events.sources_ = {};
goog.events.onString_ = "on";
goog.events.onStringMap_ = {};
goog.events.keySeparator_ = "_";
goog.events.listen = function(src, type, listener, opt_capt, opt_handler) {
if(!type) {
throw Error("Invalid event type");
}else {
if(goog.isArray(type)) {
for(var i = 0;i < type.length;i++) {
goog.events.listen(src, type[i], listener, opt_capt, opt_handler)
}
return null
}else {
var capture = !!opt_capt;
var map = goog.events.listenerTree_;
if(!(type in map)) {
map[type] = {count_:0, remaining_:0}
}
map = map[type];
if(!(capture in map)) {
map[capture] = {count_:0, remaining_:0};
map.count_++
}
map = map[capture];
var srcUid = goog.getUid(src);
var listenerArray, listenerObj;
map.remaining_++;
if(!map[srcUid]) {
listenerArray = map[srcUid] = [];
map.count_++
}else {
listenerArray = map[srcUid];
for(var i = 0;i < listenerArray.length;i++) {
listenerObj = listenerArray[i];
if(listenerObj.listener == listener && listenerObj.handler == opt_handler) {
if(listenerObj.removed) {
break
}
return listenerArray[i].key
}
}
}
var proxy = goog.events.getProxy();
proxy.src = src;
listenerObj = new goog.events.Listener;
listenerObj.init(listener, proxy, src, type, capture, opt_handler);
var key = listenerObj.key;
proxy.key = key;
listenerArray.push(listenerObj);
goog.events.listeners_[key] = listenerObj;
if(!goog.events.sources_[srcUid]) {
goog.events.sources_[srcUid] = []
}
goog.events.sources_[srcUid].push(listenerObj);
if(src.addEventListener) {
if(src == goog.global || !src.customEvent_) {
src.addEventListener(type, proxy, capture)
}
}else {
src.attachEvent(goog.events.getOnString_(type), proxy)
}
return key
}
}
};
goog.events.getProxy = function() {
var proxyCallbackFunction = goog.events.handleBrowserEvent_;
var f = goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT ? function(eventObject) {
return proxyCallbackFunction.call(f.src, f.key, eventObject)
} : function(eventObject) {
var v = proxyCallbackFunction.call(f.src, f.key, eventObject);
if(!v) {
return v
}
};
return f
};
goog.events.listenOnce = function(src, type, listener, opt_capt, opt_handler) {
if(goog.isArray(type)) {
for(var i = 0;i < type.length;i++) {
goog.events.listenOnce(src, type[i], listener, opt_capt, opt_handler)
}
return null
}
var key = goog.events.listen(src, type, listener, opt_capt, opt_handler);
var listenerObj = goog.events.listeners_[key];
listenerObj.callOnce = true;
return key
};
goog.events.listenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
wrapper.listen(src, listener, opt_capt, opt_handler)
};
goog.events.unlisten = function(src, type, listener, opt_capt, opt_handler) {
if(goog.isArray(type)) {
for(var i = 0;i < type.length;i++) {
goog.events.unlisten(src, type[i], listener, opt_capt, opt_handler)
}
return null
}
var capture = !!opt_capt;
var listenerArray = goog.events.getListeners_(src, type, capture);
if(!listenerArray) {
return false
}
for(var i = 0;i < listenerArray.length;i++) {
if(listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) {
return goog.events.unlistenByKey(listenerArray[i].key)
}
}
return false
};
goog.events.unlistenByKey = function(key) {
if(!goog.events.listeners_[key]) {
return false
}
var listener = goog.events.listeners_[key];
if(listener.removed) {
return false
}
var src = listener.src;
var type = listener.type;
var proxy = listener.proxy;
var capture = listener.capture;
if(src.removeEventListener) {
if(src == goog.global || !src.customEvent_) {
src.removeEventListener(type, proxy, capture)
}
}else {
if(src.detachEvent) {
src.detachEvent(goog.events.getOnString_(type), proxy)
}
}
var srcUid = goog.getUid(src);
if(goog.events.sources_[srcUid]) {
var sourcesArray = goog.events.sources_[srcUid];
goog.array.remove(sourcesArray, listener);
if(sourcesArray.length == 0) {
delete goog.events.sources_[srcUid]
}
}
listener.removed = true;
var listenerArray = goog.events.listenerTree_[type][capture][srcUid];
if(listenerArray) {
listenerArray.needsCleanup_ = true;
goog.events.cleanUp_(type, capture, srcUid, listenerArray)
}
delete goog.events.listeners_[key];
return true
};
goog.events.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
wrapper.unlisten(src, listener, opt_capt, opt_handler)
};
goog.events.cleanUp_ = function(type, capture, srcUid, listenerArray) {
if(!listenerArray.locked_) {
if(listenerArray.needsCleanup_) {
for(var oldIndex = 0, newIndex = 0;oldIndex < listenerArray.length;oldIndex++) {
if(listenerArray[oldIndex].removed) {
var proxy = listenerArray[oldIndex].proxy;
proxy.src = null;
continue
}
if(oldIndex != newIndex) {
listenerArray[newIndex] = listenerArray[oldIndex]
}
newIndex++
}
listenerArray.length = newIndex;
listenerArray.needsCleanup_ = false;
if(newIndex == 0) {
delete goog.events.listenerTree_[type][capture][srcUid];
goog.events.listenerTree_[type][capture].count_--;
if(goog.events.listenerTree_[type][capture].count_ == 0) {
delete goog.events.listenerTree_[type][capture];
goog.events.listenerTree_[type].count_--
}
if(goog.events.listenerTree_[type].count_ == 0) {
delete goog.events.listenerTree_[type]
}
}
}
}
};
goog.events.removeAll = function(opt_obj, opt_type, opt_capt) {
var count = 0;
var noObj = opt_obj == null;
var noType = opt_type == null;
var noCapt = opt_capt == null;
opt_capt = !!opt_capt;
if(!noObj) {
var srcUid = goog.getUid(opt_obj);
if(goog.events.sources_[srcUid]) {
var sourcesArray = goog.events.sources_[srcUid];
for(var i = sourcesArray.length - 1;i >= 0;i--) {
var listener = sourcesArray[i];
if((noType || opt_type == listener.type) && (noCapt || opt_capt == listener.capture)) {
goog.events.unlistenByKey(listener.key);
count++
}
}
}
}else {
goog.object.forEach(goog.events.sources_, function(listeners) {
for(var i = listeners.length - 1;i >= 0;i--) {
var listener = listeners[i];
if((noType || opt_type == listener.type) && (noCapt || opt_capt == listener.capture)) {
goog.events.unlistenByKey(listener.key);
count++
}
}
})
}
return count
};
goog.events.getListeners = function(obj, type, capture) {
return goog.events.getListeners_(obj, type, capture) || []
};
goog.events.getListeners_ = function(obj, type, capture) {
var map = goog.events.listenerTree_;
if(type in map) {
map = map[type];
if(capture in map) {
map = map[capture];
var objUid = goog.getUid(obj);
if(map[objUid]) {
return map[objUid]
}
}
}
return null
};
goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) {
var capture = !!opt_capt;
var listenerArray = goog.events.getListeners_(src, type, capture);
if(listenerArray) {
for(var i = 0;i < listenerArray.length;i++) {
if(!listenerArray[i].removed && listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) {
return listenerArray[i]
}
}
}
return null
};
goog.events.hasListener = function(obj, opt_type, opt_capture) {
var objUid = goog.getUid(obj);
var listeners = goog.events.sources_[objUid];
if(listeners) {
var hasType = goog.isDef(opt_type);
var hasCapture = goog.isDef(opt_capture);
if(hasType && hasCapture) {
var map = goog.events.listenerTree_[opt_type];
return!!map && !!map[opt_capture] && objUid in map[opt_capture]
}else {
if(!(hasType || hasCapture)) {
return true
}else {
return goog.array.some(listeners, function(listener) {
return hasType && listener.type == opt_type || hasCapture && listener.capture == opt_capture
})
}
}
}
return false
};
goog.events.expose = function(e) {
var str = [];
for(var key in e) {
if(e[key] && e[key].id) {
str.push(key + " = " + e[key] + " (" + e[key].id + ")")
}else {
str.push(key + " = " + e[key])
}
}
return str.join("\n")
};
goog.events.getOnString_ = function(type) {
if(type in goog.events.onStringMap_) {
return goog.events.onStringMap_[type]
}
return goog.events.onStringMap_[type] = goog.events.onString_ + type
};
goog.events.fireListeners = function(obj, type, capture, eventObject) {
var map = goog.events.listenerTree_;
if(type in map) {
map = map[type];
if(capture in map) {
return goog.events.fireListeners_(map[capture], obj, type, capture, eventObject)
}
}
return true
};
goog.events.fireListeners_ = function(map, obj, type, capture, eventObject) {
var retval = 1;
var objUid = goog.getUid(obj);
if(map[objUid]) {
map.remaining_--;
var listenerArray = map[objUid];
if(!listenerArray.locked_) {
listenerArray.locked_ = 1
}else {
listenerArray.locked_++
}
try {
var length = listenerArray.length;
for(var i = 0;i < length;i++) {
var listener = listenerArray[i];
if(listener && !listener.removed) {
retval &= goog.events.fireListener(listener, eventObject) !== false
}
}
}finally {
listenerArray.locked_--;
goog.events.cleanUp_(type, capture, objUid, listenerArray)
}
}
return Boolean(retval)
};
goog.events.fireListener = function(listener, eventObject) {
if(listener.callOnce) {
goog.events.unlistenByKey(listener.key)
}
return listener.handleEvent(eventObject)
};
goog.events.getTotalListenerCount = function() {
return goog.object.getCount(goog.events.listeners_)
};
goog.events.dispatchEvent = function(src, e) {
var type = e.type || e;
var map = goog.events.listenerTree_;
if(!(type in map)) {
return true
}
if(goog.isString(e)) {
e = new goog.events.Event(e, src)
}else {
if(!(e instanceof goog.events.Event)) {
var oldEvent = e;
e = new goog.events.Event(type, src);
goog.object.extend(e, oldEvent)
}else {
e.target = e.target || src
}
}
var rv = 1, ancestors;
map = map[type];
var hasCapture = true in map;
var targetsMap;
if(hasCapture) {
ancestors = [];
for(var parent = src;parent;parent = parent.getParentEventTarget()) {
ancestors.push(parent)
}
targetsMap = map[true];
targetsMap.remaining_ = targetsMap.count_;
for(var i = ancestors.length - 1;!e.propagationStopped_ && i >= 0 && targetsMap.remaining_;i--) {
e.currentTarget = ancestors[i];
rv &= goog.events.fireListeners_(targetsMap, ancestors[i], e.type, true, e) && e.returnValue_ != false
}
}
var hasBubble = false in map;
if(hasBubble) {
targetsMap = map[false];
targetsMap.remaining_ = targetsMap.count_;
if(hasCapture) {
for(var i = 0;!e.propagationStopped_ && i < ancestors.length && targetsMap.remaining_;i++) {
e.currentTarget = ancestors[i];
rv &= goog.events.fireListeners_(targetsMap, ancestors[i], e.type, false, e) && e.returnValue_ != false
}
}else {
for(var current = src;!e.propagationStopped_ && current && targetsMap.remaining_;current = current.getParentEventTarget()) {
e.currentTarget = current;
rv &= goog.events.fireListeners_(targetsMap, current, e.type, false, e) && e.returnValue_ != false
}
}
}
return Boolean(rv)
};
goog.events.protectBrowserEventEntryPoint = function(errorHandler) {
goog.events.handleBrowserEvent_ = errorHandler.protectEntryPoint(goog.events.handleBrowserEvent_)
};
goog.events.handleBrowserEvent_ = function(key, opt_evt) {
if(!goog.events.listeners_[key]) {
return true
}
var listener = goog.events.listeners_[key];
var type = listener.type;
var map = goog.events.listenerTree_;
if(!(type in map)) {
return true
}
map = map[type];
var retval, targetsMap;
if(!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT) {
var ieEvent = opt_evt || goog.getObjectByName("window.event");
var hasCapture = true in map;
var hasBubble = false in map;
if(hasCapture) {
if(goog.events.isMarkedIeEvent_(ieEvent)) {
return true
}
goog.events.markIeEvent_(ieEvent)
}
var evt = new goog.events.BrowserEvent;
evt.init(ieEvent, this);
retval = true;
try {
if(hasCapture) {
var ancestors = [];
for(var parent = evt.currentTarget;parent;parent = parent.parentNode) {
ancestors.push(parent)
}
targetsMap = map[true];
targetsMap.remaining_ = targetsMap.count_;
for(var i = ancestors.length - 1;!evt.propagationStopped_ && i >= 0 && targetsMap.remaining_;i--) {
evt.currentTarget = ancestors[i];
retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, true, evt)
}
if(hasBubble) {
targetsMap = map[false];
targetsMap.remaining_ = targetsMap.count_;
for(var i = 0;!evt.propagationStopped_ && i < ancestors.length && targetsMap.remaining_;i++) {
evt.currentTarget = ancestors[i];
retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, false, evt)
}
}
}else {
retval = goog.events.fireListener(listener, evt)
}
}finally {
if(ancestors) {
ancestors.length = 0
}
}
return retval
}
var be = new goog.events.BrowserEvent(opt_evt, this);
retval = goog.events.fireListener(listener, be);
return retval
};
goog.events.markIeEvent_ = function(e) {
var useReturnValue = false;
if(e.keyCode == 0) {
try {
e.keyCode = -1;
return
}catch(ex) {
useReturnValue = true
}
}
if(useReturnValue || e.returnValue == undefined) {
e.returnValue = true
}
};
goog.events.isMarkedIeEvent_ = function(e) {
return e.keyCode < 0 || e.returnValue != undefined
};
goog.events.uniqueIdCounter_ = 0;
goog.events.getUniqueId = function(identifier) {
return identifier + "_" + goog.events.uniqueIdCounter_++
};
goog.debug.entryPointRegistry.register(function(transformer) {
goog.events.handleBrowserEvent_ = transformer(goog.events.handleBrowserEvent_)
});
goog.provide("goog.events.EventTarget");
goog.require("goog.Disposable");
goog.require("goog.events");
goog.events.EventTarget = function() {
goog.Disposable.call(this)
};
goog.inherits(goog.events.EventTarget, goog.Disposable);
goog.events.EventTarget.prototype.customEvent_ = true;
goog.events.EventTarget.prototype.parentEventTarget_ = null;
goog.events.EventTarget.prototype.getParentEventTarget = function() {
return this.parentEventTarget_
};
goog.events.EventTarget.prototype.setParentEventTarget = function(parent) {
this.parentEventTarget_ = parent
};
goog.events.EventTarget.prototype.addEventListener = function(type, handler, opt_capture, opt_handlerScope) {
goog.events.listen(this, type, handler, opt_capture, opt_handlerScope)
};
goog.events.EventTarget.prototype.removeEventListener = function(type, handler, opt_capture, opt_handlerScope) {
goog.events.unlisten(this, type, handler, opt_capture, opt_handlerScope)
};
goog.events.EventTarget.prototype.dispatchEvent = function(e) {
return goog.events.dispatchEvent(this, e)
};
goog.events.EventTarget.prototype.disposeInternal = function() {
goog.events.EventTarget.superClass_.disposeInternal.call(this);
goog.events.removeAll(this);
this.parentEventTarget_ = null
};
goog.provide("goog.Timer");
goog.require("goog.events.EventTarget");
goog.Timer = function(opt_interval, opt_timerObject) {
goog.events.EventTarget.call(this);
this.interval_ = opt_interval || 1;
this.timerObject_ = opt_timerObject || goog.Timer.defaultTimerObject;
this.boundTick_ = goog.bind(this.tick_, this);
this.last_ = goog.now()
};
goog.inherits(goog.Timer, goog.events.EventTarget);
goog.Timer.MAX_TIMEOUT_ = 2147483647;
goog.Timer.prototype.enabled = false;
goog.Timer.defaultTimerObject = goog.global["window"];
goog.Timer.intervalScale = 0.8;
goog.Timer.prototype.timer_ = null;
goog.Timer.prototype.getInterval = function() {
return this.interval_
};
goog.Timer.prototype.setInterval = function(interval) {
this.interval_ = interval;
if(this.timer_ && this.enabled) {
this.stop();
this.start()
}else {
if(this.timer_) {
this.stop()
}
}
};
goog.Timer.prototype.tick_ = function() {
if(this.enabled) {
var elapsed = goog.now() - this.last_;
if(elapsed > 0 && elapsed < this.interval_ * goog.Timer.intervalScale) {
this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_ - elapsed);
return
}
this.dispatchTick();
if(this.enabled) {
this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_);
this.last_ = goog.now()
}
}
};
goog.Timer.prototype.dispatchTick = function() {
this.dispatchEvent(goog.Timer.TICK)
};
goog.Timer.prototype.start = function() {
this.enabled = true;
if(!this.timer_) {
this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_);
this.last_ = goog.now()
}
};
goog.Timer.prototype.stop = function() {
this.enabled = false;
if(this.timer_) {
this.timerObject_.clearTimeout(this.timer_);
this.timer_ = null
}
};
goog.Timer.prototype.disposeInternal = function() {
goog.Timer.superClass_.disposeInternal.call(this);
this.stop();
delete this.timerObject_
};
goog.Timer.TICK = "tick";
goog.Timer.callOnce = function(listener, opt_delay, opt_handler) {
if(goog.isFunction(listener)) {
if(opt_handler) {
listener = goog.bind(listener, opt_handler)
}
}else {
if(listener && typeof listener.handleEvent == "function") {
listener = goog.bind(listener.handleEvent, listener)
}else {
throw Error("Invalid listener argument");
}
}
if(opt_delay > goog.Timer.MAX_TIMEOUT_) {
return-1
}else {
return goog.Timer.defaultTimerObject.setTimeout(listener, opt_delay || 0)
}
};
goog.Timer.clear = function(timerId) {
goog.Timer.defaultTimerObject.clearTimeout(timerId)
};
goog.provide("goog.structs");
goog.require("goog.array");
goog.require("goog.object");
goog.structs.getCount = function(col) {
if(typeof col.getCount == "function") {
return col.getCount()
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return col.length
}
return goog.object.getCount(col)
};
goog.structs.getValues = function(col) {
if(typeof col.getValues == "function") {
return col.getValues()
}
if(goog.isString(col)) {
return col.split("")
}
if(goog.isArrayLike(col)) {
var rv = [];
var l = col.length;
for(var i = 0;i < l;i++) {
rv.push(col[i])
}
return rv
}
return goog.object.getValues(col)
};
goog.structs.getKeys = function(col) {
if(typeof col.getKeys == "function") {
return col.getKeys()
}
if(typeof col.getValues == "function") {
return undefined
}
if(goog.isArrayLike(col) || goog.isString(col)) {
var rv = [];
var l = col.length;
for(var i = 0;i < l;i++) {
rv.push(i)
}
return rv
}
return goog.object.getKeys(col)
};
goog.structs.contains = function(col, val) {
if(typeof col.contains == "function") {
return col.contains(val)
}
if(typeof col.containsValue == "function") {
return col.containsValue(val)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.contains(col, val)
}
return goog.object.containsValue(col, val)
};
goog.structs.isEmpty = function(col) {
if(typeof col.isEmpty == "function") {
return col.isEmpty()
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.isEmpty(col)
}
return goog.object.isEmpty(col)
};
goog.structs.clear = function(col) {
if(typeof col.clear == "function") {
col.clear()
}else {
if(goog.isArrayLike(col)) {
goog.array.clear(col)
}else {
goog.object.clear(col)
}
}
};
goog.structs.forEach = function(col, f, opt_obj) {
if(typeof col.forEach == "function") {
col.forEach(f, opt_obj)
}else {
if(goog.isArrayLike(col) || goog.isString(col)) {
goog.array.forEach(col, f, opt_obj)
}else {
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
f.call(opt_obj, values[i], keys && keys[i], col)
}
}
}
};
goog.structs.filter = function(col, f, opt_obj) {
if(typeof col.filter == "function") {
return col.filter(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.filter(col, f, opt_obj)
}
var rv;
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
if(keys) {
rv = {};
for(var i = 0;i < l;i++) {
if(f.call(opt_obj, values[i], keys[i], col)) {
rv[keys[i]] = values[i]
}
}
}else {
rv = [];
for(var i = 0;i < l;i++) {
if(f.call(opt_obj, values[i], undefined, col)) {
rv.push(values[i])
}
}
}
return rv
};
goog.structs.map = function(col, f, opt_obj) {
if(typeof col.map == "function") {
return col.map(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.map(col, f, opt_obj)
}
var rv;
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
if(keys) {
rv = {};
for(var i = 0;i < l;i++) {
rv[keys[i]] = f.call(opt_obj, values[i], keys[i], col)
}
}else {
rv = [];
for(var i = 0;i < l;i++) {
rv[i] = f.call(opt_obj, values[i], undefined, col)
}
}
return rv
};
goog.structs.some = function(col, f, opt_obj) {
if(typeof col.some == "function") {
return col.some(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.some(col, f, opt_obj)
}
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
if(f.call(opt_obj, values[i], keys && keys[i], col)) {
return true
}
}
return false
};
goog.structs.every = function(col, f, opt_obj) {
if(typeof col.every == "function") {
return col.every(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.every(col, f, opt_obj)
}
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
if(!f.call(opt_obj, values[i], keys && keys[i], col)) {
return false
}
}
return true
};
goog.provide("goog.structs.Collection");
goog.structs.Collection = function() {
};
goog.structs.Collection.prototype.add;
goog.structs.Collection.prototype.remove;
goog.structs.Collection.prototype.contains;
goog.structs.Collection.prototype.getCount;
goog.provide("goog.iter");
goog.provide("goog.iter.Iterator");
goog.provide("goog.iter.StopIteration");
goog.require("goog.array");
goog.require("goog.asserts");
goog.iter.Iterable;
if("StopIteration" in goog.global) {
goog.iter.StopIteration = goog.global["StopIteration"]
}else {
goog.iter.StopIteration = Error("StopIteration")
}
goog.iter.Iterator = function() {
};
goog.iter.Iterator.prototype.next = function() {
throw goog.iter.StopIteration;
};
goog.iter.Iterator.prototype.__iterator__ = function(opt_keys) {
return this
};
goog.iter.toIterator = function(iterable) {
if(iterable instanceof goog.iter.Iterator) {
return iterable
}
if(typeof iterable.__iterator__ == "function") {
return iterable.__iterator__(false)
}
if(goog.isArrayLike(iterable)) {
var i = 0;
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
if(i >= iterable.length) {
throw goog.iter.StopIteration;
}
if(!(i in iterable)) {
i++;
continue
}
return iterable[i++]
}
};
return newIter
}
throw Error("Not implemented");
};
goog.iter.forEach = function(iterable, f, opt_obj) {
if(goog.isArrayLike(iterable)) {
try {
goog.array.forEach(iterable, f, opt_obj)
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
}else {
iterable = goog.iter.toIterator(iterable);
try {
while(true) {
f.call(opt_obj, iterable.next(), undefined, iterable)
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
}
};
goog.iter.filter = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
var val = iterator.next();
if(f.call(opt_obj, val, undefined, iterator)) {
return val
}
}
};
return newIter
};
goog.iter.range = function(startOrStop, opt_stop, opt_step) {
var start = 0;
var stop = startOrStop;
var step = opt_step || 1;
if(arguments.length > 1) {
start = startOrStop;
stop = opt_stop
}
if(step == 0) {
throw Error("Range step argument must not be zero");
}
var newIter = new goog.iter.Iterator;
newIter.next = function() {
if(step > 0 && start >= stop || step < 0 && start <= stop) {
throw goog.iter.StopIteration;
}
var rv = start;
start += step;
return rv
};
return newIter
};
goog.iter.join = function(iterable, deliminator) {
return goog.iter.toArray(iterable).join(deliminator)
};
goog.iter.map = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
var val = iterator.next();
return f.call(opt_obj, val, undefined, iterator)
}
};
return newIter
};
goog.iter.reduce = function(iterable, f, val, opt_obj) {
var rval = val;
goog.iter.forEach(iterable, function(val) {
rval = f.call(opt_obj, rval, val)
});
return rval
};
goog.iter.some = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
try {
while(true) {
if(f.call(opt_obj, iterable.next(), undefined, iterable)) {
return true
}
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
return false
};
goog.iter.every = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
try {
while(true) {
if(!f.call(opt_obj, iterable.next(), undefined, iterable)) {
return false
}
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
return true
};
goog.iter.chain = function(var_args) {
var args = arguments;
var length = args.length;
var i = 0;
var newIter = new goog.iter.Iterator;
newIter.next = function() {
try {
if(i >= length) {
throw goog.iter.StopIteration;
}
var current = goog.iter.toIterator(args[i]);
return current.next()
}catch(ex) {
if(ex !== goog.iter.StopIteration || i >= length) {
throw ex;
}else {
i++;
return this.next()
}
}
};
return newIter
};
goog.iter.dropWhile = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
var dropping = true;
newIter.next = function() {
while(true) {
var val = iterator.next();
if(dropping && f.call(opt_obj, val, undefined, iterator)) {
continue
}else {
dropping = false
}
return val
}
};
return newIter
};
goog.iter.takeWhile = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
var taking = true;
newIter.next = function() {
while(true) {
if(taking) {
var val = iterator.next();
if(f.call(opt_obj, val, undefined, iterator)) {
return val
}else {
taking = false
}
}else {
throw goog.iter.StopIteration;
}
}
};
return newIter
};
goog.iter.toArray = function(iterable) {
if(goog.isArrayLike(iterable)) {
return goog.array.toArray(iterable)
}
iterable = goog.iter.toIterator(iterable);
var array = [];
goog.iter.forEach(iterable, function(val) {
array.push(val)
});
return array
};
goog.iter.equals = function(iterable1, iterable2) {
iterable1 = goog.iter.toIterator(iterable1);
iterable2 = goog.iter.toIterator(iterable2);
var b1, b2;
try {
while(true) {
b1 = b2 = false;
var val1 = iterable1.next();
b1 = true;
var val2 = iterable2.next();
b2 = true;
if(val1 != val2) {
return false
}
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}else {
if(b1 && !b2) {
return false
}
if(!b2) {
try {
val2 = iterable2.next();
return false
}catch(ex1) {
if(ex1 !== goog.iter.StopIteration) {
throw ex1;
}
return true
}
}
}
}
return false
};
goog.iter.nextOrValue = function(iterable, defaultValue) {
try {
return goog.iter.toIterator(iterable).next()
}catch(e) {
if(e != goog.iter.StopIteration) {
throw e;
}
return defaultValue
}
};
goog.iter.product = function(var_args) {
var someArrayEmpty = goog.array.some(arguments, function(arr) {
return!arr.length
});
if(someArrayEmpty || !arguments.length) {
return new goog.iter.Iterator
}
var iter = new goog.iter.Iterator;
var arrays = arguments;
var indicies = goog.array.repeat(0, arrays.length);
iter.next = function() {
if(indicies) {
var retVal = goog.array.map(indicies, function(valueIndex, arrayIndex) {
return arrays[arrayIndex][valueIndex]
});
for(var i = indicies.length - 1;i >= 0;i--) {
goog.asserts.assert(indicies);
if(indicies[i] < arrays[i].length - 1) {
indicies[i]++;
break
}
if(i == 0) {
indicies = null;
break
}
indicies[i] = 0
}
return retVal
}
throw goog.iter.StopIteration;
};
return iter
};
goog.iter.cycle = function(iterable) {
var baseIterator = goog.iter.toIterator(iterable);
var cache = [];
var cacheIndex = 0;
var iter = new goog.iter.Iterator;
var useCache = false;
iter.next = function() {
var returnElement = null;
if(!useCache) {
try {
returnElement = baseIterator.next();
cache.push(returnElement);
return returnElement
}catch(e) {
if(e != goog.iter.StopIteration || goog.array.isEmpty(cache)) {
throw e;
}
useCache = true
}
}
returnElement = cache[cacheIndex];
cacheIndex = (cacheIndex + 1) % cache.length;
return returnElement
};
return iter
};
goog.provide("goog.structs.Map");
goog.require("goog.iter.Iterator");
goog.require("goog.iter.StopIteration");
goog.require("goog.object");
goog.require("goog.structs");
goog.structs.Map = function(opt_map, var_args) {
this.map_ = {};
this.keys_ = [];
var argLength = arguments.length;
if(argLength > 1) {
if(argLength % 2) {
throw Error("Uneven number of arguments");
}
for(var i = 0;i < argLength;i += 2) {
this.set(arguments[i], arguments[i + 1])
}
}else {
if(opt_map) {
this.addAll(opt_map)
}
}
};
goog.structs.Map.prototype.count_ = 0;
goog.structs.Map.prototype.version_ = 0;
goog.structs.Map.prototype.getCount = function() {
return this.count_
};
goog.structs.Map.prototype.getValues = function() {
this.cleanupKeysArray_();
var rv = [];
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
rv.push(this.map_[key])
}
return rv
};
goog.structs.Map.prototype.getKeys = function() {
this.cleanupKeysArray_();
return this.keys_.concat()
};
goog.structs.Map.prototype.containsKey = function(key) {
return goog.structs.Map.hasKey_(this.map_, key)
};
goog.structs.Map.prototype.containsValue = function(val) {
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
if(goog.structs.Map.hasKey_(this.map_, key) && this.map_[key] == val) {
return true
}
}
return false
};
goog.structs.Map.prototype.equals = function(otherMap, opt_equalityFn) {
if(this === otherMap) {
return true
}
if(this.count_ != otherMap.getCount()) {
return false
}
var equalityFn = opt_equalityFn || goog.structs.Map.defaultEquals;
this.cleanupKeysArray_();
for(var key, i = 0;key = this.keys_[i];i++) {
if(!equalityFn(this.get(key), otherMap.get(key))) {
return false
}
}
return true
};
goog.structs.Map.defaultEquals = function(a, b) {
return a === b
};
goog.structs.Map.prototype.isEmpty = function() {
return this.count_ == 0
};
goog.structs.Map.prototype.clear = function() {
this.map_ = {};
this.keys_.length = 0;
this.count_ = 0;
this.version_ = 0
};
goog.structs.Map.prototype.remove = function(key) {
if(goog.structs.Map.hasKey_(this.map_, key)) {
delete this.map_[key];
this.count_--;
this.version_++;
if(this.keys_.length > 2 * this.count_) {
this.cleanupKeysArray_()
}
return true
}
return false
};
goog.structs.Map.prototype.cleanupKeysArray_ = function() {
if(this.count_ != this.keys_.length) {
var srcIndex = 0;
var destIndex = 0;
while(srcIndex < this.keys_.length) {
var key = this.keys_[srcIndex];
if(goog.structs.Map.hasKey_(this.map_, key)) {
this.keys_[destIndex++] = key
}
srcIndex++
}
this.keys_.length = destIndex
}
if(this.count_ != this.keys_.length) {
var seen = {};
var srcIndex = 0;
var destIndex = 0;
while(srcIndex < this.keys_.length) {
var key = this.keys_[srcIndex];
if(!goog.structs.Map.hasKey_(seen, key)) {
this.keys_[destIndex++] = key;
seen[key] = 1
}
srcIndex++
}
this.keys_.length = destIndex
}
};
goog.structs.Map.prototype.get = function(key, opt_val) {
if(goog.structs.Map.hasKey_(this.map_, key)) {
return this.map_[key]
}
return opt_val
};
goog.structs.Map.prototype.set = function(key, value) {
if(!goog.structs.Map.hasKey_(this.map_, key)) {
this.count_++;
this.keys_.push(key);
this.version_++
}
this.map_[key] = value
};
goog.structs.Map.prototype.addAll = function(map) {
var keys, values;
if(map instanceof goog.structs.Map) {
keys = map.getKeys();
values = map.getValues()
}else {
keys = goog.object.getKeys(map);
values = goog.object.getValues(map)
}
for(var i = 0;i < keys.length;i++) {
this.set(keys[i], values[i])
}
};
goog.structs.Map.prototype.clone = function() {
return new goog.structs.Map(this)
};
goog.structs.Map.prototype.transpose = function() {
var transposed = new goog.structs.Map;
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
var value = this.map_[key];
transposed.set(value, key)
}
return transposed
};
goog.structs.Map.prototype.toObject = function() {
this.cleanupKeysArray_();
var obj = {};
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
obj[key] = this.map_[key]
}
return obj
};
goog.structs.Map.prototype.getKeyIterator = function() {
return this.__iterator__(true)
};
goog.structs.Map.prototype.getValueIterator = function() {
return this.__iterator__(false)
};
goog.structs.Map.prototype.__iterator__ = function(opt_keys) {
this.cleanupKeysArray_();
var i = 0;
var keys = this.keys_;
var map = this.map_;
var version = this.version_;
var selfObj = this;
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
if(version != selfObj.version_) {
throw Error("The map has changed since the iterator was created");
}
if(i >= keys.length) {
throw goog.iter.StopIteration;
}
var key = keys[i++];
return opt_keys ? key : map[key]
}
};
return newIter
};
goog.structs.Map.hasKey_ = function(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key)
};
goog.provide("goog.structs.Set");
goog.require("goog.structs");
goog.require("goog.structs.Collection");
goog.require("goog.structs.Map");
goog.structs.Set = function(opt_values) {
this.map_ = new goog.structs.Map;
if(opt_values) {
this.addAll(opt_values)
}
};
goog.structs.Set.getKey_ = function(val) {
var type = typeof val;
if(type == "object" && val || type == "function") {
return"o" + goog.getUid(val)
}else {
return type.substr(0, 1) + val
}
};
goog.structs.Set.prototype.getCount = function() {
return this.map_.getCount()
};
goog.structs.Set.prototype.add = function(element) {
this.map_.set(goog.structs.Set.getKey_(element), element)
};
goog.structs.Set.prototype.addAll = function(col) {
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
this.add(values[i])
}
};
goog.structs.Set.prototype.removeAll = function(col) {
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
this.remove(values[i])
}
};
goog.structs.Set.prototype.remove = function(element) {
return this.map_.remove(goog.structs.Set.getKey_(element))
};
goog.structs.Set.prototype.clear = function() {
this.map_.clear()
};
goog.structs.Set.prototype.isEmpty = function() {
return this.map_.isEmpty()
};
goog.structs.Set.prototype.contains = function(element) {
return this.map_.containsKey(goog.structs.Set.getKey_(element))
};
goog.structs.Set.prototype.containsAll = function(col) {
return goog.structs.every(col, this.contains, this)
};
goog.structs.Set.prototype.intersection = function(col) {
var result = new goog.structs.Set;
var values = goog.structs.getValues(col);
for(var i = 0;i < values.length;i++) {
var value = values[i];
if(this.contains(value)) {
result.add(value)
}
}
return result
};
goog.structs.Set.prototype.difference = function(col) {
var result = this.clone();
result.removeAll(col);
return result
};
goog.structs.Set.prototype.getValues = function() {
return this.map_.getValues()
};
goog.structs.Set.prototype.clone = function() {
return new goog.structs.Set(this)
};
goog.structs.Set.prototype.equals = function(col) {
return this.getCount() == goog.structs.getCount(col) && this.isSubsetOf(col)
};
goog.structs.Set.prototype.isSubsetOf = function(col) {
var colCount = goog.structs.getCount(col);
if(this.getCount() > colCount) {
return false
}
if(!(col instanceof goog.structs.Set) && colCount > 5) {
col = new goog.structs.Set(col)
}
return goog.structs.every(this, function(value) {
return goog.structs.contains(col, value)
})
};
goog.structs.Set.prototype.__iterator__ = function(opt_keys) {
return this.map_.__iterator__(false)
};
goog.provide("goog.debug");
goog.require("goog.array");
goog.require("goog.string");
goog.require("goog.structs.Set");
goog.require("goog.userAgent");
goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) {
var target = opt_target || goog.global;
var oldErrorHandler = target.onerror;
var retVal = !!opt_cancel;
if(goog.userAgent.WEBKIT && !goog.userAgent.isVersion("535.3")) {
retVal = !retVal
}
target.onerror = function(message, url, line) {
if(oldErrorHandler) {
oldErrorHandler(message, url, line)
}
logFunc({message:message, fileName:url, line:line});
return retVal
}
};
goog.debug.expose = function(obj, opt_showFn) {
if(typeof obj == "undefined") {
return"undefined"
}
if(obj == null) {
return"NULL"
}
var str = [];
for(var x in obj) {
if(!opt_showFn && goog.isFunction(obj[x])) {
continue
}
var s = x + " = ";
try {
s += obj[x]
}catch(e) {
s += "*** " + e + " ***"
}
str.push(s)
}
return str.join("\n")
};
goog.debug.deepExpose = function(obj, opt_showFn) {
var previous = new goog.structs.Set;
var str = [];
var helper = function(obj, space) {
var nestspace = space + " ";
var indentMultiline = function(str) {
return str.replace(/\n/g, "\n" + space)
};
try {
if(!goog.isDef(obj)) {
str.push("undefined")
}else {
if(goog.isNull(obj)) {
str.push("NULL")
}else {
if(goog.isString(obj)) {
str.push('"' + indentMultiline(obj) + '"')
}else {
if(goog.isFunction(obj)) {
str.push(indentMultiline(String(obj)))
}else {
if(goog.isObject(obj)) {
if(previous.contains(obj)) {
str.push("*** reference loop detected ***")
}else {
previous.add(obj);
str.push("{");
for(var x in obj) {
if(!opt_showFn && goog.isFunction(obj[x])) {
continue
}
str.push("\n");
str.push(nestspace);
str.push(x + " = ");
helper(obj[x], nestspace)
}
str.push("\n" + space + "}")
}
}else {
str.push(obj)
}
}
}
}
}
}catch(e) {
str.push("*** " + e + " ***")
}
};
helper(obj, "");
return str.join("")
};
goog.debug.exposeArray = function(arr) {
var str = [];
for(var i = 0;i < arr.length;i++) {
if(goog.isArray(arr[i])) {
str.push(goog.debug.exposeArray(arr[i]))
}else {
str.push(arr[i])
}
}
return"[ " + str.join(", ") + " ]"
};
goog.debug.exposeException = function(err, opt_fn) {
try {
var e = goog.debug.normalizeErrorObject(err);
var error = "Message: " + goog.string.htmlEscape(e.message) + '\nUrl: <a href="view-source:' + e.fileName + '" target="_new">' + e.fileName + "</a>\nLine: " + e.lineNumber + "\n\nBrowser stack:\n" + goog.string.htmlEscape(e.stack + "-> ") + "[end]\n\nJS stack traversal:\n" + goog.string.htmlEscape(goog.debug.getStacktrace(opt_fn) + "-> ");
return error
}catch(e2) {
return"Exception trying to expose exception! You win, we lose. " + e2
}
};
goog.debug.normalizeErrorObject = function(err) {
var href = goog.getObjectByName("window.location.href");
if(goog.isString(err)) {
return{"message":err, "name":"Unknown error", "lineNumber":"Not available", "fileName":href, "stack":"Not available"}
}
var lineNumber, fileName;
var threwError = false;
try {
lineNumber = err.lineNumber || err.line || "Not available"
}catch(e) {
lineNumber = "Not available";
threwError = true
}
try {
fileName = err.fileName || err.filename || err.sourceURL || href
}catch(e) {
fileName = "Not available";
threwError = true
}
if(threwError || !err.lineNumber || !err.fileName || !err.stack) {
return{"message":err.message, "name":err.name, "lineNumber":lineNumber, "fileName":fileName, "stack":err.stack || "Not available"}
}
return err
};
goog.debug.enhanceError = function(err, opt_message) {
var error = typeof err == "string" ? Error(err) : err;
if(!error.stack) {
error.stack = goog.debug.getStacktrace(arguments.callee.caller)
}
if(opt_message) {
var x = 0;
while(error["message" + x]) {
++x
}
error["message" + x] = String(opt_message)
}
return error
};
goog.debug.getStacktraceSimple = function(opt_depth) {
var sb = [];
var fn = arguments.callee.caller;
var depth = 0;
while(fn && (!opt_depth || depth < opt_depth)) {
sb.push(goog.debug.getFunctionName(fn));
sb.push("()\n");
try {
fn = fn.caller
}catch(e) {
sb.push("[exception trying to get caller]\n");
break
}
depth++;
if(depth >= goog.debug.MAX_STACK_DEPTH) {
sb.push("[...long stack...]");
break
}
}
if(opt_depth && depth >= opt_depth) {
sb.push("[...reached max depth limit...]")
}else {
sb.push("[end]")
}
return sb.join("")
};
goog.debug.MAX_STACK_DEPTH = 50;
goog.debug.getStacktrace = function(opt_fn) {
return goog.debug.getStacktraceHelper_(opt_fn || arguments.callee.caller, [])
};
goog.debug.getStacktraceHelper_ = function(fn, visited) {
var sb = [];
if(goog.array.contains(visited, fn)) {
sb.push("[...circular reference...]")
}else {
if(fn && visited.length < goog.debug.MAX_STACK_DEPTH) {
sb.push(goog.debug.getFunctionName(fn) + "(");
var args = fn.arguments;
for(var i = 0;i < args.length;i++) {
if(i > 0) {
sb.push(", ")
}
var argDesc;
var arg = args[i];
switch(typeof arg) {
case "object":
argDesc = arg ? "object" : "null";
break;
case "string":
argDesc = arg;
break;
case "number":
argDesc = String(arg);
break;
case "boolean":
argDesc = arg ? "true" : "false";
break;
case "function":
argDesc = goog.debug.getFunctionName(arg);
argDesc = argDesc ? argDesc : "[fn]";
break;
case "undefined":
;
default:
argDesc = typeof arg;
break
}
if(argDesc.length > 40) {
argDesc = argDesc.substr(0, 40) + "..."
}
sb.push(argDesc)
}
visited.push(fn);
sb.push(")\n");
try {
sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited))
}catch(e) {
sb.push("[exception trying to get caller]\n")
}
}else {
if(fn) {
sb.push("[...long stack...]")
}else {
sb.push("[end]")
}
}
}
return sb.join("")
};
goog.debug.setFunctionResolver = function(resolver) {
goog.debug.fnNameResolver_ = resolver
};
goog.debug.getFunctionName = function(fn) {
if(goog.debug.fnNameCache_[fn]) {
return goog.debug.fnNameCache_[fn]
}
if(goog.debug.fnNameResolver_) {
var name = goog.debug.fnNameResolver_(fn);
if(name) {
goog.debug.fnNameCache_[fn] = name;
return name
}
}
var functionSource = String(fn);
if(!goog.debug.fnNameCache_[functionSource]) {
var matches = /function ([^\(]+)/.exec(functionSource);
if(matches) {
var method = matches[1];
goog.debug.fnNameCache_[functionSource] = method
}else {
goog.debug.fnNameCache_[functionSource] = "[Anonymous]"
}
}
return goog.debug.fnNameCache_[functionSource]
};
goog.debug.makeWhitespaceVisible = function(string) {
return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]")
};
goog.debug.fnNameCache_ = {};
goog.debug.fnNameResolver_;
goog.provide("goog.debug.LogRecord");
goog.debug.LogRecord = function(level, msg, loggerName, opt_time, opt_sequenceNumber) {
this.reset(level, msg, loggerName, opt_time, opt_sequenceNumber)
};
goog.debug.LogRecord.prototype.time_;
goog.debug.LogRecord.prototype.level_;
goog.debug.LogRecord.prototype.msg_;
goog.debug.LogRecord.prototype.loggerName_;
goog.debug.LogRecord.prototype.sequenceNumber_ = 0;
goog.debug.LogRecord.prototype.exception_ = null;
goog.debug.LogRecord.prototype.exceptionText_ = null;
goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS = true;
goog.debug.LogRecord.nextSequenceNumber_ = 0;
goog.debug.LogRecord.prototype.reset = function(level, msg, loggerName, opt_time, opt_sequenceNumber) {
if(goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS) {
this.sequenceNumber_ = typeof opt_sequenceNumber == "number" ? opt_sequenceNumber : goog.debug.LogRecord.nextSequenceNumber_++
}
this.time_ = opt_time || goog.now();
this.level_ = level;
this.msg_ = msg;
this.loggerName_ = loggerName;
delete this.exception_;
delete this.exceptionText_
};
goog.debug.LogRecord.prototype.getLoggerName = function() {
return this.loggerName_
};
goog.debug.LogRecord.prototype.getException = function() {
return this.exception_
};
goog.debug.LogRecord.prototype.setException = function(exception) {
this.exception_ = exception
};
goog.debug.LogRecord.prototype.getExceptionText = function() {
return this.exceptionText_
};
goog.debug.LogRecord.prototype.setExceptionText = function(text) {
this.exceptionText_ = text
};
goog.debug.LogRecord.prototype.setLoggerName = function(loggerName) {
this.loggerName_ = loggerName
};
goog.debug.LogRecord.prototype.getLevel = function() {
return this.level_
};
goog.debug.LogRecord.prototype.setLevel = function(level) {
this.level_ = level
};
goog.debug.LogRecord.prototype.getMessage = function() {
return this.msg_
};
goog.debug.LogRecord.prototype.setMessage = function(msg) {
this.msg_ = msg
};
goog.debug.LogRecord.prototype.getMillis = function() {
return this.time_
};
goog.debug.LogRecord.prototype.setMillis = function(time) {
this.time_ = time
};
goog.debug.LogRecord.prototype.getSequenceNumber = function() {
return this.sequenceNumber_
};
goog.provide("goog.debug.LogBuffer");
goog.require("goog.asserts");
goog.require("goog.debug.LogRecord");
goog.debug.LogBuffer = function() {
goog.asserts.assert(goog.debug.LogBuffer.isBufferingEnabled(), "Cannot use goog.debug.LogBuffer without defining " + "goog.debug.LogBuffer.CAPACITY.");
this.clear()
};
goog.debug.LogBuffer.getInstance = function() {
if(!goog.debug.LogBuffer.instance_) {
goog.debug.LogBuffer.instance_ = new goog.debug.LogBuffer
}
return goog.debug.LogBuffer.instance_
};
goog.debug.LogBuffer.CAPACITY = 0;
goog.debug.LogBuffer.prototype.buffer_;
goog.debug.LogBuffer.prototype.curIndex_;
goog.debug.LogBuffer.prototype.isFull_;
goog.debug.LogBuffer.prototype.addRecord = function(level, msg, loggerName) {
var curIndex = (this.curIndex_ + 1) % goog.debug.LogBuffer.CAPACITY;
this.curIndex_ = curIndex;
if(this.isFull_) {
var ret = this.buffer_[curIndex];
ret.reset(level, msg, loggerName);
return ret
}
this.isFull_ = curIndex == goog.debug.LogBuffer.CAPACITY - 1;
return this.buffer_[curIndex] = new goog.debug.LogRecord(level, msg, loggerName)
};
goog.debug.LogBuffer.isBufferingEnabled = function() {
return goog.debug.LogBuffer.CAPACITY > 0
};
goog.debug.LogBuffer.prototype.clear = function() {
this.buffer_ = new Array(goog.debug.LogBuffer.CAPACITY);
this.curIndex_ = -1;
this.isFull_ = false
};
goog.debug.LogBuffer.prototype.forEachRecord = function(func) {
var buffer = this.buffer_;
if(!buffer[0]) {
return
}
var curIndex = this.curIndex_;
var i = this.isFull_ ? curIndex : -1;
do {
i = (i + 1) % goog.debug.LogBuffer.CAPACITY;
func(buffer[i])
}while(i != curIndex)
};
goog.provide("goog.debug.LogManager");
goog.provide("goog.debug.Logger");
goog.provide("goog.debug.Logger.Level");
goog.require("goog.array");
goog.require("goog.asserts");
goog.require("goog.debug");
goog.require("goog.debug.LogBuffer");
goog.require("goog.debug.LogRecord");
goog.debug.Logger = function(name) {
this.name_ = name
};
goog.debug.Logger.prototype.parent_ = null;
goog.debug.Logger.prototype.level_ = null;
goog.debug.Logger.prototype.children_ = null;
goog.debug.Logger.prototype.handlers_ = null;
goog.debug.Logger.ENABLE_HIERARCHY = true;
if(!goog.debug.Logger.ENABLE_HIERARCHY) {
goog.debug.Logger.rootHandlers_ = [];
goog.debug.Logger.rootLevel_
}
goog.debug.Logger.Level = function(name, value) {
this.name = name;
this.value = value
};
goog.debug.Logger.Level.prototype.toString = function() {
return this.name
};
goog.debug.Logger.Level.OFF = new goog.debug.Logger.Level("OFF", Infinity);
goog.debug.Logger.Level.SHOUT = new goog.debug.Logger.Level("SHOUT", 1200);
goog.debug.Logger.Level.SEVERE = new goog.debug.Logger.Level("SEVERE", 1E3);
goog.debug.Logger.Level.WARNING = new goog.debug.Logger.Level("WARNING", 900);
goog.debug.Logger.Level.INFO = new goog.debug.Logger.Level("INFO", 800);
goog.debug.Logger.Level.CONFIG = new goog.debug.Logger.Level("CONFIG", 700);
goog.debug.Logger.Level.FINE = new goog.debug.Logger.Level("FINE", 500);
goog.debug.Logger.Level.FINER = new goog.debug.Logger.Level("FINER", 400);
goog.debug.Logger.Level.FINEST = new goog.debug.Logger.Level("FINEST", 300);
goog.debug.Logger.Level.ALL = new goog.debug.Logger.Level("ALL", 0);
goog.debug.Logger.Level.PREDEFINED_LEVELS = [goog.debug.Logger.Level.OFF, goog.debug.Logger.Level.SHOUT, goog.debug.Logger.Level.SEVERE, goog.debug.Logger.Level.WARNING, goog.debug.Logger.Level.INFO, goog.debug.Logger.Level.CONFIG, goog.debug.Logger.Level.FINE, goog.debug.Logger.Level.FINER, goog.debug.Logger.Level.FINEST, goog.debug.Logger.Level.ALL];
goog.debug.Logger.Level.predefinedLevelsCache_ = null;
goog.debug.Logger.Level.createPredefinedLevelsCache_ = function() {
goog.debug.Logger.Level.predefinedLevelsCache_ = {};
for(var i = 0, level;level = goog.debug.Logger.Level.PREDEFINED_LEVELS[i];i++) {
goog.debug.Logger.Level.predefinedLevelsCache_[level.value] = level;
goog.debug.Logger.Level.predefinedLevelsCache_[level.name] = level
}
};
goog.debug.Logger.Level.getPredefinedLevel = function(name) {
if(!goog.debug.Logger.Level.predefinedLevelsCache_) {
goog.debug.Logger.Level.createPredefinedLevelsCache_()
}
return goog.debug.Logger.Level.predefinedLevelsCache_[name] || null
};
goog.debug.Logger.Level.getPredefinedLevelByValue = function(value) {
if(!goog.debug.Logger.Level.predefinedLevelsCache_) {
goog.debug.Logger.Level.createPredefinedLevelsCache_()
}
if(value in goog.debug.Logger.Level.predefinedLevelsCache_) {
return goog.debug.Logger.Level.predefinedLevelsCache_[value]
}
for(var i = 0;i < goog.debug.Logger.Level.PREDEFINED_LEVELS.length;++i) {
var level = goog.debug.Logger.Level.PREDEFINED_LEVELS[i];
if(level.value <= value) {
return level
}
}
return null
};
goog.debug.Logger.getLogger = function(name) {
return goog.debug.LogManager.getLogger(name)
};
goog.debug.Logger.logToProfilers = function(msg) {
if(goog.global["console"]) {
if(goog.global["console"]["timeStamp"]) {
goog.global["console"]["timeStamp"](msg)
}else {
if(goog.global["console"]["markTimeline"]) {
goog.global["console"]["markTimeline"](msg)
}
}
}
if(goog.global["msWriteProfilerMark"]) {
goog.global["msWriteProfilerMark"](msg)
}
};
goog.debug.Logger.prototype.getName = function() {
return this.name_
};
goog.debug.Logger.prototype.addHandler = function(handler) {
if(goog.debug.Logger.ENABLE_HIERARCHY) {
if(!this.handlers_) {
this.handlers_ = []
}
this.handlers_.push(handler)
}else {
goog.asserts.assert(!this.name_, "Cannot call addHandler on a non-root logger when " + "goog.debug.Logger.ENABLE_HIERARCHY is false.");
goog.debug.Logger.rootHandlers_.push(handler)
}
};
goog.debug.Logger.prototype.removeHandler = function(handler) {
var handlers = goog.debug.Logger.ENABLE_HIERARCHY ? this.handlers_ : goog.debug.Logger.rootHandlers_;
return!!handlers && goog.array.remove(handlers, handler)
};
goog.debug.Logger.prototype.getParent = function() {
return this.parent_
};
goog.debug.Logger.prototype.getChildren = function() {
if(!this.children_) {
this.children_ = {}
}
return this.children_
};
goog.debug.Logger.prototype.setLevel = function(level) {
if(goog.debug.Logger.ENABLE_HIERARCHY) {
this.level_ = level
}else {
goog.asserts.assert(!this.name_, "Cannot call setLevel() on a non-root logger when " + "goog.debug.Logger.ENABLE_HIERARCHY is false.");
goog.debug.Logger.rootLevel_ = level
}
};
goog.debug.Logger.prototype.getLevel = function() {
return this.level_
};
goog.debug.Logger.prototype.getEffectiveLevel = function() {
if(!goog.debug.Logger.ENABLE_HIERARCHY) {
return goog.debug.Logger.rootLevel_
}
if(this.level_) {
return this.level_
}
if(this.parent_) {
return this.parent_.getEffectiveLevel()
}
goog.asserts.fail("Root logger has no level set.");
return null
};
goog.debug.Logger.prototype.isLoggable = function(level) {
return level.value >= this.getEffectiveLevel().value
};
goog.debug.Logger.prototype.log = function(level, msg, opt_exception) {
if(this.isLoggable(level)) {
this.doLogRecord_(this.getLogRecord(level, msg, opt_exception))
}
};
goog.debug.Logger.prototype.getLogRecord = function(level, msg, opt_exception) {
if(goog.debug.LogBuffer.isBufferingEnabled()) {
var logRecord = goog.debug.LogBuffer.getInstance().addRecord(level, msg, this.name_)
}else {
logRecord = new goog.debug.LogRecord(level, String(msg), this.name_)
}
if(opt_exception) {
logRecord.setException(opt_exception);
logRecord.setExceptionText(goog.debug.exposeException(opt_exception, arguments.callee.caller))
}
return logRecord
};
goog.debug.Logger.prototype.shout = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.SHOUT, msg, opt_exception)
};
goog.debug.Logger.prototype.severe = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.SEVERE, msg, opt_exception)
};
goog.debug.Logger.prototype.warning = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.WARNING, msg, opt_exception)
};
goog.debug.Logger.prototype.info = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.INFO, msg, opt_exception)
};
goog.debug.Logger.prototype.config = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.CONFIG, msg, opt_exception)
};
goog.debug.Logger.prototype.fine = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.FINE, msg, opt_exception)
};
goog.debug.Logger.prototype.finer = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.FINER, msg, opt_exception)
};
goog.debug.Logger.prototype.finest = function(msg, opt_exception) {
this.log(goog.debug.Logger.Level.FINEST, msg, opt_exception)
};
goog.debug.Logger.prototype.logRecord = function(logRecord) {
if(this.isLoggable(logRecord.getLevel())) {
this.doLogRecord_(logRecord)
}
};
goog.debug.Logger.prototype.doLogRecord_ = function(logRecord) {
goog.debug.Logger.logToProfilers("log:" + logRecord.getMessage());
if(goog.debug.Logger.ENABLE_HIERARCHY) {
var target = this;
while(target) {
target.callPublish_(logRecord);
target = target.getParent()
}
}else {
for(var i = 0, handler;handler = goog.debug.Logger.rootHandlers_[i++];) {
handler(logRecord)
}
}
};
goog.debug.Logger.prototype.callPublish_ = function(logRecord) {
if(this.handlers_) {
for(var i = 0, handler;handler = this.handlers_[i];i++) {
handler(logRecord)
}
}
};
goog.debug.Logger.prototype.setParent_ = function(parent) {
this.parent_ = parent
};
goog.debug.Logger.prototype.addChild_ = function(name, logger) {
this.getChildren()[name] = logger
};
goog.debug.LogManager = {};
goog.debug.LogManager.loggers_ = {};
goog.debug.LogManager.rootLogger_ = null;
goog.debug.LogManager.initialize = function() {
if(!goog.debug.LogManager.rootLogger_) {
goog.debug.LogManager.rootLogger_ = new goog.debug.Logger("");
goog.debug.LogManager.loggers_[""] = goog.debug.LogManager.rootLogger_;
goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG)
}
};
goog.debug.LogManager.getLoggers = function() {
return goog.debug.LogManager.loggers_
};
goog.debug.LogManager.getRoot = function() {
goog.debug.LogManager.initialize();
return goog.debug.LogManager.rootLogger_
};
goog.debug.LogManager.getLogger = function(name) {
goog.debug.LogManager.initialize();
var ret = goog.debug.LogManager.loggers_[name];
return ret || goog.debug.LogManager.createLogger_(name)
};
goog.debug.LogManager.createFunctionForCatchErrors = function(opt_logger) {
return function(info) {
var logger = opt_logger || goog.debug.LogManager.getRoot();
logger.severe("Error: " + info.message + " (" + info.fileName + " @ Line: " + info.line + ")")
}
};
goog.debug.LogManager.createLogger_ = function(name) {
var logger = new goog.debug.Logger(name);
if(goog.debug.Logger.ENABLE_HIERARCHY) {
var lastDotIndex = name.lastIndexOf(".");
var parentName = name.substr(0, lastDotIndex);
var leafName = name.substr(lastDotIndex + 1);
var parentLogger = goog.debug.LogManager.getLogger(parentName);
parentLogger.addChild_(leafName, logger);
logger.setParent_(parentLogger)
}
goog.debug.LogManager.loggers_[name] = logger;
return logger
};
goog.provide("goog.json");
goog.provide("goog.json.Serializer");
goog.json.isValid_ = function(s) {
if(/^\s*$/.test(s)) {
return false
}
var backslashesRe = /\\["\\\/bfnrtu]/g;
var simpleValuesRe = /"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;
var openBracketsRe = /(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g;
var remainderRe = /^[\],:{}\s\u2028\u2029]*$/;
return remainderRe.test(s.replace(backslashesRe, "@").replace(simpleValuesRe, "]").replace(openBracketsRe, ""))
};
goog.json.parse = function(s) {
var o = String(s);
if(goog.json.isValid_(o)) {
try {
return eval("(" + o + ")")
}catch(ex) {
}
}
throw Error("Invalid JSON string: " + o);
};
goog.json.unsafeParse = function(s) {
return eval("(" + s + ")")
};
goog.json.Replacer;
goog.json.serialize = function(object, opt_replacer) {
return(new goog.json.Serializer(opt_replacer)).serialize(object)
};
goog.json.Serializer = function(opt_replacer) {
this.replacer_ = opt_replacer
};
goog.json.Serializer.prototype.serialize = function(object) {
var sb = [];
this.serialize_(object, sb);
return sb.join("")
};
goog.json.Serializer.prototype.serialize_ = function(object, sb) {
switch(typeof object) {
case "string":
this.serializeString_(object, sb);
break;
case "number":
this.serializeNumber_(object, sb);
break;
case "boolean":
sb.push(object);
break;
case "undefined":
sb.push("null");
break;
case "object":
if(object == null) {
sb.push("null");
break
}
if(goog.isArray(object)) {
this.serializeArray(object, sb);
break
}
this.serializeObject_(object, sb);
break;
case "function":
break;
default:
throw Error("Unknown type: " + typeof object);
}
};
goog.json.Serializer.charToJsonCharCache_ = {'"':'\\"', "\\":"\\\\", "/":"\\/", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\u000b"};
goog.json.Serializer.charsToReplace_ = /\uffff/.test("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g;
goog.json.Serializer.prototype.serializeString_ = function(s, sb) {
sb.push('"', s.replace(goog.json.Serializer.charsToReplace_, function(c) {
if(c in goog.json.Serializer.charToJsonCharCache_) {
return goog.json.Serializer.charToJsonCharCache_[c]
}
var cc = c.charCodeAt(0);
var rv = "\\u";
if(cc < 16) {
rv += "000"
}else {
if(cc < 256) {
rv += "00"
}else {
if(cc < 4096) {
rv += "0"
}
}
}
return goog.json.Serializer.charToJsonCharCache_[c] = rv + cc.toString(16)
}), '"')
};
goog.json.Serializer.prototype.serializeNumber_ = function(n, sb) {
sb.push(isFinite(n) && !isNaN(n) ? n : "null")
};
goog.json.Serializer.prototype.serializeArray = function(arr, sb) {
var l = arr.length;
sb.push("[");
var sep = "";
for(var i = 0;i < l;i++) {
sb.push(sep);
var value = arr[i];
this.serialize_(this.replacer_ ? this.replacer_.call(arr, String(i), value) : value, sb);
sep = ","
}
sb.push("]")
};
goog.json.Serializer.prototype.serializeObject_ = function(obj, sb) {
sb.push("{");
var sep = "";
for(var key in obj) {
if(Object.prototype.hasOwnProperty.call(obj, key)) {
var value = obj[key];
if(typeof value != "function") {
sb.push(sep);
this.serializeString_(key, sb);
sb.push(":");
this.serialize_(this.replacer_ ? this.replacer_.call(obj, key, value) : value, sb);
sep = ","
}
}
}
sb.push("}")
};
goog.provide("goog.net.ErrorCode");
goog.net.ErrorCode = {NO_ERROR:0, ACCESS_DENIED:1, FILE_NOT_FOUND:2, FF_SILENT_ERROR:3, CUSTOM_ERROR:4, EXCEPTION:5, HTTP_ERROR:6, ABORT:7, TIMEOUT:8, OFFLINE:9};
goog.net.ErrorCode.getDebugMessage = function(errorCode) {
switch(errorCode) {
case goog.net.ErrorCode.NO_ERROR:
return"No Error";
case goog.net.ErrorCode.ACCESS_DENIED:
return"Access denied to content document";
case goog.net.ErrorCode.FILE_NOT_FOUND:
return"File not found";
case goog.net.ErrorCode.FF_SILENT_ERROR:
return"Firefox silently errored";
case goog.net.ErrorCode.CUSTOM_ERROR:
return"Application custom error";
case goog.net.ErrorCode.EXCEPTION:
return"An exception occurred";
case goog.net.ErrorCode.HTTP_ERROR:
return"Http response at 400 or 500 level";
case goog.net.ErrorCode.ABORT:
return"Request was aborted";
case goog.net.ErrorCode.TIMEOUT:
return"Request timed out";
case goog.net.ErrorCode.OFFLINE:
return"The resource is not available offline";
default:
return"Unrecognized error code"
}
};
goog.provide("goog.net.EventType");
goog.net.EventType = {COMPLETE:"complete", SUCCESS:"success", ERROR:"error", ABORT:"abort", READY:"ready", READY_STATE_CHANGE:"readystatechange", TIMEOUT:"timeout", INCREMENTAL_DATA:"incrementaldata", PROGRESS:"progress"};
goog.provide("goog.net.HttpStatus");
goog.net.HttpStatus = {CONTINUE:100, SWITCHING_PROTOCOLS:101, OK:200, CREATED:201, ACCEPTED:202, NON_AUTHORITATIVE_INFORMATION:203, NO_CONTENT:204, RESET_CONTENT:205, PARTIAL_CONTENT:206, MULTIPLE_CHOICES:300, MOVED_PERMANENTLY:301, FOUND:302, SEE_OTHER:303, NOT_MODIFIED:304, USE_PROXY:305, TEMPORARY_REDIRECT:307, BAD_REQUEST:400, UNAUTHORIZED:401, PAYMENT_REQUIRED:402, FORBIDDEN:403, NOT_FOUND:404, METHOD_NOT_ALLOWED:405, NOT_ACCEPTABLE:406, PROXY_AUTHENTICATION_REQUIRED:407, REQUEST_TIMEOUT:408,
CONFLICT:409, GONE:410, LENGTH_REQUIRED:411, PRECONDITION_FAILED:412, REQUEST_ENTITY_TOO_LARGE:413, REQUEST_URI_TOO_LONG:414, UNSUPPORTED_MEDIA_TYPE:415, REQUEST_RANGE_NOT_SATISFIABLE:416, EXPECTATION_FAILED:417, INTERNAL_SERVER_ERROR:500, NOT_IMPLEMENTED:501, BAD_GATEWAY:502, SERVICE_UNAVAILABLE:503, GATEWAY_TIMEOUT:504, HTTP_VERSION_NOT_SUPPORTED:505, QUIRK_IE_NO_CONTENT:1223};
goog.net.HttpStatus.isSuccess = function(status) {
switch(status) {
case goog.net.HttpStatus.OK:
;
case goog.net.HttpStatus.CREATED:
;
case goog.net.HttpStatus.ACCEPTED:
;
case goog.net.HttpStatus.NO_CONTENT:
;
case goog.net.HttpStatus.NOT_MODIFIED:
;
case goog.net.HttpStatus.QUIRK_IE_NO_CONTENT:
return true;
default:
return false
}
};
goog.provide("goog.net.XmlHttpFactory");
goog.net.XmlHttpFactory = function() {
};
goog.net.XmlHttpFactory.prototype.cachedOptions_ = null;
goog.net.XmlHttpFactory.prototype.createInstance = goog.abstractMethod;
goog.net.XmlHttpFactory.prototype.getOptions = function() {
return this.cachedOptions_ || (this.cachedOptions_ = this.internalGetOptions())
};
goog.net.XmlHttpFactory.prototype.internalGetOptions = goog.abstractMethod;
goog.provide("goog.net.WrapperXmlHttpFactory");
goog.require("goog.net.XmlHttpFactory");
goog.net.WrapperXmlHttpFactory = function(xhrFactory, optionsFactory) {
goog.net.XmlHttpFactory.call(this);
this.xhrFactory_ = xhrFactory;
this.optionsFactory_ = optionsFactory
};
goog.inherits(goog.net.WrapperXmlHttpFactory, goog.net.XmlHttpFactory);
goog.net.WrapperXmlHttpFactory.prototype.createInstance = function() {
return this.xhrFactory_()
};
goog.net.WrapperXmlHttpFactory.prototype.getOptions = function() {
return this.optionsFactory_()
};
goog.provide("goog.net.DefaultXmlHttpFactory");
goog.provide("goog.net.XmlHttp");
goog.provide("goog.net.XmlHttp.OptionType");
goog.provide("goog.net.XmlHttp.ReadyState");
goog.require("goog.net.WrapperXmlHttpFactory");
goog.require("goog.net.XmlHttpFactory");
goog.net.XmlHttp = function() {
return goog.net.XmlHttp.factory_.createInstance()
};
goog.net.XmlHttp.ASSUME_NATIVE_XHR = false;
goog.net.XmlHttp.getOptions = function() {
return goog.net.XmlHttp.factory_.getOptions()
};
goog.net.XmlHttp.OptionType = {USE_NULL_FUNCTION:0, LOCAL_REQUEST_ERROR:1};
goog.net.XmlHttp.ReadyState = {UNINITIALIZED:0, LOADING:1, LOADED:2, INTERACTIVE:3, COMPLETE:4};
goog.net.XmlHttp.factory_;
goog.net.XmlHttp.setFactory = function(factory, optionsFactory) {
goog.net.XmlHttp.setGlobalFactory(new goog.net.WrapperXmlHttpFactory(factory, optionsFactory))
};
goog.net.XmlHttp.setGlobalFactory = function(factory) {
goog.net.XmlHttp.factory_ = factory
};
goog.net.DefaultXmlHttpFactory = function() {
goog.net.XmlHttpFactory.call(this)
};
goog.inherits(goog.net.DefaultXmlHttpFactory, goog.net.XmlHttpFactory);
goog.net.DefaultXmlHttpFactory.prototype.createInstance = function() {
var progId = this.getProgId_();
if(progId) {
return new ActiveXObject(progId)
}else {
return new XMLHttpRequest
}
};
goog.net.DefaultXmlHttpFactory.prototype.internalGetOptions = function() {
var progId = this.getProgId_();
var options = {};
if(progId) {
options[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION] = true;
options[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR] = true
}
return options
};
goog.net.DefaultXmlHttpFactory.prototype.ieProgId_;
goog.net.DefaultXmlHttpFactory.prototype.getProgId_ = function() {
if(goog.net.XmlHttp.ASSUME_NATIVE_XHR) {
return""
}
if(!this.ieProgId_ && typeof XMLHttpRequest == "undefined" && typeof ActiveXObject != "undefined") {
var ACTIVE_X_IDENTS = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var i = 0;i < ACTIVE_X_IDENTS.length;i++) {
var candidate = ACTIVE_X_IDENTS[i];
try {
new ActiveXObject(candidate);
this.ieProgId_ = candidate;
return candidate
}catch(e) {
}
}
throw Error("Could not create ActiveXObject. ActiveX might be disabled," + " or MSXML might not be installed");
}
return this.ieProgId_
};
goog.net.XmlHttp.setGlobalFactory(new goog.net.DefaultXmlHttpFactory);
goog.provide("goog.uri.utils");
goog.provide("goog.uri.utils.ComponentIndex");
goog.provide("goog.uri.utils.QueryArray");
goog.provide("goog.uri.utils.QueryValue");
goog.provide("goog.uri.utils.StandardQueryParam");
goog.require("goog.asserts");
goog.require("goog.string");
goog.require("goog.userAgent");
goog.uri.utils.CharCode_ = {AMPERSAND:38, EQUAL:61, HASH:35, QUESTION:63};
goog.uri.utils.buildFromEncodedParts = function(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
var out = [];
if(opt_scheme) {
out.push(opt_scheme, ":")
}
if(opt_domain) {
out.push("//");
if(opt_userInfo) {
out.push(opt_userInfo, "@")
}
out.push(opt_domain);
if(opt_port) {
out.push(":", opt_port)
}
}
if(opt_path) {
out.push(opt_path)
}
if(opt_queryData) {
out.push("?", opt_queryData)
}
if(opt_fragment) {
out.push("#", opt_fragment)
}
return out.join("")
};
goog.uri.utils.splitRe_ = new RegExp("^" + "(?:" + "([^:/?#.]+)" + ":)?" + "(?://" + "(?:([^/?#]*)@)?" + "([\\w\\d\\-\\u0100-\\uffff.%]*)" + "(?::([0-9]+))?" + ")?" + "([^?#]+)?" + "(?:\\?([^#]*))?" + "(?:#(.*))?" + "$");
goog.uri.utils.ComponentIndex = {SCHEME:1, USER_INFO:2, DOMAIN:3, PORT:4, PATH:5, QUERY_DATA:6, FRAGMENT:7};
goog.uri.utils.split = function(uri) {
return uri.match(goog.uri.utils.splitRe_)
};
goog.uri.utils.decodeIfPossible_ = function(uri) {
return uri && decodeURIComponent(uri)
};
goog.uri.utils.getComponentByIndex_ = function(componentIndex, uri) {
return goog.uri.utils.split(uri)[componentIndex] || null
};
goog.uri.utils.getScheme = function(uri) {
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME, uri)
};
goog.uri.utils.getEffectiveScheme = function(uri) {
var scheme = goog.uri.utils.getScheme(uri);
if(!scheme && self.location) {
var protocol = self.location.protocol;
scheme = protocol.substr(0, protocol.length - 1)
}
return scheme ? scheme.toLowerCase() : ""
};
goog.uri.utils.getUserInfoEncoded = function(uri) {
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO, uri)
};
goog.uri.utils.getUserInfo = function(uri) {
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(uri))
};
goog.uri.utils.getDomainEncoded = function(uri) {
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN, uri)
};
goog.uri.utils.getDomain = function(uri) {
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(uri))
};
goog.uri.utils.getPort = function(uri) {
return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT, uri)) || null
};
goog.uri.utils.getPathEncoded = function(uri) {
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH, uri)
};
goog.uri.utils.getPath = function(uri) {
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(uri))
};
goog.uri.utils.getQueryData = function(uri) {
return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA, uri)
};
goog.uri.utils.getFragmentEncoded = function(uri) {
var hashIndex = uri.indexOf("#");
return hashIndex < 0 ? null : uri.substr(hashIndex + 1)
};
goog.uri.utils.setFragmentEncoded = function(uri, fragment) {
return goog.uri.utils.removeFragment(uri) + (fragment ? "#" + fragment : "")
};
goog.uri.utils.getFragment = function(uri) {
return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(uri))
};
goog.uri.utils.getHost = function(uri) {
var pieces = goog.uri.utils.split(uri);
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])
};
goog.uri.utils.getPathAndAfter = function(uri) {
var pieces = goog.uri.utils.split(uri);
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])
};
goog.uri.utils.removeFragment = function(uri) {
var hashIndex = uri.indexOf("#");
return hashIndex < 0 ? uri : uri.substr(0, hashIndex)
};
goog.uri.utils.haveSameDomain = function(uri1, uri2) {
var pieces1 = goog.uri.utils.split(uri1);
var pieces2 = goog.uri.utils.split(uri2);
return pieces1[goog.uri.utils.ComponentIndex.DOMAIN] == pieces2[goog.uri.utils.ComponentIndex.DOMAIN] && pieces1[goog.uri.utils.ComponentIndex.SCHEME] == pieces2[goog.uri.utils.ComponentIndex.SCHEME] && pieces1[goog.uri.utils.ComponentIndex.PORT] == pieces2[goog.uri.utils.ComponentIndex.PORT]
};
goog.uri.utils.assertNoFragmentsOrQueries_ = function(uri) {
if(goog.DEBUG && (uri.indexOf("#") >= 0 || uri.indexOf("?") >= 0)) {
throw Error("goog.uri.utils: Fragment or query identifiers are not " + "supported: [" + uri + "]");
}
};
goog.uri.utils.QueryValue;
goog.uri.utils.QueryArray;
goog.uri.utils.appendQueryData_ = function(buffer) {
if(buffer[1]) {
var baseUri = buffer[0];
var hashIndex = baseUri.indexOf("#");
if(hashIndex >= 0) {
buffer.push(baseUri.substr(hashIndex));
buffer[0] = baseUri = baseUri.substr(0, hashIndex)
}
var questionIndex = baseUri.indexOf("?");
if(questionIndex < 0) {
buffer[1] = "?"
}else {
if(questionIndex == baseUri.length - 1) {
buffer[1] = undefined
}
}
}
return buffer.join("")
};
goog.uri.utils.appendKeyValuePairs_ = function(key, value, pairs) {
if(goog.isArray(value)) {
goog.asserts.assertArray(value);
for(var j = 0;j < value.length;j++) {
goog.uri.utils.appendKeyValuePairs_(key, String(value[j]), pairs)
}
}else {
if(value != null) {
pairs.push("&", key, value === "" ? "" : "=", goog.string.urlEncode(value))
}
}
};
goog.uri.utils.buildQueryDataBuffer_ = function(buffer, keysAndValues, opt_startIndex) {
goog.asserts.assert(Math.max(keysAndValues.length - (opt_startIndex || 0), 0) % 2 == 0, "goog.uri.utils: Key/value lists must be even in length.");
for(var i = opt_startIndex || 0;i < keysAndValues.length;i += 2) {
goog.uri.utils.appendKeyValuePairs_(keysAndValues[i], keysAndValues[i + 1], buffer)
}
return buffer
};
goog.uri.utils.buildQueryData = function(keysAndValues, opt_startIndex) {
var buffer = goog.uri.utils.buildQueryDataBuffer_([], keysAndValues, opt_startIndex);
buffer[0] = "";
return buffer.join("")
};
goog.uri.utils.buildQueryDataBufferFromMap_ = function(buffer, map) {
for(var key in map) {
goog.uri.utils.appendKeyValuePairs_(key, map[key], buffer)
}
return buffer
};
goog.uri.utils.buildQueryDataFromMap = function(map) {
var buffer = goog.uri.utils.buildQueryDataBufferFromMap_([], map);
buffer[0] = "";
return buffer.join("")
};
goog.uri.utils.appendParams = function(uri, var_args) {
return goog.uri.utils.appendQueryData_(arguments.length == 2 ? goog.uri.utils.buildQueryDataBuffer_([uri], arguments[1], 0) : goog.uri.utils.buildQueryDataBuffer_([uri], arguments, 1))
};
goog.uri.utils.appendParamsFromMap = function(uri, map) {
return goog.uri.utils.appendQueryData_(goog.uri.utils.buildQueryDataBufferFromMap_([uri], map))
};
goog.uri.utils.appendParam = function(uri, key, value) {
return goog.uri.utils.appendQueryData_([uri, "&", key, "=", goog.string.urlEncode(value)])
};
goog.uri.utils.findParam_ = function(uri, startIndex, keyEncoded, hashOrEndIndex) {
var index = startIndex;
var keyLength = keyEncoded.length;
while((index = uri.indexOf(keyEncoded, index)) >= 0 && index < hashOrEndIndex) {
var precedingChar = uri.charCodeAt(index - 1);
if(precedingChar == goog.uri.utils.CharCode_.AMPERSAND || precedingChar == goog.uri.utils.CharCode_.QUESTION) {
var followingChar = uri.charCodeAt(index + keyLength);
if(!followingChar || followingChar == goog.uri.utils.CharCode_.EQUAL || followingChar == goog.uri.utils.CharCode_.AMPERSAND || followingChar == goog.uri.utils.CharCode_.HASH) {
return index
}
}
index += keyLength + 1
}
return-1
};
goog.uri.utils.hashOrEndRe_ = /#|$/;
goog.uri.utils.hasParam = function(uri, keyEncoded) {
return goog.uri.utils.findParam_(uri, 0, keyEncoded, uri.search(goog.uri.utils.hashOrEndRe_)) >= 0
};
goog.uri.utils.getParamValue = function(uri, keyEncoded) {
var hashOrEndIndex = uri.search(goog.uri.utils.hashOrEndRe_);
var foundIndex = goog.uri.utils.findParam_(uri, 0, keyEncoded, hashOrEndIndex);
if(foundIndex < 0) {
return null
}else {
var endPosition = uri.indexOf("&", foundIndex);
if(endPosition < 0 || endPosition > hashOrEndIndex) {
endPosition = hashOrEndIndex
}
foundIndex += keyEncoded.length + 1;
return goog.string.urlDecode(uri.substr(foundIndex, endPosition - foundIndex))
}
};
goog.uri.utils.getParamValues = function(uri, keyEncoded) {
var hashOrEndIndex = uri.search(goog.uri.utils.hashOrEndRe_);
var position = 0;
var foundIndex;
var result = [];
while((foundIndex = goog.uri.utils.findParam_(uri, position, keyEncoded, hashOrEndIndex)) >= 0) {
position = uri.indexOf("&", foundIndex);
if(position < 0 || position > hashOrEndIndex) {
position = hashOrEndIndex
}
foundIndex += keyEncoded.length + 1;
result.push(goog.string.urlDecode(uri.substr(foundIndex, position - foundIndex)))
}
return result
};
goog.uri.utils.trailingQueryPunctuationRe_ = /[?&]($|#)/;
goog.uri.utils.removeParam = function(uri, keyEncoded) {
var hashOrEndIndex = uri.search(goog.uri.utils.hashOrEndRe_);
var position = 0;
var foundIndex;
var buffer = [];
while((foundIndex = goog.uri.utils.findParam_(uri, position, keyEncoded, hashOrEndIndex)) >= 0) {
buffer.push(uri.substring(position, foundIndex));
position = Math.min(uri.indexOf("&", foundIndex) + 1 || hashOrEndIndex, hashOrEndIndex)
}
buffer.push(uri.substr(position));
return buffer.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_, "$1")
};
goog.uri.utils.setParam = function(uri, keyEncoded, value) {
return goog.uri.utils.appendParam(goog.uri.utils.removeParam(uri, keyEncoded), keyEncoded, value)
};
goog.uri.utils.appendPath = function(baseUri, path) {
goog.uri.utils.assertNoFragmentsOrQueries_(baseUri);
if(goog.string.endsWith(baseUri, "/")) {
baseUri = baseUri.substr(0, baseUri.length - 1)
}
if(goog.string.startsWith(path, "/")) {
path = path.substr(1)
}
return goog.string.buildString(baseUri, "/", path)
};
goog.uri.utils.StandardQueryParam = {RANDOM:"zx"};
goog.uri.utils.makeUnique = function(uri) {
return goog.uri.utils.setParam(uri, goog.uri.utils.StandardQueryParam.RANDOM, goog.string.getRandomString())
};
goog.provide("goog.net.XhrIo");
goog.provide("goog.net.XhrIo.ResponseType");
goog.require("goog.Timer");
goog.require("goog.debug.Logger");
goog.require("goog.debug.entryPointRegistry");
goog.require("goog.debug.errorHandlerWeakDep");
goog.require("goog.events.EventTarget");
goog.require("goog.json");
goog.require("goog.net.ErrorCode");
goog.require("goog.net.EventType");
goog.require("goog.net.HttpStatus");
goog.require("goog.net.XmlHttp");
goog.require("goog.object");
goog.require("goog.structs");
goog.require("goog.structs.Map");
goog.require("goog.uri.utils");
goog.net.XhrIo = function(opt_xmlHttpFactory) {
goog.events.EventTarget.call(this);
this.headers = new goog.structs.Map;
this.xmlHttpFactory_ = opt_xmlHttpFactory || null
};
goog.inherits(goog.net.XhrIo, goog.events.EventTarget);
goog.net.XhrIo.ResponseType = {DEFAULT:"", TEXT:"text", DOCUMENT:"document", BLOB:"blob", ARRAY_BUFFER:"arraybuffer"};
goog.net.XhrIo.prototype.logger_ = goog.debug.Logger.getLogger("goog.net.XhrIo");
goog.net.XhrIo.CONTENT_TYPE_HEADER = "Content-Type";
goog.net.XhrIo.HTTP_SCHEME_PATTERN = /^https?$/i;
goog.net.XhrIo.FORM_CONTENT_TYPE = "application/x-www-form-urlencoded;charset=utf-8";
goog.net.XhrIo.sendInstances_ = [];
goog.net.XhrIo.send = function(url, opt_callback, opt_method, opt_content, opt_headers, opt_timeoutInterval) {
var x = new goog.net.XhrIo;
goog.net.XhrIo.sendInstances_.push(x);
if(opt_callback) {
goog.events.listen(x, goog.net.EventType.COMPLETE, opt_callback)
}
goog.events.listen(x, goog.net.EventType.READY, goog.partial(goog.net.XhrIo.cleanupSend_, x));
if(opt_timeoutInterval) {
x.setTimeoutInterval(opt_timeoutInterval)
}
x.send(url, opt_method, opt_content, opt_headers)
};
goog.net.XhrIo.cleanup = function() {
var instances = goog.net.XhrIo.sendInstances_;
while(instances.length) {
instances.pop().dispose()
}
};
goog.net.XhrIo.protectEntryPoints = function(errorHandler) {
goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_ = errorHandler.protectEntryPoint(goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)
};
goog.net.XhrIo.cleanupSend_ = function(XhrIo) {
XhrIo.dispose();
goog.array.remove(goog.net.XhrIo.sendInstances_, XhrIo)
};
goog.net.XhrIo.prototype.active_ = false;
goog.net.XhrIo.prototype.xhr_ = null;
goog.net.XhrIo.prototype.xhrOptions_ = null;
goog.net.XhrIo.prototype.lastUri_ = "";
goog.net.XhrIo.prototype.lastMethod_ = "";
goog.net.XhrIo.prototype.lastErrorCode_ = goog.net.ErrorCode.NO_ERROR;
goog.net.XhrIo.prototype.lastError_ = "";
goog.net.XhrIo.prototype.errorDispatched_ = false;
goog.net.XhrIo.prototype.inSend_ = false;
goog.net.XhrIo.prototype.inOpen_ = false;
goog.net.XhrIo.prototype.inAbort_ = false;
goog.net.XhrIo.prototype.timeoutInterval_ = 0;
goog.net.XhrIo.prototype.timeoutId_ = null;
goog.net.XhrIo.prototype.responseType_ = goog.net.XhrIo.ResponseType.DEFAULT;
goog.net.XhrIo.prototype.withCredentials_ = false;
goog.net.XhrIo.prototype.getTimeoutInterval = function() {
return this.timeoutInterval_
};
goog.net.XhrIo.prototype.setTimeoutInterval = function(ms) {
this.timeoutInterval_ = Math.max(0, ms)
};
goog.net.XhrIo.prototype.setResponseType = function(type) {
this.responseType_ = type
};
goog.net.XhrIo.prototype.getResponseType = function() {
return this.responseType_
};
goog.net.XhrIo.prototype.setWithCredentials = function(withCredentials) {
this.withCredentials_ = withCredentials
};
goog.net.XhrIo.prototype.getWithCredentials = function() {
return this.withCredentials_
};
goog.net.XhrIo.prototype.send = function(url, opt_method, opt_content, opt_headers) {
if(this.xhr_) {
throw Error("[goog.net.XhrIo] Object is active with another request");
}
var method = opt_method ? opt_method.toUpperCase() : "GET";
this.lastUri_ = url;
this.lastError_ = "";
this.lastErrorCode_ = goog.net.ErrorCode.NO_ERROR;
this.lastMethod_ = method;
this.errorDispatched_ = false;
this.active_ = true;
this.xhr_ = this.createXhr();
this.xhrOptions_ = this.xmlHttpFactory_ ? this.xmlHttpFactory_.getOptions() : goog.net.XmlHttp.getOptions();
this.xhr_.onreadystatechange = goog.bind(this.onReadyStateChange_, this);
try {
this.logger_.fine(this.formatMsg_("Opening Xhr"));
this.inOpen_ = true;
this.xhr_.open(method, url, true);
this.inOpen_ = false
}catch(err) {
this.logger_.fine(this.formatMsg_("Error opening Xhr: " + err.message));
this.error_(goog.net.ErrorCode.EXCEPTION, err);
return
}
var content = opt_content || "";
var headers = this.headers.clone();
if(opt_headers) {
goog.structs.forEach(opt_headers, function(value, key) {
headers.set(key, value)
})
}
if(method == "POST" && !headers.containsKey(goog.net.XhrIo.CONTENT_TYPE_HEADER)) {
headers.set(goog.net.XhrIo.CONTENT_TYPE_HEADER, goog.net.XhrIo.FORM_CONTENT_TYPE)
}
goog.structs.forEach(headers, function(value, key) {
this.xhr_.setRequestHeader(key, value)
}, this);
if(this.responseType_) {
this.xhr_.responseType = this.responseType_
}
if(goog.object.containsKey(this.xhr_, "withCredentials")) {
this.xhr_.withCredentials = this.withCredentials_
}
try {
if(this.timeoutId_) {
goog.Timer.defaultTimerObject.clearTimeout(this.timeoutId_);
this.timeoutId_ = null
}
if(this.timeoutInterval_ > 0) {
this.logger_.fine(this.formatMsg_("Will abort after " + this.timeoutInterval_ + "ms if incomplete"));
this.timeoutId_ = goog.Timer.defaultTimerObject.setTimeout(goog.bind(this.timeout_, this), this.timeoutInterval_)
}
this.logger_.fine(this.formatMsg_("Sending request"));
this.inSend_ = true;
this.xhr_.send(content);
this.inSend_ = false
}catch(err) {
this.logger_.fine(this.formatMsg_("Send error: " + err.message));
this.error_(goog.net.ErrorCode.EXCEPTION, err)
}
};
goog.net.XhrIo.prototype.createXhr = function() {
return this.xmlHttpFactory_ ? this.xmlHttpFactory_.createInstance() : goog.net.XmlHttp()
};
goog.net.XhrIo.prototype.timeout_ = function() {
if(typeof goog == "undefined") {
}else {
if(this.xhr_) {
this.lastError_ = "Timed out after " + this.timeoutInterval_ + "ms, aborting";
this.lastErrorCode_ = goog.net.ErrorCode.TIMEOUT;
this.logger_.fine(this.formatMsg_(this.lastError_));
this.dispatchEvent(goog.net.EventType.TIMEOUT);
this.abort(goog.net.ErrorCode.TIMEOUT)
}
}
};
goog.net.XhrIo.prototype.error_ = function(errorCode, err) {
this.active_ = false;
if(this.xhr_) {
this.inAbort_ = true;
this.xhr_.abort();
this.inAbort_ = false
}
this.lastError_ = err;
this.lastErrorCode_ = errorCode;
this.dispatchErrors_();
this.cleanUpXhr_()
};
goog.net.XhrIo.prototype.dispatchErrors_ = function() {
if(!this.errorDispatched_) {
this.errorDispatched_ = true;
this.dispatchEvent(goog.net.EventType.COMPLETE);
this.dispatchEvent(goog.net.EventType.ERROR)
}
};
goog.net.XhrIo.prototype.abort = function(opt_failureCode) {
if(this.xhr_ && this.active_) {
this.logger_.fine(this.formatMsg_("Aborting"));
this.active_ = false;
this.inAbort_ = true;
this.xhr_.abort();
this.inAbort_ = false;
this.lastErrorCode_ = opt_failureCode || goog.net.ErrorCode.ABORT;
this.dispatchEvent(goog.net.EventType.COMPLETE);
this.dispatchEvent(goog.net.EventType.ABORT);
this.cleanUpXhr_()
}
};
goog.net.XhrIo.prototype.disposeInternal = function() {
if(this.xhr_) {
if(this.active_) {
this.active_ = false;
this.inAbort_ = true;
this.xhr_.abort();
this.inAbort_ = false
}
this.cleanUpXhr_(true)
}
goog.net.XhrIo.superClass_.disposeInternal.call(this)
};
goog.net.XhrIo.prototype.onReadyStateChange_ = function() {
if(!this.inOpen_ && !this.inSend_ && !this.inAbort_) {
this.onReadyStateChangeEntryPoint_()
}else {
this.onReadyStateChangeHelper_()
}
};
goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_ = function() {
this.onReadyStateChangeHelper_()
};
goog.net.XhrIo.prototype.onReadyStateChangeHelper_ = function() {
if(!this.active_) {
return
}
if(typeof goog == "undefined") {
}else {
if(this.xhrOptions_[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR] && this.getReadyState() == goog.net.XmlHttp.ReadyState.COMPLETE && this.getStatus() == 2) {
this.logger_.fine(this.formatMsg_("Local request error detected and ignored"))
}else {
if(this.inSend_ && this.getReadyState() == goog.net.XmlHttp.ReadyState.COMPLETE) {
goog.Timer.defaultTimerObject.setTimeout(goog.bind(this.onReadyStateChange_, this), 0);
return
}
this.dispatchEvent(goog.net.EventType.READY_STATE_CHANGE);
if(this.isComplete()) {
this.logger_.fine(this.formatMsg_("Request complete"));
this.active_ = false;
try {
if(this.isSuccess()) {
this.dispatchEvent(goog.net.EventType.COMPLETE);
this.dispatchEvent(goog.net.EventType.SUCCESS)
}else {
this.lastErrorCode_ = goog.net.ErrorCode.HTTP_ERROR;
this.lastError_ = this.getStatusText() + " [" + this.getStatus() + "]";
this.dispatchErrors_()
}
}finally {
this.cleanUpXhr_()
}
}
}
}
};
goog.net.XhrIo.prototype.cleanUpXhr_ = function(opt_fromDispose) {
if(this.xhr_) {
var xhr = this.xhr_;
var clearedOnReadyStateChange = this.xhrOptions_[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION] ? goog.nullFunction : null;
this.xhr_ = null;
this.xhrOptions_ = null;
if(this.timeoutId_) {
goog.Timer.defaultTimerObject.clearTimeout(this.timeoutId_);
this.timeoutId_ = null
}
if(!opt_fromDispose) {
this.dispatchEvent(goog.net.EventType.READY)
}
try {
xhr.onreadystatechange = clearedOnReadyStateChange
}catch(e) {
this.logger_.severe("Problem encountered resetting onreadystatechange: " + e.message)
}
}
};
goog.net.XhrIo.prototype.isActive = function() {
return!!this.xhr_
};
goog.net.XhrIo.prototype.isComplete = function() {
return this.getReadyState() == goog.net.XmlHttp.ReadyState.COMPLETE
};
goog.net.XhrIo.prototype.isSuccess = function() {
var status = this.getStatus();
return goog.net.HttpStatus.isSuccess(status) || status === 0 && !this.isLastUriEffectiveSchemeHttp_()
};
goog.net.XhrIo.prototype.isLastUriEffectiveSchemeHttp_ = function() {
var scheme = goog.uri.utils.getEffectiveScheme(String(this.lastUri_));
return goog.net.XhrIo.HTTP_SCHEME_PATTERN.test(scheme)
};
goog.net.XhrIo.prototype.getReadyState = function() {
return this.xhr_ ? this.xhr_.readyState : goog.net.XmlHttp.ReadyState.UNINITIALIZED
};
goog.net.XhrIo.prototype.getStatus = function() {
try {
return this.getReadyState() > goog.net.XmlHttp.ReadyState.LOADED ? this.xhr_.status : -1
}catch(e) {
this.logger_.warning("Can not get status: " + e.message);
return-1
}
};
goog.net.XhrIo.prototype.getStatusText = function() {
try {
return this.getReadyState() > goog.net.XmlHttp.ReadyState.LOADED ? this.xhr_.statusText : ""
}catch(e) {
this.logger_.fine("Can not get status: " + e.message);
return""
}
};
goog.net.XhrIo.prototype.getLastUri = function() {
return String(this.lastUri_)
};
goog.net.XhrIo.prototype.getResponseText = function() {
try {
return this.xhr_ ? this.xhr_.responseText : ""
}catch(e) {
this.logger_.fine("Can not get responseText: " + e.message);
return""
}
};
goog.net.XhrIo.prototype.getResponseXml = function() {
try {
return this.xhr_ ? this.xhr_.responseXML : null
}catch(e) {
this.logger_.fine("Can not get responseXML: " + e.message);
return null
}
};
goog.net.XhrIo.prototype.getResponseJson = function(opt_xssiPrefix) {
if(!this.xhr_) {
return undefined
}
var responseText = this.xhr_.responseText;
if(opt_xssiPrefix && responseText.indexOf(opt_xssiPrefix) == 0) {
responseText = responseText.substring(opt_xssiPrefix.length)
}
return goog.json.parse(responseText)
};
goog.net.XhrIo.prototype.getResponse = function() {
try {
if(!this.xhr_) {
return null
}
if("response" in this.xhr_) {
return this.xhr_.response
}
switch(this.responseType_) {
case goog.net.XhrIo.ResponseType.DEFAULT:
;
case goog.net.XhrIo.ResponseType.TEXT:
return this.xhr_.responseText;
case goog.net.XhrIo.ResponseType.ARRAY_BUFFER:
if("mozResponseArrayBuffer" in this.xhr_) {
return this.xhr_.mozResponseArrayBuffer
}
}
this.logger_.severe("Response type " + this.responseType_ + " is not " + "supported on this browser");
return null
}catch(e) {
this.logger_.fine("Can not get response: " + e.message);
return null
}
};
goog.net.XhrIo.prototype.getResponseHeader = function(key) {
return this.xhr_ && this.isComplete() ? this.xhr_.getResponseHeader(key) : undefined
};
goog.net.XhrIo.prototype.getAllResponseHeaders = function() {
return this.xhr_ && this.isComplete() ? this.xhr_.getAllResponseHeaders() : ""
};
goog.net.XhrIo.prototype.getLastErrorCode = function() {
return this.lastErrorCode_
};
goog.net.XhrIo.prototype.getLastError = function() {
return goog.isString(this.lastError_) ? this.lastError_ : String(this.lastError_)
};
goog.net.XhrIo.prototype.formatMsg_ = function(msg) {
return msg + " [" + this.lastMethod_ + " " + this.lastUri_ + " " + this.getStatus() + "]"
};
goog.debug.entryPointRegistry.register(function(transformer) {
goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_ = transformer(goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)
});
goog.provide("goog.net.xpc");
goog.provide("goog.net.xpc.CfgFields");
goog.provide("goog.net.xpc.ChannelStates");
goog.provide("goog.net.xpc.TransportNames");
goog.provide("goog.net.xpc.TransportTypes");
goog.provide("goog.net.xpc.UriCfgFields");
goog.require("goog.debug.Logger");
goog.net.xpc.TransportTypes = {NATIVE_MESSAGING:1, FRAME_ELEMENT_METHOD:2, IFRAME_RELAY:3, IFRAME_POLLING:4, FLASH:5, NIX:6};
goog.net.xpc.TransportNames = {1:"NativeMessagingTransport", 2:"FrameElementMethodTransport", 3:"IframeRelayTransport", 4:"IframePollingTransport", 5:"FlashTransport", 6:"NixTransport"};
goog.net.xpc.CfgFields = {CHANNEL_NAME:"cn", AUTH_TOKEN:"at", REMOTE_AUTH_TOKEN:"rat", PEER_URI:"pu", IFRAME_ID:"ifrid", TRANSPORT:"tp", LOCAL_RELAY_URI:"lru", PEER_RELAY_URI:"pru", LOCAL_POLL_URI:"lpu", PEER_POLL_URI:"ppu", PEER_HOSTNAME:"ph", ONE_SIDED_HANDSHAKE:"osh", ROLE:"role", NATIVE_TRANSPORT_PROTOCOL_VERSION:"nativeProtocolVersion"};
goog.net.xpc.UriCfgFields = [goog.net.xpc.CfgFields.PEER_URI, goog.net.xpc.CfgFields.LOCAL_RELAY_URI, goog.net.xpc.CfgFields.PEER_RELAY_URI, goog.net.xpc.CfgFields.LOCAL_POLL_URI, goog.net.xpc.CfgFields.PEER_POLL_URI];
goog.net.xpc.ChannelStates = {NOT_CONNECTED:1, CONNECTED:2, CLOSED:3};
goog.net.xpc.TRANSPORT_SERVICE_ = "tp";
goog.net.xpc.SETUP = "SETUP";
goog.net.xpc.SETUP_NTPV2 = "SETUP_NTPV2";
goog.net.xpc.SETUP_ACK_ = "SETUP_ACK";
goog.net.xpc.SETUP_ACK_NTPV2 = "SETUP_ACK_NTPV2";
goog.net.xpc.channels_ = {};
goog.net.xpc.getRandomString = function(length, opt_characters) {
var chars = opt_characters || goog.net.xpc.randomStringCharacters_;
var charsLength = chars.length;
var s = "";
while(length-- > 0) {
s += chars.charAt(Math.floor(Math.random() * charsLength))
}
return s
};
goog.net.xpc.randomStringCharacters_ = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
goog.net.xpc.logger = goog.debug.Logger.getLogger("goog.net.xpc");
/*
Portions of this code are from MochiKit, received by
The Closure Authors under the MIT license. All other code is Copyright
2005-2009 The Closure Authors. All Rights Reserved.
*/
goog.provide("goog.async.Deferred");
goog.provide("goog.async.Deferred.AlreadyCalledError");
goog.provide("goog.async.Deferred.CancelledError");
goog.provide("goog.async.Deferred.UnhandledError");
goog.require("goog.array");
goog.require("goog.asserts");
goog.require("goog.debug.Error");
goog.async.Deferred = function(opt_canceller, opt_defaultScope) {
this.chain_ = [];
this.canceller_ = opt_canceller;
this.defaultScope_ = opt_defaultScope || null
};
goog.async.Deferred.prototype.fired_ = false;
goog.async.Deferred.prototype.hadError_ = false;
goog.async.Deferred.prototype.result_;
goog.async.Deferred.prototype.paused_ = 0;
goog.async.Deferred.prototype.silentlyCancelled_ = false;
goog.async.Deferred.prototype.chained_ = false;
goog.async.Deferred.prototype.unhandledExceptionTimeoutId_;
goog.async.Deferred.prototype.parent_;
goog.async.Deferred.prototype.branches_ = 0;
goog.async.Deferred.prototype.cancel = function(opt_deepCancel) {
if(!this.hasFired()) {
if(this.parent_) {
var parent = this.parent_;
delete this.parent_;
if(opt_deepCancel) {
parent.cancel(opt_deepCancel)
}else {
parent.branchCancel_()
}
}
if(this.canceller_) {
this.canceller_.call(this.defaultScope_, this)
}else {
this.silentlyCancelled_ = true
}
if(!this.hasFired()) {
this.errback(new goog.async.Deferred.CancelledError(this))
}
}else {
if(this.result_ instanceof goog.async.Deferred) {
this.result_.cancel()
}
}
};
goog.async.Deferred.prototype.branchCancel_ = function() {
this.branches_--;
if(this.branches_ <= 0) {
this.cancel()
}
};
goog.async.Deferred.prototype.pause_ = function() {
this.paused_++
};
goog.async.Deferred.prototype.unpause_ = function() {
this.paused_--;
if(this.paused_ == 0 && this.hasFired()) {
this.fire_()
}
};
goog.async.Deferred.prototype.continue_ = function(isSuccess, res) {
this.resback_(isSuccess, res);
this.unpause_()
};
goog.async.Deferred.prototype.resback_ = function(isSuccess, res) {
this.fired_ = true;
this.result_ = res;
this.hadError_ = !isSuccess;
this.fire_()
};
goog.async.Deferred.prototype.check_ = function() {
if(this.hasFired()) {
if(!this.silentlyCancelled_) {
throw new goog.async.Deferred.AlreadyCalledError(this);
}
this.silentlyCancelled_ = false
}
};
goog.async.Deferred.prototype.callback = function(result) {
this.check_();
this.assertNotDeferred_(result);
this.resback_(true, result)
};
goog.async.Deferred.prototype.errback = function(result) {
this.check_();
this.assertNotDeferred_(result);
this.resback_(false, result)
};
goog.async.Deferred.prototype.assertNotDeferred_ = function(obj) {
goog.asserts.assert(!(obj instanceof goog.async.Deferred), "Deferred instances can only be chained if they are the result of a " + "callback")
};
goog.async.Deferred.prototype.addCallback = function(cb, opt_scope) {
return this.addCallbacks(cb, null, opt_scope)
};
goog.async.Deferred.prototype.addErrback = function(eb, opt_scope) {
return this.addCallbacks(null, eb, opt_scope)
};
goog.async.Deferred.prototype.addCallbacks = function(cb, eb, opt_scope) {
goog.asserts.assert(!this.chained_, "Chained Deferreds can not be re-used");
this.chain_.push([cb, eb, opt_scope]);
if(this.hasFired()) {
this.fire_()
}
return this
};
goog.async.Deferred.prototype.chainDeferred = function(otherDeferred) {
this.addCallbacks(otherDeferred.callback, otherDeferred.errback, otherDeferred);
return this
};
goog.async.Deferred.prototype.awaitDeferred = function(otherDeferred) {
return this.addCallback(goog.bind(otherDeferred.branch, otherDeferred))
};
goog.async.Deferred.prototype.branch = function(opt_propagateCancel) {
var d = new goog.async.Deferred;
this.chainDeferred(d);
if(opt_propagateCancel) {
d.parent_ = this;
this.branches_++
}
return d
};
goog.async.Deferred.prototype.addBoth = function(f, opt_scope) {
return this.addCallbacks(f, f, opt_scope)
};
goog.async.Deferred.prototype.hasFired = function() {
return this.fired_
};
goog.async.Deferred.prototype.isError = function(res) {
return res instanceof Error
};
goog.async.Deferred.prototype.hasErrback_ = function() {
return goog.array.some(this.chain_, function(chainRow) {
return goog.isFunction(chainRow[1])
})
};
goog.async.Deferred.prototype.fire_ = function() {
if(this.unhandledExceptionTimeoutId_ && this.hasFired() && this.hasErrback_()) {
goog.global.clearTimeout(this.unhandledExceptionTimeoutId_);
delete this.unhandledExceptionTimeoutId_
}
if(this.parent_) {
this.parent_.branches_--;
delete this.parent_
}
var res = this.result_;
var unhandledException = false;
var isChained = false;
while(this.chain_.length && this.paused_ == 0) {
var chainEntry = this.chain_.shift();
var callback = chainEntry[0];
var errback = chainEntry[1];
var scope = chainEntry[2];
var f = this.hadError_ ? errback : callback;
if(f) {
try {
var ret = f.call(scope || this.defaultScope_, res);
if(goog.isDef(ret)) {
this.hadError_ = this.hadError_ && (ret == res || this.isError(ret));
this.result_ = res = ret
}
if(res instanceof goog.async.Deferred) {
isChained = true;
this.pause_()
}
}catch(ex) {
res = ex;
this.hadError_ = true;
if(!this.hasErrback_()) {
unhandledException = true
}
}
}
}
this.result_ = res;
if(isChained && this.paused_) {
res.addCallbacks(goog.bind(this.continue_, this, true), goog.bind(this.continue_, this, false));
res.chained_ = true
}
if(unhandledException) {
this.unhandledExceptionTimeoutId_ = goog.global.setTimeout(function() {
throw new goog.async.Deferred.UnhandledError(res);
}, 0)
}
};
goog.async.Deferred.succeed = function(res) {
var d = new goog.async.Deferred;
d.callback(res);
return d
};
goog.async.Deferred.fail = function(res) {
var d = new goog.async.Deferred;
d.errback(res);
return d
};
goog.async.Deferred.cancelled = function() {
var d = new goog.async.Deferred;
d.cancel();
return d
};
goog.async.Deferred.when = function(value, callback, opt_scope) {
if(value instanceof goog.async.Deferred) {
return value.branch(true).addCallback(callback, opt_scope)
}else {
return goog.async.Deferred.succeed(value).addCallback(callback, opt_scope)
}
};
goog.async.Deferred.AlreadyCalledError = function(deferred) {
goog.debug.Error.call(this);
this.deferred = deferred
};
goog.inherits(goog.async.Deferred.AlreadyCalledError, goog.debug.Error);
goog.async.Deferred.AlreadyCalledError.prototype.message = "Already called";
goog.async.Deferred.CancelledError = function(deferred) {
goog.debug.Error.call(this);
this.deferred = deferred
};
goog.inherits(goog.async.Deferred.CancelledError, goog.debug.Error);
goog.async.Deferred.CancelledError.prototype.message = "Deferred was cancelled";
goog.async.Deferred.UnhandledError = function(cause) {
goog.debug.Error.call(this);
this.cause = cause;
this.message = "Unhandled Error in Deferred: " + (cause.message || "[No message]")
};
goog.inherits(goog.async.Deferred.UnhandledError, goog.debug.Error);
goog.provide("goog.Uri");
goog.provide("goog.Uri.QueryData");
goog.require("goog.array");
goog.require("goog.string");
goog.require("goog.structs");
goog.require("goog.structs.Map");
goog.require("goog.uri.utils");
goog.require("goog.uri.utils.ComponentIndex");
goog.Uri = function(opt_uri, opt_ignoreCase) {
var m;
if(opt_uri instanceof goog.Uri) {
this.ignoreCase_ = goog.isDef(opt_ignoreCase) ? opt_ignoreCase : opt_uri.getIgnoreCase();
this.setScheme(opt_uri.getScheme());
this.setUserInfo(opt_uri.getUserInfo());
this.setDomain(opt_uri.getDomain());
this.setPort(opt_uri.getPort());
this.setPath(opt_uri.getPath());
this.setQueryData(opt_uri.getQueryData().clone());
this.setFragment(opt_uri.getFragment())
}else {
if(opt_uri && (m = goog.uri.utils.split(String(opt_uri)))) {
this.ignoreCase_ = !!opt_ignoreCase;
this.setScheme(m[goog.uri.utils.ComponentIndex.SCHEME] || "", true);
this.setUserInfo(m[goog.uri.utils.ComponentIndex.USER_INFO] || "", true);
this.setDomain(m[goog.uri.utils.ComponentIndex.DOMAIN] || "", true);
this.setPort(m[goog.uri.utils.ComponentIndex.PORT]);
this.setPath(m[goog.uri.utils.ComponentIndex.PATH] || "", true);
this.setQueryData(m[goog.uri.utils.ComponentIndex.QUERY_DATA] || "", true);
this.setFragment(m[goog.uri.utils.ComponentIndex.FRAGMENT] || "", true)
}else {
this.ignoreCase_ = !!opt_ignoreCase;
this.queryData_ = new goog.Uri.QueryData(null, null, this.ignoreCase_)
}
}
};
goog.Uri.preserveParameterTypesCompatibilityFlag = false;
goog.Uri.RANDOM_PARAM = goog.uri.utils.StandardQueryParam.RANDOM;
goog.Uri.prototype.scheme_ = "";
goog.Uri.prototype.userInfo_ = "";
goog.Uri.prototype.domain_ = "";
goog.Uri.prototype.port_ = null;
goog.Uri.prototype.path_ = "";
goog.Uri.prototype.queryData_;
goog.Uri.prototype.fragment_ = "";
goog.Uri.prototype.isReadOnly_ = false;
goog.Uri.prototype.ignoreCase_ = false;
goog.Uri.prototype.toString = function() {
var out = [];
var scheme = this.getScheme();
if(scheme) {
out.push(goog.Uri.encodeSpecialChars_(scheme, goog.Uri.reDisallowedInSchemeOrUserInfo_), ":")
}
var domain = this.getDomain();
if(domain) {
out.push("//");
var userInfo = this.getUserInfo();
if(userInfo) {
out.push(goog.Uri.encodeSpecialChars_(userInfo, goog.Uri.reDisallowedInSchemeOrUserInfo_), "@")
}
out.push(goog.string.urlEncode(domain));
var port = this.getPort();
if(port != null) {
out.push(":", String(port))
}
}
var path = this.getPath();
if(path) {
if(this.hasDomain() && path.charAt(0) != "/") {
out.push("/")
}
out.push(goog.Uri.encodeSpecialChars_(path, path.charAt(0) == "/" ? goog.Uri.reDisallowedInAbsolutePath_ : goog.Uri.reDisallowedInRelativePath_))
}
var query = this.getEncodedQuery();
if(query) {
out.push("?", query)
}
var fragment = this.getFragment();
if(fragment) {
out.push("#", goog.Uri.encodeSpecialChars_(fragment, goog.Uri.reDisallowedInFragment_))
}
return out.join("")
};
goog.Uri.prototype.resolve = function(relativeUri) {
var absoluteUri = this.clone();
var overridden = relativeUri.hasScheme();
if(overridden) {
absoluteUri.setScheme(relativeUri.getScheme())
}else {
overridden = relativeUri.hasUserInfo()
}
if(overridden) {
absoluteUri.setUserInfo(relativeUri.getUserInfo())
}else {
overridden = relativeUri.hasDomain()
}
if(overridden) {
absoluteUri.setDomain(relativeUri.getDomain())
}else {
overridden = relativeUri.hasPort()
}
var path = relativeUri.getPath();
if(overridden) {
absoluteUri.setPort(relativeUri.getPort())
}else {
overridden = relativeUri.hasPath();
if(overridden) {
if(path.charAt(0) != "/") {
if(this.hasDomain() && !this.hasPath()) {
path = "/" + path
}else {
var lastSlashIndex = absoluteUri.getPath().lastIndexOf("/");
if(lastSlashIndex != -1) {
path = absoluteUri.getPath().substr(0, lastSlashIndex + 1) + path
}
}
}
path = goog.Uri.removeDotSegments(path)
}
}
if(overridden) {
absoluteUri.setPath(path)
}else {
overridden = relativeUri.hasQuery()
}
if(overridden) {
absoluteUri.setQueryData(relativeUri.getDecodedQuery())
}else {
overridden = relativeUri.hasFragment()
}
if(overridden) {
absoluteUri.setFragment(relativeUri.getFragment())
}
return absoluteUri
};
goog.Uri.prototype.clone = function() {
return new goog.Uri(this)
};
goog.Uri.prototype.getScheme = function() {
return this.scheme_
};
goog.Uri.prototype.setScheme = function(newScheme, opt_decode) {
this.enforceReadOnly();
this.scheme_ = opt_decode ? goog.Uri.decodeOrEmpty_(newScheme) : newScheme;
if(this.scheme_) {
this.scheme_ = this.scheme_.replace(/:$/, "")
}
return this
};
goog.Uri.prototype.hasScheme = function() {
return!!this.scheme_
};
goog.Uri.prototype.getUserInfo = function() {
return this.userInfo_
};
goog.Uri.prototype.setUserInfo = function(newUserInfo, opt_decode) {
this.enforceReadOnly();
this.userInfo_ = opt_decode ? goog.Uri.decodeOrEmpty_(newUserInfo) : newUserInfo;
return this
};
goog.Uri.prototype.hasUserInfo = function() {
return!!this.userInfo_
};
goog.Uri.prototype.getDomain = function() {
return this.domain_
};
goog.Uri.prototype.setDomain = function(newDomain, opt_decode) {
this.enforceReadOnly();
this.domain_ = opt_decode ? goog.Uri.decodeOrEmpty_(newDomain) : newDomain;
return this
};
goog.Uri.prototype.hasDomain = function() {
return!!this.domain_
};
goog.Uri.prototype.getPort = function() {
return this.port_
};
goog.Uri.prototype.setPort = function(newPort) {
this.enforceReadOnly();
if(newPort) {
newPort = Number(newPort);
if(isNaN(newPort) || newPort < 0) {
throw Error("Bad port number " + newPort);
}
this.port_ = newPort
}else {
this.port_ = null
}
return this
};
goog.Uri.prototype.hasPort = function() {
return this.port_ != null
};
goog.Uri.prototype.getPath = function() {
return this.path_
};
goog.Uri.prototype.setPath = function(newPath, opt_decode) {
this.enforceReadOnly();
this.path_ = opt_decode ? goog.Uri.decodeOrEmpty_(newPath) : newPath;
return this
};
goog.Uri.prototype.hasPath = function() {
return!!this.path_
};
goog.Uri.prototype.hasQuery = function() {
return this.queryData_.toString() !== ""
};
goog.Uri.prototype.setQueryData = function(queryData, opt_decode) {
this.enforceReadOnly();
if(queryData instanceof goog.Uri.QueryData) {
this.queryData_ = queryData;
this.queryData_.setIgnoreCase(this.ignoreCase_)
}else {
if(!opt_decode) {
queryData = goog.Uri.encodeSpecialChars_(queryData, goog.Uri.reDisallowedInQuery_)
}
this.queryData_ = new goog.Uri.QueryData(queryData, null, this.ignoreCase_)
}
return this
};
goog.Uri.prototype.setQuery = function(newQuery, opt_decode) {
return this.setQueryData(newQuery, opt_decode)
};
goog.Uri.prototype.getEncodedQuery = function() {
return this.queryData_.toString()
};
goog.Uri.prototype.getDecodedQuery = function() {
return this.queryData_.toDecodedString()
};
goog.Uri.prototype.getQueryData = function() {
return this.queryData_
};
goog.Uri.prototype.getQuery = function() {
return this.getEncodedQuery()
};
goog.Uri.prototype.setParameterValue = function(key, value) {
this.enforceReadOnly();
this.queryData_.set(key, value);
return this
};
goog.Uri.prototype.setParameterValues = function(key, values) {
this.enforceReadOnly();
if(!goog.isArray(values)) {
values = [String(values)]
}
this.queryData_.setValues(key, values);
return this
};
goog.Uri.prototype.getParameterValues = function(name) {
retur
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment