mini-program-cljs
Version:
1 lines • 2.94 MB
JSON
["^ ","~:output",["^ ","~:js","goog.provide('cljs.core');\ngoog.require('goog.math.Long');\ngoog.require('goog.math.Integer');\ngoog.require('goog.string');\ngoog.require('goog.object');\ngoog.require('goog.array');\ngoog.require('goog.Uri');\ngoog.require('goog.string.StringBuffer');\ncljs.core._STAR_clojurescript_version_STAR_ = \"1.10.597\";\ncljs.core._STAR_unchecked_if_STAR_ = false;\ncljs.core._STAR_unchecked_arrays_STAR_ = false;\ncljs.core._STAR_warn_on_infer_STAR_ = false;\nif((typeof cljs !== 'undefined') && (typeof cljs.core !== 'undefined') && (typeof cljs.core.PROTOCOL_SENTINEL !== 'undefined')){\n} else {\ncljs.core.PROTOCOL_SENTINEL = ({});\n}\ncljs.core.MODULE_URIS = null;\ncljs.core.MODULE_INFOS = null;\n/**\n * Var bound to the name value of the compiler build :target option.\n * For example, if the compiler build :target is :nodejs, *target* will be bound\n * to \"nodejs\". *target* is a Google Closure define and can be set by compiler\n * :closure-defines option.\n * @define {string}\n */\ncljs.core._STAR_target_STAR_ = goog.define(\"cljs.core._STAR_target_STAR_\",\"default\");\n/**\n * Var bound to the current namespace. Only used for bootstrapping.\n * @type {*}\n */\ncljs.core._STAR_ns_STAR_ = null;\n/**\n * @type {*}\n */\ncljs.core._STAR_out_STAR_ = null;\ncljs.core._STAR_assert_STAR_ = true;\nif((typeof cljs !== 'undefined') && (typeof cljs.core !== 'undefined') && (typeof cljs.core._STAR_print_fn_STAR_ !== 'undefined')){\n} else {\n/**\n * Each runtime environment provides a different way to print output.\n * Whatever function *print-fn* is bound to will be passed any\n * Strings which should be printed.\n */\ncljs.core._STAR_print_fn_STAR_ = null;\n}\n/**\n * Arranges to have tap functions executed via the supplied f, a\n * function of no arguments. Returns true if successful, false otherwise.\n */\ncljs.core._STAR_exec_tap_fn_STAR_ = (function cljs$core$_STAR_exec_tap_fn_STAR_(f){\nif((typeof setTimeout !== 'undefined')){\nvar and__4174__auto__ = setTimeout(f,(0));\nif(cljs.core.truth_(and__4174__auto__)){\nreturn true;\n} else {\nreturn and__4174__auto__;\n}\n} else {\nreturn false;\n}\n});\nif((typeof cljs !== 'undefined') && (typeof cljs.core !== 'undefined') && (typeof cljs.core._STAR_print_err_fn_STAR_ !== 'undefined')){\n} else {\n/**\n * Each runtime environment provides a different way to print error output.\n * Whatever function *print-err-fn* is bound to will be passed any\n * Strings which should be printed.\n */\ncljs.core._STAR_print_err_fn_STAR_ = null;\n}\n/**\n * Set *print-fn* to f.\n */\ncljs.core.set_print_fn_BANG_ = (function cljs$core$set_print_fn_BANG_(f){\nreturn (cljs.core._STAR_print_fn_STAR_ = f);\n});\n/**\n * Set *print-err-fn* to f.\n */\ncljs.core.set_print_err_fn_BANG_ = (function cljs$core$set_print_err_fn_BANG_(f){\nreturn (cljs.core._STAR_print_err_fn_STAR_ = f);\n});\n/**\n * When set to true, output will be flushed whenever a newline is printed.\n * \n * Defaults to true.\n */\ncljs.core._STAR_flush_on_newline_STAR_ = true;\n/**\n * When set to logical false will drop newlines from printing calls.\n * This is to work around the implicit newlines emitted by standard JavaScript\n * console objects.\n */\ncljs.core._STAR_print_newline_STAR_ = true;\n/**\n * When set to logical false, strings and characters will be printed with\n * non-alphanumeric characters converted to the appropriate escape sequences.\n * \n * Defaults to true\n */\ncljs.core._STAR_print_readably_STAR_ = true;\n/**\n * If set to logical true, when printing an object, its metadata will also\n * be printed in a form that can be read back by the reader.\n * \n * Defaults to false.\n */\ncljs.core._STAR_print_meta_STAR_ = false;\n/**\n * When set to logical true, objects will be printed in a way that preserves\n * their type when read in later.\n * \n * Defaults to false.\n */\ncljs.core._STAR_print_dup_STAR_ = false;\n/**\n * *print-namespace-maps* controls whether the printer will print\n * namespace map literal syntax.\n * \n * Defaults to false, but the REPL binds it to true.\n */\ncljs.core._STAR_print_namespace_maps_STAR_ = false;\n/**\n * *print-length* controls how many items of each collection the\n * printer will print. If it is bound to logical false, there is no\n * limit. Otherwise, it must be bound to an integer indicating the maximum\n * number of items of each collection to print. If a collection contains\n * more items, the printer will print items up to the limit followed by\n * '...' to represent the remaining items. The root binding is nil\n * indicating no limit.\n * @type {null|number}\n */\ncljs.core._STAR_print_length_STAR_ = null;\n/**\n * *print-level* controls how many levels deep the printer will\n * print nested objects. If it is bound to logical false, there is no\n * limit. Otherwise, it must be bound to an integer indicating the maximum\n * level to print. Each argument to print is at level 0; if an argument is a\n * collection, its items are at level 1; and so on. If an object is a\n * collection and is at a level greater than or equal to the value bound to\n * *print-level*, the printer prints '#' to represent it. The root binding\n * is nil indicating no limit.\n * @type {null|number}\n */\ncljs.core._STAR_print_level_STAR_ = null;\n/**\n * *print-fns-bodies* controls whether functions print their source or\n * only their names.\n */\ncljs.core._STAR_print_fn_bodies_STAR_ = false;\nif((typeof cljs !== 'undefined') && (typeof cljs.core !== 'undefined') && (typeof cljs.core._STAR_loaded_libs_STAR_ !== 'undefined')){\n} else {\n/**\n * @type {*}\n */\ncljs.core._STAR_loaded_libs_STAR_ = null;\n}\ncljs.core.pr_opts = (function cljs$core$pr_opts(){\nreturn new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,\"flush-on-newline\",\"flush-on-newline\",-151457939),cljs.core._STAR_flush_on_newline_STAR_,new cljs.core.Keyword(null,\"readably\",\"readably\",1129599760),cljs.core._STAR_print_readably_STAR_,new cljs.core.Keyword(null,\"meta\",\"meta\",1499536964),cljs.core._STAR_print_meta_STAR_,new cljs.core.Keyword(null,\"dup\",\"dup\",556298533),cljs.core._STAR_print_dup_STAR_,new cljs.core.Keyword(null,\"print-length\",\"print-length\",1931866356),cljs.core._STAR_print_length_STAR_], null);\n});\n/**\n * Set *print-fn* to console.log\n */\ncljs.core.enable_console_print_BANG_ = (function cljs$core$enable_console_print_BANG_(){\n(cljs.core._STAR_print_newline_STAR_ = false);\n\ncljs.core.set_print_fn_BANG_((function (){\nvar xs = arguments;\nreturn console.log.apply(console,goog.array.clone(xs));\n}));\n\ncljs.core.set_print_err_fn_BANG_((function (){\nvar xs = arguments;\nreturn console.error.apply(console,goog.array.clone(xs));\n}));\n\nreturn null;\n});\n/**\n * Internal - do not use!\n */\ncljs.core.truth_ = (function cljs$core$truth_(x){\nreturn (x != null && x !== false);\n});\ncljs.core.not_native = null;\n\n/**\n * Tests if 2 arguments are the same object\n */\ncljs.core.identical_QMARK_ = (function cljs$core$identical_QMARK_(x,y){\nreturn (x === y);\n});\n/**\n * Returns true if x is nil, false otherwise.\n */\ncljs.core.nil_QMARK_ = (function cljs$core$nil_QMARK_(x){\nreturn (x == null);\n});\n/**\n * Returns true if x is a JavaScript array.\n */\ncljs.core.array_QMARK_ = (function cljs$core$array_QMARK_(x){\nif((cljs.core._STAR_target_STAR_ === \"nodejs\")){\nreturn Array.isArray(x);\n} else {\nreturn (x instanceof Array);\n}\n});\n/**\n * Returns true if x is a JavaScript number.\n */\ncljs.core.number_QMARK_ = (function cljs$core$number_QMARK_(x){\nreturn typeof x === 'number';\n});\n/**\n * Returns true if x is logical false, false otherwise.\n */\ncljs.core.not = (function cljs$core$not(x){\nif((x == null)){\nreturn true;\n} else {\nif(x === false){\nreturn true;\n} else {\nreturn false;\n\n}\n}\n});\n/**\n * Returns true if x is not nil, false otherwise.\n */\ncljs.core.some_QMARK_ = (function cljs$core$some_QMARK_(x){\nreturn (!((x == null)));\n});\n/**\n * Returns true if x's constructor is Object\n */\ncljs.core.object_QMARK_ = (function cljs$core$object_QMARK_(x){\nif((!((x == null)))){\nreturn (x.constructor === Object);\n} else {\nreturn false;\n}\n});\n/**\n * Returns true if x is a JavaScript string.\n */\ncljs.core.string_QMARK_ = (function cljs$core$string_QMARK_(x){\nreturn goog.isString(x);\n});\n/**\n * Returns true if x is a JavaScript string of length one.\n */\ncljs.core.char_QMARK_ = (function cljs$core$char_QMARK_(x){\nreturn ((typeof x === 'string') && (((1) === x.length)));\n});\n/**\n * Returns true if given any argument.\n */\ncljs.core.any_QMARK_ = (function cljs$core$any_QMARK_(x){\nreturn true;\n});\n/**\n * Internal - do not use!\n */\ncljs.core.native_satisfies_QMARK_ = (function cljs$core$native_satisfies_QMARK_(p,x){\nvar x__$1 = (((x == null))?null:x);\nif((p[goog.typeOf(x__$1)])){\nreturn true;\n} else {\nif((p[\"_\"])){\nreturn true;\n} else {\nreturn false;\n\n}\n}\n});\ncljs.core.is_proto_ = (function cljs$core$is_proto_(x){\nreturn (x.constructor.prototype === x);\n});\n/**\n * When compiled for a command-line target, whatever function\n * *main-cli-fn* is set to will be called with the command-line\n * argv as arguments\n */\ncljs.core._STAR_main_cli_fn_STAR_ = null;\n/**\n * A sequence of the supplied command line arguments, or nil if\n * none were supplied\n */\ncljs.core._STAR_command_line_args_STAR_ = null;\n/**\n * Return x's constructor.\n */\ncljs.core.type = (function cljs$core$type(x){\nif((x == null)){\nreturn null;\n} else {\nreturn x.constructor;\n}\n});\ncljs.core.missing_protocol = (function cljs$core$missing_protocol(proto,obj){\nvar ty = cljs.core.type(obj);\nvar ty__$1 = (cljs.core.truth_((function (){var and__4174__auto__ = ty;\nif(cljs.core.truth_(and__4174__auto__)){\nreturn ty.cljs$lang$type;\n} else {\nreturn and__4174__auto__;\n}\n})())?ty.cljs$lang$ctorStr:goog.typeOf(obj));\nreturn (new Error([\"No protocol method \",proto,\" defined for type \",ty__$1,\": \",obj].join(\"\")));\n});\ncljs.core.type__GT_str = (function cljs$core$type__GT_str(ty){\nvar temp__5733__auto__ = ty.cljs$lang$ctorStr;\nif(cljs.core.truth_(temp__5733__auto__)){\nvar s = temp__5733__auto__;\nreturn s;\n} else {\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(ty);\n}\n});\ncljs.core.load_file = (function cljs$core$load_file(file){\nif(cljs.core.truth_(COMPILED)){\nreturn null;\n} else {\nreturn goog.nodeGlobalRequire(file);\n}\n});\nif((((typeof Symbol !== 'undefined')) && ((goog.typeOf(Symbol) === \"function\")))){\ncljs.core.ITER_SYMBOL = Symbol.iterator;\n} else {\ncljs.core.ITER_SYMBOL = \"@@iterator\";\n}\n/**\n * @enum {string}\n */\ncljs.core.CHAR_MAP = ({\"]\": \"_RBRACK_\", \"'\": \"_SINGLEQUOTE_\", \"=\": \"_EQ_\", \"\\\"\": \"_DOUBLEQUOTE_\", \"!\": \"_BANG_\", \"*\": \"_STAR_\", \"%\": \"_PERCENT_\", \"|\": \"_BAR_\", \"~\": \"_TILDE_\", \"/\": \"_SLASH_\", \"\\\\\": \"_BSLASH_\", \"-\": \"_\", \"?\": \"_QMARK_\", \"&\": \"_AMPERSAND_\", \":\": \"_COLON_\", \"<\": \"_LT_\", \"{\": \"_LBRACE_\", \"}\": \"_RBRACE_\", \"[\": \"_LBRACK_\", \"#\": \"_SHARP_\", \"^\": \"_CARET_\", \"+\": \"_PLUS_\", \"@\": \"_CIRCA_\", \">\": \"_GT_\"});\n/**\n * @enum {string}\n */\ncljs.core.DEMUNGE_MAP = ({\"_RBRACE_\": \"}\", \"_COLON_\": \":\", \"_BANG_\": \"!\", \"_QMARK_\": \"?\", \"_BSLASH_\": \"\\\\\\\\\", \"_SLASH_\": \"/\", \"_PERCENT_\": \"%\", \"_PLUS_\": \"+\", \"_SHARP_\": \"#\", \"_LBRACE_\": \"{\", \"_BAR_\": \"|\", \"_LBRACK_\": \"[\", \"_EQ_\": \"=\", \"_\": \"-\", \"_TILDE_\": \"~\", \"_RBRACK_\": \"]\", \"_GT_\": \">\", \"_SINGLEQUOTE_\": \"'\", \"_CIRCA_\": \"@\", \"_AMPERSAND_\": \"&\", \"_DOUBLEQUOTE_\": \"\\\\\\\"\", \"_CARET_\": \"^\", \"_LT_\": \"<\", \"_STAR_\": \"*\"});\ncljs.core.DEMUNGE_PATTERN = null;\n/**\n * Returns highest resolution time offered by host in milliseconds.\n */\ncljs.core.system_time = (function cljs$core$system_time(){\nif((((typeof performance !== 'undefined')) && ((!((performance.now == null)))))){\nreturn performance.now();\n} else {\nif((((typeof process !== 'undefined')) && ((!((process.hrtime == null)))))){\nvar t = process.hrtime();\nreturn ((((t[(0)]) * 1.0E9) + (t[(1)])) / 1000000.0);\n} else {\nreturn (new Date()).getTime();\n\n}\n}\n});\n/**\n * Construct a JavaScript array of the specified dimensions. Accepts ignored\n * type argument for compatibility with Clojure. Note that there is no efficient\n * way to allocate multi-dimensional arrays in JavaScript; as such, this function\n * will run in polynomial time when called with 3 or more arguments.\n */\ncljs.core.make_array = (function cljs$core$make_array(var_args){\nvar G__29051 = arguments.length;\nswitch (G__29051) {\ncase 1:\nreturn cljs.core.make_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.make_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30609 = arguments.length;\nvar i__4790__auto___30610 = (0);\nwhile(true){\nif((i__4790__auto___30610 < len__4789__auto___30609)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30610]));\n\nvar G__30611 = (i__4790__auto___30610 + (1));\ni__4790__auto___30610 = G__30611;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((2)),(0),null));\nreturn cljs.core.make_array.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.make_array.cljs$core$IFn$_invoke$arity$1 = (function (size){\nreturn (new Array(size));\n}));\n\n(cljs.core.make_array.cljs$core$IFn$_invoke$arity$2 = (function (type,size){\nreturn (new Array(size));\n}));\n\n(cljs.core.make_array.cljs$core$IFn$_invoke$arity$variadic = (function (type,size,more_sizes){\nvar dims = more_sizes;\nvar dimarray = (new Array(size));\nvar n__4666__auto___30613 = dimarray.length;\nvar i_30614 = (0);\nwhile(true){\nif((i_30614 < n__4666__auto___30613)){\n(dimarray[i_30614] = (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.make_array,null,dims) : cljs.core.apply.call(null,cljs.core.make_array,null,dims)));\n\nvar G__30615 = (i_30614 + (1));\ni_30614 = G__30615;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn dimarray;\n}));\n\n/** @this {Function} */\n(cljs.core.make_array.cljs$lang$applyTo = (function (seq29048){\nvar G__29049 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29048) : cljs.core.first.call(null,seq29048));\nvar seq29048__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29048) : cljs.core.next.call(null,seq29048));\nvar G__29050 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29048__$1) : cljs.core.first.call(null,seq29048__$1));\nvar seq29048__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29048__$1) : cljs.core.next.call(null,seq29048__$1));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29049,G__29050,seq29048__$2);\n}));\n\n(cljs.core.make_array.cljs$lang$maxFixedArity = (2));\n\n/**\n * Returns a javascript array, cloned from the passed in array\n */\ncljs.core.aclone = (function cljs$core$aclone(arr){\nvar len = arr.length;\nvar new_arr = (new Array(len));\nvar n__4666__auto___30616 = len;\nvar i_30617 = (0);\nwhile(true){\nif((i_30617 < n__4666__auto___30616)){\n(new_arr[i_30617] = (arr[i_30617]));\n\nvar G__30618 = (i_30617 + (1));\ni_30617 = G__30618;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn new_arr;\n});\n/**\n * Creates a new javascript array.\n * @param {...*} var_args\n */\ncljs.core.array = (function cljs$core$array(var_args){\nvar a = (new Array(arguments.length));\nvar i = (0);\nwhile(true){\nif((i < a.length)){\n(a[i] = (arguments[i]));\n\nvar G__30619 = (i + (1));\ni = G__30619;\ncontinue;\n} else {\nreturn a;\n}\nbreak;\n}\n});\ncljs.core.maybe_warn = (function cljs$core$maybe_warn(e){\nif(cljs.core.truth_(cljs.core._STAR_print_err_fn_STAR_)){\nreturn cljs.core._STAR_print_err_fn_STAR_.call(null,e);\n} else {\nreturn null;\n}\n});\ncljs.core.checked_aget = (function cljs$core$checked_aget(var_args){\nvar G__29056 = arguments.length;\nswitch (G__29056) {\ncase 2:\nreturn cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30622 = arguments.length;\nvar i__4790__auto___30623 = (0);\nwhile(true){\nif((i__4790__auto___30623 < len__4789__auto___30622)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30623]));\n\nvar G__30624 = (i__4790__auto___30623 + (1));\ni__4790__auto___30623 = G__30624;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((2)),(0),null));\nreturn cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2 = (function (array,idx){\ntry{if(cljs.core.truth_((function (){var or__4185__auto__ = cljs.core.array_QMARK_(array);\nif(or__4185__auto__){\nreturn or__4185__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\"Assert failed: (or (array? array) (goog/isArrayLike array))\"));\n}\n\nif(typeof idx === 'number'){\n} else {\nthrow (new Error(\"Assert failed: (number? idx)\"));\n}\n\nif((!((idx < (0))))){\n} else {\nthrow (new Error(\"Assert failed: (not (neg? idx))\"));\n}\n\nif((idx < array.length)){\n} else {\nthrow (new Error(\"Assert failed: (< idx (alength array))\"));\n}\n}catch (e29057){var e_30626 = e29057;\ncljs.core.maybe_warn(e_30626);\n}\nreturn (array[idx]);\n}));\n\n(cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$variadic = (function (array,idx,idxs){\nvar G__29058 = cljs.core.checked_aget;\nvar G__29059 = cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__29060 = idxs;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(G__29058,G__29059,G__29060) : cljs.core.apply.call(null,G__29058,G__29059,G__29060));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aget.cljs$lang$applyTo = (function (seq29053){\nvar G__29054 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29053) : cljs.core.first.call(null,seq29053));\nvar seq29053__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29053) : cljs.core.next.call(null,seq29053));\nvar G__29055 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29053__$1) : cljs.core.first.call(null,seq29053__$1));\nvar seq29053__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29053__$1) : cljs.core.next.call(null,seq29053__$1));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29054,G__29055,seq29053__$2);\n}));\n\n(cljs.core.checked_aget.cljs$lang$maxFixedArity = (2));\n\ncljs.core.checked_aset = (function cljs$core$checked_aset(var_args){\nvar G__29066 = arguments.length;\nswitch (G__29066) {\ncase 3:\nreturn cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30631 = arguments.length;\nvar i__4790__auto___30632 = (0);\nwhile(true){\nif((i__4790__auto___30632 < len__4789__auto___30631)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30632]));\n\nvar G__30633 = (i__4790__auto___30632 + (1));\ni__4790__auto___30632 = G__30633;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((3)),(0),null));\nreturn cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3 = (function (array,idx,val){\ntry{if(cljs.core.truth_((function (){var or__4185__auto__ = cljs.core.array_QMARK_(array);\nif(or__4185__auto__){\nreturn or__4185__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\"Assert failed: (or (array? array) (goog/isArrayLike array))\"));\n}\n\nif(typeof idx === 'number'){\n} else {\nthrow (new Error(\"Assert failed: (number? idx)\"));\n}\n\nif((!((idx < (0))))){\n} else {\nthrow (new Error(\"Assert failed: (not (neg? idx))\"));\n}\n\nif((idx < array.length)){\n} else {\nthrow (new Error(\"Assert failed: (< idx (alength array))\"));\n}\n}catch (e29067){var e_30634 = e29067;\ncljs.core.maybe_warn(e_30634);\n}\nreturn (array[idx] = val);\n}));\n\n(cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$variadic = (function (array,idx,idx2,idxv){\nvar G__29068 = cljs.core.checked_aset;\nvar G__29069 = cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__29070 = idx2;\nvar G__29071 = idxv;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$4 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$4(G__29068,G__29069,G__29070,G__29071) : cljs.core.apply.call(null,G__29068,G__29069,G__29070,G__29071));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aset.cljs$lang$applyTo = (function (seq29062){\nvar G__29063 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29062) : cljs.core.first.call(null,seq29062));\nvar seq29062__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29062) : cljs.core.next.call(null,seq29062));\nvar G__29064 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29062__$1) : cljs.core.first.call(null,seq29062__$1));\nvar seq29062__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29062__$1) : cljs.core.next.call(null,seq29062__$1));\nvar G__29065 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29062__$2) : cljs.core.first.call(null,seq29062__$2));\nvar seq29062__$3 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29062__$2) : cljs.core.next.call(null,seq29062__$2));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29063,G__29064,G__29065,seq29062__$3);\n}));\n\n(cljs.core.checked_aset.cljs$lang$maxFixedArity = (3));\n\ncljs.core.checked_aget_SINGLEQUOTE_ = (function cljs$core$checked_aget_SINGLEQUOTE_(var_args){\nvar G__29076 = arguments.length;\nswitch (G__29076) {\ncase 2:\nreturn cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30637 = arguments.length;\nvar i__4790__auto___30639 = (0);\nwhile(true){\nif((i__4790__auto___30639 < len__4789__auto___30637)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30639]));\n\nvar G__30640 = (i__4790__auto___30639 + (1));\ni__4790__auto___30639 = G__30640;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((2)),(0),null));\nreturn cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2 = (function (array,idx){\nif(cljs.core.truth_((function (){var or__4185__auto__ = cljs.core.array_QMARK_(array);\nif(or__4185__auto__){\nreturn or__4185__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\"Assert failed: (or (array? array) (goog/isArrayLike array))\"));\n}\n\nif(typeof idx === 'number'){\n} else {\nthrow (new Error(\"Assert failed: (number? idx)\"));\n}\n\nif((!((idx < (0))))){\n} else {\nthrow (new Error(\"Assert failed: (not (neg? idx))\"));\n}\n\nif((idx < array.length)){\n} else {\nthrow (new Error(\"Assert failed: (< idx (alength array))\"));\n}\n\nreturn (array[idx]);\n}));\n\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic = (function (array,idx,idxs){\nvar G__29077 = cljs.core.checked_aget_SINGLEQUOTE_;\nvar G__29078 = cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__29079 = idxs;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(G__29077,G__29078,G__29079) : cljs.core.apply.call(null,G__29077,G__29078,G__29079));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$lang$applyTo = (function (seq29073){\nvar G__29074 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29073) : cljs.core.first.call(null,seq29073));\nvar seq29073__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29073) : cljs.core.next.call(null,seq29073));\nvar G__29075 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29073__$1) : cljs.core.first.call(null,seq29073__$1));\nvar seq29073__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29073__$1) : cljs.core.next.call(null,seq29073__$1));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29074,G__29075,seq29073__$2);\n}));\n\n(cljs.core.checked_aget_SINGLEQUOTE_.cljs$lang$maxFixedArity = (2));\n\ncljs.core.checked_aset_SINGLEQUOTE_ = (function cljs$core$checked_aset_SINGLEQUOTE_(var_args){\nvar G__29085 = arguments.length;\nswitch (G__29085) {\ncase 3:\nreturn cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30643 = arguments.length;\nvar i__4790__auto___30644 = (0);\nwhile(true){\nif((i__4790__auto___30644 < len__4789__auto___30643)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30644]));\n\nvar G__30645 = (i__4790__auto___30644 + (1));\ni__4790__auto___30644 = G__30645;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((3)),(0),null));\nreturn cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3 = (function (array,idx,val){\nif(cljs.core.truth_((function (){var or__4185__auto__ = cljs.core.array_QMARK_(array);\nif(or__4185__auto__){\nreturn or__4185__auto__;\n} else {\nreturn goog.isArrayLike(array);\n}\n})())){\n} else {\nthrow (new Error(\"Assert failed: (or (array? array) (goog/isArrayLike array))\"));\n}\n\nif(typeof idx === 'number'){\n} else {\nthrow (new Error(\"Assert failed: (number? idx)\"));\n}\n\nif((!((idx < (0))))){\n} else {\nthrow (new Error(\"Assert failed: (not (neg? idx))\"));\n}\n\nif((idx < array.length)){\n} else {\nthrow (new Error(\"Assert failed: (< idx (alength array))\"));\n}\n\nreturn (array[idx] = val);\n}));\n\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic = (function (array,idx,idx2,idxv){\nvar G__29086 = cljs.core.checked_aset_SINGLEQUOTE_;\nvar G__29087 = cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(array,idx);\nvar G__29088 = idx2;\nvar G__29089 = idxv;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$4 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$4(G__29086,G__29087,G__29088,G__29089) : cljs.core.apply.call(null,G__29086,G__29087,G__29088,G__29089));\n}));\n\n/** @this {Function} */\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$lang$applyTo = (function (seq29081){\nvar G__29082 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29081) : cljs.core.first.call(null,seq29081));\nvar seq29081__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29081) : cljs.core.next.call(null,seq29081));\nvar G__29083 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29081__$1) : cljs.core.first.call(null,seq29081__$1));\nvar seq29081__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29081__$1) : cljs.core.next.call(null,seq29081__$1));\nvar G__29084 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29081__$2) : cljs.core.first.call(null,seq29081__$2));\nvar seq29081__$3 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29081__$2) : cljs.core.next.call(null,seq29081__$2));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29082,G__29083,G__29084,seq29081__$3);\n}));\n\n(cljs.core.checked_aset_SINGLEQUOTE_.cljs$lang$maxFixedArity = (3));\n\n/**\n * Returns the value at the index/indices. Works on JavaScript arrays.\n */\ncljs.core.aget = (function cljs$core$aget(var_args){\nvar G__29094 = arguments.length;\nswitch (G__29094) {\ncase 2:\nreturn cljs.core.aget.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30649 = arguments.length;\nvar i__4790__auto___30650 = (0);\nwhile(true){\nif((i__4790__auto___30650 < len__4789__auto___30649)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30650]));\n\nvar G__30651 = (i__4790__auto___30650 + (1));\ni__4790__auto___30650 = G__30651;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((2)),(0),null));\nreturn cljs.core.aget.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.aget.cljs$core$IFn$_invoke$arity$2 = (function (array,idx){\nreturn (array[idx]);\n}));\n\n(cljs.core.aget.cljs$core$IFn$_invoke$arity$variadic = (function (array,idx,idxs){\nvar G__29095 = cljs.core.aget;\nvar G__29096 = (array[idx]);\nvar G__29097 = idxs;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$3 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$3(G__29095,G__29096,G__29097) : cljs.core.apply.call(null,G__29095,G__29096,G__29097));\n}));\n\n/** @this {Function} */\n(cljs.core.aget.cljs$lang$applyTo = (function (seq29091){\nvar G__29092 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29091) : cljs.core.first.call(null,seq29091));\nvar seq29091__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29091) : cljs.core.next.call(null,seq29091));\nvar G__29093 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29091__$1) : cljs.core.first.call(null,seq29091__$1));\nvar seq29091__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29091__$1) : cljs.core.next.call(null,seq29091__$1));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29092,G__29093,seq29091__$2);\n}));\n\n(cljs.core.aget.cljs$lang$maxFixedArity = (2));\n\n/**\n * Sets the value at the index/indices. Works on JavaScript arrays.\n * Returns val.\n */\ncljs.core.aset = (function cljs$core$aset(var_args){\nvar G__29103 = arguments.length;\nswitch (G__29103) {\ncase 3:\nreturn cljs.core.aset.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___30653 = arguments.length;\nvar i__4790__auto___30654 = (0);\nwhile(true){\nif((i__4790__auto___30654 < len__4789__auto___30653)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___30654]));\n\nvar G__30655 = (i__4790__auto___30654 + (1));\ni__4790__auto___30654 = G__30655;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((3)),(0),null));\nreturn cljs.core.aset.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4811__auto__);\n\n}\n});\n\n(cljs.core.aset.cljs$core$IFn$_invoke$arity$3 = (function (array,idx,val){\nreturn (array[idx] = val);\n}));\n\n(cljs.core.aset.cljs$core$IFn$_invoke$arity$variadic = (function (array,idx,idx2,idxv){\nvar G__29104 = cljs.core.aset;\nvar G__29105 = (array[idx]);\nvar G__29106 = idx2;\nvar G__29107 = idxv;\nreturn (cljs.core.apply.cljs$core$IFn$_invoke$arity$4 ? cljs.core.apply.cljs$core$IFn$_invoke$arity$4(G__29104,G__29105,G__29106,G__29107) : cljs.core.apply.call(null,G__29104,G__29105,G__29106,G__29107));\n}));\n\n/** @this {Function} */\n(cljs.core.aset.cljs$lang$applyTo = (function (seq29099){\nvar G__29100 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29099) : cljs.core.first.call(null,seq29099));\nvar seq29099__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29099) : cljs.core.next.call(null,seq29099));\nvar G__29101 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29099__$1) : cljs.core.first.call(null,seq29099__$1));\nvar seq29099__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29099__$1) : cljs.core.next.call(null,seq29099__$1));\nvar G__29102 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29099__$2) : cljs.core.first.call(null,seq29099__$2));\nvar seq29099__$3 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29099__$2) : cljs.core.next.call(null,seq29099__$2));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29100,G__29101,G__29102,seq29099__$3);\n}));\n\n(cljs.core.aset.cljs$lang$maxFixedArity = (3));\n\n/**\n * Returns the length of the array. Works on arrays of all types.\n */\ncljs.core.alength = (function cljs$core$alength(array){\nreturn array.length;\n});\n/**\n * Returns an array with components set to the values in aseq. Optional type\n * argument accepted for compatibility with Clojure.\n */\ncljs.core.into_array = (function cljs$core$into_array(var_args){\nvar G__29109 = arguments.length;\nswitch (G__29109) {\ncase 1:\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(cljs.core.into_array.cljs$core$IFn$_invoke$arity$1 = (function (aseq){\nreturn cljs.core.into_array.cljs$core$IFn$_invoke$arity$2(null,aseq);\n}));\n\n(cljs.core.into_array.cljs$core$IFn$_invoke$arity$2 = (function (type,aseq){\nvar G__29110 = (function (a,x){\na.push(x);\n\nreturn a;\n});\nvar G__29111 = [];\nvar G__29112 = aseq;\nreturn (cljs.core.reduce.cljs$core$IFn$_invoke$arity$3 ? cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(G__29110,G__29111,G__29112) : cljs.core.reduce.call(null,G__29110,G__29111,G__29112));\n}));\n\n(cljs.core.into_array.cljs$lang$maxFixedArity = 2);\n\n/**\n * Invoke JavaScript object method via string. Needed when the\n * string is not a valid unquoted property name.\n */\ncljs.core.js_invoke = (function cljs$core$js_invoke(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___30659 = arguments.length;\nvar i__4790__auto___30660 = (0);\nwhile(true){\nif((i__4790__auto___30660 < len__4789__auto___30659)){\nargs__4795__auto__.push((arguments[i__4790__auto___30660]));\n\nvar G__30661 = (i__4790__auto___30660 + (1));\ni__4790__auto___30660 = G__30661;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((2) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((2)),(0),null)):null);\nreturn cljs.core.js_invoke.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4796__auto__);\n});\n\n(cljs.core.js_invoke.cljs$core$IFn$_invoke$arity$variadic = (function (obj,s,args){\nreturn (obj[s]).apply(obj,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(args));\n}));\n\n(cljs.core.js_invoke.cljs$lang$maxFixedArity = (2));\n\n/** @this {Function} */\n(cljs.core.js_invoke.cljs$lang$applyTo = (function (seq29113){\nvar G__29114 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29113) : cljs.core.first.call(null,seq29113));\nvar seq29113__$1 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29113) : cljs.core.next.call(null,seq29113));\nvar G__29115 = (cljs.core.first.cljs$core$IFn$_invoke$arity$1 ? cljs.core.first.cljs$core$IFn$_invoke$arity$1(seq29113__$1) : cljs.core.first.call(null,seq29113__$1));\nvar seq29113__$2 = (cljs.core.next.cljs$core$IFn$_invoke$arity$1 ? cljs.core.next.cljs$core$IFn$_invoke$arity$1(seq29113__$1) : cljs.core.next.call(null,seq29113__$1));\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__29114,G__29115,seq29113__$2);\n}));\n\n\n/**\n * Marker protocol\n * @interface\n */\ncljs.core.Fn = function(){};\n\n\n/**\n * Protocol for adding the ability to invoke an object as a function.\n * For example, a vector can also be used to look up a value:\n * ([1 2 3 4] 1) => 2\n * @interface\n */\ncljs.core.IFn = function(){};\n\ncljs.core._invoke = (function cljs$core$_invoke(var_args){\nvar G__29117 = arguments.length;\nswitch (G__29117) {\ncase 1:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\n\nbreak;\ncase 6:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));\n\nbreak;\ncase 7:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$7((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]));\n\nbreak;\ncase 8:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$8((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]));\n\nbreak;\ncase 9:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$9((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]));\n\nbreak;\ncase 10:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$10((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]));\n\nbreak;\ncase 11:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$11((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]));\n\nbreak;\ncase 12:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$12((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]));\n\nbreak;\ncase 13:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$13((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]));\n\nbreak;\ncase 14:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$14((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]));\n\nbreak;\ncase 15:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$15((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]));\n\nbreak;\ncase 16:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$16((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]));\n\nbreak;\ncase 17:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$17((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]));\n\nbreak;\ncase 18:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$18((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]));\n\nbreak;\ncase 19:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$19((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]));\n\nbreak;\ncase 20:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$20((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]));\n\nbreak;\ncase 21:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$21((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]));\n\nbreak;\ncase 22:\nreturn cljs.core._invoke.cljs$core$IFn$_invoke$arity$22((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]),(arguments[(6)]),(arguments[(7)]),(arguments[(8)]),(arguments[(9)]),(arguments[(10)]),(arguments[(11)]),(arguments[(12)]),(arguments[(13)]),(arguments[(14)]),(arguments[(15)]),(arguments[(16)]),(arguments[(17)]),(arguments[(18)]),(arguments[(19)]),(arguments[(20)]),(arguments[(21)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$1 = (function (this$){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$1 == null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$1(this$);\n} else {\nvar x__4487__auto__ = (((this$ == null))?null:this$);\nvar m__4488__auto__ = (cljs.core._invoke[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__4488__auto__.call(null,this$));\n} else {\nvar m__4485__auto__ = (cljs.core._invoke[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__4485__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\"IFn.-invoke\",this$);\n}\n}\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$2 = (function (this$,a){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$2 == null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$2(this$,a);\n} else {\nvar x__4487__auto__ = (((this$ == null))?null:this$);\nvar m__4488__auto__ = (cljs.core._invoke[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__4488__auto__.call(null,this$,a));\n} else {\nvar m__4485__auto__ = (cljs.core._invoke[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$2(this$,a) : m__4485__auto__.call(null,this$,a));\n} else {\nthrow cljs.core.missing_protocol(\"IFn.-invoke\",this$);\n}\n}\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$3 = (function (this$,a,b){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$3 == null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$3(this$,a,b);\n} else {\nvar x__4487__auto__ = (((this$ == null))?null:this$);\nvar m__4488__auto__ = (cljs.core._invoke[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$3 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$3(this$,a,b) : m__4488__auto__.call(null,this$,a,b));\n} else {\nvar m__4485__auto__ = (cljs.core._invoke[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$3 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$3(this$,a,b) : m__4485__auto__.call(null,this$,a,b));\n} else {\nthrow cljs.core.missing_protocol(\"IFn.-invoke\",this$);\n}\n}\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$4 = (function (this$,a,b,c){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$4 == null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$4(this$,a,b,c);\n} else {\nvar x__4487__auto__ = (((this$ == null))?null:this$);\nvar m__4488__auto__ = (cljs.core._invoke[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$4 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$4(this$,a,b,c) : m__4488__auto__.call(null,this$,a,b,c));\n} else {\nvar m__4485__auto__ = (cljs.core._invoke[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$4 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$4(this$,a,b,c) : m__4485__auto__.call(null,this$,a,b,c));\n} else {\nthrow cljs.core.missing_protocol(\"IFn.-invoke\",this$);\n}\n}\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$5 = (function (this$,a,b,c,d){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$5 == null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$5(this$,a,b,c,d);\n} else {\nvar x__4487__auto__ = (((this$ == null))?null:this$);\nvar m__4488__auto__ = (cljs.core._invoke[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$5 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$5(this$,a,b,c,d) : m__4488__auto__.call(null,this$,a,b,c,d));\n} else {\nvar m__4485__auto__ = (cljs.core._invoke[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$5 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$5(this$,a,b,c,d) : m__4485__auto__.call(null,this$,a,b,c,d));\n} else {\nthrow cljs.core.missing_protocol(\"IFn.-invoke\",this$);\n}\n}\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$6 = (function (this$,a,b,c,d,e){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$6 == null)))))){\nreturn this$.cljs$core$IFn$_invoke$arity$6(this$,a,b,c,d,e);\n} else {\nvar x__4487__auto__ = (((this$ == null))?null:this$);\nvar m__4488__auto__ = (cljs.core._invoke[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$6 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$6(this$,a,b,c,d,e) : m__4488__auto__.call(null,this$,a,b,c,d,e));\n} else {\nvar m__4485__auto__ = (cljs.core._invoke[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$6 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$6(this$,a,b,c,d,e) : m__4485__auto__.call(null,this$,a,b,c,d,e));\n} else {\nthrow cljs.core.missing_protocol(\"IFn.-invoke\",this$);\n}\n}\n}\n}));\n\n(cljs.core._invoke.cljs$core$IFn$_invoke$arity$7 = (function (this$,a,b,c,d,e,f){\nif((((!((this$ == null)))) && ((!((this$.cljs$core$IFn$_invoke$arity$7 == null)))))){\nreturn