mini-program-cljs
Version:
1 lines • 220 kB
JSON
["^ ","~:output",["^ ","~:js","goog.provide('cljs.tools.reader');\ngoog.require('cljs.core');\ngoog.require('cljs.tools.reader.reader_types');\ngoog.require('cljs.tools.reader.impl.utils');\ngoog.require('cljs.tools.reader.impl.commons');\ngoog.require('cljs.tools.reader.impl.errors');\ngoog.require('goog.array');\ngoog.require('goog.string');\ngoog.require('goog.string.StringBuffer');\n\n\n\n\n\n\ncljs.tools.reader.macro_terminating_QMARK_ = (function cljs$tools$reader$macro_terminating_QMARK_(ch){\nvar G__32345 = ch;\nswitch (G__32345) {\ncase \"\\\"\":\ncase \";\":\ncase \"@\":\ncase \"^\":\ncase \"`\":\ncase \"~\":\ncase \"(\":\ncase \")\":\ncase \"[\":\ncase \"]\":\ncase \"{\":\ncase \"}\":\ncase \"\\\\\":\nreturn true;\n\nbreak;\ndefault:\nreturn false;\n\n}\n});\ncljs.tools.reader.sb = (new goog.string.StringBuffer());\n/**\n * Read in a single logical token from the reader\n */\ncljs.tools.reader.read_token = (function cljs$tools$reader$read_token(rdr,kind,initch){\nif((initch == null)){\nreturn cljs.tools.reader.impl.errors.throw_eof_at_start(rdr,kind);\n} else {\ncljs.tools.reader.sb.clear();\n\nvar ch = initch;\nwhile(true){\nif(((cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)) || (cljs.tools.reader.macro_terminating_QMARK_(ch)) || ((ch == null)))){\nif((ch == null)){\n} else {\nrdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n}\n\nreturn cljs.tools.reader.sb.toString();\n} else {\ncljs.tools.reader.sb.append(ch);\n\nvar G__32855 = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nch = G__32855;\ncontinue;\n}\nbreak;\n}\n}\n});\ncljs.tools.reader.read_dispatch = (function cljs$tools$reader$read_dispatch(rdr,_,opts,pending_forms){\nvar temp__5733__auto__ = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.core.truth_(temp__5733__auto__)){\nvar ch = temp__5733__auto__;\nvar temp__5733__auto____$1 = (cljs.tools.reader.dispatch_macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.dispatch_macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.dispatch_macros.call(null,ch));\nif(cljs.core.truth_(temp__5733__auto____$1)){\nvar dm = temp__5733__auto____$1;\nreturn (dm.cljs$core$IFn$_invoke$arity$4 ? dm.cljs$core$IFn$_invoke$arity$4(rdr,ch,opts,pending_forms) : dm.call(null,rdr,ch,opts,pending_forms));\n} else {\nvar G__32350 = (function (){var G__32354 = rdr;\nG__32354.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n\nreturn G__32354;\n})();\nvar G__32351 = ch;\nvar G__32352 = opts;\nvar G__32353 = pending_forms;\nreturn (cljs.tools.reader.read_tagged.cljs$core$IFn$_invoke$arity$4 ? cljs.tools.reader.read_tagged.cljs$core$IFn$_invoke$arity$4(G__32350,G__32351,G__32352,G__32353) : cljs.tools.reader.read_tagged.call(null,G__32350,G__32351,G__32352,G__32353));\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_at_dispatch(rdr);\n}\n});\ncljs.tools.reader.read_unmatched_delimiter = (function cljs$tools$reader$read_unmatched_delimiter(rdr,ch,opts,pending_forms){\nreturn cljs.tools.reader.impl.errors.throw_unmatch_delimiter(rdr,ch);\n});\ncljs.tools.reader.read_regex = (function cljs$tools$reader$read_regex(rdr,ch,opts,pending_forms){\nvar sb = (new goog.string.StringBuffer());\nvar ch__$1 = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nwhile(true){\nif((\"\\\"\" === ch__$1)){\nreturn cljs.core.re_pattern(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb));\n} else {\nif((ch__$1 == null)){\nreturn cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(rdr,new cljs.core.Keyword(null,\"regex\",\"regex\",939488856),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sb], 0));\n} else {\nsb.append(ch__$1);\n\nif((\"\\\\\" === ch__$1)){\nvar ch_32857__$2 = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif((ch_32857__$2 == null)){\ncljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(rdr,new cljs.core.Keyword(null,\"regex\",\"regex\",939488856),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([sb], 0));\n} else {\n}\n\nsb.append(ch_32857__$2);\n} else {\n}\n\nvar G__32860 = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nch__$1 = G__32860;\ncontinue;\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.read_unicode_char = (function cljs$tools$reader$read_unicode_char(var_args){\nvar G__32360 = arguments.length;\nswitch (G__32360) {\ncase 4:\nreturn cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ncase 5:\nreturn cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));\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.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4 = (function (token,offset,length,base){\nvar l = (offset + length);\nif((cljs.core.count(token) === l)){\n} else {\ncljs.tools.reader.impl.errors.throw_invalid_unicode_literal(null,token);\n}\n\nvar i = offset;\nvar uc = (0);\nwhile(true){\nif((i === l)){\nreturn String.fromCharCode(uc);\n} else {\nvar d = cljs.tools.reader.impl.utils.char_code(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,i),base);\nif((d === (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token(null,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(token,i),token);\n} else {\nvar G__32867 = (i + (1));\nvar G__32868 = (d + (uc * base));\ni = G__32867;\nuc = G__32868;\ncontinue;\n}\n}\nbreak;\n}\n}));\n\n(cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5 = (function (rdr,initch,base,length,exact_QMARK_){\nvar i = (1);\nvar uc = cljs.tools.reader.impl.utils.char_code(initch,base);\nwhile(true){\nif((uc === (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(rdr,initch);\n} else {\nif((!((i === length)))){\nvar ch = rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);\nif(cljs.core.truth_((function (){var or__4185__auto__ = cljs.tools.reader.impl.utils.whitespace_QMARK_(ch);\nif(or__4185__auto__){\nreturn or__4185__auto__;\n} else {\nvar or__4185__auto____$1 = (cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.macros.call(null,ch));\nif(cljs.core.truth_(or__4185__auto____$1)){\nreturn or__4185__auto____$1;\n} else {\nreturn (ch == null);\n}\n}\n})())){\nif(cljs.core.truth_(exact_QMARK_)){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_len(rdr,i,length);\n} else {\nreturn String.fromCharCode(uc);\n}\n} else {\nvar d = cljs.tools.reader.impl.utils.char_code(ch,base);\nrdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\n\nif((d === (-1))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(rdr,ch);\n} else {\nvar G__32869 = (i + (1));\nvar G__32870 = (d + (uc * base));\ni = G__32869;\nuc = G__32870;\ncontinue;\n}\n}\n} else {\nreturn String.fromCharCode(uc);\n}\n}\nbreak;\n}\n}));\n\n(cljs.tools.reader.read_unicode_char.cljs$lang$maxFixedArity = 5);\n\ncljs.tools.reader.upper_limit = \"\\uD7FF\".charCodeAt((0));\ncljs.tools.reader.lower_limit = \"\\uE000\".charCodeAt((0));\ncljs.tools.reader.valid_octal_QMARK_ = (function cljs$tools$reader$valid_octal_QMARK_(token,base){\nreturn (parseInt(token,base) <= (255));\n});\n/**\n * Read in a character literal\n */\ncljs.tools.reader.read_char_STAR_ = (function cljs$tools$reader$read_char_STAR_(rdr,backslash,opts,pending_forms){\nvar ch = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif((!((ch == null)))){\nvar token = ((((cljs.tools.reader.macro_terminating_QMARK_(ch)) || (cljs.tools.reader.impl.utils.whitespace_QMARK_(ch))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(ch):cljs.tools.reader.read_token(rdr,new cljs.core.Keyword(null,\"character\",\"character\",380652989),ch));\nvar token_len = token.length;\nif(((1) === token_len)){\nreturn token.charAt((0));\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\"newline\")){\nreturn \"\\n\";\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\"space\")){\nreturn \" \";\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\"tab\")){\nreturn \"\\t\";\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\"backspace\")){\nreturn \"\\b\";\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\"formfeed\")){\nreturn \"\\f\";\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(token,\"return\")){\nreturn \"\\r\";\n} else {\nif(cljs.core.truth_(goog.string.startsWith(token,\"u\"))){\nvar c = cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(token,(1),(4),(16));\nvar ic = c.charCodeAt((0));\nif((((ic > cljs.tools.reader.upper_limit)) && ((ic < cljs.tools.reader.lower_limit)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_character_literal(rdr,ic.toString((16)));\n} else {\nreturn c;\n}\n} else {\nif(cljs.core.truth_(goog.string.startsWith(token,\"o\"))){\nvar len = (token_len - (1));\nif((len > (3))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_octal_len(rdr,token);\n} else {\nvar offset = (1);\nvar base = (8);\nvar uc = cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(token,offset,len,base);\nif((!(cljs.tools.reader.valid_octal_QMARK_(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(token,offset),base)))){\nreturn cljs.tools.reader.impl.errors.throw_bad_octal_number(rdr);\n} else {\nreturn uc;\n}\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_unsupported_character(rdr,token);\n\n}\n}\n}\n}\n}\n}\n}\n}\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n});\ncljs.tools.reader.starting_line_col_info = (function cljs$tools$reader$starting_line_col_info(rdr){\nif(cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [rdr.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),((rdr.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null) - (1)) | (0))], null);\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.ending_line_col_info = (function cljs$tools$reader$ending_line_col_info(rdr){\nif(cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr)){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [rdr.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),rdr.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null)], null);\n} else {\nreturn null;\n}\n});\nif((typeof cljs !== 'undefined') && (typeof cljs.tools !== 'undefined') && (typeof cljs.tools.reader !== 'undefined') && (typeof cljs.tools.reader.READ_EOF !== 'undefined')){\n} else {\ncljs.tools.reader.READ_EOF = (new Object());\n}\nif((typeof cljs !== 'undefined') && (typeof cljs.tools !== 'undefined') && (typeof cljs.tools.reader !== 'undefined') && (typeof cljs.tools.reader.READ_FINISHED !== 'undefined')){\n} else {\ncljs.tools.reader.READ_FINISHED = (new Object());\n}\ncljs.tools.reader._STAR_read_delim_STAR_ = false;\ncljs.tools.reader.read_delimited_internal = (function cljs$tools$reader$read_delimited_internal(kind,delim,rdr,opts,pending_forms){\nvar vec__32418 = cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32418,(0),null);\nvar start_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32418,(1),null);\nvar delim__$1 = cljs.tools.reader.impl.utils.char$(delim);\nvar a = cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nvar form = (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(rdr,false,cljs.tools.reader.READ_EOF,delim__$1,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,false,cljs.tools.reader.READ_EOF,delim__$1,opts,pending_forms));\nif((form === cljs.tools.reader.READ_FINISHED)){\nreturn cljs.core.persistent_BANG_(a);\n} else {\nif((form === cljs.tools.reader.READ_EOF)){\nreturn cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(rdr,kind,start_line,start_column,cljs.core.count(a));\n} else {\nvar G__32880 = cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(a,form);\na = G__32880;\ncontinue;\n}\n}\nbreak;\n}\n});\n/**\n * Reads and returns a collection ended with delim\n */\ncljs.tools.reader.read_delimited = (function cljs$tools$reader$read_delimited(kind,delim,rdr,opts,pending_forms){\nvar _STAR_read_delim_STAR__orig_val__32428 = cljs.tools.reader._STAR_read_delim_STAR_;\nvar _STAR_read_delim_STAR__temp_val__32429 = true;\n(cljs.tools.reader._STAR_read_delim_STAR_ = _STAR_read_delim_STAR__temp_val__32429);\n\ntry{return cljs.tools.reader.read_delimited_internal(kind,delim,rdr,opts,pending_forms);\n}finally {(cljs.tools.reader._STAR_read_delim_STAR_ = _STAR_read_delim_STAR__orig_val__32428);\n}});\n/**\n * Read in a list, including its location if the reader is an indexing reader\n */\ncljs.tools.reader.read_list = (function cljs$tools$reader$read_list(rdr,_,opts,pending_forms){\nvar vec__32436 = cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32436,(0),null);\nvar start_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32436,(1),null);\nvar the_list = cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\"list\",\"list\",765357683),\")\",rdr,opts,pending_forms);\nvar vec__32439 = cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32439,(0),null);\nvar end_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32439,(1),null);\nreturn cljs.core.with_meta(((cljs.core.empty_QMARK_(the_list))?cljs.core.List.EMPTY:cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,the_list)),(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar file = temp__5735__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"file\",\"file\",-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"line\",\"line\",212345235),start_line,new cljs.core.Keyword(null,\"column\",\"column\",2078222095),start_column,new cljs.core.Keyword(null,\"end-line\",\"end-line\",1837326455),end_line,new cljs.core.Keyword(null,\"end-column\",\"end-column\",1425389514),end_column], null)], 0)):null));\n});\n/**\n * Read in a vector, including its location if the reader is an indexing reader\n */\ncljs.tools.reader.read_vector = (function cljs$tools$reader$read_vector(rdr,_,opts,pending_forms){\nvar vec__32456 = cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32456,(0),null);\nvar start_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32456,(1),null);\nvar the_vector = cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\"vector\",\"vector\",1902966158),\"]\",rdr,opts,pending_forms);\nvar vec__32459 = cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32459,(0),null);\nvar end_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32459,(1),null);\nreturn cljs.core.with_meta(the_vector,(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar file = temp__5735__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"file\",\"file\",-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"line\",\"line\",212345235),start_line,new cljs.core.Keyword(null,\"column\",\"column\",2078222095),start_column,new cljs.core.Keyword(null,\"end-line\",\"end-line\",1837326455),end_line,new cljs.core.Keyword(null,\"end-column\",\"end-column\",1425389514),end_column], null)], 0)):null));\n});\n/**\n * Read in a map, including its location if the reader is an indexing reader\n */\ncljs.tools.reader.read_map = (function cljs$tools$reader$read_map(rdr,_,opts,pending_forms){\nvar vec__32468 = cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32468,(0),null);\nvar start_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32468,(1),null);\nvar the_map = cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\"map\",\"map\",1371690461),\"}\",rdr,opts,pending_forms);\nvar map_count = cljs.core.count(the_map);\nvar ks = cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),the_map);\nvar key_set = cljs.core.set(ks);\nvar vec__32471 = cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32471,(0),null);\nvar end_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32471,(1),null);\nif(cljs.core.odd_QMARK_(map_count)){\ncljs.tools.reader.impl.errors.throw_odd_map(rdr,start_line,start_column,the_map);\n} else {\n}\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(key_set),cljs.core.count(ks))){\n} else {\ncljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\"map\",\"map\",1371690461),ks);\n}\n\nreturn cljs.core.with_meta((((map_count <= ((2) * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD)))?cljs.core.PersistentArrayMap.fromArray(cljs.core.to_array(the_map),true,true):cljs.core.PersistentHashMap.fromArray(cljs.core.to_array(the_map),true)),(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar file = temp__5735__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"file\",\"file\",-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"line\",\"line\",212345235),start_line,new cljs.core.Keyword(null,\"column\",\"column\",2078222095),start_column,new cljs.core.Keyword(null,\"end-line\",\"end-line\",1837326455),end_line,new cljs.core.Keyword(null,\"end-column\",\"end-column\",1425389514),end_column], null)], 0)):null));\n});\ncljs.tools.reader.read_number = (function cljs$tools$reader$read_number(rdr,initch){\nvar sb = (function (){var G__32482 = (new goog.string.StringBuffer());\nG__32482.append(initch);\n\nreturn G__32482;\n})();\nvar ch = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nwhile(true){\nif(cljs.core.truth_((function (){var or__4185__auto__ = cljs.tools.reader.impl.utils.whitespace_QMARK_(ch);\nif(or__4185__auto__){\nreturn or__4185__auto__;\n} else {\nvar or__4185__auto____$1 = (cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1 ? cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1(ch) : cljs.tools.reader.macros.call(null,ch));\nif(cljs.core.truth_(or__4185__auto____$1)){\nreturn or__4185__auto____$1;\n} else {\nreturn (ch == null);\n}\n}\n})())){\nvar s = cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\nrdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,ch);\n\nvar or__4185__auto__ = cljs.tools.reader.impl.commons.match_number(s);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid_number(rdr,s);\n}\n} else {\nvar G__32895 = (function (){var G__32499 = sb;\nG__32499.append(ch);\n\nreturn G__32499;\n})();\nvar G__32896 = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nsb = G__32895;\nch = G__32896;\ncontinue;\n}\nbreak;\n}\n});\ncljs.tools.reader.escape_char = (function cljs$tools$reader$escape_char(sb,rdr){\nvar ch = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nvar G__32504 = ch;\nswitch (G__32504) {\ncase \"t\":\nreturn \"\\t\";\n\nbreak;\ncase \"r\":\nreturn \"\\r\";\n\nbreak;\ncase \"n\":\nreturn \"\\n\";\n\nbreak;\ncase \"\\\\\":\nreturn \"\\\\\";\n\nbreak;\ncase \"\\\"\":\nreturn \"\\\"\";\n\nbreak;\ncase \"b\":\nreturn \"\\b\";\n\nbreak;\ncase \"f\":\nreturn \"\\f\";\n\nbreak;\ncase \"u\":\nvar ch__$1 = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(((-1) === parseInt((ch__$1 | (0)),(16)))){\nreturn cljs.tools.reader.impl.errors.throw_invalid_unicode_escape(rdr,ch__$1);\n} else {\nreturn cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(rdr,ch__$1,(16),(4),true);\n}\n\nbreak;\ndefault:\nif(cljs.tools.reader.impl.utils.numeric_QMARK_(ch)){\nvar ch__$1 = cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(rdr,ch,(8),(3),false);\nif(((ch__$1 | (0)) > (255))){\nreturn cljs.tools.reader.impl.errors.throw_bad_octal_number(rdr);\n} else {\nreturn ch__$1;\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_escape_char(rdr,ch);\n}\n\n}\n});\ncljs.tools.reader.read_string_STAR_ = (function cljs$tools$reader$read_string_STAR_(reader,_,opts,pending_forms){\nvar sb = (new goog.string.StringBuffer());\nvar ch = reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nwhile(true){\nif((ch == null)){\nreturn cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(reader,new cljs.core.Keyword(null,\"string\",\"string\",-1989541586),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"\\\"\",sb], 0));\n} else {\nvar G__32512 = ch;\nswitch (G__32512) {\ncase \"\\\\\":\nvar G__32899 = (function (){var G__32513 = sb;\nG__32513.append(cljs.tools.reader.escape_char(sb,reader));\n\nreturn G__32513;\n})();\nvar G__32900 = reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nsb = G__32899;\nch = G__32900;\ncontinue;\n\nbreak;\ncase \"\\\"\":\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb);\n\nbreak;\ndefault:\nvar G__32901 = (function (){var G__32516 = sb;\nG__32516.append(ch);\n\nreturn G__32516;\n})();\nvar G__32902 = reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nsb = G__32901;\nch = G__32902;\ncontinue;\n\n}\n}\nbreak;\n}\n});\ncljs.tools.reader.loc_info = (function cljs$tools$reader$loc_info(rdr,line,column){\nif((line == null)){\nreturn null;\n} else {\nvar file = cljs.tools.reader.reader_types.get_file_name(rdr);\nvar filem = (((file == null))?null:new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"file\",\"file\",-1269645878),file], null));\nvar vec__32522 = cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32522,(0),null);\nvar end_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32522,(1),null);\nvar lcm = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"line\",\"line\",212345235),line,new cljs.core.Keyword(null,\"column\",\"column\",2078222095),column,new cljs.core.Keyword(null,\"end-line\",\"end-line\",1837326455),end_line,new cljs.core.Keyword(null,\"end-column\",\"end-column\",1425389514),end_column], null);\nreturn cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([filem,lcm], 0));\n}\n});\ncljs.tools.reader.read_symbol = (function cljs$tools$reader$read_symbol(rdr,initch){\nvar vec__32528 = cljs.tools.reader.starting_line_col_info(rdr);\nvar line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32528,(0),null);\nvar column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32528,(1),null);\nvar token = cljs.tools.reader.read_token(rdr,new cljs.core.Keyword(null,\"symbol\",\"symbol\",-1038572696),initch);\nif((token == null)){\nreturn null;\n} else {\nvar G__32533 = token;\nswitch (G__32533) {\ncase \"nil\":\nreturn null;\n\nbreak;\ncase \"true\":\nreturn true;\n\nbreak;\ncase \"false\":\nreturn false;\n\nbreak;\ncase \"/\":\nreturn new cljs.core.Symbol(null,\"/\",\"/\",-1371932971,null);\n\nbreak;\ndefault:\nvar p = cljs.tools.reader.impl.commons.parse_symbol(token);\nif((!((p == null)))){\nvar sym = cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(p.cljs$core$IIndexed$_nth$arity$2(null,(0)),p.cljs$core$IIndexed$_nth$arity$2(null,(1)));\nreturn sym.cljs$core$IWithMeta$_with_meta$arity$2(null,cljs.tools.reader.loc_info(rdr,line,column));\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(rdr,new cljs.core.Keyword(null,\"symbol\",\"symbol\",-1038572696),token);\n}\n\n}\n}\n});\n/**\n * Map from ns alias to ns, if non-nil, it will be used to resolve read-time\n * ns aliases.\n * \n * Defaults to nil\n */\ncljs.tools.reader._STAR_alias_map_STAR_ = null;\ncljs.tools.reader.resolve_alias = (function cljs$tools$reader$resolve_alias(sym){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader._STAR_alias_map_STAR_,sym);\n});\ncljs.tools.reader.resolve_ns = (function cljs$tools$reader$resolve_ns(sym){\nvar or__4185__auto__ = cljs.tools.reader.resolve_alias(sym);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nvar temp__5735__auto__ = cljs.core.find_ns(sym);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar ns = temp__5735__auto__;\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.ns_name(ns));\n} else {\nreturn null;\n}\n}\n});\ncljs.tools.reader.read_keyword = (function cljs$tools$reader$read_keyword(reader,initch,opts,pending_forms){\nvar ch = reader.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(ch)))){\nvar token = cljs.tools.reader.read_token(reader,new cljs.core.Keyword(null,\"keyword\",\"keyword\",811389747),ch);\nvar s = cljs.tools.reader.impl.commons.parse_symbol(token);\nif((!((s == null)))){\nvar ns = s.cljs$core$IIndexed$_nth$arity$2(null,(0));\nvar name = s.cljs$core$IIndexed$_nth$arity$2(null,(1));\nif((\":\" === token.charAt((0)))){\nif((!((ns == null)))){\nvar temp__5733__auto__ = cljs.tools.reader.resolve_alias(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(ns,(1))));\nif(cljs.core.truth_(temp__5733__auto__)){\nvar ns__$1 = temp__5733__auto__;\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),name);\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(reader,new cljs.core.Keyword(null,\"keyword\",\"keyword\",811389747),[\":\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join(''));\n}\n} else {\nvar temp__5733__auto__ = cljs.core._STAR_ns_STAR_;\nif(cljs.core.truth_(temp__5733__auto__)){\nvar ns__$1 = temp__5733__auto__;\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(name,(1)));\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(reader,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Invalid token: :\",token], 0));\n}\n}\n} else {\nreturn cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(ns,name);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_invalid(reader,new cljs.core.Keyword(null,\"keyword\",\"keyword\",811389747),[\":\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join(''));\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_single_colon(reader);\n}\n});\n/**\n * Returns a function which wraps a reader in a call to sym\n */\ncljs.tools.reader.wrapping_reader = (function cljs$tools$reader$wrapping_reader(sym){\nreturn (function (rdr,_,opts,pending_forms){\nreturn (new cljs.core.List(null,sym,(new cljs.core.List(null,(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)),null,(1),null)),(2),null));\n});\n});\n/**\n * Read metadata and return the following object with the metadata applied\n */\ncljs.tools.reader.read_meta = (function cljs$tools$reader$read_meta(rdr,_,opts,pending_forms){\nif(((cljs.tools.reader.reader_types.source_logging_reader_QMARK_(rdr)) && ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(rdr))))))){\nreturn cljs.tools.reader.reader_types.log_source_STAR_(rdr,(function (){\nvar vec__32582 = cljs.tools.reader.starting_line_col_info(rdr);\nvar line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32582,(0),null);\nvar column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32582,(1),null);\nvar m = cljs.tools.reader.impl.utils.desugar_meta((cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)));\nif(cljs.core.map_QMARK_(m)){\n} else {\ncljs.tools.reader.impl.errors.throw_bad_metadata(rdr,m);\n}\n\nvar o = (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nif((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IMeta$))))?true:false):false)){\nvar m__$1 = (cljs.core.truth_((function (){var and__4174__auto__ = line;\nif(cljs.core.truth_(and__4174__auto__)){\nreturn cljs.core.seq_QMARK_(o);\n} else {\nreturn and__4174__auto__;\n}\n})())?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\"line\",\"line\",212345235),line,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"column\",\"column\",2078222095),column], 0)):m);\nif((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (262144))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IWithMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(o,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(o),m__$1], 0)));\n} else {\nreturn cljs.core.reset_meta_BANG_(o,m__$1);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_metadata_target(rdr,o);\n}\n}));\n} else {\nvar vec__32587 = cljs.tools.reader.starting_line_col_info(rdr);\nvar line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32587,(0),null);\nvar column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32587,(1),null);\nvar m = cljs.tools.reader.impl.utils.desugar_meta((cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)));\nif(cljs.core.map_QMARK_(m)){\n} else {\ncljs.tools.reader.impl.errors.throw_bad_metadata(rdr,m);\n}\n\nvar o = (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nif((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IMeta$))))?true:false):false)){\nvar m__$1 = (cljs.core.truth_((function (){var and__4174__auto__ = line;\nif(cljs.core.truth_(and__4174__auto__)){\nreturn cljs.core.seq_QMARK_(o);\n} else {\nreturn and__4174__auto__;\n}\n})())?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,\"line\",\"line\",212345235),line,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"column\",\"column\",2078222095),column], 0)):m);\nif((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (262144))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IWithMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(o,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(o),m__$1], 0)));\n} else {\nreturn cljs.core.reset_meta_BANG_(o,m__$1);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_bad_metadata_target(rdr,o);\n}\n}\n});\ncljs.tools.reader.read_set = (function cljs$tools$reader$read_set(rdr,_,opts,pending_forms){\nvar vec__32598 = cljs.tools.reader.starting_line_col_info(rdr);\nvar start_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32598,(0),null);\nvar start_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32598,(1),null);\nvar start_column__$1 = (cljs.core.truth_(start_column)?((start_column - (1)) | (0)):null);\nvar coll = cljs.tools.reader.read_delimited(new cljs.core.Keyword(null,\"set\",\"set\",304602554),\"}\",rdr,opts,pending_forms);\nvar the_set = cljs.core.set(coll);\nvar vec__32601 = cljs.tools.reader.ending_line_col_info(rdr);\nvar end_line = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32601,(0),null);\nvar end_column = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__32601,(1),null);\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(coll),cljs.core.count(the_set))){\n} else {\ncljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.impl.errors.throw_dup_keys(rdr,new cljs.core.Keyword(null,\"set\",\"set\",304602554),coll)], 0));\n}\n\nreturn cljs.core.with_meta(the_set,(cljs.core.truth_(start_line)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name(rdr);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar file = temp__5735__auto__;\nreturn new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"file\",\"file\",-1269645878),file], null);\n} else {\nreturn null;\n}\n})(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"line\",\"line\",212345235),start_line,new cljs.core.Keyword(null,\"column\",\"column\",2078222095),start_column__$1,new cljs.core.Keyword(null,\"end-line\",\"end-line\",1837326455),end_line,new cljs.core.Keyword(null,\"end-column\",\"end-column\",1425389514),end_column], null)], 0)):null));\n});\n/**\n * Read and discard the first object from rdr\n */\ncljs.tools.reader.read_discard = (function cljs$tools$reader$read_discard(rdr,_,opts,pending_forms){\nvar G__32609 = rdr;\n(cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(G__32609,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,G__32609,true,null,opts,pending_forms));\n\nreturn G__32609;\n});\ncljs.tools.reader.read_symbolic_value = (function cljs$tools$reader$read_symbolic_value(rdr,_,opts,pending_forms){\nvar sym = (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(rdr,true,null,opts,pending_forms) : cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms));\nvar G__32610 = sym;\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\"NaN\",\"NaN\",666918153,null),G__32610)){\nreturn Number.NaN;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\"-Inf\",\"-Inf\",-2123243689,null),G__32610)){\nreturn Number.NEGATIVE_INFINITY;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\"Inf\",\"Inf\",647172781,null),G__32610)){\nreturn Number.POSITIVE_INFINITY;\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\"Invalid token: ##\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join('')], 0));\n\n}\n}\n}\n});\ncljs.tools.reader.RESERVED_FEATURES = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"else\",\"else\",-1508377146),null,new cljs.core.Keyword(null,\"none\",\"none\",1333468478),null], null), null);\ncljs.tools.reader.has_feature_QMARK_ = (function cljs$tools$reader$has_feature_QMARK_(rdr,feature,opts){\nif((feature instanceof cljs.core.Keyword)){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"default\",\"default\",-1987822328),feature)) || (cljs.core.contains_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,\"features\",\"features\",-1146962336)),feature)));\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Feature should be a keyword: \",feature], 0));\n}\n});\ncljs.tools.reader.check_eof_error = (function cljs$tools$reader$check_eof_error(form,rdr,first_line){\nif((form === cljs.tools.reader.READ_EOF)){\nreturn cljs.tools.reader.impl.errors.throw_eof_error(rdr,(((first_line < (0)))?first_line:false));\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.check_reserved_features = (function cljs$tools$reader$check_reserved_features(rdr,form){\nif(cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.RESERVED_FEATURES,form))){\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Feature name \",form,\" is reserved\"], 0));\n} else {\nreturn null;\n}\n});\ncljs.tools.reader.check_invalid_read_cond = (function cljs$tools$reader$check_invalid_read_cond(form,rdr,first_line){\nif((form === cljs.tools.reader.READ_FINISHED)){\nif((first_line < (0))){\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"read-cond requires an even number of forms\"], 0));\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"read-cond starting on line \",first_line,\" requires an even number of forms\"], 0));\n}\n} else {\nreturn null;\n}\n});\n/**\n * Read next form and suppress. Return nil or READ_FINISHED.\n */\ncljs.tools.reader.read_suppress = (function cljs$tools$reader$read_suppress(first_line,rdr,opts,pending_forms){\nvar _STAR_suppress_read_STAR__orig_val__32639 = cljs.tools.reader._STAR_suppress_read_STAR_;\nvar _STAR_suppress_read_STAR__temp_val__32640 = true;\n(cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__temp_val__32640);\n\ntry{var form = (function (){var G__32644 = rdr;\nvar G__32645 = false;\nvar G__32646 = cljs.tools.reader.READ_EOF;\nvar G__32647 = \")\";\nvar G__32648 = opts;\nvar G__32649 = pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(G__32644,G__32645,G__32646,G__32647,G__32648,G__32649) : cljs.tools.reader.read_STAR_.call(null,G__32644,G__32645,G__32646,G__32647,G__32648,G__32649));\n})();\ncljs.tools.reader.check_eof_error(form,rdr,first_line);\n\nif((form === cljs.tools.reader.READ_FINISHED)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\nreturn null;\n}\n}finally {(cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__orig_val__32639);\n}});\nif((typeof cljs !== 'undefined') && (typeof cljs.tools !== 'undefined') && (typeof cljs.tools.reader !== 'undefined') && (typeof cljs.tools.reader.NO_MATCH !== 'undefined')){\n} else {\ncljs.tools.reader.NO_MATCH = (new Object());\n}\n/**\n * Read next feature. If matched, read next form and return.\n * Otherwise, read and skip next form, returning READ_FINISHED or nil.\n */\ncljs.tools.reader.match_feature = (function cljs$tools$reader$match_feature(first_line,rdr,opts,pending_forms){\nvar feature = (function (){var G__32654 = rdr;\nvar G__32655 = false;\nvar G__32656 = cljs.tools.reader.READ_EOF;\nvar G__32657 = \")\";\nvar G__32658 = opts;\nvar G__32659 = pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(G__32654,G__32655,G__32656,G__32657,G__32658,G__32659) : cljs.tools.reader.read_STAR_.call(null,G__32654,G__32655,G__32656,G__32657,G__32658,G__32659));\n})();\ncljs.tools.reader.check_eof_error(feature,rdr,first_line);\n\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(feature,cljs.tools.reader.READ_FINISHED)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\ncljs.tools.reader.check_reserved_features(rdr,feature);\n\nif(cljs.tools.reader.has_feature_QMARK_(rdr,feature,opts)){\nvar G__32667 = (function (){var G__32668 = rdr;\nvar G__32669 = false;\nvar G__32670 = cljs.tools.reader.READ_EOF;\nvar G__32671 = \")\";\nvar G__32672 = opts;\nvar G__32673 = pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(G__32668,G__32669,G__32670,G__32671,G__32672,G__32673) : cljs.tools.reader.read_STAR_.call(null,G__32668,G__32669,G__32670,G__32671,G__32672,G__32673));\n})();\ncljs.tools.reader.check_eof_error(G__32667,rdr,first_line);\n\ncljs.tools.reader.check_invalid_read_cond(G__32667,rdr,first_line);\n\nreturn G__32667;\n} else {\nvar or__4185__auto__ = cljs.tools.reader.read_suppress(first_line,rdr,opts,pending_forms);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.tools.reader.NO_MATCH;\n}\n}\n}\n});\ncljs.tools.reader.read_cond_delimited = (function cljs$tools$reader$read_cond_delimited(rdr,splicing,opts,pending_forms){\nvar first_line = ((cljs.tools.reader.reader_types.indexing_reader_QMARK_(rdr))?cljs.tools.reader.reader_types.get_line_number(rdr):(-1));\nvar result = (function (){var matched = cljs.tools.reader.NO_MATCH;\nvar finished = null;\nwhile(true){\nif((matched === cljs.tools.reader.NO_MATCH)){\nvar match = cljs.tools.reader.match_feature(first_line,rdr,opts,pending_forms);\nif((match === cljs.tools.reader.READ_FINISHED)){\nreturn cljs.tools.reader.READ_FINISHED;\n} else {\nvar G__32960 = match;\nvar G__32961 = null;\nmatched = G__32960;\nfinished = G__32961;\ncontinue;\n}\n} else {\nif((!((finished === cljs.tools.reader.READ_FINISHED)))){\nvar G__32962 = matched;\nvar G__32963 = cljs.tools.reader.read_suppress(first_line,rdr,opts,pending_forms);\nmatched = G__32962;\nfinished = G__32963;\ncontinue;\n} else {\nreturn matched;\n\n}\n}\nbreak;\n}\n})();\nif((result === cljs.tools.reader.READ_FINISHED)){\nreturn rdr;\n} else {\nif(cljs.core.truth_(splicing)){\nif((((!((result == null))))?(((((result.cljs$lang$protocol_mask$partition0$ & (16777216))) || ((cljs.core.PROTOCOL_SENTINEL === result.cljs$core$ISequential$))))?true:false):false)){\ngoog.array.insertArrayAt(pending_forms,cljs.core.to_array(result),(0));\n\nreturn rdr;\n} else {\nreturn cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Spliced form list in read-cond-splicing must implement ISequential\"], 0));\n}\n} else {\nreturn result;\n}\n}\n});\ncljs.tools.reader.read_cond = (function cljs$tools$reader$read_cond(rdr,_,opts,pending_forms){\nif(cljs.core.not((function (){var and__4174__auto__ = opts;\nif(cljs.core.truth_(and__4174__auto__)){\nvar G__32703 = new cljs.core.Keyword(null,\"read-cond\",\"read-cond\",1056899244).cljs$core$IFn$_invoke$arity$1(opts);\nvar fexpr__32702 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"preserve\",\"preserve\",1276846509),null,new cljs.core.Keyword(null,\"allow\",\"allow\",-1857325745),null], null), null);\nreturn (fexpr__32702.cljs$core$IFn$_invoke$arity$1 ? fexpr__32702.cljs$core$IFn$_invoke$arity$1(G__32703) : fexpr__32702.call(null,G__32703));\n} else {\nreturn and__4174__auto__;\n}\n})())){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\"Conditional read not allowed\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"type\",\"type\",1174270348),new cljs.core.Keyword(null,\"runtime-exception\",\"runtime-exception\",-1495664514)], null));\n} else {\n}\n\nvar temp__5733__auto__ = rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);\nif(cljs.core.truth_(temp__5733__auto__)){\nvar ch = temp__5733__auto__;\nvar splicing = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ch,\"@\");\nvar ch__$1 = ((splicing)?rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null):ch);\nif(splicing){\nif(cljs.core.truth_(cljs.tools.reader._STAR_read_delim_STAR_)){\n} else {\ncljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(rdr,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"cond-splice not in list\"], 0));\n}\n} else {\n}\n\nvar temp__5733__auto____$1 = ((cljs.tools.reader.impl.utils.whitespace_QMARK_(ch__$1))?cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr):ch__$1);\nif(cljs.core.truth_(temp__5733__auto____$1)){\nvar ch__$2 = temp__5733__auto____$1;\nif(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(ch__$2,\"(\")){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\"read-cond body must be a list\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"type\",\"type\",1174270348),new cljs.core.Keyword(null,\"runtime-exception\",\"runtime-exception\",-1495664514)], null));\n} else {\nvar _STAR_suppress_read_STAR__orig_val__32714 = cljs.tools.reader._STAR_suppress_read_STAR_;\nvar _STAR_suppress_read_STAR__temp_val__32715 = (function (){var or__4185__auto__ = cljs.tools.reader._STAR_suppress_read_STAR_;\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"preserve\",\"preserve\",1276846509),new cljs.core.Keyword(null,\"read-cond\",\"read-cond\",1056899244).cljs$core$IFn$_invoke$arity$1(opts));\n}\n})();\n(cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__temp_val__32715);\n\ntry{if(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)){\nreturn cljs.tools.reader.impl.utils.reader_conditional(cljs.tools.reader.read_list(rdr,ch__$2,opts,pending_forms),splicing);\n} else {\nreturn cljs.tools.reader.read_cond_delimited(rdr,splicing,opts,pending_forms);\n}\n}finally {(cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__orig_val__32714);\n}}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n} else {\nreturn cljs.tools.reader.impl.errors.throw_eof_in_character(rdr);\n}\n});\ncljs.tools.reader.arg_env = null;\n/**\n * Get a symbol for an anonymous ?argument?\n */\ncljs.tools.reader.garg = (function cljs$tools$reader$garg(n){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([((((-1) === n))?\"rest\":[\"p\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(n)].join('')),\"__\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id()),\"#\"].join(''));\n});\ncljs.tools.reader.read_fn = (function cljs$tools$reader$read_fn(rdr,_,opts,pending_forms){\nif(cljs.core.truth_(cljs.tools.reader.arg_env)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\"Nested #()s are not allowed\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"type\",\"type\",1174270348),new cljs.core.Keyword(null,\"illegal-state\",\"illegal-state\",-1519851182)], null));\n} else {\n}\n\nvar arg_env_orig_val__32717 = cljs.tools.reader.arg_env;\nvar arg_env_temp_val__32718 = cljs.core.sorted_map();\n(cljs.tools.reader.arg_env = arg_env_temp_val__32718);\n\ntry{var form = (function (){var G__32719 = (function (){var G__32726 = rdr;\ncljs.tools.reader.reader_types.unread(G__32726,\"(\");\n\nreturn G__32726;\n})();\nvar G__32720 = true;\nvar G__32721 = null;\nvar G__32722 = opts;\nvar G__32723 = pending_forms;\nreturn (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 ? cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(G__32719,G__32720,G__32721,G__32722,G__32723) : cljs.tools.reader.read_STAR_.call(null,G__32719,G__32720,G__32721,G__32722,G__32723));\n})();\nvar rargs = cljs.core.rseq(cljs.tools.reader.arg_env);\nvar args = ((rargs)?(function (){var higharg = cljs.core.key(cljs.core.first(rargs));\nvar args = (function (){var i = (1);\nvar args = cljs.core.transient$(cljs.core.PersistentVector.EMPTY);\nwhile(true){\nif((i > higharg)){\nreturn cljs.core.persistent_BANG_(args);\n} else {\nvar G__32991 = (i + (1));\nvar G__32992 = cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(args,(function (){var or__4185__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.arg_env,i);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.tools.reader.garg(i);\n}\n})());\ni = G__32991;\nargs = G__32992;\ncontinue;\n}\nbreak;\n}\n})();\nvar args__$1 = (cljs.core.truth_(cljs.tools.reader.arg_env.call(null,(-1)))?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(args,new cljs.core.Symbol(null,\"&\",\"&\",-2144855648,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.arg_env.call(null,(-1))], 0)):args);\nreturn args__$1;\n})():cljs.core.PersistentVector.EMPTY);\nreturn (new cljs.core.List(null,new cljs.core.Symbol(null,\"fn*\",\"fn*\",-752876845,null),(new cljs.core.List(null,args,(new cljs.core.List(null,form,null,(1),null)),(2),null)),(3),null));\n}finally {(cljs.tools.reader.arg_env = arg_env_orig_val__32717);\n}});\n/**\n * Registers an argument to the arg-env