{"version":3,"file":"app-main.68169c532206cc15.js","sources":["webpack:///./components/Popover/Popover.module.css?2ebc","webpack:///./css/admin.module.css?aeed","webpack:///./css/components/buttons.module.css?c493","webpack:///./css/components/form.module.css?92fe","webpack:///./css/components/grabber.module.css?b676","webpack:///./css/components/modal.module.css?7eaa","webpack:///./css/core/animation.module.css?d3d8","webpack:///./css/core/colors.module.css?df17","webpack:///./css/core/index.css","webpack:///./css/core/transitions.module.css?4801","webpack:///./css/core/z-index.module.css?7da8","webpack:///./css/dashboard.module.css?3dff","webpack:///./css/query_builder.module.css?d22f","webpack:///./parameters/components/ParameterValueWidget.module.css?dea1","webpack:///./public/components/EmbedFrame/EmbedFrame.module.css?b3dd","webpack:///./query_builder/components/SidebarContent/SidebarContent.module.css?16c4","webpack:///./visualizations/components/Legend.module.css?5848","webpack:///../../../target/cljs_release/camel_snake_kebab/internals/alter_name.cljc","webpack:///../../../target/cljs_release/camel_snake_kebab/internals/string_separator.cljc","webpack:///../../../target/cljs_release/cljs/core.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/camel_snake_kebab/internals/string_separator.cljc","webpack:///../../../target/cljs_release/cljs/cache.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/cache.cljs","webpack:///../../../target/cljs_release/goog/base.js","webpack:///../../../target/cljs_release/goog/array/array.js","webpack:///../../../target/cljs_release/goog/structs/structs.js","webpack:///../../../target/cljs_release/goog/uri/utils.js","webpack:///../../../target/cljs_release/goog/uri/uri.js","webpack:///../../../target/cljs_release/ [synthetic:chunk_method_stubbing] ","webpack:///../../../target/cljs_release/goog/string/internal.js","webpack:///../../../target/cljs_release/goog/object/object.js","webpack:///../../../target/cljs_release/goog/string/string.js","webpack:///../../../target/cljs_release/goog/string/stringbuffer.js","webpack:///../../../target/cljs_release/malli/core.cljc","webpack:///../../../target/cljs_release/cljs/pprint.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/core.cljs","webpack:///../../../target/cljs_release/metabase/lib/schema/temporal_bucketing.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/drill_thru.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/common.cljc","webpack:///../../../target/cljs_release/metabase/types.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/aggregation.cljc","webpack:///../../../target/cljs_release/cljs/tools/reader.cljs","webpack:///../../../target/cljs_release/malli/impl/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/parameter.cljc","webpack:///../../../target/cljs_release/metabase/lib/metadata/calculation.cljc","webpack:///../../../target/cljs_release/malli/sci.cljc","webpack:///../../../target/cljs_release/cljs/spec/alpha.cljs","webpack:///../../../target/cljs_release/metabase/util/time/impl_common.cljc","webpack:///../../../target/cljs_release/malli/registry.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/info.cljc","webpack:///../../../target/cljs_release/lambdaisland/glogi.cljs","webpack:///../../../target/cljs_release/metabase/legacy_mbql/schema.cljc","webpack:///../../../target/cljs_release/malli/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/expression/temporal.cljc","webpack:///../../../target/cljs_release/cljs/core/match.cljs","webpack:///../../../target/cljs_release/cljs/math.cljs","webpack:///../../../target/cljs_release/clojure/string.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/pprint.cljs","webpack:///../../../target/cljs_release/cljs/reader.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/reader.cljs","webpack:///../../../target/cljs_release/cljs/spec/gen/alpha.cljs","webpack:///../../../target/cljs_release/clojure/walk.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/spec/alpha.cljs","webpack:///../../../target/cljs_release/clojure/set.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/spec/gen/alpha.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/tools/reader/impl/errors.cljs","webpack:///../../../target/cljs_release/cljs/tools/reader/impl/errors.cljs","webpack:///../../../target/cljs_release/cljs/tools/reader/impl/inspect.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/tools/reader.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/cljs/tools/reader/reader_types.cljs","webpack:///../../../target/cljs_release/cljs/tools/reader/reader_types.cljs","webpack:///../../../target/cljs_release/goog/labs/useragent/util.js","webpack:///../../../target/cljs_release/goog/labs/useragent/browser.js","webpack:///../../../target/cljs_release/goog/labs/useragent/platform.js","webpack:///../../../target/cljs_release/goog/string/stringformat.js","webpack:///../../../target/cljs_release/goog/log/log.js","webpack:///../../../target/cljs_release/goog/labs/useragent/engine.js","webpack:///../../../target/cljs_release/goog/useragent/useragent.js","webpack:///../../../target/cljs_release/goog/useragent/product.js","webpack:///../../../target/cljs_release/clojure/data.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/clojure/data.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/clojure/string.cljs","webpack:///../../../target/cljs_release/metabase/lib/schema/expression.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/metadata.cljc","webpack:///../../../target/cljs_release/camel_snake_kebab/internals/misc.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/clojure/walk.cljs","webpack:///../../../target/cljs_release/inflections/core.cljc","webpack:///../../../target/cljs_release/metabase/legacy_mbql/schema/helpers.cljc","webpack:///../../../target/cljs_release/lambdaisland/glogi/print.cljs","webpack:///../../../target/cljs_release/lambdaisland/glogi/console.cljs","webpack:///../../../target/cljs_release/goog/debug/error.js","webpack:///../../../target/cljs_release/shadow/cljs/constants/lambdaisland/glogi.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/lambdaisland/glogi/print.cljs","webpack:///../../../target/cljs_release/malli/impl/regex.cljc","webpack:///../../../target/cljs_release/borkdude/dynaload.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/core.cljc","webpack:///../../../target/cljs_release/malli/destructure.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/destructure.cljc","webpack:///../../../target/cljs_release/malli/error.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/error.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/impl/regex.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/impl/util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/sci.cljc","webpack:///../../../target/cljs_release/malli/transform.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/transform.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/malli/util.cljc","webpack:///../../../target/cljs_release/metabase/legacy_mbql/js.cljs","webpack:///../../../target/cljs_release/metabase/legacy_mbql/normalize.cljc","webpack:///../../../target/cljs_release/medley/core.cljc","webpack:///../../../target/cljs_release/metabase/lib/normalize.cljc","webpack:///../../../target/cljs_release/metabase/lib/util/match/impl.cljc","webpack:///../../../target/cljs_release/metabase/legacy_mbql/util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/legacy_mbql/normalize.cljc","webpack:///../../../target/cljs_release/metabase/legacy_mbql/predicates.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/legacy_mbql/schema/helpers.cljc","webpack:///../../../target/cljs_release/metabase/util/format.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/legacy_mbql/schema.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/legacy_mbql/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/aggregation.cljc","webpack:///../../../target/cljs_release/metabase/lib/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/binning.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/binning.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/binning/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/binning/util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/breakout.cljc","webpack:///../../../target/cljs_release/metabase/lib/breakout.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/cache.cljc","webpack:///../../../target/cljs_release/metabase/lib/cache.cljc","webpack:///../../../target/cljs_release/metabase/lib/metadata/ident.cljc","webpack:///../../../target/cljs_release/metabase/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/metadata.cljc","webpack:///../../../target/cljs_release/metabase/lib/join/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/card.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/card.cljc","webpack:///../../../target/cljs_release/metabase/lib/column_group.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/column_group.cljc","webpack:///../../../target/cljs_release/metabase/lib/join.cljc","webpack:///../../../target/cljs_release/metabase/lib/common.cljc","webpack:///../../../target/cljs_release/metabase/lib/options.cljc","webpack:///../../../target/cljs_release/metabase/lib/ref.cljc","webpack:///../../../target/cljs_release/metabase/lib/convert.cljc","webpack:///../../../target/cljs_release/metabase/util/malli/registry.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/convert.cljc","webpack:///../../../target/cljs_release/metabase/lib/temporal_bucket.cljc","webpack:///../../../target/cljs_release/metabase/lib/expression.cljc","webpack:///../../../target/cljs_release/metabase/lib/query.cljc","webpack:///../../../target/cljs_release/metabase/lib/equality.cljc","webpack:///../../../target/cljs_release/metabase/lib/filter.cljc","webpack:///../../../target/cljs_release/metabase/lib/database.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/id.cljc","webpack:///../../../target/cljs_release/metabase/lib/field.cljc","webpack:///../../../target/cljs_release/metabase/lib/stage.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/column_extract.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/pivot.cljc","webpack:///../../../target/cljs_release/metabase/lib/order_by.cljc","webpack:///../../../target/cljs_release/metabase/lib/native.cljc","webpack:///../../../target/cljs_release/metabase/lib/fe_util.cljc","webpack:///../../../target/cljs_release/metabase/util/time.cljc","webpack:///../../../target/cljs_release/metabase/lib/swap.cljc","webpack:///../../../target/cljs_release/metabase/lib/core.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/drill_thru/automatic_insights.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/automatic_insights.cljc","webpack:///../../../target/cljs_release/metabase/lib/extraction.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/column_filter.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/combine_columns.cljc","webpack:///../../../target/cljs_release/metabase/lib/underlying.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/common.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/distribution.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/fk_details.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/fk_filter.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/underlying_records.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/pk.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/zoom.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/object_details.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/quick_filter.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/sort.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/summarize_column.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/summarize_column_by_time.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/zoom_in_bins.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/zoom_in_geographic.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru/zoom_in_timeseries.cljc","webpack:///../../../target/cljs_release/metabase/lib/drill_thru.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/drill_thru.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/drill_thru/pivot.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/drill_thru/quick_filter.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/drill_thru/sort.cljc","webpack:///../../../target/cljs_release/metabase/lib/metadata/protocols.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/drill_thru/zoom_in_geographic.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/equality.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/expression.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/fe_util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/field.cljc","webpack:///../../../target/cljs_release/metabase/util/time/impl.cljs","webpack:///../../../target/cljs_release/metabase/lib/filter/operator.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/filter.cljc","webpack:///../../../target/cljs_release/metabase/lib/filter/update.cljc","webpack:///../../../target/cljs_release/metabase/lib/hierarchy.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/join.cljc","webpack:///../../../target/cljs_release/nano_id/core.cljc","webpack:///../../../target/cljs_release/metabase/lib/types/isa.cljc","webpack:///../../../target/cljs_release/metabase/lib/js/metadata.cljs","webpack:///../../../target/cljs_release/metabase/lib/js.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/js.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/js/metadata.cljs","webpack:///../../../target/cljs_release/metabase/lib/limit.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/metadata/calculation.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/metadata.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/metadata/protocols.cljc","webpack:///../../../target/cljs_release/metabase/lib/metric.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/native.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/normalize.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/query.cljc","webpack:///../../../target/cljs_release/metabase/lib/remove_replace.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/remove_replace.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/actions.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/actions.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/aggregation.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/binning.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/binning.cljc","webpack:///../../../target/cljs_release/metabase/util/i18n.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/common.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/template_tag.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/join.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/drill_thru.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/expression/arithmetic.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/expression/arithmetic.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/expression/conditional.cljc","webpack:///../../../target/cljs_release/metabase/lib/dispatch.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/expression.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/expression/string.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/expression/string.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/expression/temporal.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/expression/window.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/expression/window.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/extraction.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/extraction.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/filter.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/filter.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/id.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/info.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/join.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/literal.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/literal.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/mbql_clause.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/mbql_clause.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/metadata.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/order_by.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/order_by.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/parameter.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/ref.cljc","webpack:///../../../target/cljs_release/metabase/lib/schema/ref.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/template_tag.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/temporal_bucketing.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/schema/util.cljc","webpack:///../../../target/cljs_release/metabase/lib/segment.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/stage.cljc","webpack:///../../../target/cljs_release/metabase/lib/table.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/temporal_bucket.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/types/constants.cljc","webpack:///../../../target/cljs_release/metabase/lib/types/constants.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/underlying.cljc","webpack:///../../../target/cljs_release/metabase/lib/database/methods.cljc","webpack:///../../../target/cljs_release/nano_id/random.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/lib/util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/models/dashboard/constants.cljc","webpack:///../../../target/cljs_release/metabase/models/dashboard/constants.cljc","webpack:///../../../target/cljs_release/metabase/models/params/shared.cljc","webpack:///../../../target/cljs_release/metabase/types/coercion_hierarchies.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/types/coercion_hierarchies.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/types.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/currency.cljc","webpack:///../../../target/cljs_release/metabase/util/currency.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/format.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/constants.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/constants.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/internal/date_formatters.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/date.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/internal/date_options.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/date.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/internal/date_builder.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/internal/date_builder.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/internal/date_formatters.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/internal/date_options.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/internal/numbers.cljs","webpack:///../../../target/cljs_release/metabase/util/formatting/internal/numbers.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/internal/numbers_core.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/internal/numbers_core.cljc","webpack:///../../../target/cljs_release/metabase/util/formatting/numbers.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/formatting/numbers.cljc","webpack:///../../../target/cljs_release/metabase/util/humanization.cljc","webpack:///../../../target/cljs_release/metabase/util/memoize/impl/bounded.cljc","webpack:///../../../target/cljs_release/metabase/util/memoize.cljc","webpack:///../../../target/cljs_release/metabase/util/log/capture.cljc","webpack:///../../../target/cljs_release/metabase/util/log.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/log/capture.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/log.cljs","webpack:///../../../target/cljs_release/goog/debug/console.js","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/malli/registry.cljc","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/memoize/impl/js.cljs","webpack:///../../../target/cljs_release/metabase/util/memoize/impl/js.cljs","webpack:///../../../target/cljs_release/tailrecursion/priority_map.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/time/impl.cljs","webpack:///../../../target/cljs_release/shadow/cljs/constants/metabase/util/time/impl_common.cljc","webpack:///../../../target/cljs_release/metabase/xrays/domain_entities/converters.cljs","webpack:///../../../target/cljs_release/metabase/xrays/domain_entities/queries/util.cljc","webpack:///../../../target/cljs_release/no/en/core.cljc","webpack:///../../../target/cljs_release/shadow.js.shim.module$crc_32.js","webpack:///../../../target/cljs_release/shadow.js.shim.module$moment.js","webpack:///../../../target/cljs_release/shadow.js.shim.module$moment_timezone.js","webpack:///../../../target/cljs_release/shadow.js.shim.module$ttag.js","webpack:///../../../enterprise/frontend/src/embedding-sdk/config.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/lib/is-localhost.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/lib/log-utils.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/lib/version-utils.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/store/auth.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/store/reducer.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/store/use-sdk-selector.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/store/index.ts","webpack:///../../../enterprise/frontend/src/embedding-sdk/components/public/InteractiveDashboard/context.tsx","webpack:///../../../enterprise/frontend/src/embedding-sdk/store/selectors.ts","webpack:///../metabase-lib/metadata.ts","webpack:///../metabase-lib/aggregation.ts","webpack:///../metabase-lib/binning.ts","webpack:///../metabase-lib/query.ts","webpack:///../metabase-lib/breakout.ts","webpack:///../metabase-lib/temporal_bucket.ts","webpack:///../metabase-lib/buckets.ts","webpack:///../metabase-lib/column_types.ts","webpack:///../metabase-lib/comparison.ts","webpack:///../metabase-lib/database.ts","webpack:///../metabase-lib/drills.ts","webpack:///../metabase-lib/expression.ts","webpack:///../metabase-lib/extractions.ts","webpack:///../metabase-lib/fields.ts","webpack:///../metabase-lib/filter.ts","webpack:///../metabase-lib/internal.ts","webpack:///../metabase-lib/join.ts","webpack:///../metabase-lib/limit.ts","webpack:///../metabase-lib/metrics.ts","webpack:///../metabase-lib/native.ts","webpack:///../metabase-lib/order_by.ts","webpack:///../metabase-lib/segments.ts","webpack:///../metabase-lib/viz/display.ts","webpack:///../metabase-lib/v1/Alert/constants.ts","webpack:///../metabase-lib/v1/ValidationError/constants.ts","webpack:///../metabase-lib/v1/expressions/typeinferencer.js","webpack:///../metabase-lib/v1/queries/utils/query-time.js","webpack:///../metabase-lib/v1/Dimension.ts","webpack:///../metabase-lib/v1/DimensionOptions/DimensionOptions.ts","webpack:///./querying/parameters/utils/query.ts","webpack:///../metabase-lib/v1/Question.ts","webpack:///../metabase-lib/v1/ValidationError/ValidationError.ts","webpack:///../metabase-lib/v1/actions/utils.ts","webpack:///../metabase-lib/v1/expressions/config.ts","webpack:///../metabase-lib/v1/expressions/tokenizer.ts","webpack:///../metabase-lib/v1/metadata/Database.ts","webpack:///../metabase-lib/v1/metadata/Base.ts","webpack:///../metabase-lib/v1/metadata/Field.ts","webpack:///../metabase-lib/v1/metadata/Metadata.ts","webpack:///../metabase-lib/v1/metadata/utils/fields.ts","webpack:///../metabase-lib/v1/metadata/utils/models.ts","webpack:///../metabase-lib/v1/metadata/utils/schema.ts","webpack:///../metabase-lib/v1/parameters/constants.ts","webpack:///../metabase-lib/v1/parameters/utils/cards.ts","webpack:///../metabase-lib/v1/parameters/utils/click-behavior.ts","webpack:///../metabase-lib/v1/parameters/utils/filters.ts","webpack:///../metabase-lib/v1/parameters/utils/operators.ts","webpack:///../metabase-lib/v1/parameters/utils/parameter-fields.ts","webpack:///../metabase-lib/v1/parameters/utils/parameter-parsing.ts","webpack:///../metabase-lib/v1/parameters/utils/parameter-source.ts","webpack:///../metabase-lib/v1/parameters/utils/parameter-type.ts","webpack:///../metabase-lib/v1/parameters/utils/targets.ts","webpack:///../metabase-lib/v1/parameters/utils/template-tags.ts","webpack:///../metabase-lib/v1/queries/AtomicQuery.ts","webpack:///../metabase-lib/v1/queries/InternalQuery.ts","webpack:///../metabase-lib/v1/queries/NativeQuery.ts","webpack:///../metabase-lib/v1/queries/utils/native-query-table.ts","webpack:///../metabase-lib/v1/queries/Query.ts","webpack:///../metabase-lib/v1/queries/StructuredQuery.ts","webpack:///../metabase-lib/v1/queries/utils/column-key.ts","webpack:///../metabase-lib/v1/queries/utils/dataset.ts","webpack:///../metabase-lib/v1/queries/utils/pivot.ts","webpack:///../metabase-lib/v1/queries/utils/range-for-value.ts","webpack:///../metabase-lib/v1/references.ts","webpack:///../metabase-lib/v1/types/constants.ts","webpack:///../metabase-lib/v1/urls.ts","webpack:///../metabase-lib/v1/utils/memoize-class.ts","webpack:///../metabase-lib/v1/utils/sort-object.ts","webpack:///../metabase-lib/v1/variables/Variable/Variable.ts","webpack:///../metabase-lib/v1/variables/TemplateTagVariable/constants.ts","webpack:///../metabase-lib/v1/variables/TemplateTagVariable/TemplateTagVariable.ts","webpack:///../metabase-types/api/entity-id.ts","webpack:///../metabase-types/api/activity.ts","webpack:///../metabase-types/api/card.ts","webpack:///../metabase-types/api/collection.ts","webpack:///../metabase-types/api/performance.ts","webpack:///../metabase-types/api/notifications.ts","webpack:///../metabase-types/api/query.ts","webpack:///../metabase-types/api/search.ts","webpack:///../metabase-types/api/settings.ts","webpack:///../metabase-types/api/sorting.ts","webpack:///../metabase-types/api/visualization.ts","webpack:///../metabase-types/guards/dashboard.ts","webpack:///../metabase-types/guards/date-time.ts","webpack:///../metabase-types/guards/card.ts","webpack:///../metabase-types/guards/common.ts","webpack:///../metabase-types/guards/click-behavior.ts","webpack:///../metabase-types/guards/dom.ts","webpack:///../metabase-types/guards/react.ts","webpack:///../metabase-types/guards/parameters.ts","webpack:///../metabase-types/store/upload.ts","webpack:///./ErrorBoundary.tsx","webpack:///./actions/hooks/use-action-form/utils.ts","webpack:///./actions/hooks/use-action-form/use-action-form.ts","webpack:///./actions/components/ActionForm/ActionForm.styled.tsx","webpack:///./actions/components/ActionForm/ActionForm.tsx","webpack:///./core/components/FormRadio/FormRadio.tsx","webpack:///./actions/components/ActionFormFieldWidget/ActionFormFieldWidget.tsx","webpack:///./actions/containers/ActionPicker/ActionPicker.styled.tsx","webpack:///./actions/containers/ActionPicker/utils.ts","webpack:///./actions/containers/ActionPicker/ActionPicker.tsx","webpack:///./actions/components/ActionViz/ActionDashcardSettings.styled.tsx","webpack:///./actions/components/ActionViz/ActionParameterMapping.styled.tsx","webpack:///./actions/components/ActionViz/ActionParameterMapping.tsx","webpack:///./actions/components/ActionViz/ExplainerText/ExplainerText.styled.tsx","webpack:///./actions/components/ActionViz/ExplainerText/ExplainerText.tsx","webpack:///./actions/components/ActionViz/ActionDashcardSettings.tsx","webpack:///./actions/components/ActionViz/ActionButton.styled.tsx","webpack:///./actions/components/ActionViz/ActionButtonView.tsx","webpack:///./actions/components/ActionViz/ActionForm.styled.tsx","webpack:///./actions/components/ActionViz/ActionVizForm.tsx","webpack:///./actions/components/ActionViz/Action.tsx","webpack:///./actions/components/ActionViz/ActionViz.tsx","webpack:///./actions/components/ActionViz/utils.ts","webpack:///./actions/components/ImplicitActionIcon/ImplicitActionIcon.styled.tsx","webpack:///./actions/components/ImplicitActionIcon/ImplicitActionIcon.tsx","webpack:///./actions/containers/ActionCreator/ActionContext/ActionContext.ts","webpack:///./actions/containers/ActionCreator/ActionContext/utils.ts","webpack:///./actions/containers/ActionCreator/ActionContext/ImplicitActionContextProvider/ImplicitActionContextProvider.styled.tsx","webpack:///./actions/containers/ActionCreator/ActionContext/ImplicitActionContextProvider/ImplicitActionContextProvider.tsx","webpack:///./actions/containers/ActionCreator/ActionContext/QueryActionContextProvider/QueryActionEditor.tsx","webpack:///./actions/containers/ActionCreator/ActionContext/QueryActionContextProvider/utils.ts","webpack:///./actions/containers/ActionCreator/ActionContext/QueryActionContextProvider/QueryActionContextProvider.tsx","webpack:///./actions/containers/ActionCreator/ActionContext/ActionContextProvider.tsx","webpack:///./actions/containers/ActionCreator/ActionCreator.styled.tsx","webpack:///./actions/containers/ActionCreator/ActionCreatorHeader.styled.tsx","webpack:///./actions/containers/ActionCreator/ActionCreatorHeader.tsx","webpack:///./actions/containers/ActionCreator/utils.ts","webpack:///./actions/containers/ActionCreator/FormCreator/Description/Description.styled.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/Description/Description.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/EmptyFormPlaceholder/EmptyFormPlaceholder.styled.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/EmptyFormPlaceholder/EmptyFormPlaceholder.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/FormCreator.styled.tsx","webpack:///./actions/constants.ts","webpack:///./actions/containers/ActionCreator/FormCreator/FieldSettingsPopover.styled.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/utils.ts","webpack:///./actions/containers/ActionCreator/FormCreator/FieldSettingsPopover.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/OptionEditor.styled.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/OptionEditor.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/FieldSettingsButtons.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/FormFieldEditor/FormFieldEditor.styled.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/FormFieldEditor/FormFieldEditor.tsx","webpack:///./actions/containers/ActionCreator/FormCreator/FormCreator.tsx","webpack:///./actions/containers/ActionCreator/InlineDataReference.tsx","webpack:///./components/CopyWidget/CopyWidget.styled.tsx","webpack:///./components/CopyWidget/CopyWidget.jsx","webpack:///./actions/containers/ActionCreator/InlineActionSettings.styled.tsx","webpack:///./actions/containers/ActionCreator/InlineActionSettings.tsx","webpack:///./actions/containers/ActionCreator/ActionCreatorView.tsx","webpack:///./models/containers/FormModelPicker/FormModelPicker.tsx","webpack:///./actions/containers/ActionCreator/CreateActionForm/CreateActionForm.tsx","webpack:///./actions/containers/ActionCreator/ActionCreator.tsx","webpack:///./actions/actions.ts","webpack:///./actions/containers/ActionExecuteModal/ActionExecuteModal.tsx","webpack:///./actions/containers/ActionParametersInputForm/ActionParametersInputForm.tsx","webpack:///./actions/containers/ActionParametersInputForm/ActionParametersInputModal.tsx","webpack:///./actions/hooks/use-action-initial-values.ts","webpack:///./actions/utils.ts","webpack:///./admin/app/actions.ts","webpack:///./admin/people/components/GroupSummary.styled.tsx","webpack:///./admin/people/components/GroupSummary.jsx","webpack:///./admin/people/components/MembershipSelect/MembershipSelect.styled.tsx","webpack:///./admin/people/components/MembershipSelect/MembershipSelect.tsx","webpack:///./admin/performance/constants/complex.ts","webpack:///./admin/performance/constants/simple.ts","webpack:///./admin/performance/types.ts","webpack:///./admin/performance/utils.tsx","webpack:///./admin/permissions/constants/messages.ts","webpack:///./admin/permissions/types.ts","webpack:///./admin/permissions/utils/data-entity-id.ts","webpack:///./admin/permissions/utils/graph/data-permissions/get.ts","webpack:///./admin/permissions/utils/graph/data-permissions/has.ts","webpack:///./admin/permissions/utils/graph/data-permissions/utils.ts","webpack:///./admin/permissions/utils/graph/data-permissions/update.ts","webpack:///./admin/permissions/utils/graph/permissions-diff.ts","webpack:///./admin/permissions/utils/metadata.ts","webpack:///./admin/settings/analytics.ts","webpack:///./admin/settings/app/components/SettingsEditor/SettingsSection.tsx","webpack:///./admin/settings/components/widgets/RedirectWidget/RedirectWidget.tsx","webpack:///./admin/settings/components/EmbeddingSettings/InteractiveEmbeddingSettings.tsx","webpack:///./admin/settings/components/SettingHeader/SettingHeader.styled.tsx","webpack:///./admin/settings/components/SettingsSetting.styled.tsx","webpack:///./admin/settings/components/SettingsSetting.jsx","webpack:///./admin/settings/components/widgets/SettingNumber.jsx","webpack:///./admin/settings/components/widgets/SettingPassword.jsx","webpack:///./admin/settings/components/widgets/deprecated/SettingSelect.jsx","webpack:///./admin/settings/components/widgets/SettingRadio.jsx","webpack:///./admin/settings/components/widgets/SettingText.jsx","webpack:///./admin/settings/components/widgets/SettingInput/SettingInput.styled.tsx","webpack:///./admin/settings/components/widgets/SettingInput/SettingInput.tsx","webpack:///./admin/settings/components/widgets/SettingToggle.tsx","webpack:///./admin/settings/components/Email/SMTPConnectionForm.tsx","webpack:///./admin/settings/components/CloudPanel/CloudPanel.styled.tsx","webpack:///./admin/settings/components/CloudPanel/MigrationCreationError.tsx","webpack:///./admin/settings/components/CloudPanel/utils.ts","webpack:///./admin/settings/components/CloudPanel/MigrationError.tsx","webpack:///./admin/settings/components/CloudPanel/MigrationInProgress.tsx","webpack:///./admin/settings/components/CloudPanel/MigrationStart.tsx","webpack:///./admin/settings/components/CloudPanel/MigrationSuccess.tsx","webpack:///./admin/settings/components/Email/BccToggleWidget.tsx","webpack:///./admin/settings/components/Email/SMTPConnectionCard.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/EmbeddingOption.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/LinkButton/LinkButton.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/SwitchWithSetByEnvVar/SwitchWithSetByEnvVar.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/EmbeddingOption.module.css?4ada","webpack:///./admin/settings/components/widgets/EmbeddingOption/StaticEmbeddingOptionCard/StaticEmbeddingIcon.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/StaticEmbeddingOptionCard/StaticEmbeddingOptionCard.tsx","webpack:///./admin/settings/components/EmbeddingSettings/EmbeddingSdkLegaleseModal/EmbeddingSdkLegaleseModal.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/EmbeddingSdkOptionCard/SdkIcon.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/EmbeddingSdkOptionCard/EmbeddingSdkOptionCard.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/InteractiveEmbeddingOptionCard/InteractiveEmbeddingIcon.tsx","webpack:///./admin/settings/components/widgets/EmbeddingOption/InteractiveEmbeddingOptionCard/InteractiveEmbeddingOptionCard.tsx","webpack:///./admin/settings/components/widgets/PublicLinksListing/PublicLinksListing.tsx","webpack:///./admin/settings/components/widgets/PublicLinksListing/EmbeddedResources.tsx","webpack:///./admin/settings/components/widgets/SecretKeyWidget/SecretKeyWidget.styled.tsx","webpack:///./admin/settings/components/widgets/SecretKeyWidget/SecretKeyWidget.tsx","webpack:///./admin/settings/components/EmbeddingSettings/StaticEmbeddingSettings.tsx","webpack:///./admin/settings/components/widgets/SettingTextInput/SettingTextInput.tsx","webpack:///./admin/settings/components/EmbeddingSettings/EmbeddingSdkSettings/EmbeddingSdkSettings.tsx","webpack:///./admin/settings/components/SettingsLicense/ExplorePlansIllustration.tsx","webpack:///./admin/settings/components/SettingsLicense/SettingsLicense.styled.tsx","webpack:///./admin/settings/components/SettingsLicense/SettingsLicense.tsx","webpack:///./admin/settings/components/SettingsUpdatesForm/VersionUpdateNotice/VersionUpdateNotice.styled.tsx","webpack:///./admin/settings/components/SettingsUpdatesForm/VersionUpdateNotice/VersionUpdateNotice.tsx","webpack:///./admin/settings/components/SettingsUpdatesForm/SettingsUpdatesForm.tsx","webpack:///./admin/settings/components/UploadSettings/UploadSetting.styled.tsx","webpack:///./admin/settings/components/UploadSettings/utils.ts","webpack:///./admin/settings/components/UploadSettings/UploadSettingsForm.tsx","webpack:///./admin/settings/components/widgets/CustomGeoJSONWidget.jsx","webpack:///./admin/settings/components/widgets/FormattingWidget.jsx","webpack:///./admin/settings/components/widgets/HttpsOnlyWidget.jsx","webpack:///./admin/settings/components/widgets/SettingCommaDelimitedInput.jsx","webpack:///./components/InputWithSelectPrefix/InputWithSelectPrefix.styled.tsx","webpack:///./components/InputWithSelectPrefix/InputWithSelectPrefix.jsx","webpack:///./admin/settings/components/widgets/SiteUrlWidget.jsx","webpack:///./admin/settings/notifications/utils.ts","webpack:///./admin/settings/notifications/WebhookForm.tsx","webpack:///./admin/settings/notifications/CreateWebhookModal.tsx","webpack:///./admin/settings/notifications/EditWebhookModal.tsx","webpack:///./admin/settings/notifications/NotificationSettings.tsx","webpack:///./admin/settings/setup/components/SetupCheckList/SetupCheckList.styled.tsx","webpack:///./admin/settings/setup/components/SetupCheckList/SetupCheckList.jsx","webpack:///./admin/settings/slack/actions.ts","webpack:///./admin/settings/slack/components/SlackAppsLink/SlackAppsLink.styled.tsx","webpack:///./admin/settings/slack/components/SlackAppsLink/SlackAppsLink.tsx","webpack:///./admin/settings/slack/components/SlackBadge/SlackBadge.styled.tsx","webpack:///./admin/settings/slack/components/SlackBadge/SlackBadge.tsx","webpack:///./admin/settings/slack/components/SlackSetup/SlackSetup.styled.tsx","webpack:///./admin/settings/slack/components/SlackSetup/SlackSetup.tsx","webpack:///./admin/settings/slack/components/SlackForm/SlackForm.styled.tsx","webpack:///./admin/settings/slack/components/SlackForm/SlackForm.tsx","webpack:///./admin/settings/slack/components/SlackSetupForm/SlackSetupForm.tsx","webpack:///./admin/settings/slack/containers/SlackSetupForm/SlackSetupForm.tsx","webpack:///./admin/settings/slack/containers/SlackSetup/SlackSetup.tsx","webpack:///./admin/settings/slack/components/SlackDeleteModal/SlackDeleteModal.tsx","webpack:///./admin/settings/slack/components/SlackStatus/SlackStatus.styled.tsx","webpack:///./admin/settings/slack/containers/SlackStatusForm/SlackStatusForm.tsx","webpack:///./admin/settings/slack/components/SlackStatusForm/SlackStatusForm.tsx","webpack:///./admin/settings/slack/containers/SlackStatus/SlackStatus.tsx","webpack:///./admin/settings/slack/components/SlackStatus/SlackStatus.tsx","webpack:///./admin/settings/slack/components/SlackSettings/SlackSettings.tsx","webpack:///./admin/settings/slack/containers/SlackSettings/SlackSettings.tsx","webpack:///./admin/settings/selectors/selectors.js","webpack:///./admin/settings/components/Email/SettingsEmailForm.tsx","webpack:///./admin/settings/components/UploadSettings/UploadSettings.tsx","webpack:///./admin/settings/components/widgets/PublicLinksListing/PublicResources.tsx","webpack:///./admin/settings/components/EmbeddingSettings/EmbeddingSettings.tsx","webpack:///./admin/settings/components/CloudPanel/CloudPanel.tsx","webpack:///./admin/settings/selectors/typed-selectors.ts","webpack:///./admin/settings/slack/selectors.ts","webpack:///./admin/upsells/components/UpsellWrapper.tsx","webpack:///./admin/upsells/components/Upsells.styled.tsx","webpack:///./admin/upsells/components/UpsellGem.tsx","webpack:///./admin/upsells/components/analytics.ts","webpack:///./admin/upsells/components/use-upsell-link.ts","webpack:///./admin/upsells/components/UpsellPill.tsx","webpack:///./admin/upsells/components/UpsellCard.module.css?a90f","webpack:///./admin/upsells/components/UpsellCard.tsx","webpack:///./admin/upsells/UpsellSSO.tsx","webpack:///./admin/upsells/UpsellCacheConfig.tsx","webpack:///./admin/upsells/UpsellHosting.tsx","webpack:///./api/query.ts","webpack:///./api/api.ts","webpack:///./api/bug-report.ts","webpack:///./api/channel.ts","webpack:///./api/entity-id.ts","webpack:///./api/action.ts","webpack:///./api/activity.ts","webpack:///./api/alert.ts","webpack:///./api/api-key.ts","webpack:///./api/automagic-dashboards.ts","webpack:///./api/bookmark.ts","webpack:///./api/card.ts","webpack:///./api/cloud-migration.ts","webpack:///./api/collection.ts","webpack:///./api/dashboard.ts","webpack:///./api/database.ts","webpack:///./api/dataset.ts","webpack:///./api/field.ts","webpack:///./api/login-history.ts","webpack:///./api/model-index.ts","webpack:///./api/moderation.ts","webpack:///./api/parameters.ts","webpack:///./api/permission.ts","webpack:///./api/persist.ts","webpack:///./api/revision.ts","webpack:///./api/search.ts","webpack:///./api/segment.ts","webpack:///./api/session.ts","webpack:///./api/snippet.ts","webpack:///./api/subscription.ts","webpack:///./api/table.ts","webpack:///./api/task.ts","webpack:///./api/timeline.ts","webpack:///./api/timeline-event.ts","webpack:///./api/user-key-value.ts","webpack:///./api/user.ts","webpack:///./api/tags/constants.ts","webpack:///./api/tags/utils.ts","webpack:///./archive/utils.ts","webpack:///./lib/auth.js","webpack:///./auth/actions.ts","webpack:///./auth/components/AuthButton/AuthButton.styled.tsx","webpack:///./auth/components/AuthButton/AuthButton.tsx","webpack:///./auth/components/GoogleButton/GoogleButton.styled.tsx","webpack:///./auth/components/GoogleButton/GoogleButton.tsx","webpack:///./auth/components/PasswordButton/PasswordButton.tsx","webpack:///./core/components/FormCheckBox/FormCheckBox.tsx","webpack:///./auth/components/LoginForm/LoginForm.tsx","webpack:///./auth/components/PasswordPanel/PasswordPanel.styled.tsx","webpack:///./auth/components/PasswordPanel/PasswordPanel.tsx","webpack:///./auth/selectors.ts","webpack:///./collections/containers/FormCollectionPicker/FormCollectionPicker.tsx","webpack:///./collections/utils.ts","webpack:///./common/components/CollectionPicker/components/CollectionItemList.tsx","webpack:///./common/components/CollectionPicker/components/DashboardItemList.tsx","webpack:///./common/components/CollectionPicker/components/PersonalCollectionItemList.tsx","webpack:///./common/components/CollectionPicker/components/RootItemList.tsx","webpack:///./common/components/CollectionPicker/components/CollectionItemPickerResolver.tsx","webpack:///./common/components/CollectionPicker/hooks.ts","webpack:///./common/components/CollectionPicker/components/CollectionPicker.tsx","webpack:///./common/components/CollectionPicker/components/NewCollectionDialog.tsx","webpack:///./common/components/CollectionPicker/components/CollectionPickerModal.tsx","webpack:///./common/components/CollectionPicker/utils.ts","webpack:///./common/components/DashboardPicker/components/NewDashboardDialog.tsx","webpack:///./common/components/DashboardPicker/components/DashboardPicker.tsx","webpack:///./common/components/DashboardPicker/components/DashboardPickerModal.tsx","webpack:///./common/components/DashboardPicker/utils.ts","webpack:///./common/components/EntityPicker/components/LoadingSpinner/LoadingSpinner.tsx","webpack:///./common/components/EntityPicker/hooks/use-log-recent-item.tsx","webpack:///./common/components/EntityPicker/components/AutoScrollBox/AutoScrollBox.styled.tsx","webpack:///./common/components/EntityPicker/components/AutoScrollBox/AutoScrollBox.tsx","webpack:///./common/components/EntityPicker/constants.ts","webpack:///./common/components/EntityPicker/utils.ts","webpack:///./common/components/EntityPicker/hooks/use-scoped-search-results.ts","webpack:///./common/components/EntityPicker/components/ResultItem/ResultItem.styled.tsx","webpack:///./common/components/EntityPicker/components/ResultItem/ResultItem.tsx","webpack:///./common/components/EntityPicker/components/RecentsTab/utils.ts","webpack:///./common/components/EntityPicker/components/RecentsTab/GroupedRecentsList.tsx","webpack:///./common/components/EntityPicker/components/RecentsTab/RecentsTab.tsx","webpack:///./components/VirtualizedList/VariableHeightVirtualizedList.tsx","webpack:///./common/components/EntityPicker/components/SearchTab/SearchResults.tsx","webpack:///./common/components/EntityPicker/components/SearchTab/SearchTab.tsx","webpack:///./common/components/EntityPicker/components/EntityPickerModal/ButtonBar.tsx","webpack:///./common/components/EntityPicker/components/EntityPickerModal/EntityPickerModal.styled.tsx","webpack:///./common/components/EntityPicker/components/EntityPickerModal/TabsView.tsx","webpack:///./common/components/EntityPicker/components/EntityPickerModal/EntityPickerModal.tsx","webpack:///./common/components/EntityPicker/components/ItemList/ItemList.styled.tsx","webpack:///./common/components/EntityPicker/components/ItemList/ItemList.tsx","webpack:///./common/components/EntityPicker/components/NestedItemPicker/NestedItemPicker.styled.tsx","webpack:///./common/components/EntityPicker/components/NestedItemPicker/utils.ts","webpack:///./common/components/EntityPicker/components/NestedItemPicker/NestedItemPicker.tsx","webpack:///./common/components/ExportSettingsWidget/ExportSettingsWidget.tsx","webpack:///./common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.styled.tsx","webpack:///./common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.tsx","webpack:///./common/components/QueryColumnPicker/BucketPickerPopover/BinningStrategyPickerPopover.tsx","webpack:///./common/components/QueryColumnPicker/BucketPickerPopover/TemporalBucketPickerPopover.tsx","webpack:///./common/components/QueryColumnPicker/BucketPickerPopover/BucketPickerPopover.tsx","webpack:///./common/components/QueryColumnPicker/QueryColumnPicker.module.css?4ebd","webpack:///./common/components/QueryColumnPicker/QueryColumnPicker.styled.tsx","webpack:///./common/components/QueryColumnPicker/QueryColumnPicker.tsx","webpack:///./common/components/QuestionPicker/utils.ts","webpack:///./common/components/QuestionPicker/components/QuestionPicker.tsx","webpack:///./common/components/QuestionPicker/components/QuestionPickerModal.tsx","webpack:///./common/hooks/entity-framework/use-entity-list-query/use-entity-list-query.ts","webpack:///./common/hooks/entity-framework/use-action-list-query/use-action-list-query.ts","webpack:///./common/hooks/entity-framework/use-bookmark-list-query/use-bookmark-list-query.ts","webpack:///./common/hooks/entity-framework/use-entity-query/use-entity-query.ts","webpack:///./common/hooks/entity-framework/use-collection-query/use-collection-query.ts","webpack:///./common/hooks/entity-framework/use-dashboard-query/use-dashboard-query.ts","webpack:///./common/hooks/entity-framework/use-database-list-query/use-database-list-query.ts","webpack:///./common/hooks/entity-framework/use-database-query/use-database-query.ts","webpack:///./common/hooks/entity-framework/use-group-list-query/use-group-list-query.ts","webpack:///./common/hooks/entity-framework/use-question-list-query/use-question-list-query.ts","webpack:///./common/hooks/entity-framework/use-question-query/use-question-query.ts","webpack:///./common/hooks/entity-framework/use-revision-list-query/use-revision-list-query.ts","webpack:///./common/hooks/entity-framework/use-search-list-query/use-search-list-query.ts","webpack:///./common/hooks/entity-framework/use-table-list-query/use-table-list-query.ts","webpack:///./common/hooks/entity-framework/use-table-query/use-table-query.ts","webpack:///./common/hooks/entity-framework/use-user-list-query/use-user-list-query.ts","webpack:///./common/hooks/use-docs-url/use-docs-url.ts","webpack:///./common/hooks/use-notification-channels/use-notification-channels.ts","webpack:///./common/hooks/use-temp-storage/use-temp-storage.ts","webpack:///./common/hooks/use-url-with-utm/use-url-with-utm.ts","webpack:///./common/hooks/use-has-token-feature/use-has-token-feature.ts","webpack:///./common/hooks/use-setting/use-setting.ts","webpack:///./common/utils/column-groups.ts","webpack:///./common/utils/columns.ts","webpack:///./common/utils/doNotForwardProps.ts","webpack:///./common/utils/model-names.ts","webpack:///./common/utils/plan.ts","webpack:///./components/ActionButton/ActionButton.styled.tsx","webpack:///./components/ActionButton/ActionButton.jsx","webpack:///./components/AdminContentTable/AdminContentTable.jsx","webpack:///./components/Breadcrumbs/Breadcrumbs.module.css?9f2f","webpack:///./components/Breadcrumbs/Breadcrumbs.jsx","webpack:///./components/Button.styled.tsx","webpack:///./components/ButtonWithStatus/ButtonWithStatus.jsx","webpack:///./components/CollapseSection/CollapseSection.styled.tsx","webpack:///./components/CollapseSection/CollapseSection.tsx","webpack:///./components/Confirm/Confirm.jsx","webpack:///./components/ConfirmContent/ConfirmContent.tsx","webpack:///./common/utils/keyboard.ts","webpack:///./components/CopyButton/CopyButton.module.css?1c0a","webpack:///./components/CopyButton/CopyButton.tsx","webpack:///./components/DashboardSelector/DashboardSelector.styled.tsx","webpack:///./components/DashboardSelector/DashboardSelector.tsx","webpack:///./components/DateTime/DateTime.tsx","webpack:///./components/DeleteModalWithConfirm/DeleteModalWithConfirm.styled.tsx","webpack:///./components/DeleteModalWithConfirm/DeleteModalWithConfirm.jsx","webpack:///./components/EmptyState/EmptyState.styled.tsx","webpack:///./components/EmptyState/EmptyState.tsx","webpack:///./components/EntityMenuItem/EntityMenuItem.styled.tsx","webpack:///./components/EntityMenuItem/EntityMenuItem.tsx","webpack:///./components/EntityMenuTrigger/EntityMenuTrigger.styled.ts","webpack:///./components/EntityMenuTrigger/EntityMenuTrigger.tsx","webpack:///./components/EntityMenu/EntityMenu.jsx","webpack:///./components/ErrorDetails/ErrorDetails.styled.tsx","webpack:///./components/ErrorDetails/ErrorBox.tsx","webpack:///./components/ErrorDetails/ErrorDetails.tsx","webpack:///./components/ErrorMessage/ErrorMessage.tsx","webpack:///./components/ErrorPages/DiagnosticCheckboxes.tsx","webpack:///./components/ErrorPages/BugReportModal.tsx","webpack:///./components/ErrorPages/DownloadDiagnosticModal.tsx","webpack:///./components/ErrorPages/utils.ts","webpack:///./components/ErrorPages/use-error-info.ts","webpack:///./components/ErrorPages/ErrorDiagnosticModal.tsx","webpack:///./components/ErrorPages/analytics.ts","webpack:///./components/ErrorPages/ErrorPages.styled.tsx","webpack:///./components/ErrorPages/ErrorPages.tsx","webpack:///./components/EventSandbox/EventSandbox.tsx","webpack:///./components/ExplicitSize/ExplicitSize.tsx","webpack:///./components/FieldSet.tsx","webpack:///./components/IconButtonWrapper/IconButtonWrapper.tsx","webpack:///./components/InputBlurChange/InputBlurChange.tsx","webpack:///./components/LastEditInfoLabel/LastEditInfoLabel.tsx","webpack:///./components/LeaveConfirmationModal/LeaveConfirmationModalContent.tsx","webpack:///./components/LeaveConfirmationModal/LeaveConfirmationModal.tsx","webpack:///./components/ListSearchField/ListSearchField.tsx","webpack:///./components/LoadingAndErrorWrapper/DelayedLoadingAndErrorWrapper.tsx","webpack:///./components/LoadingAndErrorWrapper/LoadingAndErrorWrapper.tsx","webpack:///./components/LoadingSpinner/LoadingSpinner.styled.tsx","webpack:///./components/LoadingSpinner/LoadingSpinner.tsx","webpack:///./components/MetadataInfo/ColumnFingerprintInfo/CategoryFingerprint.styled.tsx","webpack:///./components/MetadataInfo/ColumnFingerprintInfo/CategoryFingerprint.jsx","webpack:///./components/MetadataInfo/ColumnFingerprintInfo/DateTimeFingerprint.tsx","webpack:///./components/MetadataInfo/ColumnFingerprintInfo/NumberFingerprint.tsx","webpack:///./components/MetadataInfo/ColumnFingerprintInfo/ColumnFingerprintInfo.tsx","webpack:///./components/MetadataInfo/SemanticTypeLabel/SemanticTypeLabel.tsx","webpack:///./components/MetadataInfo/ColumnInfo/ColumnInfo.styled.tsx","webpack:///./components/MetadataInfo/ColumnInfo/ColumnInfo.tsx","webpack:///./components/MetadataInfo/ColumnInfoIcon/ColumnInfoIcon.tsx","webpack:///./components/MetadataInfo/InfoIcon/InfoIcon.styled.tsx","webpack:///./components/MetadataInfo/MetadataInfo.styled.tsx","webpack:///./components/MetadataInfo/MetadataInfo.module.css?5d43","webpack:///./components/MetadataInfo/MetadataInfo.tsx","webpack:///./components/MetadataInfo/Popover/Popover.styled.tsx","webpack:///./components/MetadataInfo/Popover/Popover.tsx","webpack:///./components/MetadataInfo/TableInfo/ColumnCount.tsx","webpack:///./components/MetadataInfo/TableLabel/TableLabel.styled.tsx","webpack:///./components/MetadataInfo/TableInfo/ConnectedTables.styled.tsx","webpack:///./components/MetadataInfo/TableLabel/TableLabel.tsx","webpack:///./components/MetadataInfo/TableInfo/ConnectedTables.tsx","webpack:///./components/MetadataInfo/TableInfo/TableInfo.styled.tsx","webpack:///./components/MetadataInfo/TableInfo/TableInfo.tsx","webpack:///./components/MetadataInfo/TableInfoPopover/TableInfoPopover.tsx","webpack:///./components/MetadataInfo/TableInfoIcon/TableInfoIcon.tsx","webpack:///./components/Modal/MaybeOnClickOutsideWrapper.tsx","webpack:///./components/Modal/utils.tsx","webpack:///./components/SandboxedPortal/SandboxedPortal.tsx","webpack:///./components/Modal/WindowModal.tsx","webpack:///./components/Modal/Modal.tsx","webpack:///./components/ModalContent/ModalContent.styled.ts","webpack:///./components/ModalContent/ModalHeader.tsx","webpack:///./components/ModalContent/ModalContent.tsx","webpack:///./components/ModalWithTrigger/ModalWithTrigger.jsx","webpack:///./components/OnClickOutsideWrapper/OnClickOutsideWrapper.jsx","webpack:///./components/PaginationControls/PaginationControls.tsx","webpack:///./components/Popover/SizeToFitModifier.ts","webpack:///./components/Popover/TippyPopover.tsx","webpack:///./components/PopoverWithTrigger/ControlledPopoverWithTrigger.styled.tsx","webpack:///./components/PopoverWithTrigger/ControlledPopoverWithTrigger.tsx","webpack:///./components/PopoverWithTrigger/TippyPopoverWithTrigger.tsx","webpack:///./components/Schedule/constants.ts","webpack:///./components/SegmentedControl/SegmentedControl.styled.tsx","webpack:///./components/SegmentedControl/SegmentedControl.tsx","webpack:///./components/SchedulePicker/SchedulePicker.styled.tsx","webpack:///./components/SchedulePicker/SchedulePicker.tsx","webpack:///./components/SelectList/SelectListItem.styled.tsx","webpack:///./components/SelectList/BaseSelectListItem.tsx","webpack:///./components/SelectList/SelectListItem.tsx","webpack:///./components/SelectList/SelectList.tsx","webpack:///./components/TokenFieldItem/TokenFieldItem.styled.ts","webpack:///./components/TokenField/TokenField.module.css?8bda","webpack:///./components/TokenField/TokenField.styled.tsx","webpack:///./components/TokenField/TokenField.tsx","webpack:///./components/TokenField/utils.ts","webpack:///./components/ToolbarButton/ToolbarButton.tsx","webpack:///./components/Triggerable/Triggerable.jsx","webpack:///./components/ViewFooterButton/ViewFooterButton.tsx","webpack:///./components/errors/NoDataError.tsx","webpack:///./components/errors/NoObjectError.tsx","webpack:///./components/tree/TreeNode.styled.tsx","webpack:///./components/tree/TreeNode.tsx","webpack:///./components/tree/TreeNodeList.styled.tsx","webpack:///./components/tree/TreeNodeList.tsx","webpack:///./components/tree/utils.tsx","webpack:///./components/tree/Tree.tsx","webpack:///./containers/CollectionName.jsx","webpack:///./containers/SchedulePicker.tsx","webpack:///./containers/SnippetCollectionName.tsx","webpack:///./core/components/Alert/Alert.styled.tsx","webpack:///./core/components/Alert/Alert.tsx","webpack:///./core/components/BookmarkToggle/BookmarkToggle.styled.tsx","webpack:///./core/components/BookmarkToggle/BookmarkToggle.tsx","webpack:///./css/core/spacing.module.css?f4e3","webpack:///./core/components/Button/Button.styled.tsx","webpack:///./core/components/Button/Button.tsx","webpack:///./core/components/CheckBox/CheckBox.styled.tsx","webpack:///./core/components/CheckBox/CheckBox.tsx","webpack:///./core/components/CheckBox/utils.ts","webpack:///./core/components/CheckBox/constants.ts","webpack:///./core/components/ColorPill/ColorPill.module.css?58ed","webpack:///./core/components/ColorPill/ColorPill.tsx","webpack:///./core/components/ColorSelector/ColorSelectorPopover.styled.tsx","webpack:///./core/components/ColorSelector/ColorSelectorPopover.tsx","webpack:///./core/components/ColorSelector/ColorSelector.tsx","webpack:///./core/components/DragDropContext/DragDropContext.tsx","webpack:///./core/components/EditableText/EditableText.styled.tsx","webpack:///./core/components/EditableText/EditableText.tsx","webpack:///./core/components/Ellipsified/Ellipsified.tsx","webpack:///./core/components/ExternalLink/ExternalLink.styled.tsx","webpack:///./core/components/ExternalLink/ExternalLink.tsx","webpack:///./core/components/FormErrorMessage/FormErrorMessage.styled.tsx","webpack:///./core/components/FormErrorMessage/FormErrorMessage.tsx","webpack:///./core/components/FormField/FormField.styled.tsx","webpack:///./core/components/FormField/FormField.tsx","webpack:///./core/components/FormFooter/FormFooter.tsx","webpack:///./core/components/FormInput/FormInput.tsx","webpack:///./core/components/FormNumericInput/FormNumericInput.tsx","webpack:///./core/components/FormSelect/FormSelect.tsx","webpack:///./core/components/FormSubmitButton/FormSubmitButton.tsx","webpack:///./core/components/FormTextArea/FormTextArea.tsx","webpack:///./core/components/FormToggle/FormToggle.tsx","webpack:///./core/components/Input/Input.styled.tsx","webpack:///./styled-components/theme/typography.ts","webpack:///./core/components/Input/Input.tsx","webpack:///./core/components/Link/Link.styled.tsx","webpack:///./core/components/Link/Link.tsx","webpack:///./core/components/Link/ForwardRefLink.tsx","webpack:///./core/components/Markdown/Markdown.styled.tsx","webpack:///./core/components/Markdown/Markdown.tsx","webpack:///./core/components/NumericInput/NumericInput.tsx","webpack:///./core/components/Radio/Radio.styled.tsx","webpack:///./core/components/Radio/Radio.tsx","webpack:///./core/components/Select/Select.styled.tsx","webpack:///./core/components/Select/Select.tsx","webpack:///./hoc/Uncontrollable.jsx","webpack:///./hoc/utils.js","webpack:///./core/components/SelectButton/SelectButton.styled.tsx","webpack:///./core/components/SelectButton/SelectButton.tsx","webpack:///./core/components/Sortable/Sortable.styled.tsx","webpack:///./core/components/Sortable/Sortable.tsx","webpack:///./core/components/Sortable/SortableList.tsx","webpack:///./core/components/TextArea/TextArea.styled.tsx","webpack:///./core/components/TextArea/TextArea.tsx","webpack:///./core/components/Toggle/Toggle.styled.tsx","webpack:///./core/components/Toggle/Toggle.tsx","webpack:///./core/components/Tooltip/Tooltip.tsx","webpack:///./core/components/Tooltip/Tooltip.styled.tsx","webpack:///./core/context/ContentViewportContext.tsx","webpack:///./core/style/input.ts","webpack:///./css/core/overlays/utils.tsx","webpack:///./dashboard/actions/auto-wire-parameters/actions.ts","webpack:///./dashboard/actions/auto-wire-parameters/toasts.ts","webpack:///./dashboard/actions/auto-wire-parameters/constants.ts","webpack:///./dashboard/actions/auto-wire-parameters/utils.ts","webpack:///./dashboard/actions/core.ts","webpack:///./dashboard/actions/getNewCardUrl.ts","webpack:///./dashboard/actions/data-fetching.ts","webpack:///./dashboard/actions/cards-typed.ts","webpack:///./dashboard/actions/cards.js","webpack:///./dashboard/actions/navigation.js","webpack:///./dashboard/actions/revisions.js","webpack:///./dashboard/actions/sharing.ts","webpack:///./dashboard/actions/actions.ts","webpack:///./dashboard/actions/tabs.ts","webpack:///./dashboard/actions/theme.ts","webpack:///./dashboard/actions/trash.ts","webpack:///./dashboard/actions/parameters.ts","webpack:///./dashboard/actions/ui.ts","webpack:///./dashboard/actions/utils.ts","webpack:///./dashboard/analytics.ts","webpack:///./dashboard/components/Dashboard/Dashboard.styled.tsx","webpack:///./dashboard/components/Dashboard/DashboardEmptyState/DashboardEmptyState.tsx","webpack:///./dashboard/grid-utils.ts","webpack:///./dashboard/components/grid/utils.ts","webpack:///./dashboard/components/AddSeriesModal/QuestionList.styled.tsx","webpack:///./dashboard/components/AddSeriesModal/QuestionListItem.styled.tsx","webpack:///./dashboard/components/AddSeriesModal/QuestionListItem.tsx","webpack:///./dashboard/components/AddSeriesModal/QuestionList.tsx","webpack:///./dashboard/components/AddSeriesModal/AddSeriesModal.tsx","webpack:///./dashboard/components/DashCard/DashCard.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/DashCardActionButton/DashCardActionButton.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/DashCardActionButton/DashCardActionButton.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/ActionSettingsButton/ActionSettingsButton.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/AddSeriesButton/AddSeriesButton.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/AddSeriesButton/AddSeriesButton.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/ChartSettingsButton/ChartSettingsButton.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/DashCardActionsPanel.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/DashCardTabMenu/DashCardTabMenu.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/DashCardTabMenu/DashCardTabMenu.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/LinkCardEditButton/LinkCardEditButton.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/DashCardActionsPanel.tsx","webpack:///./dashboard/components/DashCard/DashCardActionsPanel/use-duplicate-dashcard.ts","webpack:///./dashboard/components/DashCard/ClickBehaviorSidebarOverlay/ClickBehaviorSidebarOverlay.styled.tsx","webpack:///./dashboard/components/DashCard/ClickBehaviorSidebarOverlay/ClickBehaviorSidebarOverlay.tsx","webpack:///../../../enterprise/frontend/src/embedding-sdk/lib/transform-question.ts","webpack:///./dashboard/components/DashCard/DashCardMenu/utils.ts","webpack:///./dashboard/components/DashCard/DashCardMenu/DashCardMenuItems.tsx","webpack:///./dashboard/components/DashCard/DashCardMenu/DashCardMenu.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DashCardCardParameterMapper.styled.tsx","webpack:///./parameters/components/ParameterTargetList.jsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DashCardCardParameterMapperButton.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DisabledNativeCardHelpText/DisabledNativeCardHelpText.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DisabledNativeCardHelpText/DisabledNativeCardHelpText.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DashCardCardParameterMapperContent.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DashCardCardParameterMapper.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DashCardParameterMapper.styled.tsx","webpack:///./dashboard/components/DashCard/DashCardParameterMapper/DashCardParameterMapper.jsx","webpack:///./dashboard/components/DashCard/utils.ts","webpack:///./dashboard/components/DashCard/DashCardVisualization.tsx","webpack:///./dashboard/components/DashCard/DashCard.tsx","webpack:///./dashboard/components/DashboardGrid.styled.tsx","webpack:///./dashboard/components/grid/GridLayout.jsx","webpack:///./dashboard/components/DashboardGrid.tsx","webpack:///./dashboard/components/DashboardHeader/DashboardHeaderButtonRow/DashboardHeaderButtonRow.tsx","webpack:///./dashboard/components/DashboardBookmark.tsx","webpack:///./dashboard/components/ExtraEditButtonsMenu/ExtraEditButtonsMenu.tsx","webpack:///./dashboard/components/RefreshWidget/RefreshOption/RefreshOption.module.css?b205","webpack:///./dashboard/components/RefreshWidget/RefreshOption/RefreshOption.tsx","webpack:///./components/icons/CountdownIcon.styled.tsx","webpack:///./components/icons/CountdownIcon.tsx","webpack:///./dashboard/components/RefreshWidget/RefreshWidgetTarget.tsx","webpack:///./dashboard/components/RefreshWidget/RefreshWidget.tsx","webpack:///./dashboard/components/DashboardHeader/DashboardHeaderButtonRow/action-buttons.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/AddLinkOrEmbedButton.tsx","webpack:///./dashboard/components/DashboardHeader/DashboardHeaderButtonRow/constants.ts","webpack:///./dashboard/components/DashboardHeader/buttons/ExportAsPdfButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/AddActionElementButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/AddFilterParameterButton/AddFilterParameterButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/AddHeadingOrTextButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/AddQuestionButton.tsx","webpack:///./dashboard/components/DashboardHeader/SectionLayoutPreview.tsx","webpack:///./dashboard/sections.ts","webpack:///./dashboard/components/DashboardHeader/buttons/AddSectionButton/AddSectionButton.module.css?bf5c","webpack:///./dashboard/components/DashboardHeader/buttons/AddSectionButton/AddSectionButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/CancelEditButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/CopyAnalyticsDashboardButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/DashboardActionMenu.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/DashboardInfoButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/EditDashboardButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/FullscreenAnalyticsDashboard.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/SaveEditButton.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/FullscreenToggle.tsx","webpack:///./dashboard/components/DashboardHeader/buttons/NightModeToggleButton.tsx","webpack:///./core/components/Tab/Tab.styled.tsx","webpack:///./core/components/Tab/TabContext.tsx","webpack:///./core/components/Tab/utils.ts","webpack:///./core/components/TabButton/TabButton.styled.tsx","webpack:///./core/components/TabButton/TabButtonMenu.tsx","webpack:///./core/components/TabButton/TabButton.tsx","webpack:///./core/components/TabLink/TabLink.styled.tsx","webpack:///./core/components/TabLink/TabLink.tsx","webpack:///./core/components/TabList/TabList.styled.tsx","webpack:///./core/components/TabList/TabList.tsx","webpack:///./core/components/TabRow/TabRow.styled.tsx","webpack:///./core/components/TabRow/collision-detection.ts","webpack:///./core/components/TabRow/TabRow.tsx","webpack:///./dashboard/components/DashboardTabs/DashboardTabs.styled.tsx","webpack:///./dashboard/components/DashboardTabs/use-dashboard-tabs.ts","webpack:///./dashboard/components/DashboardTabs/DashboardTabs.tsx","webpack:///./dashboard/constants.ts","webpack:///./dashboard/hooks/use-click-behavior-data.js","webpack:///./dashboard/hooks/use-dashboard-fullscreen.ts","webpack:///./dashboard/hooks/use-dashboard-refresh-period.ts","webpack:///./dashboard/hooks/use-interval.ts","webpack:///./dashboard/hooks/use-embed-theme.ts","webpack:///./dashboard/hooks/use-location-sync.ts","webpack:///./dashboard/hooks/use-auto-scroll-to-dashcard.ts","webpack:///./dashboard/hooks/use-dashboard-url-params.ts","webpack:///./dashboard/hooks/use-refresh-dashboard.ts","webpack:///./dashboard/hooks/use-dashboard-url-query.ts","webpack:///./dashboard/hooks/use-is-parameter-panel-sticky.ts","webpack:///./selectors/web-app.ts","webpack:///./dashboard/selectors.ts","webpack:///./dashboard/utils.ts","webpack:///./databases/components/DatabaseAuthCodeDescription/DatabaseAuthCodeDescription.tsx","webpack:///./databases/components/DatabaseAuthProviderSectionField/DatabaseAuthProviderSectionField.styled.tsx","webpack:///./databases/components/DatabaseCacheScheduleField/DatabaseCacheScheduleField.styled.tsx","webpack:///./databases/components/DatabaseCacheScheduleField/DatabaseCacheScheduleField.tsx","webpack:///./databases/components/DatabaseClientIdDescription/DatabaseClientIdDescription.tsx","webpack:///./databases/components/DatabaseConnectionSectionField/DatabaseConnectionSectionField.styled.tsx","webpack:///./databases/components/DatabaseHostnameSectionField/DatabaseHostameSectionField.styled.tsx","webpack:///./databases/components/DatabaseSyncScheduleField/DatabaseSyncScheduleField.tsx","webpack:///./databases/constants.tsx","webpack:///./databases/components/DatabaseSshDescription/DatabaseSshDescription.tsx","webpack:///./databases/components/DatabaseSslKeyDescription/DatabaseSslKeyDescription.tsx","webpack:///./databases/components/DatabaseConnectionSectionField/DatabaseConnectionSectionField.tsx","webpack:///./databases/components/DatabaseHostnameSectionField/DatabaseHostameSectionField.tsx","webpack:///./databases/components/DatabaseAuthProviderSectionField/DatabaseAuthProviderSectionField.tsx","webpack:///./databases/components/DatabaseScheduleToggleField/DatabaseScheduleToggleField.tsx","webpack:///./databases/selectors.ts","webpack:///./databases/utils/engine.ts","webpack:///./embedding-sdk/config.ts","webpack:///./embedding-sdk/theme/default-component-theme.ts","webpack:///./css/core/overlays/constants.ts","webpack:///./entities/actions/actions.ts","webpack:///./entities/collections/getExpandedCollectionsById.js","webpack:///./entities/collections/collections.ts","webpack:///./entities/collections/constants.ts","webpack:///./entities/collections/getInitialCollectionId.ts","webpack:///./entities/collections/utils.ts","webpack:///./entities/model-indexes/actions.ts","webpack:///./entities/model-indexes/utils.ts","webpack:///./env.ts","webpack:///./forms/components/Form/Form.tsx","webpack:///./forms/components/FormCheckbox/FormCheckbox.tsx","webpack:///./forms/components/FormChipGroup/FormChipGroup.tsx","webpack:///./forms/contexts/FormContext/FormContext.tsx","webpack:///./forms/hooks/use-form-context/use-form-context.ts","webpack:///./forms/hooks/use-form-error-message/use-form-error-message.ts","webpack:///./forms/hooks/use-form-submit/use-form-submit.ts","webpack:///./forms/hooks/use-form-submit-button/use-form-submit-button.ts","webpack:///./forms/hooks/use-form-validation/use-form-validation.ts","webpack:///./forms/components/FormErrorMessage/FormErrorMessage.tsx","webpack:///./forms/components/FormGroupsWidget/FormGroupsWidget.tsx","webpack:///./forms/components/FormGroupWidget/FormGroupWidget.tsx","webpack:///./forms/components/FormMessage/FormMessage.styled.tsx","webpack:///./forms/components/FormMessage/FormMessage.tsx","webpack:///./forms/components/FormObserver/FormObserver.tsx","webpack:///./forms/components/FormProvider/FormProvider.tsx","webpack:///./forms/components/FormRadioGroup/FormRadioGroup.tsx","webpack:///./components/DisclosureTriangle/DisclosureTriangle.jsx","webpack:///./forms/components/FormSection/FormSection.styled.tsx","webpack:///./forms/components/FormSection/FormSection.tsx","webpack:///./forms/components/FormSubmitButton/FormSubmitButton.tsx","webpack:///./forms/components/FormSwitch/FormSwitch.tsx","webpack:///./forms/components/FormTextInput/FormTextInput.styled.tsx","webpack:///./forms/components/FormTextInput/FormTextInput.tsx","webpack:///./forms/components/FormTextarea/FormTextarea.tsx","webpack:///./forms/utils/messages.ts","webpack:///./hoc/FitViewPort.jsx","webpack:///./hoc/Title.jsx","webpack:///./home/components/EmbedHomepage/Badge.ts","webpack:///./hooks/use-action-button-label/use-action-button-label.ts","webpack:///./hooks/use-before-unload/use-before-unload.ts","webpack:///./hooks/use-callback-effect/use-callback-effect.ts","webpack:///./hooks/use-confirm-route-leave-modal.ts","webpack:///./hooks/use-debounced-value.ts","webpack:///./hooks/use-favicon.ts","webpack:///./hooks/use-is-small-screen.ts","webpack:///./hooks/use-is-truncated.ts","webpack:///./hooks/use-list-keyboard-navigation/use-list-keyboard-navigation.ts","webpack:///./hooks/use-modal-open.ts","webpack:///./hooks/use-safe-async-function.ts","webpack:///./hooks/use-sequenced-content-close-handler.ts","webpack:///./hooks/use-toggle.ts","webpack:///./hooks/use-unique-id.ts","webpack:///./hooks/use-unmount-layout.ts","webpack:///./lib/analytics-untyped.js","webpack:///./lib/analytics.ts","webpack:///./lib/arrays.ts","webpack:///./lib/json-parse.ts","webpack:///./lib/browser.ts","webpack:///./lib/colors/charts.ts","webpack:///./lib/colors/groups.ts","webpack:///./lib/colors/palette.ts","webpack:///./lib/colors/scales.ts","webpack:///./lib/compose-event-handlers.ts","webpack:///./lib/date-time.ts","webpack:///./lib/delay.ts","webpack:///./lib/email.ts","webpack:///./lib/engine.ts","webpack:///./lib/errors/messages.ts","webpack:///./lib/errors/validation.ts","webpack:///./lib/errors/server-error-types.ts","webpack:///./lib/errors/console.js","webpack:///./lib/formatting/date.tsx","webpack:///./lib/formatting/datetime-utils.ts","webpack:///./lib/formatting/email.tsx","webpack:///./lib/formatting/geography.ts","webpack:///./lib/formatting/image.tsx","webpack:///./lib/formatting/link.ts","webpack:///./lib/formatting/nullable.ts","webpack:///./lib/formatting/numbers.tsx","webpack:///./lib/formatting/strings.ts","webpack:///./lib/formatting/time.ts","webpack:///./lib/formatting/url.tsx","webpack:///./lib/formatting/value.tsx","webpack:///./lib/icon.ts","webpack:///./lib/measure-text.ts","webpack:///./lib/name.ts","webpack:///./lib/number.ts","webpack:///./lib/promise.ts","webpack:///./lib/pulse.ts","webpack:///./lib/redux/custom-context.tsx","webpack:///./lib/redux/utils.js","webpack:///./lib/redux/typed-utils.ts","webpack:///./lib/redux/hooks.ts","webpack:///./lib/resize-observer.ts","webpack:///./lib/settings.ts","webpack:///./lib/time-dayjs.ts","webpack:///./lib/time.ts","webpack:///./lib/timelines.ts","webpack:///./lib/types.ts","webpack:///./lib/urls/collections.ts","webpack:///./lib/urls/dashboards.ts","webpack:///./lib/urls/models.ts","webpack:///./lib/urls/actions.ts","webpack:///./lib/urls/admin.ts","webpack:///./lib/urls/auth.ts","webpack:///./lib/urls/bookmarks.ts","webpack:///./lib/urls/browse.ts","webpack:///./lib/urls/indexed-entities.ts","webpack:///./lib/urls/modelToUrl.ts","webpack:///./lib/urls/misc.ts","webpack:///./lib/urls/pulses.ts","webpack:///./lib/urls/timelines.ts","webpack:///./lib/urls/questions.ts","webpack:///./lib/urls/utils.ts","webpack:///./lib/user.ts","webpack:///./lib/utils.ts","webpack:///./lib/uuid.ts","webpack:///./nav/components/search/RecentsList/util.ts","webpack:///./nav/components/search/RecentsList/RecentsListContent.tsx","webpack:///./nav/components/search/RecentsList/RecentsList.tsx","webpack:///./nav/components/search/SearchResults/SearchResults.styled.tsx","webpack:///./nav/components/search/SearchResults/SearchResults.tsx","webpack:///./components/ChannelSetupMessage/ChannelSetupMessage.jsx","webpack:///./components/ChannelSetupModal/ChannelSetupModal.jsx","webpack:///./lib/alert.js","webpack:///./lib/cookies.js","webpack:///../metabase-lib/v1/Alert/Alert.ts","webpack:///./notifications/pulse/components/EmailChannelEdit.tsx","webpack:///./notifications/pulse/components/SlackChannelEdit.tsx","webpack:///./notifications/pulse/components/WebhookChannelEdit.tsx","webpack:///./notifications/pulse/components/PulseEditChannels.tsx","webpack:///./notifications/AlertModals/schedule.ts","webpack:///./notifications/AlertModals/AlertEditChannels.jsx","webpack:///./notifications/AlertModals/AlertModals.module.css?943b","webpack:///./notifications/AlertModals/MultiSeriesAlertTip.jsx","webpack:///./notifications/AlertModals/NormalAlertTip.jsx","webpack:///./notifications/AlertModals/RawDataAlertTip.jsx","webpack:///./notifications/AlertModals/AlertEditSchedule.jsx","webpack:///./notifications/AlertModals/AlertSettingToggle.jsx","webpack:///./notifications/AlertModals/AlertAboveGoalToggle.jsx","webpack:///./notifications/AlertModals/AlertFirstOnlyToggle.jsx","webpack:///./notifications/AlertModals/AlertGoalToggles.jsx","webpack:///./notifications/AlertModals/AlertEditForm.jsx","webpack:///./notifications/AlertModals/AlertEducationalScreen.jsx","webpack:///./notifications/AlertModals/AlertModalTitle.jsx","webpack:///./notifications/AlertModals/CreateAlertModalContent.tsx","webpack:///./notifications/AlertModals/AlertModals.styled.tsx","webpack:///./notifications/AlertModals/DeleteAlertSection.tsx","webpack:///./notifications/AlertModals/UpdateAlertModalContent.tsx","webpack:///./notifications/SlackChannelField.tsx","webpack:///./notifications/pulse/components/RecipientPicker.styled.tsx","webpack:///./notifications/pulse/components/RecipientPicker.tsx","webpack:///./parameters/selectors.ts","webpack:///./parameters/actions.ts","webpack:///./parameters/components/FilterApplyButton/FilterApplyButton.styled.ts","webpack:///./parameters/components/FilterApplyButton/FilterApplyButton.tsx","webpack:///./hoc/Remapped.jsx","webpack:///./containers/RemappedValue.jsx","webpack:///./components/Value/Value.jsx","webpack:///./parameters/utils/formatting.ts","webpack:///./parameters/utils/date-formatting.ts","webpack:///./parameters/components/widgets/ParameterFieldWidget/normalizeValue.ts","webpack:///./parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidgetValue/ParameterFieldWidgetValue.tsx","webpack:///./parameters/components/FormattedParameterValue/FormattedParameterValue.tsx","webpack:///./parameters/components/ParameterValueWidgetTrigger.styled.tsx","webpack:///./parameters/components/ParameterValueWidgetTrigger.tsx","webpack:///./components/TextWidget/TextWidget.tsx","webpack:///./parameters/components/UpdateFilterButton/getUpdateButtonProps.ts","webpack:///./parameters/components/UpdateFilterButton/UpdateFilterButton.tsx","webpack:///./parameters/components/widgets/Widget.styled.tsx","webpack:///./parameters/components/widgets/NumberInputWidget/NumberInputWidget.tsx","webpack:///./parameters/components/widgets/StringInputWidget/StringInputWidget.tsx","webpack:///./querying/filters/components/MonthYearPicker/MonthYearPicker.tsx","webpack:///./querying/parameters/components/DateMonthYearWidget/DateMonthYearWidget.tsx","webpack:///./querying/filters/components/QuarterYearPicker/QuarterYearPicker.tsx","webpack:///./querying/parameters/components/DateQuarterYearWidget/DateQuarterYearWidget.tsx","webpack:///./querying/parameters/components/DateRangeWidget/DateRangeWidget.tsx","webpack:///./querying/filters/components/RelativeDateShortcutPicker/RelativeDateShortcutPicker.tsx","webpack:///./querying/filters/components/RelativeDateShortcutPicker/utils.ts","webpack:///./querying/parameters/components/DateRelativeWidget/DateRelativeWidget.tsx","webpack:///./querying/parameters/components/DateSingleWidget/DateSingleWidget.tsx","webpack:///./components/ListField/ListField.styled.tsx","webpack:///./components/ListField/utils.ts","webpack:///./components/ListField/ListField.tsx","webpack:///./components/SingleSelectListField/SingleSelectListField.styled.tsx","webpack:///./components/SingleSelectListField/utils.ts","webpack:///./components/SingleSelectListField/SingleSelectListField.tsx","webpack:///./components/FieldValuesWidget/FieldValuesWidget.styled.tsx","webpack:///./components/FieldValuesWidget/utils.ts","webpack:///./components/FieldValuesWidget/FieldValuesWidget.tsx","webpack:///./parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx","webpack:///./parameters/components/widgets/TemporalUnitWidget/TemporalUnitWidget.tsx","webpack:///./parameters/components/ParameterDropdownWidget.tsx","webpack:///./parameters/components/WidgetStatus/WidgetStatus.tsx","webpack:///./parameters/components/ParameterValueWidget.tsx","webpack:///./parameters/components/ParameterWidget/ParameterWidget.styled.tsx","webpack:///./parameters/components/ParameterWidget/ParameterWidget.tsx","webpack:///./parameters/components/ParametersList/ParametersList.tsx","webpack:///./parameters/utils/dashboard-options.ts","webpack:///./parameters/utils/dashboards.ts","webpack:///./parameters/utils/parameter-id.ts","webpack:///./parameters/utils/mapping-options.ts","webpack:///./parameters/utils/ui.ts","webpack:///./plugins/components/PluginPlaceholder/PluginPlaceholder.tsx","webpack:///./plugins/index.ts","webpack:///./public/containers/PublicAction/PublicAction.styled.tsx","webpack:///./public/constants.ts","webpack:///./public/hooks/use-embed-frame-options.ts","webpack:///./public/hooks/use-set-embed-font.ts","webpack:///./public/lib/analytics.ts","webpack:///./query_builder/actions/core/types.ts","webpack:///./query_builder/actions/core/utils.ts","webpack:///./query_builder/typed-utils.ts","webpack:///./query_builder/actions/object-detail.ts","webpack:///./query_builder/actions/querying.ts","webpack:///./query_builder/actions/ui.ts","webpack:///./query_builder/actions/navigation.ts","webpack:///./query_builder/actions/core/card.ts","webpack:///./query_builder/actions/native.ts","webpack:///./query_builder/actions/core/updateQuestion.ts","webpack:///./query_builder/actions/core/pivot-table.ts","webpack:///./query_builder/actions/core/core.ts","webpack:///./query_builder/actions/core/parameterUtils.ts","webpack:///./query_builder/actions/core/initializeQB.ts","webpack:///./query_builder/actions/models.ts","webpack:///./query_builder/actions/query-updates.ts","webpack:///./query_builder/actions/timelines.ts","webpack:///./query_builder/actions/visualization-settings.ts","webpack:///./query_builder/components/DataSelector/DataSelector.module.css?591f","webpack:///./query_builder/components/DataSelector/DataSelectorDataBucketPicker/DataSelectorDataBucketPicker.module.css?cbf8","webpack:///./query_builder/components/DataSelector/DataSelectorDataBucketPicker/DataSelectorDataBucketPicker.tsx","webpack:///./query_builder/components/DataSelector/DataSelectorSectionHeader/DataSelectorSectionHeader.module.css?8074","webpack:///./query_builder/components/DataSelector/DataSelectorSectionHeader/DataSelectorSectionHeader.tsx","webpack:///./query_builder/components/DataSelector/constants.ts","webpack:///./query_builder/components/DataSelector/DataSelectorLoading/DataSelectorLoading.tsx","webpack:///./query_builder/components/DataSelector/RawDataBackButton.tsx","webpack:///./query_builder/components/DataSelector/DataSelectorDatabasePicker/DataSelectorDatabasePicker.tsx","webpack:///./query_builder/components/DataSelector/DataSelectorDatabaseSchemaPicker/DataSelectorDatabaseSchemaPicker.tsx","webpack:///./query_builder/components/DataSelector/DataSelectorFieldPicker/DataSelectorFieldPicker.module.css?fb69","webpack:///./query_builder/components/DataSelector/DataSelectorFieldPicker/DataSelectorFieldPicker.tsx","webpack:///./query_builder/components/DataSelector/DataSelectorSchemaPicker/DataSelectorSchemaPicker.tsx","webpack:///./query_builder/components/DataSelector/DataSelectorTablePicker/DataSelectorTablePicker.tsx","webpack:///./query_builder/components/DataSelector/TriggerComponents.tsx","webpack:///./query_builder/components/DataSelector/data-search/SearchResults.module.css?1298","webpack:///./query_builder/components/DataSelector/data-search/SearchResults.jsx","webpack:///./query_builder/components/DataSelector/saved-entity-picker/SavedEntityList.module.css?3797","webpack:///./query_builder/components/DataSelector/saved-entity-picker/constants.ts","webpack:///./query_builder/components/DataSelector/saved-entity-picker/SavedEntityList.tsx","webpack:///./query_builder/components/DataSelector/saved-entity-picker/SavedEntityPicker.module.css?7985","webpack:///./query_builder/components/DataSelector/saved-entity-picker/utils.js","webpack:///./query_builder/components/DataSelector/saved-entity-picker/SavedEntityPicker.jsx","webpack:///./query_builder/components/DataSelector/DataSelector.jsx","webpack:///./query_builder/components/DataSelector/data-search/utils.js","webpack:///./query_builder/components/DataSelector/utils.ts","webpack:///./query_builder/components/NativeQueryEditor/AceEditor/constants.ts","webpack:///./query_builder/components/NativeQueryEditor/AceEditor/AceEditor.module.css?5fb5","webpack:///./query_builder/components/NativeQueryEditor/AceEditor/selectors.tsx","webpack:///./query_builder/components/NativeQueryEditor/AceEditor/utils.tsx","webpack:///./query_builder/components/NativeQueryEditor/AceEditor/AceEditor.tsx","webpack:///./query_builder/components/NativeQueryEditor/Editor.tsx","webpack:///./query_builder/components/NativeQueryEditor/constants.ts","webpack:///./query_builder/components/template_tags/SnippetForm/SnippetForm.module.css?3cd3","webpack:///./query_builder/components/template_tags/SnippetForm/SnippetForm.tsx","webpack:///./query_builder/components/template_tags/SnippetFormModal/SnippetFormModal.tsx","webpack:///./query_builder/components/ResponsiveParametersList.module.css?53c5","webpack:///./query_builder/components/ResponsiveParametersList.tsx","webpack:///./query_builder/components/NativeQueryEditor/DataSourceSelectors/DataSourceSelectors.jsx","webpack:///./query_builder/components/NativeQueryEditor/NativeQueryEditor.module.css?fa49","webpack:///./query_builder/components/view/DataReferenceButton/DataReferenceButton.module.css?2ac2","webpack:///./query_builder/components/view/DataReferenceButton/DataReferenceButton.tsx","webpack:///./query_builder/components/view/NativeVariablesButton/NativeVariablesButton.module.css?6b93","webpack:///./query_builder/components/view/NativeVariablesButton/NativeVariablesButton.tsx","webpack:///./query_builder/components/view/PreviewQueryButton/PreviewQueryButton.module.css?d0d2","webpack:///./query_builder/components/view/PreviewQueryButton/PreviewQueryButton.tsx","webpack:///./query_builder/components/view/SnippetSidebarButton/SnippetSidebarButton.module.css?dac9","webpack:///./query_builder/components/view/SnippetSidebarButton/SnippetSidebarButton.tsx","webpack:///./query_builder/components/NativeQueryEditor/NativeQueryEditorSidebar/NativeQueryEditorSidebar.module.css?3a3c","webpack:///./query_builder/components/NativeQueryEditor/NativeQueryEditorSidebar/NativeQueryEditorSidebar.tsx","webpack:///./query_builder/components/NativeQueryEditor/RightClickPopover/RightClickPopover.module.css?3448","webpack:///./query_builder/components/NativeQueryEditor/RightClickPopover/RightClickPopover.tsx","webpack:///./query_builder/components/NativeQueryEditor/VisibilityToggler/VisibilityToggler.module.css?7f53","webpack:///./query_builder/components/NativeQueryEditor/VisibilityToggler/VisibilityToggler.tsx","webpack:///./query_builder/components/NativeQueryEditor/NativeQueryEditor.tsx","webpack:///./query_builder/components/NativeQueryEditor/utils.ts","webpack:///./query_builder/components/QueryDownloadPopover/QueryDownloadPopover.tsx","webpack:///./query_builder/components/QueryDownloadPopover/use-download-data.ts","webpack:///./query_builder/components/QueryDownloadWidget/QueryDownloadWidget.tsx","webpack:///./query_builder/components/RunButton.tsx","webpack:///./query_builder/components/RunButtonWithTooltip.jsx","webpack:///./query_builder/components/SidebarContent/SidebarContent.tsx","webpack:///./query_builder/components/SidebarHeader/SidebarHeader.module.css?d2b9","webpack:///./query_builder/components/SidebarHeader/SidebarHeader.tsx","webpack:///./query_builder/components/SyncedParametersList.tsx","webpack:///./query_builder/components/Warnings.jsx","webpack:///./query_builder/components/dataref/NodeList.module.css?5c86","webpack:///./query_builder/components/dataref/NodeList.tsx","webpack:///./query_builder/components/dataref/DatabaseSchemasPane.tsx","webpack:///./query_builder/components/dataref/DatabaseTablesPane.tsx","webpack:///./query_builder/components/dataref/DatabasePane.jsx","webpack:///./query_builder/components/dataref/MainPane.jsx","webpack:///./query_builder/components/dataref/FieldList.tsx","webpack:///./query_builder/components/dataref/QuestionPane/QuestionPane.module.css?32ee","webpack:///./query_builder/components/dataref/QuestionPane/QuestionPane.tsx","webpack:///./query_builder/components/dataref/SchemaPane.tsx","webpack:///./query_builder/components/dataref/ConnectedTableList.tsx","webpack:///./query_builder/components/dataref/TableInfoLoader.tsx","webpack:///./query_builder/components/dataref/DataReference.jsx","webpack:///./query_builder/components/dataref/TablePane.tsx","webpack:///./query_builder/components/dataref/FieldPane.tsx","webpack:///./query_builder/components/expressions/CombineColumns/ColumnAndSeparatorRow/ColumnAndSeparatorRow.module.css?60a7","webpack:///./query_builder/components/expressions/CombineColumns/ColumnAndSeparatorRow/ColumnInput.module.css?1a74","webpack:///./query_builder/components/expressions/CombineColumns/ColumnAndSeparatorRow/ColumnInput.tsx","webpack:///./query_builder/components/expressions/CombineColumns/ColumnAndSeparatorRow/ColumnAndSeparatorRow.tsx","webpack:///./query_builder/components/expressions/CombineColumns/Example.tsx","webpack:///./query_builder/components/expressions/CombineColumns/CombineColumns.tsx","webpack:///./query_builder/components/expressions/CombineColumns/util.ts","webpack:///./query_builder/components/expressions/ExpressionWidgetHeader.module.css?e220","webpack:///./query_builder/components/expressions/ExpressionWidgetHeader.tsx","webpack:///./query_builder/components/expressions/ExtractColumn/ExtractColumn.module.css?89fd","webpack:///./query_builder/components/expressions/ExtractColumn/util.ts","webpack:///./query_builder/components/expressions/ExtractColumn/ExtractColumn.tsx","webpack:///./query_builder/components/view/ViewButton.module.css?2b92","webpack:///./query_builder/components/view/ViewButton.tsx","webpack:///./query_builder/constants.ts","webpack:///./query_builder/utils/index.ts","webpack:///./querying/filters/components/DatePicker/DateShortcutPicker/constants.ts","webpack:///./querying/filters/components/DatePicker/DateShortcutPicker/utils.ts","webpack:///./querying/filters/components/DatePicker/ExcludeDatePicker/constants.ts","webpack:///./querying/filters/components/DatePicker/ExcludeDatePicker/utils.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/constants.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/utils.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/constants.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/utils.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/IncludeCurrentSwitch.tsx","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/constants.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/utils.ts","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.module.css?b350","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/SingleDatePickerBody.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/TimeToggle/TimeToggle.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/constants.ts","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/utils.ts","webpack:///./querying/filters/components/DatePicker/DateShortcutPicker/DateShortcutPicker.tsx","webpack:///./querying/filters/components/DatePicker/constants.ts","webpack:///./querying/filters/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.tsx","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.module.css?b8e0","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.tsx","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/utils.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.module.css?790b","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.modules.css?19e1","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/DatePicker.tsx","webpack:///./querying/filters/hooks/use-boolean-option-filter/constants.ts","webpack:///./querying/filters/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.module.css?142b","webpack:///./querying/filters/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.tsx","webpack:///./querying/filters/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.tsx","webpack:///./querying/filters/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx","webpack:///./querying/filters/hooks/use-boolean-option-filter/use-boolean-option-filter.ts","webpack:///./querying/filters/hooks/use-boolean-option-filter/utils.ts","webpack:///./querying/filters/components/FilterPicker/FilterOperatorPicker/FilterOperatorPicker.tsx","webpack:///./querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/CoordinateColumnPicker.tsx","webpack:///./querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/utils.ts","webpack:///./querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx","webpack:///./querying/filters/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx","webpack:///./querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx","webpack:///./querying/filters/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx","webpack:///./querying/filters/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx","webpack:///./querying/filters/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx","webpack:///./querying/filters/components/FilterPicker/FilterPickerBody/FilterPickerBody.tsx","webpack:///./querying/filters/components/FilterPicker/constants.ts","webpack:///./querying/filters/components/FilterValuePicker/utils.ts","webpack:///./querying/filters/components/FilterValuePicker/ListValuePicker/ListValuePicker.module.css?31cc","webpack:///./querying/filters/components/FilterValuePicker/ListValuePicker/ListValuePicker.tsx","webpack:///./querying/filters/components/FilterValuePicker/ListValuePicker/constants.ts","webpack:///./querying/filters/components/FilterValuePicker/ListValuePicker/utils.ts","webpack:///./querying/filters/components/FilterValuePicker/SearchValuePicker/SearchValuePicker.tsx","webpack:///./querying/filters/components/FilterValuePicker/SearchValuePicker/utils.ts","webpack:///./querying/filters/components/FilterValuePicker/SearchValuePicker/constants.ts","webpack:///./querying/filters/components/FilterValuePicker/StaticValuePicker/StaticValuePicker.tsx","webpack:///./querying/filters/components/FilterValuePicker/FilterValuePicker.tsx","webpack:///./querying/filters/components/TemporalUnitPicker/TemporalUnitPicker.tsx","webpack:///./querying/filters/constants.ts","webpack:///./querying/filters/hooks/use-coordinate-filter/constants.ts","webpack:///./querying/filters/hooks/use-coordinate-filter/utils.ts","webpack:///./querying/filters/hooks/use-coordinate-filter/use-coordinate-filter.ts","webpack:///./querying/filters/hooks/use-date-filter/use-date-filter.ts","webpack:///./querying/filters/hooks/use-default-filter/constants.ts","webpack:///./querying/filters/hooks/use-default-filter/use-default-filter.ts","webpack:///./querying/filters/hooks/use-default-filter/utils.ts","webpack:///./querying/filters/hooks/use-number-filter/constants.ts","webpack:///./querying/filters/hooks/use-number-filter/utils.ts","webpack:///./querying/filters/hooks/use-number-filter/use-number-filter.ts","webpack:///./querying/filters/hooks/use-string-filter/constants.ts","webpack:///./querying/filters/hooks/use-string-filter/utils.ts","webpack:///./querying/filters/hooks/use-string-filter/use-string-filter.ts","webpack:///./querying/filters/hooks/use-time-filter/constants.ts","webpack:///./querying/filters/hooks/use-time-filter/utils.ts","webpack:///./querying/filters/hooks/use-time-filter/use-time-filter.ts","webpack:///./querying/filters/utils/dates.ts","webpack:///./querying/filters/utils/groups.ts","webpack:///./querying/filters/utils/operators.ts","webpack:///./querying/parameters/components/DateAllOptionsWidget/DateAllOptionsWidget.tsx","webpack:///./querying/parameters/utils/dates.ts","webpack:///./querying/parameters/utils/normalize.ts","webpack:///./querying/viz-settings/utils/sync-viz-settings.ts","webpack:///./questions/actions.ts","webpack:///./redux/entities.js","webpack:///./dashboard/reducers-typed.ts","webpack:///./dashboard/reducers.js","webpack:///./parameters/reducers.ts","webpack:///./redux/auth.ts","webpack:///./reducers-common.ts","webpack:///./admin/app/reducers.ts","webpack:///./admin/admin.js","webpack:///./notifications/pulse/reducers.js","webpack:///./query_builder/defaults.ts","webpack:///./query_builder/reducers-typed.ts","webpack:///./query_builder/reducers.js","webpack:///./setup/reducers.ts","webpack:///./reducers-main.ts","webpack:///./redux/revisions.js","webpack:///./redux/app.ts","webpack:///./redux/downloads-analytics.ts","webpack:///./redux/downloads.ts","webpack:///./redux/embed.ts","webpack:///./redux/settings.ts","webpack:///./redux/ui.ts","webpack:///./redux/undo.ts","webpack:///./redux/uploads.ts","webpack:///./redux/user.ts","webpack:///./search/analytics.ts","webpack:///./search/components/SearchResult/SearchResult.styled.tsx","webpack:///./search/components/InfoText/get-info-text.tsx","webpack:///./search/components/InfoText/InfoTextAssetLink.tsx","webpack:///./search/components/InfoText/InfoTextEditedInfo.styled.tsx","webpack:///./search/components/InfoText/InfoTextEditedInfo.tsx","webpack:///./search/components/InfoText/InfoText.tsx","webpack:///./search/components/SearchResult/SearchResult.tsx","webpack:///./search/components/SearchResult/components/CollectionIcon.tsx","webpack:///./search/components/SearchResult/components/constants.ts","webpack:///./search/components/SearchResult/components/DefaultIcon.tsx","webpack:///./search/components/SearchResult/components/ItemIcon.styled.tsx","webpack:///./search/components/SearchResult/components/utils.ts","webpack:///./search/components/SearchResult/components/ItemIcon.tsx","webpack:///./search/components/SearchResultLink/SearchResultLink.styled.tsx","webpack:///./search/components/SearchResultLink/SearchResultLink.tsx","webpack:///./search/constants.ts","webpack:///./selectors/app.ts","webpack:///./selectors/data.ts","webpack:///./selectors/embed.ts","webpack:///../metabase-lib/v1/metadata/ForeignKey.ts","webpack:///../metabase-lib/v1/metadata/Schema.ts","webpack:///../metabase-lib/v1/metadata/Segment.ts","webpack:///../metabase-lib/v1/metadata/Table.ts","webpack:///./selectors/metadata.ts","webpack:///./selectors/routing.ts","webpack:///./selectors/settings.ts","webpack:///./selectors/user.ts","webpack:///./selectors/whitelabel/index.ts","webpack:///./setup/actions.ts","webpack:///./setup/analytics.ts","webpack:///./setup/constants.ts","webpack:///./setup/selectors.ts","webpack:///./setup/utils.ts","webpack:///./sharing/components/PublicLinkPopover/PublicLinkCopyPanel.styled.tsx","webpack:///./sharing/components/PublicLinkPopover/PublicLinkCopyPanel.tsx","webpack:///./sharing/components/PublicLinkPopover/PublicLinkPopover.tsx","webpack:///./sharing/components/PublicLinkPopover/QuestionPublicLinkPopover.tsx","webpack:///./sharing/components/PublicLinkPopover/DashboardPublicLinkPopover.tsx","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/illustrations/embedding-sdk.svg","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/illustrations/interactive-embedding.svg","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/illustrations/static-embedding.svg","webpack:///./sharing/components/SharingMenu/MenuItems/DashboardSubscriptionMenuItem.tsx","webpack:///./sharing/components/SharingMenu/MenuItems/EmbedMenuItem.tsx","webpack:///./sharing/components/SharingMenu/MenuItems/ExportPdfMenuItem.tsx","webpack:///./sharing/components/SharingMenu/MenuItems/PublicLinkMenuItem.tsx","webpack:///./sharing/components/SharingMenu/SharingMenu.tsx","webpack:///./public/components/EmbedModal/EmbedModal.styled.tsx","webpack:///./public/components/EmbedModal/EmbedModal.tsx","webpack:///./public/components/widgets/LegaleseStep/LegaleseStep.styled.tsx","webpack:///./public/components/widgets/LegaleseStep/LegaleseStep.tsx","webpack:///./public/lib/code-templates.ts","webpack:///./public/lib/embed.ts","webpack:///./public/lib/code.ts","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/PublicEmbedCard.tsx","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/SharingPaneButton/SharingPaneButton.module.css?d19f","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/SharingPaneButton/SharingPaneButton.tsx","webpack:///./public/components/EmbedModal/SelectEmbedTypePane/SelectEmbedTypePane.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/EmbedModalContentStatusBar.tsx","webpack:///./admin/upsells/UpsellMetabaseBanner.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/StaticEmbedSetupPane.styled.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/StaticEmbedSetupPaneSettingsContentSection.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/LookAndFeelSettings.tsx","webpack:///./components/TextEditor/TextEditor.styled.tsx","webpack:///./components/TextEditor/TextEditor.jsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/CodeSample.styled.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/CodeSample.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/ClientEmbedCodePane.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/OverviewSettings.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/ParametersSettings.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/PreviewModeSelector.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/PreviewPane/utils.ts","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/PreviewPane/PreviewPane.styled.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/PreviewPane/PreviewPane.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/config.ts","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/ServerEmbedCodePane.tsx","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/tabs.ts","webpack:///./public/components/EmbedModal/StaticEmbedSetupPane/StaticEmbedSetupPane.tsx","webpack:///./public/components/EmbedModal/EmbedModalContent/EmbedModalContent.tsx","webpack:///./dashboard/containers/DashboardSharingEmbeddingModal/DashboardSharingEmbeddingModal.tsx","webpack:///./notifications/AlertListPopoverContent/AlertCreatorTitle.tsx","webpack:///./notifications/AlertListPopoverContent/AlertScheduleText.tsx","webpack:///./notifications/AlertListPopoverContent/AlertListItem.tsx","webpack:///./notifications/AlertListPopoverContent/AlertListPopoverContent.tsx","webpack:///./notifications/AlertListPopoverContent/AlertPopover.tsx","webpack:///./query_builder/components/QuestionEmbedWidget/QuestionEmbedWidget.tsx","webpack:///./sharing/components/SharingMenu/SharingModals.tsx","webpack:///./sharing/components/SharingMenu/DashboardSharingMenu.tsx","webpack:///./notifications/CommonNotificationsMenuItem.tsx","webpack:///./notifications/QuestionAlertsMenuItem.tsx","webpack:///./sharing/components/SharingMenu/QuestionSharingMenu.tsx","webpack:///./static-viz/lib/numbers.ts","webpack:///./status/components/utils/downloads.ts","webpack:///./status/components/DownloadsStatusLarge/DownloadsStatusLarge.tsx","webpack:///./status/components/DownloadsStatusSmall/DownloadsStatusSmall.tsx","webpack:///./status/components/DownloadsStatus/DownloadsStatus.tsx","webpack:///./status/components/StatusLarge/StatusLarge.styled.tsx","webpack:///./status/components/StatusLarge/StatusLarge.tsx","webpack:///./status/components/StatusSmall/StatusSmall.styled.tsx","webpack:///./status/components/StatusSmall/StatusSmall.tsx","webpack:///./status/components/utils/status.ts","webpack:///./status/hooks/use-check-active-downloads-before-unload.ts","webpack:///./status/hooks/use-status-visibility.ts","webpack:///./styled-components/layout/FullWidthContainer.tsx","webpack:///./styled-components/selectors.ts","webpack:///./styled-components/theme/media-queries.ts","webpack:///./styled-components/theme/constants.ts","webpack:///./styled-components/theme/space.ts","webpack:///./ui/components/feedback/Skeleton/Repeat.tsx","webpack:///./ui/components/icons/Icon/icons/10k.svg","webpack:///./ui/components/icons/Icon/icons/1m.svg","webpack:///./ui/components/icons/Icon/icons/add.svg","webpack:///./ui/components/icons/Icon/icons/add_column.svg","webpack:///./ui/components/icons/Icon/icons/add_data.svg","webpack:///./ui/components/icons/Icon/icons/add_row.svg","webpack:///./ui/components/icons/Icon/icons/add_to_dash.svg","webpack:///./ui/components/icons/Icon/icons/ai.svg","webpack:///./ui/components/icons/Icon/icons/alert.svg","webpack:///./ui/components/icons/Icon/icons/alert_confirm.svg","webpack:///./ui/components/icons/Icon/icons/alert_filled.svg","webpack:///./ui/components/icons/Icon/icons/archive.svg","webpack:///./ui/components/icons/Icon/icons/area.svg","webpack:///./ui/components/icons/Icon/icons/arrow_down.svg","webpack:///./ui/components/icons/Icon/icons/arrow_left.svg","webpack:///./ui/components/icons/Icon/icons/arrow_left_to_line.svg","webpack:///./ui/components/icons/Icon/icons/arrow_right.svg","webpack:///./ui/components/icons/Icon/icons/arrow_split.svg","webpack:///./ui/components/icons/Icon/icons/arrow_up.svg","webpack:///./ui/components/icons/Icon/icons/attachment.svg","webpack:///./ui/components/icons/Icon/icons/audit.svg","webpack:///./ui/components/icons/Icon/icons/badge.svg","webpack:///./ui/components/icons/Icon/icons/bar.svg","webpack:///./ui/components/icons/Icon/icons/bell.svg","webpack:///./ui/components/icons/Icon/icons/birthday.svg","webpack:///./ui/components/icons/Icon/icons/bolt.svg","webpack:///./ui/components/icons/Icon/icons/bolt_filled.svg","webpack:///./ui/components/icons/Icon/icons/bookmark.svg","webpack:///./ui/components/icons/Icon/icons/bookmark_filled.svg","webpack:///./ui/components/icons/Icon/icons/breakout.svg","webpack:///./ui/components/icons/Icon/icons/bubble.svg","webpack:///./ui/components/icons/Icon/icons/bug.svg","webpack:///./ui/components/icons/Icon/icons/burger.svg","webpack:///./ui/components/icons/Icon/icons/calendar.svg","webpack:///./ui/components/icons/Icon/icons/check.svg","webpack:///./ui/components/icons/Icon/icons/chevrondown.svg","webpack:///./ui/components/icons/Icon/icons/chevronleft.svg","webpack:///./ui/components/icons/Icon/icons/chevronright.svg","webpack:///./ui/components/icons/Icon/icons/chevronup.svg","webpack:///./ui/components/icons/Icon/icons/click.svg","webpack:///./ui/components/icons/Icon/icons/clipboard.svg","webpack:///./ui/components/icons/Icon/icons/clock.svg","webpack:///./ui/components/icons/Icon/icons/clone.svg","webpack:///./ui/components/icons/Icon/icons/close.svg","webpack:///./ui/components/icons/Icon/icons/cloud.svg","webpack:///./ui/components/icons/Icon/icons/cloud_filled.svg","webpack:///./ui/components/icons/Icon/icons/combine.svg","webpack:///./ui/components/icons/Icon/icons/compare.svg","webpack:///./ui/components/icons/Icon/icons/connections.svg","webpack:///./ui/components/icons/Icon/icons/contract.svg","webpack:///./ui/components/icons/Icon/icons/copy.svg","webpack:///./ui/components/icons/Icon/icons/curve.svg","webpack:///./ui/components/icons/Icon/icons/curved.svg","webpack:///./ui/components/icons/Icon/icons/dash.svg","webpack:///./ui/components/icons/Icon/icons/dashboard.svg","webpack:///./ui/components/icons/Icon/icons/database.svg","webpack:///./ui/components/icons/Icon/icons/document.svg","webpack:///./ui/components/icons/Icon/icons/download.svg","webpack:///./ui/components/icons/Icon/icons/dyno.svg","webpack:///./ui/components/icons/Icon/icons/edit_document.svg","webpack:///./ui/components/icons/Icon/icons/ellipsis.svg","webpack:///./ui/components/icons/Icon/icons/embed.svg","webpack:///./ui/components/icons/Icon/icons/enter_or_return.svg","webpack:///./ui/components/icons/Icon/icons/expand.svg","webpack:///./ui/components/icons/Icon/icons/expand_arrow.svg","webpack:///./ui/components/icons/Icon/icons/extract.svg","webpack:///./ui/components/icons/Icon/icons/eye.svg","webpack:///./ui/components/icons/Icon/icons/eye_crossed_out.svg","webpack:///./ui/components/icons/Icon/icons/eye_outline.svg","webpack:///./ui/components/icons/Icon/icons/field.svg","webpack:///./ui/components/icons/Icon/icons/fields.svg","webpack:///./ui/components/icons/Icon/icons/filter.svg","webpack:///./ui/components/icons/Icon/icons/folder.svg","webpack:///./ui/components/icons/Icon/icons/folder_filled.svg","webpack:///./ui/components/icons/Icon/icons/formula.svg","webpack:///./ui/components/icons/Icon/icons/function.svg","webpack:///./ui/components/icons/Icon/icons/funnel.svg","webpack:///./ui/components/icons/Icon/icons/funnel_outline.svg","webpack:///./ui/components/icons/Icon/icons/gauge.svg","webpack:///./ui/components/icons/Icon/icons/gear.svg","webpack:///./ui/components/icons/Icon/icons/gem.svg","webpack:///./ui/components/icons/Icon/icons/globe.svg","webpack:///./ui/components/icons/Icon/icons/google.svg","webpack:///./ui/components/icons/Icon/icons/grabber.svg","webpack:///./ui/components/icons/Icon/icons/grid.svg","webpack:///./ui/components/icons/Icon/icons/group.svg","webpack:///./ui/components/icons/Icon/icons/history.svg","webpack:///./ui/components/icons/Icon/icons/home.svg","webpack:///./ui/components/icons/Icon/icons/horizontal_bar.svg","webpack:///./ui/components/icons/Icon/icons/hourglass.svg","webpack:///./ui/components/icons/Icon/icons/index.svg","webpack:///./ui/components/icons/Icon/icons/info.svg","webpack:///./ui/components/icons/Icon/icons/info_filled.svg","webpack:///./ui/components/icons/Icon/icons/info_outline.svg","webpack:///./ui/components/icons/Icon/icons/insight.svg","webpack:///./ui/components/icons/Icon/icons/int.svg","webpack:///./ui/components/icons/Icon/icons/io.svg","webpack:///./ui/components/icons/Icon/icons/join_full_outer.svg","webpack:///./ui/components/icons/Icon/icons/join_inner.svg","webpack:///./ui/components/icons/Icon/icons/join_left_outer.svg","webpack:///./ui/components/icons/Icon/icons/join_right_outer.svg","webpack:///./ui/components/icons/Icon/icons/key.svg","webpack:///./ui/components/icons/Icon/icons/label.svg","webpack:///./ui/components/icons/Icon/icons/ldap.svg","webpack:///./ui/components/icons/Icon/icons/learn.svg","webpack:///./ui/components/icons/Icon/icons/lightbulb.svg","webpack:///./ui/components/icons/Icon/icons/line.svg","webpack:///./ui/components/icons/Icon/icons/line_style-dashed.svg","webpack:///./ui/components/icons/Icon/icons/line_style-dotted.svg","webpack:///./ui/components/icons/Icon/icons/line_style-solid.svg","webpack:///./ui/components/icons/Icon/icons/lineandbar.svg","webpack:///./ui/components/icons/Icon/icons/lines.svg","webpack:///./ui/components/icons/Icon/icons/link.svg","webpack:///./ui/components/icons/Icon/icons/list.svg","webpack:///./ui/components/icons/Icon/icons/location.svg","webpack:///./ui/components/icons/Icon/icons/lock.svg","webpack:///./ui/components/icons/Icon/icons/lock_filled.svg","webpack:///./ui/components/icons/Icon/icons/mail.svg","webpack:///./ui/components/icons/Icon/icons/mail_filled.svg","webpack:///./ui/components/icons/Icon/icons/metric.svg","webpack:///./ui/components/icons/Icon/icons/model.svg","webpack:///./ui/components/icons/Icon/icons/model_with_badge.svg","webpack:///./ui/components/icons/Icon/icons/moon.svg","webpack:///./ui/components/icons/Icon/icons/move.svg","webpack:///./ui/components/icons/Icon/icons/move_card.svg","webpack:///./ui/components/icons/Icon/icons/new_folder.svg","webpack:///./ui/components/icons/Icon/icons/notebook.svg","webpack:///./ui/components/icons/Icon/icons/number.svg","webpack:///./ui/components/icons/Icon/icons/official_collection.svg","webpack:///./ui/components/icons/Icon/icons/palette.svg","webpack:///./ui/components/icons/Icon/icons/pause.svg","webpack:///./ui/components/icons/Icon/icons/pencil.svg","webpack:///./ui/components/icons/Icon/icons/pencil_lines.svg","webpack:///./ui/components/icons/Icon/icons/permissions_limited.svg","webpack:///./ui/components/icons/Icon/icons/person.svg","webpack:///./ui/components/icons/Icon/icons/pie.svg","webpack:///./ui/components/icons/Icon/icons/pin.svg","webpack:///./ui/components/icons/Icon/icons/pinmap.svg","webpack:///./ui/components/icons/Icon/icons/pivot_table.svg","webpack:///./ui/components/icons/Icon/icons/play.svg","webpack:///./ui/components/icons/Icon/icons/play_outlined.svg","webpack:///./ui/components/icons/Icon/icons/popover.svg","webpack:///./ui/components/icons/Icon/icons/popular.svg","webpack:///./ui/components/icons/Icon/icons/progress.svg","webpack:///./ui/components/icons/Icon/icons/pulse.svg","webpack:///./ui/components/icons/Icon/icons/question.svg","webpack:///./ui/components/icons/Icon/icons/recents.svg","webpack:///./ui/components/icons/Icon/icons/reference.svg","webpack:///./ui/components/icons/Icon/icons/refresh.svg","webpack:///./ui/components/icons/Icon/icons/refresh_downstream.svg","webpack:///./ui/components/icons/Icon/icons/return.svg","webpack:///./ui/components/icons/Icon/icons/revert.svg","webpack:///./ui/components/icons/Icon/icons/rocket.svg","webpack:///./ui/components/icons/Icon/icons/ruler.svg","webpack:///./ui/components/icons/Icon/icons/sankey.svg","webpack:///./ui/components/icons/Icon/icons/search.svg","webpack:///./ui/components/icons/Icon/icons/section.svg","webpack:///./ui/components/icons/Icon/icons/segment.svg","webpack:///./ui/components/icons/Icon/icons/share.svg","webpack:///./ui/components/icons/Icon/icons/shield.svg","webpack:///./ui/components/icons/Icon/icons/sidebar_closed.svg","webpack:///./ui/components/icons/Icon/icons/sidebar_open.svg","webpack:///./ui/components/icons/Icon/icons/slack.svg","webpack:///./ui/components/icons/Icon/icons/slack_colorized.svg","webpack:///./ui/components/icons/Icon/icons/smartscalar.svg","webpack:///./ui/components/icons/Icon/icons/snippet.svg","webpack:///./ui/components/icons/Icon/icons/sort.svg","webpack:///./ui/components/icons/Icon/icons/sort_arrows.svg","webpack:///./ui/components/icons/Icon/icons/sparkles.svg","webpack:///./ui/components/icons/Icon/icons/split.svg","webpack:///./ui/components/icons/Icon/icons/sql.svg","webpack:///./ui/components/icons/Icon/icons/star.svg","webpack:///./ui/components/icons/Icon/icons/star_filled.svg","webpack:///./ui/components/icons/Icon/icons/stepped.svg","webpack:///./ui/components/icons/Icon/icons/store.svg","webpack:///./ui/components/icons/Icon/icons/straight.svg","webpack:///./ui/components/icons/Icon/icons/string.svg","webpack:///./ui/components/icons/Icon/icons/subscription.svg","webpack:///./ui/components/icons/Icon/icons/sum.svg","webpack:///./ui/components/icons/Icon/icons/sun.svg","webpack:///./ui/components/icons/Icon/icons/sync.svg","webpack:///./ui/components/icons/Icon/icons/t-shirt.svg","webpack:///./ui/components/icons/Icon/icons/tab.svg","webpack:///./ui/components/icons/Icon/icons/table.svg","webpack:///./ui/components/icons/Icon/icons/table2.svg","webpack:///./ui/components/icons/Icon/icons/time_history.svg","webpack:///./ui/components/icons/Icon/icons/trash.svg","webpack:///./ui/components/icons/Icon/icons/trash_filled.svg","webpack:///./ui/components/icons/Icon/icons/triangle_left.svg","webpack:///./ui/components/icons/Icon/icons/triangle_right.svg","webpack:///./ui/components/icons/Icon/icons/unarchive.svg","webpack:///./ui/components/icons/Icon/icons/unknown.svg","webpack:///./ui/components/icons/Icon/icons/unpin.svg","webpack:///./ui/components/icons/Icon/icons/upload.svg","webpack:///./ui/components/icons/Icon/icons/variable.svg","webpack:///./ui/components/icons/Icon/icons/verified.svg","webpack:///./ui/components/icons/Icon/icons/verified_filled.svg","webpack:///./ui/components/icons/Icon/icons/view_archive.svg","webpack:///./ui/components/icons/Icon/icons/warning.svg","webpack:///./ui/components/icons/Icon/icons/warning_round_filled.svg","webpack:///./ui/components/icons/Icon/icons/waterfall.svg","webpack:///./ui/components/icons/Icon/icons/webhook.svg","webpack:///./ui/components/icons/Icon/icons/zoom_in.svg","webpack:///./ui/components/icons/Icon/icons/zoom_out.svg","webpack:///./ui/components/icons/Icon/icons/empty.svg","webpack:///./ui/components/icons/Icon/icons/index.ts","webpack:///./ui/components/buttons/ActionIcon/ActionIcon.styled.tsx","webpack:///./ui/components/buttons/Button/Button.styled.tsx","webpack:///./ui/components/buttons/PopoverBackButton/PopoverBackButton.tsx","webpack:///./ui/components/data-display/Accordion/Accordion.styled.tsx","webpack:///./ui/components/data-display/Badge/Badge.styled.tsx","webpack:///./ui/components/data-display/Card/Card.styled.tsx","webpack:///./ui/components/data-display/Image/Image.tsx","webpack:///./ui/components/feedback/Loader/Loader.tsx","webpack:///./ui/components/feedback/Alert/Alert.styled.tsx","webpack:///./ui/components/feedback/Progress/Progress.styled.tsx","webpack:///./ui/components/feedback/Skeleton/Skeleton.tsx","webpack:///./ui/components/feedback/Skeleton/Skeleton.styled.tsx","webpack:///./ui/components/overlays/Tooltip/Tooltip.styled.tsx","webpack:///./ui/components/icons/Icon/Icon.tsx","webpack:///./ui/components/inputs/Select/SelectDropdown/SelectDropdown.tsx","webpack:///./ui/components/inputs/Select/SelectItem/SelectItem.module.css?38c8","webpack:///./ui/components/inputs/Select/SelectItem/utils.ts","webpack:///./ui/components/inputs/Select/SelectItem/SelectItem.tsx","webpack:///./ui/components/inputs/Select/Select.styled.tsx","webpack:///./ui/components/inputs/Autocomplete/Autocomplete.styled.tsx","webpack:///./ui/components/inputs/Calendar/Calendar.styled.tsx","webpack:///./ui/components/inputs/Checkbox/CheckboxIcon.tsx","webpack:///./ui/components/inputs/Checkbox/Checkbox.styled.tsx","webpack:///./ui/components/inputs/Chip/Chip.styled.tsx","webpack:///./ui/components/inputs/DateInput/DateInput.styled.tsx","webpack:///./ui/components/inputs/DatePicker/DatePicker.styled.tsx","webpack:///./ui/components/inputs/FileInput/FileInputValue.styled.tsx","webpack:///./ui/components/inputs/FileInput/FileInputValue.tsx","webpack:///./ui/components/inputs/FileInput/FileInput.styled.tsx","webpack:///./ui/components/inputs/Input/Input.styled.tsx","webpack:///./ui/components/inputs/MonthPicker/MonthPicker.styled.tsx","webpack:///./ui/components/inputs/MultiAutocomplete/utils.ts","webpack:///./ui/components/inputs/MultiAutocomplete/MultiAutocomplete.tsx","webpack:///./ui/components/inputs/MultiSelect/MultiSelect.styled.tsx","webpack:///./ui/components/inputs/NumberInput/NumberInput.tsx","webpack:///./ui/components/inputs/QuarterPicker/QuarterPicker.module.css?7f77","webpack:///./ui/components/inputs/QuarterPicker/QuarterPicker.tsx","webpack:///./ui/components/inputs/Radio/Radio.styled.tsx","webpack:///./ui/components/inputs/Textarea/Textarea.styled.tsx","webpack:///./ui/components/inputs/Switch/Switch.styled.tsx","webpack:///./ui/components/inputs/SegmentedControl/SegmentedControl.styled.tsx","webpack:///./ui/components/inputs/TextInput/TextInput.styled.tsx","webpack:///./ui/components/inputs/TextInputBlurChange/TextInputBlurChange.tsx","webpack:///./ui/components/inputs/TimeInput/TimeInput.tsx","webpack:///./ui/components/inputs/TimeInput/TimeInput.styled.tsx","webpack:///./ui/components/layout/ScrollArea/ScrollArea.styled.tsx","webpack:///./ui/components/navigation/NavLink/NavLink.styled.tsx","webpack:///./ui/components/navigation/Tabs/Tabs.styled.tsx","webpack:///./ui/components/overlays/HoverCard/HoverCard.styled.tsx","webpack:///./ui/components/overlays/HoverCard/index.tsx","webpack:///./ui/components/overlays/Menu/MenuDropdown/MenuDropdown.tsx","webpack:///./ui/components/overlays/Menu/Menu.tsx","webpack:///./ui/components/overlays/Menu/MenuItem/MenuItem.tsx","webpack:///./ui/components/overlays/Menu/Menu.styled.tsx","webpack:///./ui/components/overlays/Modal/Modal.styled.tsx","webpack:///./ui/components/overlays/Modal/index.tsx","webpack:///./ui/components/overlays/Overlay/Overlay.styled.tsx","webpack:///./ui/components/overlays/Overlay/index.tsx","webpack:///./ui/components/theme/DatesProvider/DatesProvider.tsx","webpack:///./ui/components/theme/ThemeProvider/ThemeProvider.tsx","webpack:///./ui/components/typography/Text/Text.styled.tsx","webpack:///./ui/components/typography/Title/Title.styled.tsx","webpack:///./ui/components/typography/Anchor/Anchor.styled.tsx","webpack:///./ui/components/typography/List/List.styled.tsx","webpack:///./ui/components/typography/Code/Code.styled.tsx","webpack:///./ui/components/utils/DelayGroup/DelayGroup.tsx","webpack:///./ui/components/utils/Divider/Divider.styled.tsx","webpack:///./ui/components/utils/PreventEagerPortal/index.tsx","webpack:///./ui/components/utils/Paper/Paper.styled.tsx","webpack:///./ui/components/utils/Portal/index.tsx","webpack:///./ui/components/overlays/Popover/Popover.styled.tsx","webpack:///./ui/components/overlays/Popover/index.tsx","webpack:///./ui/components/overlays/Popover/use-popover.ts","webpack:///./ui/components/overlays/Popover/use-floating-auto-update.ts","webpack:///./ui/utils/colors.ts","webpack:///./ui/theme.ts","webpack:///./querying/analytics.ts","webpack:///./querying/drills/utils/filter-drill.tsx","webpack:///./querying/drills/utils/pivot-drill.tsx","webpack:///./querying/drills/utils/quick-filter-drill.tsx","webpack:///./querying/drills/utils/sort-drill.ts","webpack:///./querying/drills/utils/summarize-column-drill.ts","webpack:///./querying/drills/utils/underlying-records-drill.ts","webpack:///./querying/drills/utils/constants.ts","webpack:///./querying/drills/utils/automatic-insights-drill.tsx","webpack:///./querying/drills/utils/column-extract-drill.tsx","webpack:///./querying/drills/utils/column-filter-drill.tsx","webpack:///./querying/drills/utils/combine-columns-drill.tsx","webpack:///./querying/drills/utils/distribution-drill.ts","webpack:///./querying/drills/utils/fk-details-drill.ts","webpack:///./querying/drills/utils/fk-filter-drill.ts","webpack:///./querying/drills/utils/pk-drill.ts","webpack:///./querying/drills/utils/summarize-column-by-time-drill.ts","webpack:///./querying/drills/utils/zoom-drill.ts","webpack:///./querying/drills/utils/zoom-in-binning-drill.ts","webpack:///./querying/drills/utils/zoom-in-geographic-drill.ts","webpack:///./querying/drills/utils/zoom-in-timeseries-drill.ts","webpack:///./visualizations/click-actions/Mode/Mode.ts","webpack:///./querying/drills/utils/query-drill.ts","webpack:///./visualizations/click-actions/actions/CombineColumnsAction/CombineColumnsAction.tsx","webpack:///../metabase-lib/v1/queries/drills/dashboard-click-drill.js","webpack:///./visualizations/click-actions/actions/DashboardClickAction.tsx","webpack:///./visualizations/click-actions/actions/ExtractColumnAction/ExtractColumnAction.tsx","webpack:///./visualizations/click-actions/actions/HideColumnAction/HideColumnAction.tsx","webpack:///./visualizations/click-actions/actions/NativeQueryClickFallback.tsx","webpack:///../metabase-lib/v1/queries/drills/native-drill-fallback.ts","webpack:///./visualizations/click-actions/modes/ArchivedMode.ts","webpack:///./visualizations/click-actions/actions/ColumnFormattingAction/ColumnFormattingAction.styled.tsx","webpack:///./visualizations/click-actions/modes/DefaultMode.ts","webpack:///./visualizations/click-actions/actions/ColumnFormattingAction/ColumnFormattingAction.tsx","webpack:///./visualizations/click-actions/lib/modes.ts","webpack:///./visualizations/click-actions/modes/EmbeddingSdkMode.ts","webpack:///./visualizations/components/ChartCaption.styled.tsx","webpack:///./visualizations/components/ChartCaption.tsx","webpack:///./visualizations/components/ChartSettingsWidgetList.styled.tsx","webpack:///./visualizations/components/ChartSettingsWidgetList.tsx","webpack:///./visualizations/components/ChartSettingsWidgetPopover.tsx","webpack:///./visualizations/components/ChartSettings/BaseChartSettings/BaseChartSettings.styled.tsx","webpack:///./visualizations/components/ChartSettings/BaseChartSettings/hooks.ts","webpack:///./visualizations/components/ChartSettings/BaseChartSettings/BaseChartSettings.tsx","webpack:///./visualizations/components/ChartSettings/ChartSettings.styled.tsx","webpack:///./visualizations/components/ChartSettings/hooks.ts","webpack:///./visualizations/components/ChartSettings/QuestionChartSettings/QuestionChartSettings.tsx","webpack:///./visualizations/components/ChartSettings/ChartSettingsFooter/ChartSettingsFooter.styled.tsx","webpack:///./visualizations/components/ChartSettings/ChartSettingsFooter/ChartSettingsFooter.tsx","webpack:///./visualizations/components/ChartSettings/ChartSettingsVisualization/ChartSettingsVisualization.styled.tsx","webpack:///./visualizations/components/ChartSettings/ChartSettingsVisualization/ChartSettingsVisualization.tsx","webpack:///./visualizations/components/ChartSettings/DashboardChartSettings/DashboardChartSettings.tsx","webpack:///./visualizations/components/ChartSettingsWidget.styled.tsx","webpack:///./visualizations/components/ChartSettingsWidget.tsx","webpack:///./visualizations/components/ChartTooltip/StackedDataTooltip/utils.ts","webpack:///./visualizations/components/ChartTooltip/utils.ts","webpack:///./visualizations/components/ClickActions/ClickActionControl.module.css?2612","webpack:///./visualizations/components/ClickActions/ClickActionControl.styled.tsx","webpack:///./visualizations/components/ClickActions/ClickActionControl.tsx","webpack:///./visualizations/components/ClickActions/ClickActionsPopover.styled.tsx","webpack:///./visualizations/components/ClickActions/ClickActionsViewSection.styled.tsx","webpack:///./visualizations/components/ClickActions/ClickActionsViewSection.tsx","webpack:///./visualizations/components/ClickActions/utils.ts","webpack:///./visualizations/components/ClickActions/ClickActionsView.tsx","webpack:///./ui/components/overlays/Popover/PopoverWithRef.tsx","webpack:///./visualizations/components/ClickActions/ClickActionsPopover.tsx","webpack:///./visualizations/components/ColumnSettings.jsx","webpack:///./visualizations/components/CardRenderer.jsx","webpack:///./visualizations/components/LeafletChoropleth.jsx","webpack:///./visualizations/components/Visualization/Visualization.styled.tsx","webpack:///./visualizations/components/ChartTooltip/StackedDataTooltip/StackedDataTooltip.styled.tsx","webpack:///./visualizations/components/ChartTooltip/KeyValuePairChartTooltip/KeyValuePairChartTooltip.styled.tsx","webpack:///./visualizations/components/ChartTooltip/KeyValuePairChartTooltip/KeyValuePairChartTooltip.tsx","webpack:///./visualizations/components/ChartTooltip/TooltipRow/TooltipRow.styled.tsx","webpack:///./visualizations/components/ChartTooltip/TooltipRow/TooltipRow.tsx","webpack:///./visualizations/components/ChartTooltip/StackedDataTooltip/StackedDataTooltip.tsx","webpack:///./visualizations/components/ChartTooltip/TimelineEventTooltip.styled.tsx","webpack:///./visualizations/components/ChartTooltip/TimelineEventTooltip.tsx","webpack:///./visualizations/components/ChartTooltip/ChartTooltip.tsx","webpack:///./visualizations/components/Visualization/ChartSettingsErrorButton/ChartSettingsErrorButton.styled.tsx","webpack:///./visualizations/components/Visualization/ChartSettingsErrorButton/ChartSettingsErrorButton.tsx","webpack:///./visualizations/components/Visualization/ErrorView/ErrorView.styled.tsx","webpack:///./visualizations/components/Visualization/ErrorView/ErrorView.tsx","webpack:///./visualizations/components/Visualization/LoadingView/LoadingView.styled.tsx","webpack:///./visualizations/components/Visualization/LoadingView/LoadingView.tsx","webpack:///./visualizations/components/Visualization/NoResultsView/NoResultsView.styled.tsx","webpack:///./visualizations/components/Visualization/NoResultsView/NoResultsView.tsx","webpack:///./visualizations/components/Visualization/Visualization.jsx","webpack:///./visualizations/components/legend/LegendActions.styled.tsx","webpack:///./visualizations/components/legend/LegendActions.jsx","webpack:///./visualizations/components/legend/LegendLabel.module.css?236c","webpack:///./visualizations/components/legend/LegendCaption.styled.tsx","webpack:///./visualizations/components/legend/LegendLabel.tsx","webpack:///./visualizations/components/legend/LegendCaption.tsx","webpack:///./visualizations/components/settings/ChartNestedSettingSeries.styled.tsx","webpack:///./visualizations/components/settings/ChartSettingActionIcon.tsx","webpack:///./visualizations/components/settings/ChartSettingColorPicker/ChartSettingColorPicker.tsx","webpack:///./visualizations/components/settings/ChartSettingFieldPicker.styled.tsx","webpack:///./visualizations/components/settings/ChartSettingFieldPicker.jsx","webpack:///./visualizations/components/settings/ChartSettingInputNumeric.tsx","webpack:///./visualizations/components/settings/ChartSettingOrderedItems/ChartSettingOrderedItems.tsx","webpack:///./visualizations/components/settings/ChartSettingSelect.jsx","webpack:///./visualizations/components/settings/ColumnItem/ColumnItem.module.css?5a7f","webpack:///./visualizations/components/settings/ColumnItem/ColumnItem.tsx","webpack:///./visualizations/echarts/cartesian/constants/dataset.ts","webpack:///./visualizations/echarts/cartesian/model/util.ts","webpack:///./visualizations/echarts/cartesian/utils/timeseries.ts","webpack:///./visualizations/index.ts","webpack:///./visualizations/lib/dataset.ts","webpack:///./visualizations/lib/graph/columns.ts","webpack:///./lib/loki-utils.ts","webpack:///./visualizations/lib/save-chart-image.ts","webpack:///./visualizations/lib/save-dashboard-pdf.ts","webpack:///./visualizations/lib/series.ts","webpack:///./visualizations/lib/settings/typed-utils.ts","webpack:///./visualizations/shared/settings/series.ts","webpack:///./visualizations/shared/utils/data.ts","webpack:///./visualizations/shared/utils/colors.ts","webpack:///./visualizations/shared/utils/series.ts","webpack:///./visualizations/shared/utils/sizes.ts","webpack:///./visualizations/types/click-actions.ts","webpack:///./visualizations/visualizations/IFrameViz/utils.ts","webpack:///../metabase-lib/v1/metadata/utils/saved-questions.js","webpack:///../metabase-lib/v1/operators/constants.js","webpack:///../metabase-lib/v1/operators/utils/index.js","webpack:///../metabase-lib/v1/parameters/utils/parameter-values.js","webpack:///../metabase-lib/v1/queries/utils/card.js","webpack:///../metabase-lib/v1/queries/utils/field.js","webpack:///../metabase-lib/v1/queries/utils/index.js","webpack:///../metabase-lib/v1/types/utils/isa.js","webpack:///./admin/databases/database.js","webpack:///./admin/databases/editParamsForUserControlledScheduling.js","webpack:///./admin/datamodel/datamodel.js","webpack:///./admin/datamodel/selectors.js","webpack:///./admin/people/constants.js","webpack:///./admin/people/events.js","webpack:///./admin/people/people.js","webpack:///./admin/people/selectors.js","webpack:///./admin/permissions/utils/graph/partial-updates.ts","webpack:///./admin/permissions/permissions.js","webpack:///./admin/permissions/utils/urls.js","webpack:///./admin/settings/components/SettingHeader/SettingHeader.jsx","webpack:///./admin/settings/settings.js","webpack:///./admin/settings/utils.js","webpack:///./admin/datamodel/hoc/FilteredToUrlTable.jsx","webpack:///./nav/components/WhatsNewNotification/sparkles.svg","webpack:///./components/Banner/Banner.tsx","webpack:///./nav/components/PaymentBanner/PaymentBanner.tsx","webpack:///./nav/components/ReadOnlyBanner/ReadOnlyBanner.tsx","webpack:///./nav/components/TrialBanner/TrialBanner.tsx","webpack:///./components/AppBanner/utils.ts","webpack:///./components/AppBanner/AppBanner.tsx","webpack:///./containers/UndoListing.module.css?38a3","webpack:///./components/Card/Card.tsx","webpack:///./containers/UndoListing.styled.tsx","webpack:///./containers/UndoListing.tsx","webpack:///./hoc/ScrollToTop.js","webpack:///./nav/components/AppBar/AppBar.styled.tsx","webpack:///./components/Badge/Badge.styled.tsx","webpack:///./components/Badge/Badge.tsx","webpack:///./questions/components/CollectionBadge.tsx","webpack:///./nav/components/CollectionBreadcrumbs/CollectionBreadcrumbs.styled.tsx","webpack:///./nav/components/CollectionBreadcrumbs/utils.ts","webpack:///./nav/components/CollectionBreadcrumbs/CollectionBreadcrumbs.tsx","webpack:///./nav/containers/CollectionBreadcrumbs/CollectionBreadcrumbs.tsx","webpack:///./nav/containers/QuestionLineage/QuestionLineage.tsx","webpack:///./nav/components/QuestionLineage/QuestionLineage.tsx","webpack:///./containers/NewItemMenu/NewItemMenu.tsx","webpack:///./components/NewItemMenu/NewItemMenu.tsx","webpack:///./nav/components/NewItemButton/NewItemButton.styled.tsx","webpack:///./nav/components/NewItemButton/NewItemButton.tsx","webpack:///./admin/app/selectors.ts","webpack:///./components/LogoIcon/LogoIcon.jsx","webpack:///./home/selectors.ts","webpack:///./nav/components/ProfileLink/useHelpLink.ts","webpack:///./nav/components/ProfileLink/ProfileLink.jsx","webpack:///./hooks/use-on-click-outside.ts","webpack:///./nav/constants.ts","webpack:///./nav/components/search/SearchResultsDropdown/SearchResultsDropdown.styled.tsx","webpack:///./nav/components/search/SearchResultsDropdown/SearchResultsDropdown.tsx","webpack:///./nav/components/search/SearchResultsDropdown/constants.ts","webpack:///./search/utils/search-location/search-location.ts","webpack:///./search/utils/user-search-params/user-search-params.ts","webpack:///./nav/components/search/SearchBar/CommandPaletteTrigger.tsx","webpack:///./nav/components/search/SearchBar/SearchBar.styled.tsx","webpack:///./nav/components/search/SearchBar/SearchBar.tsx","webpack:///./hooks/use-keyboard-shortcut.ts","webpack:///./nav/components/search/SearchButton/SearchButton.tsx","webpack:///./nav/components/AppBar/AppBarLarge.styled.tsx","webpack:///./common/hooks/use-is-at-homepage-dashboard.ts","webpack:///./nav/components/AppBar/AppBarLogo.styled.tsx","webpack:///./nav/components/AppBar/AppBarLogo.tsx","webpack:///./nav/components/AppBar/AppBarToggle.styled.tsx","webpack:///./nav/components/AppBar/AppBarToggle.tsx","webpack:///./nav/components/AppBar/AppBarLarge.tsx","webpack:///./nav/components/AppBar/AppBarSmall.styled.tsx","webpack:///./nav/components/AppBar/AppBarSmall.tsx","webpack:///./nav/containers/AppBar/AppBar.tsx","webpack:///./nav/components/AppBar/AppBar.tsx","webpack:///./nav/components/StoreLink/StoreLink.styled.tsx","webpack:///./nav/components/StoreLink/StoreLink.tsx","webpack:///./nav/components/AdminNavbar/AdminNavItem.styled.tsx","webpack:///./nav/components/AdminNavbar/AdminNavItem.tsx","webpack:///./nav/components/AdminNavbar/AdminNavbar.module.css?c03c","webpack:///./nav/components/AdminNavbar/AdminNavbar.styled.tsx","webpack:///./nav/components/AdminNavbar/AdminNavbar.tsx","webpack:///./nav/containers/MainNavbar/SidebarItems/SidebarItems.styled.tsx","webpack:///./nav/containers/MainNavbar/SidebarItems/SidebarLink.tsx","webpack:///./nav/containers/MainNavbar/SidebarItems/DraggableSidebarLink.styled.tsx","webpack:///./containers/dnd/DropArea.jsx","webpack:///./containers/dnd/index.js","webpack:///./containers/dnd/CollectionDropTarget.jsx","webpack:///./nav/containers/MainNavbar/SidebarItems/SidebarCollectionLink.tsx","webpack:///./nav/containers/MainNavbar/MainNavbar.styled.tsx","webpack:///./collections/containers/FormAuthorityLevelFieldContainer.tsx","webpack:///./collections/components/CreateCollectionForm/CreateCollectionForm.tsx","webpack:///./collections/containers/CreateCollectionModal.tsx","webpack:///./nav/containers/MainNavbar/NavbarErrorView.tsx","webpack:///./nav/containers/MainNavbar/NavbarLoadingView.tsx","webpack:///./home/components/Onboarding/Onboarding.module.css?e6e0","webpack:///./home/components/Onboarding/analytics.ts","webpack:///./home/components/Onboarding/Onboarding.tsx","webpack:///./home/components/Onboarding/OnboardingDismissedToast.tsx","webpack:///./nav/components/WhatsNewNotification/WhatsNewNotification.styled.tsx","webpack:///./nav/components/WhatsNewNotification/utils.ts","webpack:///./nav/components/WhatsNewNotification/WhatsNewNotification.tsx","webpack:///./nav/containers/MainNavbar/SidebarItems/AddDatabase/analytics.ts","webpack:///./nav/containers/MainNavbar/SidebarItems/AddDatabase/AddDatabase.tsx","webpack:///./collections/components/utils.ts","webpack:///./collections/components/ModelUploadModal.tsx","webpack:///./components/upload/UploadTooltip.tsx","webpack:///./components/upload/constants.ts","webpack:///./components/upload/UploadInput.tsx","webpack:///./components/upload/UploadLabel.tsx","webpack:///./nav/containers/MainNavbar/SidebarItems/DwhUploadCSV/analytics.ts","webpack:///./nav/containers/MainNavbar/SidebarItems/DwhUploadCSV/DwhUploadCSV.tsx","webpack:///./nav/containers/MainNavbar/analytics.ts","webpack:///./nav/containers/MainNavbar/MainNavbarContainer/BookmarkList/BookmarkList.styled.tsx","webpack:///./nav/containers/MainNavbar/SidebarItems/DraggableSidebarLink.tsx","webpack:///./nav/containers/MainNavbar/MainNavbarContainer/BookmarkList/BookmarkList.tsx","webpack:///./nav/containers/MainNavbar/MainNavbarContainer/BrowseNavSection.tsx","webpack:///./nav/containers/MainNavbar/MainNavbarContainer/MainNavbarView.tsx","webpack:///./nav/containers/MainNavbar/MainNavbarContainer/MainNavbarContainer.tsx","webpack:///./nav/containers/MainNavbar/getSelectedItems.ts","webpack:///./nav/containers/MainNavbar/MainNavbar.tsx","webpack:///./nav/containers/Navbar.tsx","webpack:///./status/components/DatabaseStatusLarge/DatabaseStatusLarge.tsx","webpack:///./status/components/DatabaseStatusSmall/DatabaseStatusSmall.tsx","webpack:///./status/components/DatabaseStatus/DatabaseStatus.tsx","webpack:///./status/containers/DatabaseStatus/DatabaseStatus.tsx","webpack:///./lib/uploads.ts","webpack:///./status/components/FileUploadStatusLarge/FileUploadErrorModal.tsx","webpack:///./status/components/FileUploadStatusLarge/FileUploadStatusLarge.tsx","webpack:///./status/components/FileUploadStatus/FileUploadStatus.tsx","webpack:///./status/components/StatusListing/StatusListing.styled.tsx","webpack:///./status/components/StatusListing/StatusListing.tsx","webpack:///./App.styled.tsx","webpack:///./dashboard/containers/CreateDashboardForm.tsx","webpack:///./dashboard/containers/CreateDashboardModal.tsx","webpack:///./selectors/ui.ts","webpack:///./new/components/NewModals/NewModals.tsx","webpack:///./palette/hooks/useCommandPaletteBasicActions.tsx","webpack:///./palette/components/Palette.styled.tsx","webpack:///./palette/components/PaletteFooter.tsx","webpack:///./palette/utils.ts","webpack:///./palette/hooks/useCommandPalette.tsx","webpack:///./palette/components/PaletteResultItem.tsx","webpack:///./palette/components/PaletteResultsList.tsx","webpack:///./palette/components/PaletteResults.tsx","webpack:///./palette/components/Palette.tsx","webpack:///./App.tsx","webpack:///./account/app/components/AccountHeader/AccountHeader.styled.tsx","webpack:///./account/app/components/AccountHeader/AccountHeader.tsx","webpack:///./account/app/components/AccountLayout/AccountLayout.styled.tsx","webpack:///./account/app/components/AccountLayout/AccountLayout.jsx","webpack:///./account/app/containers/AccountApp/AccountApp.jsx","webpack:///./components/type/Text.jsx","webpack:///./components/type/Label.jsx","webpack:///./account/login-history/components/LoginHistory/LoginHistory.styled.tsx","webpack:///./account/login-history/components/LoginHistory/LoginHistory.jsx","webpack:///./account/login-history/containers/LoginHistoryApp/LoginHistoryApp.jsx","webpack:///./hoc/ModalRoute.tsx","webpack:///./account/notifications/components/HelpModal/HelpModal.styled.tsx","webpack:///./account/notifications/components/HelpModal/HelpModal.jsx","webpack:///./lib/notifications.js","webpack:///./account/notifications/components/ArchiveModal/ArchiveModal.styled.tsx","webpack:///./account/notifications/components/ArchiveModal/ArchiveModal.jsx","webpack:///./account/notifications/selectors.js","webpack:///./account/notifications/containers/ArchiveAlertModal/ArchiveAlertModal.jsx","webpack:///./account/notifications/containers/ArchivePulseModal/ArchivePulseModal.jsx","webpack:///./account/notifications/actions.js","webpack:///./account/notifications/components/NotificationCard/NotificationCard.styled.tsx","webpack:///./account/notifications/components/NotificationCard/NotificationCard.jsx","webpack:///./account/notifications/components/NotificationList/NotificationList.styled.tsx","webpack:///./account/notifications/components/NotificationList/NotificationList.jsx","webpack:///./account/notifications/containers/NotificationsApp/NotificationsApp.jsx","webpack:///./account/notifications/components/UnsubscribeModal/UnsubscribeModal.jsx","webpack:///./account/notifications/containers/UnsubscribeAlertModal/UnsubscribeAlertModal.jsx","webpack:///./account/notifications/containers/UnsubscribePulseModal/UnsubscribePulseModal.jsx","webpack:///./account/notifications/routes.jsx","webpack:///./account/password/actions.ts","webpack:///./account/password/components/UserPasswordForm/UserPasswordForm.tsx","webpack:///./account/password/containers/UserPasswordApp/UserPasswordApp.tsx","webpack:///./account/profile/actions.ts","webpack:///./account/profile/components/UserProfileForm/UserProfileForm.tsx","webpack:///./account/profile/selectors.ts","webpack:///./account/profile/containers/UserProfileApp/UserProfileApp.tsx","webpack:///./account/routes.jsx","webpack:///./admin/permissions/constants/collections-permissions.js","webpack:///./admin/permissions/selectors/confirmations.tsx","webpack:///./admin/permissions/selectors/collection-permissions.ts","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditor.styled.tsx","webpack:///./components/type/Subhead.jsx","webpack:///./admin/permissions/components/PermissionsSelect/PermissionsSelectOption.styled.tsx","webpack:///./admin/permissions/components/PermissionsSelect/PermissionsSelectOption.jsx","webpack:///./admin/permissions/components/PermissionsSelect/PermissionsSelect.styled.tsx","webpack:///./admin/permissions/components/PermissionsSelect/PermissionsSelect.jsx","webpack:///./admin/permissions/components/PermissionsTable/PermissionsTable.styled.tsx","webpack:///./admin/permissions/components/PermissionsTable/PermissionsTable.jsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorBreadcrumbs.styled.tsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorBreadcrumbs.jsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorContent.styled.tsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorContent.jsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditor.jsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorEmptyState.styled.tsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorEmptyState.jsx","webpack:///./admin/permissions/components/CollectionPermissionsModal/CollectionPermissionsModal.styled.tsx","webpack:///./admin/permissions/components/CollectionPermissionsModal/CollectionPermissionsModal.jsx","webpack:///./admin/app/components/DeprecationNotice/DeprecationNotice.styled.tsx","webpack:///./admin/app/components/DeprecationNotice/DeprecationNotice.tsx","webpack:///./admin/app/containers/DeprecationNotice/DeprecationNotice.tsx","webpack:///./admin/app/components/SettingsCommandPaletteActions.tsx","webpack:///./admin/app/components/AdminApp/AdminApp.tsx","webpack:///./admin/databases/components/ContentRemovalConfirmation/ContentRemovalConfirmation.styled.tsx","webpack:///./admin/databases/components/ContentRemovalConfirmation/ContentRemovalConfirmation.tsx","webpack:///./admin/databases/components/DeleteDatabaseModel/DeleteDatabaseModal.styled.tsx","webpack:///./admin/databases/components/DeleteDatabaseModel/DeleteDatabaseModal.tsx","webpack:///./admin/databases/components/DatabaseEditApp/Sidebar/ModelActionsSection/ModelActionsSection.styled.tsx","webpack:///./admin/databases/components/DatabaseEditApp/Sidebar/ModelActionsSection/ModelActionsSection.tsx","webpack:///./admin/databases/components/DatabaseEditApp/Sidebar/ModelCachingControl/ModelCachingControl.styled.tsx","webpack:///./admin/databases/components/DatabaseEditApp/Sidebar/ModelCachingControl/ModelCachingControl.tsx","webpack:///./admin/databases/components/DatabaseEditApp/Sidebar/Sidebar.styled.tsx","webpack:///./admin/databases/components/DatabaseEditApp/Sidebar/Sidebar.tsx","webpack:///./databases/utils/schema.ts","webpack:///./core/components/FileInput/FileInput.styled.tsx","webpack:///./core/components/FileInput/FileInput.tsx","webpack:///./core/components/FormFileInput/FormFileInput.tsx","webpack:///./databases/components/DatabaseInfoField/DatabaseInfoField.tsx","webpack:///./databases/components/DatabaseSectionField/DatabaseSectionField.styled.tsx","webpack:///./databases/components/DatabaseSectionField/DatabaseSectionField.tsx","webpack:///./databases/components/DatabaseDetailField/DatabaseDetailField.tsx","webpack:///./databases/components/DatabaseEngineField/DatabaseEngineSelect.tsx","webpack:///./databases/components/DatabaseEngineField/DatabaseEngineWidget.styled.tsx","webpack:///./databases/components/DatabaseEngineField/DatabaseEngineWidget.tsx","webpack:///./databases/components/DatabaseEngineField/DatabaseEngineField.tsx","webpack:///./databases/components/DatabaseEngineWarning/DatabaseEngineWarning.styled.tsx","webpack:///./databases/components/DatabaseEngineWarning/DatabaseEngineWarning.tsx","webpack:///./databases/components/DatabaseNameField/DatabaseNameField.tsx","webpack:///./databases/components/DatabaseForm/DatabaseForm.styled.tsx","webpack:///./databases/components/DatabaseForm/DatabaseForm.tsx","webpack:///./admin/databases/selectors.js","webpack:///./components/HelpCard/HelpCard.styled.tsx","webpack:///./components/HelpCard/HelpCard.tsx","webpack:///./databases/components/DatabaseHelpCard/DatabaseHelpCard.tsx","webpack:///./admin/databases/containers/DatabaseEditApp.styled.tsx","webpack:///./admin/databases/containers/DatabaseEditApp.tsx","webpack:///./admin/databases/containers/DatabaseListApp.styled.tsx","webpack:///./admin/databases/components/DatabaseList/DatabaseList.jsx","webpack:///./admin/databases/containers/DatabaseListApp.jsx","webpack:///./components/LoadingAndGenericErrorWrapper/LoadingAndGenericErrorWrapper.jsx","webpack:///./admin/datamodel/containers/DataModelApp/DataModelApp.styled.tsx","webpack:///./admin/datamodel/containers/DataModelApp/ModelEducationalModal.styled.tsx","webpack:///./admin/datamodel/containers/DataModelApp/ModelEducationalModal.jsx","webpack:///./admin/datamodel/containers/DataModelApp/DataModelApp.jsx","webpack:///./admin/datamodel/utils/segments.ts","webpack:///./querying/filters/components/FilterPanel/FilterPill/FilterPill.module.css?a08d","webpack:///./querying/filters/components/FilterPanel/FilterPill/FilterPill.tsx","webpack:///./admin/datamodel/components/QueryDefinition/QueryDefinition.tsx","webpack:///./admin/datamodel/components/revisions/QueryDiff.jsx","webpack:///./admin/datamodel/components/revisions/RevisionDiff.styled.tsx","webpack:///./admin/datamodel/components/revisions/TextDiff.jsx","webpack:///./admin/datamodel/components/revisions/RevisionDiff.jsx","webpack:///./admin/datamodel/components/revisions/Revision.jsx","webpack:///./admin/datamodel/components/revisions/RevisionHistory.jsx","webpack:///./admin/datamodel/containers/RevisionHistoryApp.jsx","webpack:///./common/components/DataPicker/hooks/useAvailableData.ts","webpack:///./common/components/DataPicker/utils.ts","webpack:///./common/components/DataPicker/components/DatabaseList.tsx","webpack:///./common/components/DataPicker/components/SchemaList.tsx","webpack:///./common/components/DataPicker/components/TableList.tsx","webpack:///./common/components/DataPicker/components/TablePicker.tsx","webpack:///./common/components/DataPicker/components/DataPickerModal.tsx","webpack:///./querying/segments/components/SegmentEditor/ClauseStep/ClauseStep.module.css?5df7","webpack:///./querying/segments/components/SegmentEditor/ClauseStep/ClauseStep.tsx","webpack:///./querying/segments/components/SegmentEditor/DataStep/DataStep.tsx","webpack:///../metabase-lib/v1/expressions/index.ts","webpack:///../metabase-lib/v1/expressions/pratt/syntax.ts","webpack:///../metabase-lib/v1/expressions/pratt/types.ts","webpack:///../metabase-lib/v1/expressions/pratt/parser.ts","webpack:///../metabase-lib/v1/expressions/pratt/compiler.ts","webpack:///../metabase-lib/v1/expressions/recursive-parser.js","webpack:///../metabase-lib/v1/expressions/resolver.js","webpack:///../metabase-lib/v1/expressions/diagnostics.ts","webpack:///../metabase-lib/v1/expressions/format.ts","webpack:///../metabase-lib/v1/expressions/helper-text-strings.ts","webpack:///../metabase-lib/v1/expressions/suggest.ts","webpack:///./query_builder/components/expressions/ExpressionEditorHelpText/ExpressionEditorHelpText.module.css?ba84","webpack:///./query_builder/components/expressions/ExpressionEditorHelpText/ExpressionEditorHelpText.tsx","webpack:///./query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.module.css?706a","webpack:///./query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.tsx","webpack:///./query_builder/components/expressions/ExpressionMode.js","webpack:///./query_builder/components/expressions/ExpressionEditorTextfield/ExpressionEditorTextfield.module.css?9c45","webpack:///./query_builder/components/expressions/ExpressionEditorTextfield/ExpressionEditorTextfield.tsx","webpack:///../metabase-lib/v1/expressions/completer.js","webpack:///../metabase-lib/v1/expressions/process.ts","webpack:///./query_builder/components/expressions/ExpressionWidget.module.css?7294","webpack:///./query_builder/components/expressions/ExpressionWidgetInfo/ExpressionWidgetInfo.module.css?b3e5","webpack:///./query_builder/components/expressions/ExpressionWidgetInfo/ExpressionWidgetInfo.tsx","webpack:///./query_builder/components/expressions/ExpressionWidget.tsx","webpack:///./querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.module.css?1f20","webpack:///./querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx","webpack:///./querying/filters/components/FilterPicker/FilterPicker.tsx","webpack:///./querying/segments/components/SegmentEditor/FilterStep/FilterStep.tsx","webpack:///./querying/segments/components/SegmentEditor/PreviewStep/PreviewStep.tsx","webpack:///./querying/segments/components/SegmentEditor/SegmentEditor.module.css?474e","webpack:///./querying/segments/components/SegmentEditor/SegmentEditor.tsx","webpack:///./admin/datamodel/components/FormInput/FormInput.styled.tsx","webpack:///./admin/datamodel/components/FormInput/FormInput.tsx","webpack:///./admin/datamodel/components/FormLabel/FormLabel.styled.tsx","webpack:///./admin/datamodel/components/FormLabel/FormLabel.tsx","webpack:///./admin/datamodel/components/FormTextArea/FormTextArea.styled.tsx","webpack:///./admin/datamodel/components/FormTextArea/FormTextArea.tsx","webpack:///./admin/datamodel/components/SegmentForm/SegmentForm.styled.tsx","webpack:///./admin/datamodel/components/SegmentForm/SegmentForm.tsx","webpack:///./admin/datamodel/containers/SegmentApp.jsx","webpack:///./admin/datamodel/components/SegmentActionSelect.styled.tsx","webpack:///./admin/datamodel/components/SegmentRetireModal.jsx","webpack:///./admin/datamodel/components/SegmentActionSelect.jsx","webpack:///./admin/datamodel/components/SegmentItem.jsx","webpack:///./admin/datamodel/containers/SegmentListApp.jsx","webpack:///./admin/datamodel/metadata/components/MetadataHeader/MetadataHeader.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataHeader/MetadataHeader.tsx","webpack:///./components/Grabber/Grabber.jsx","webpack:///./admin/datamodel/metadata/components/FieldVisibilityPicker/FieldVisibilityPicker.tsx","webpack:///./admin/datamodel/metadata/components/FieldSeparator/FieldSeparator.tsx","webpack:///./admin/datamodel/metadata/components/SemanticTypeAndTargetPicker/SemanticTypeAndTargetPicker.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableColumn/MetadataTableColumn.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableColumn/MetadataTableColumn.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableColumnList/MetadataTableColumnList.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableColumnList/MetadataTableColumnList.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableSchema/MetadataTableSchema.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableSchema/MetadataTableSchema.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTable/MetadataTable.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTable/MetadataTable.tsx","webpack:///./admin/datamodel/metadata/components/MetadataSchemaList/MetadataSchemaList.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableList/MetadataTableList.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableList/MetadataTableList.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTablePicker/MetadataTablePicker.tsx","webpack:///./components/AdminLayout/AdminLayout.styled.tsx","webpack:///./components/AdminLayout/AdminLayout.tsx","webpack:///./admin/datamodel/metadata/components/MetadataEditor/MetadataEditor.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataEditor/MetadataEditor.tsx","webpack:///./components/LeftNavPane/LeftNavPane.jsx","webpack:///./admin/datamodel/metadata/components/MetadataSection/MetadataSection.tsx","webpack:///./admin/datamodel/metadata/components/FieldFormattingSettings/FieldFormattingSettings.tsx","webpack:///./admin/datamodel/utils/humanizeCoercionStrategy.ts","webpack:///./admin/datamodel/metadata/components/FieldRemappingSettings/FieldRemappingSettings.styled.tsx","webpack:///./admin/datamodel/metadata/components/FieldRemappingSettings/FieldRemappingSettings.jsx","webpack:///./admin/datamodel/metadata/components/MetadataSectionHeader/MetadataSectionHeader.tsx","webpack:///./admin/datamodel/metadata/components/FieldGeneralSettings/FieldGeneralSettings.styled.tsx","webpack:///./admin/datamodel/metadata/components/FieldGeneralSettings/FieldGeneralSettings.tsx","webpack:///./admin/datamodel/metadata/components/MetadataBackButton/MetadataBackButton.styled.tsx","webpack:///./admin/datamodel/metadata/components/MetadataBackButton/MetadataBackButton.tsx","webpack:///./admin/datamodel/metadata/components/MetadataFieldSettings/MetadataFieldSettings.tsx","webpack:///./admin/datamodel/metadata/components/MetadataTableSettings/MetadataTableSettings.tsx","webpack:///./admin/datamodel/metadata/routes.tsx","webpack:///./admin/people/components/NudgeToPro.styled.tsx","webpack:///./admin/people/components/NudgeToPro.tsx","webpack:///./admin/people/containers/AdminPeopleApp.styled.tsx","webpack:///./admin/people/containers/AdminPeopleApp.tsx","webpack:///./admin/people/forms/UserForm.tsx","webpack:///./admin/people/containers/EditUserModal/EditUserModal.tsx","webpack:///./components/AdminPaneLayout/AdminPaneLayout.styled.tsx","webpack:///./components/AdminPaneLayout/AdminPaneTitle.tsx","webpack:///./components/AdminPaneLayout/AdminPaneLayout.tsx","webpack:///./components/Alert/Alert.jsx","webpack:///./hooks/use-confirmation.tsx","webpack:///./hoc/Typeahead.jsx","webpack:///./admin/people/components/AddMemberRow.styled.tsx","webpack:///./admin/people/components/AddRow.jsx","webpack:///./admin/people/components/AddMemberRow.jsx","webpack:///./admin/people/components/GroupMembersTable/GroupMembersTable.tsx","webpack:///./admin/people/components/GroupDetail.jsx","webpack:///./admin/people/containers/GroupDetailApp.jsx","webpack:///./admin/people/components/GroupsListing.styled.tsx","webpack:///./admin/people/components/GroupsListing.jsx","webpack:///./admin/people/containers/GroupsListingApp.jsx","webpack:///./admin/people/containers/NewUserModal.tsx","webpack:///./admin/people/components/PeopleListRow.styled.tsx","webpack:///./admin/people/components/PeopleListRow.jsx","webpack:///./admin/people/components/PeopleList.jsx","webpack:///./admin/people/components/SearchInput.jsx","webpack:///./hooks/use-pagination.ts","webpack:///./admin/people/hooks/use-people-query.js","webpack:///./admin/people/containers/PeopleListingApp.jsx","webpack:///./admin/people/containers/UserActivationModal.jsx","webpack:///./components/PasswordReveal/PasswordReveal.styled.tsx","webpack:///./components/PasswordReveal/PasswordReveal.jsx","webpack:///./admin/people/containers/UserPasswordResetModal.styled.tsx","webpack:///./admin/people/containers/UserPasswordResetModal.jsx","webpack:///./admin/people/containers/UserSuccessModal.styled.tsx","webpack:///./admin/people/containers/UserSuccessModal.jsx","webpack:///./lib/cron.ts","webpack:///./admin/settings/components/widgets/ModelCachingScheduleWidget/ModelCachingScheduleWidget.styled.tsx","webpack:///./admin/settings/components/widgets/SettingSelect.tsx","webpack:///./admin/settings/components/widgets/ModelCachingScheduleWidget/CronExpressionInput.styled.tsx","webpack:///./admin/settings/components/widgets/ModelCachingScheduleWidget/CronExpressionInput.tsx","webpack:///./admin/settings/components/widgets/ModelCachingScheduleWidget/CustomScheduleExplainer.tsx","webpack:///./admin/settings/components/widgets/ModelCachingScheduleWidget/ModelCachingScheduleWidget.jsx","webpack:///./admin/performance/components/ModelPersistenceConfiguration.module.css?a3f4","webpack:///./admin/performance/components/ModelPersistenceConfiguration.tsx","webpack:///./admin/performance/components/PerformanceApp.module.css?9e5d","webpack:///./admin/performance/hooks/useRecentlyTrue.tsx","webpack:///./admin/performance/hooks/useCacheConfigs.tsx","webpack:///./admin/performance/hooks/useConfirmOnRouteLeave.tsx","webpack:///./admin/performance/hooks/useConfirmIfFormIsDirty.tsx","webpack:///./admin/performance/hooks/useSaveStrategy.tsx","webpack:///./admin/performance/components/StrategyEditorForDatabases.styled.tsx","webpack:///./components/Schedule/utils.tsx","webpack:///./components/Schedule/components.tsx","webpack:///./components/Schedule/Schedule.tsx","webpack:///./admin/performance/hooks/useIsFormPending.tsx","webpack:///./admin/performance/components/StrategyForm.styled.tsx","webpack:///./admin/performance/components/StrategyForm.tsx","webpack:///./admin/performance/components/StrategyEditorForDatabases.tsx","webpack:///./admin/performance/components/PerformanceApp.tsx","webpack:///./admin/permissions/components/PermissionHelpDescription/PermissionHelpDescription.styled.tsx","webpack:///./admin/permissions/components/PermissionHelpDescription/PermissionHelpDescription.tsx","webpack:///./admin/permissions/components/CollectionPermissionsHelp/CollectionPermissionsHelp.tsx","webpack:///./admin/permissions/components/PermissionsPageLayout/PermissionsPageLayout.styled.tsx","webpack:///./admin/permissions/selectors/help-reference.ts","webpack:///./admin/permissions/selectors/data-permissions/diff.ts","webpack:///./admin/permissions/selectors/data-permissions/revision.ts","webpack:///./admin/permissions/components/LegacyPermissionsModal/LegacyPermissionsModal.tsx","webpack:///./admin/permissions/components/ToolbarButton/ToolbarButton.styled.tsx","webpack:///./admin/permissions/components/ToolbarButton/ToolbarButton.tsx","webpack:///./components/EditBar/EditBar.styled.tsx","webpack:///./components/EditBar/EditBar.tsx","webpack:///./admin/permissions/components/PermissionsConfirm.jsx","webpack:///./admin/permissions/components/PermissionsPageLayout/PermissionsEditBar.jsx","webpack:///./admin/permissions/components/PermissionsPageLayout/PermissionsTabs.jsx","webpack:///./admin/permissions/components/PermissionsPageLayout/PermissionsPageLayout.tsx","webpack:///./admin/permissions/components/PermissionsSidebar/PermissionsSidebar.styled.tsx","webpack:///./admin/permissions/components/EntityViewSwitch/EntityViewSwitch.styled.tsx","webpack:///./admin/permissions/components/EntityViewSwitch/EntityViewSwitch.tsx","webpack:///./admin/permissions/components/FilterableTree/FilterableTree.styled.tsx","webpack:///./admin/permissions/components/FilterableTree/utils.ts","webpack:///./admin/permissions/components/FilterableTree/FilterableTree.tsx","webpack:///./admin/permissions/components/PermissionsSidebar/PermissionsSidebarContent.styled.tsx","webpack:///./admin/permissions/components/PermissionsSidebar/PermissionsSidebarContent.tsx","webpack:///./admin/permissions/components/PermissionsSidebar/PermissionsSidebar.tsx","webpack:///./admin/permissions/pages/CollectionPermissionsPage/CollectionPermissionsPage.tsx","webpack:///./admin/permissions/components/DataPermissionsHelp/DataPermissionsHelp.tsx","webpack:///./admin/permissions/components/ToolbarUpsell/ToolbarUpsell.styled.tsx","webpack:///./admin/permissions/components/ToolbarUpsell/ToolbarUpsell.tsx","webpack:///./admin/permissions/pages/DataPermissionsPage/DataPermissionsPage.tsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorLegacyWarning.tsx","webpack:///./admin/permissions/components/PermissionsEditor/PermissionsEditorSplitPermsMessage.tsx","webpack:///./admin/permissions/selectors/data-permissions/breadcrumbs.ts","webpack:///./admin/permissions/selectors/data-permissions/shared.ts","webpack:///./admin/permissions/constants/data-permissions.tsx","webpack:///./admin/permissions/selectors/data-permissions/fields.ts","webpack:///./admin/permissions/selectors/data-permissions/groups.ts","webpack:///./admin/permissions/selectors/data-permissions/schemas.ts","webpack:///./admin/permissions/selectors/data-permissions/tables.ts","webpack:///./admin/permissions/selectors/data-permissions/permission-editor.ts","webpack:///./admin/permissions/selectors/data-permissions/data-sidebar.ts","webpack:///./admin/permissions/selectors/data-permissions/group-sidebar.ts","webpack:///./admin/permissions/pages/DatabasePermissionsPage/DatabasesPermissionsPage.jsx","webpack:///./admin/permissions/pages/GroupDataPermissionsPage/GroupsPermissionsPage.jsx","webpack:///./admin/permissions/routes.jsx","webpack:///./admin/settings/components/Swag/constants.ts","webpack:///./admin/settings/components/Swag/SwagModal.tsx","webpack:///./admin/settings/components/Swag/utils.ts","webpack:///./admin/settings/components/Swag/SwagButton.tsx","webpack:///./components/SaveStatus/SaveStatus.jsx","webpack:///./admin/settings/app/components/SettingsEditor/SettingsEditor.styled.tsx","webpack:///./admin/settings/app/components/SettingsEditor/SettingsEditor.jsx","webpack:///./components/AdminHeader/AdminHeader.jsx","webpack:///./components/Code/Code.jsx","webpack:///./admin/tasks/components/Help/Help.styled.tsx","webpack:///./admin/tasks/components/Help/Help.tsx","webpack:///./admin/tasks/components/Logs/Logs.styled.tsx","webpack:///./admin/tasks/components/Logs/utils.ts","webpack:///./admin/tasks/components/Logs/Logs.tsx","webpack:///./admin/tasks/components/Logs/hooks.ts","webpack:///./admin/tasks/containers/JobInfoApp.jsx","webpack:///./admin/tasks/containers/JobTriggersModal.jsx","webpack:///./admin/tasks/containers/ModelCacheRefreshJobs/ModelCacheRefreshJobs.styled.tsx","webpack:///./admin/tasks/containers/ModelCacheRefreshJobs/ModelCacheRefreshJobs.tsx","webpack:///./admin/tasks/containers/ModelCacheRefreshJobs/ModelCacheRefreshJobModal.tsx","webpack:///./admin/tasks/containers/TaskModal.tsx","webpack:///./admin/tasks/containers/TasksApp.styled.tsx","webpack:///./admin/tasks/containers/TasksApp.tsx","webpack:///./admin/tasks/containers/TroubleshootingApp.jsx","webpack:///./admin/tools/containers/Tools.styled.tsx","webpack:///./admin/tools/containers/Tools.tsx","webpack:///./admin/utils.js","webpack:///./hoc/Background.jsx","webpack:///./admin/settings/containers/RedirectToAllowedSettings.jsx","webpack:///./admin/routes.jsx","webpack:///./auth/components/AuthLayout/AuthLayout.styled.tsx","webpack:///./auth/components/AuthLayout/AuthLayout.tsx","webpack:///./auth/components/ForgotPasswordForm/ForgotPasswordForm.styled.tsx","webpack:///./auth/components/ForgotPasswordForm/ForgotPasswordForm.tsx","webpack:///./auth/components/ForgotPassword/ForgotPassword.styled.tsx","webpack:///./auth/components/ForgotPassword/ForgotPassword.tsx","webpack:///./auth/components/Login/Login.tsx","webpack:///./auth/components/Logout/Logout.tsx","webpack:///./auth/components/ResetPasswordForm/ResetPasswordForm.styled.tsx","webpack:///./auth/components/ResetPasswordForm/ResetPasswordForm.tsx","webpack:///./auth/components/ResetPassword/ResetPassword.styled.tsx","webpack:///./auth/components/ResetPassword/ResetPassword.tsx","webpack:///./common/hooks/use-fetch-metrics.tsx","webpack:///./browse/components/BrowseContainer.styled.tsx","webpack:///./common/components/EllipsifiedPath/EllipsifiedPath.module.css?a45b","webpack:///./common/components/EllipsifiedPath/EllipsifiedPath.tsx","webpack:///./common/components/EllipsifiedPath/EllipsifiedCollectionPath.tsx","webpack:///./archive/analytics.ts","webpack:///./core/components/Swapper/Swapper.styled.tsx","webpack:///./core/components/Swapper/Swapper.tsx","webpack:///./components/EntityItem/EntityItem.styled.tsx","webpack:///./components/EntityItem/EntityItem.tsx","webpack:///./components/ConfirmDeleteModal.tsx","webpack:///./collections/components/ActionMenu/ActionMenu.styled.tsx","webpack:///./collections/components/ActionMenu/ActionMenu.tsx","webpack:///./components/ItemsTable/utils.ts","webpack:///./components/ItemsTable/BaseItemsTable.styled.tsx","webpack:///./components/ItemsTable/Columns.tsx","webpack:///./components/ItemsTable/DefaultItemRenderer.tsx","webpack:///./containers/dnd/ItemDragSource.jsx","webpack:///./components/ItemsTable/BaseItemTableRow.tsx","webpack:///./components/ItemsTable/BaseItemsTableBody/BaseItemsTableBody.tsx","webpack:///./components/ItemsTable/BaseItemsTable/BaseItemsTable.tsx","webpack:///./core/components/MarkdownPreview/MarkdownPreview.module.css?8260","webpack:///./core/components/MarkdownPreview/MarkdownPreview.tsx","webpack:///./browse/components/BrowseTable.styled.tsx","webpack:///./browse/metrics/utils.tsx","webpack:///./browse/metrics/MetricsTable.tsx","webpack:///./browse/metrics/BrowseMetrics.tsx","webpack:///./common/hooks/use-fetch-models.tsx","webpack:///./browse/models/EmptyStates/ModelsVideo.module.css?1fd1","webpack:///./browse/models/EmptyStates/ModelsVideo.tsx","webpack:///./browse/models/ModelExplanationBanner.tsx","webpack:///./browse/models/analytics.ts","webpack:///./browse/models/utils.ts","webpack:///./browse/models/ModelsTable.tsx","webpack:///./collections/components/PinnedItemCard/PinnedItemCard.styled.tsx","webpack:///./collections/components/PinnedItemCard/PinnedItemCard.tsx","webpack:///./browse/models/RecentModels.styled.tsx","webpack:///./browse/models/RecentModels.tsx","webpack:///./browse/models/BrowseModels.tsx","webpack:///./browse/components/BrowseHeader.styled.tsx","webpack:///./browse/components/BrowseDataHeader.tsx","webpack:///./browse/databases/BrowseDatabases.module.css?3acd","webpack:///./browse/databases/analytics.ts","webpack:///./browse/databases/BrowseDatabases.tsx","webpack:///./components/BrowserCrumbs/BrowserCrumbs.styled.tsx","webpack:///./components/BrowserCrumbs/BrowserCrumbs.tsx","webpack:///./browse/tables/analytics.ts","webpack:///./components/Grid/Grid.styled.tsx","webpack:///./components/Grid/Grid.jsx","webpack:///./browse/tables/TableBrowser/TableBrowser.styled.tsx","webpack:///./browse/tables/TableBrowser/useDatabaseCrumb.ts","webpack:///./browse/tables/TableBrowser/TableBrowser.jsx","webpack:///./browse/containers/TableBrowser/TableBrowser.jsx","webpack:///./browse/constants.ts","webpack:///./browse/tables/BrowseTables.tsx","webpack:///./browse/schemas/BrowseSchemas.styled.tsx","webpack:///./browse/schemas/BrowseSchemas.tsx","webpack:///./archive/actions.ts","webpack:///./archive/components/ArchivedEntityBanner/ArchivedEntityBanner.module.css?5347","webpack:///./archive/components/ArchivedEntityBanner/BannerButton.tsx","webpack:///./archive/components/ArchivedEntityBanner/ArchivedEntityBanner.tsx","webpack:///./collections/hooks.ts","webpack:///./dashboard/containers/CopyDashboardForm.tsx","webpack:///./collections/containers/FormCollectionAndDashboardPicker/FormCollectionAndDashboardPicker.tsx","webpack:///./questions/components/CopyQuestionForm.tsx","webpack:///./questions/constants.ts","webpack:///./entities/containers/EntityCopyModal.tsx","webpack:///./hoc/Toast.jsx","webpack:///./collections/components/CollectionCopyEntityModal.tsx","webpack:///./components/BulkActionBar/BulkActionBar.styled.tsx","webpack:///./components/BulkActionBar/BulkActionBar.tsx","webpack:///./containers/MoveModal.tsx","webpack:///./archive/components/BulkDeleteConfirmModal.tsx","webpack:///./collections/components/CollectionBulkActions/ArchivedBulkActions.tsx","webpack:///./collections/components/CollectionBulkActions/QuestionMoveConfirmModal.tsx","webpack:///./collections/components/CollectionBulkActions/UnarchivedBulkActions.tsx","webpack:///./collections/components/CollectionBulkActions/CollectionBulkActions.tsx","webpack:///./collections/components/CollectionContent/constants.ts","webpack:///./containers/dnd/PinDropTarget.jsx","webpack:///./collections/components/PinDropZone/PinDropZone.styled.tsx","webpack:///./collections/components/PinDropZone/PinDropZone.tsx","webpack:///./collections/components/PinnedItemOverview/PinnedItemOverview.styled.tsx","webpack:///./containers/dnd/PinnedItemSortDropTarget.jsx","webpack:///./collections/components/PinnedItemSortDropTarget/PinnedItemSortDropTarget.styled.tsx","webpack:///./collections/components/PinnedItemSortDropTarget/PinnedItemSortDropTarget.tsx","webpack:///./visualizations/components/skeletons/ChartSkeleton/ChartSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/AreaSkeleton/AreaSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/AreaSkeleton/AreaSkeleton.tsx","webpack:///./visualizations/components/skeletons/BarSkeleton/BarSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/BarSkeleton/BarSkeleton.tsx","webpack:///./visualizations/components/skeletons/FunnelSkeleton/FunnelSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/FunnelSkeleton/FunnelSkeleton.tsx","webpack:///./visualizations/components/skeletons/GaugeSkeleton/GaugeSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/GaugeSkeleton/GaugeSkeleton.tsx","webpack:///./visualizations/components/skeletons/LineSkeleton/LineSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/LineSkeleton/LineSkeleton.tsx","webpack:///./visualizations/components/skeletons/MapSkeleton/MapSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/MapSkeleton/MapSkeleton.tsx","webpack:///./visualizations/components/skeletons/PieSkeleton/PieSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/PieSkeleton/PieSkeleton.tsx","webpack:///./visualizations/components/skeletons/ProgressSkeleton/ProgressSkeleton.tsx","webpack:///./visualizations/components/skeletons/RowSkeleton/RowSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/RowSkeleton/RowSkeleton.tsx","webpack:///./visualizations/components/skeletons/SkeletonCaption/SkeletonCaption.styled.tsx","webpack:///./visualizations/components/skeletons/SkeletonCaption/SkeletonCaption.tsx","webpack:///./visualizations/components/skeletons/ScalarSkeleton/ScalarSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/ScalarSkeleton/ScalarSkeleton.tsx","webpack:///./visualizations/components/skeletons/ScatterSkeleton/ScatterSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/ScatterSkeleton/ScatterSkeleton.tsx","webpack:///./visualizations/components/skeletons/TableSkeleton/TableSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/TableSkeleton/TableSkeleton.tsx","webpack:///./visualizations/components/skeletons/VisualizationSkeleton/VisualizationSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/VisualizationSkeleton/VisualizationSkeleton.tsx","webpack:///./visualizations/components/skeletons/WaterfallSkeleton/WaterfallSkeleton.styled.tsx","webpack:///./visualizations/components/skeletons/WaterfallSkeleton/WaterfallSkeleton.tsx","webpack:///./visualizations/components/skeletons/ChartSkeleton/ChartSkeleton.tsx","webpack:///./visualizations/components/skeletons/StaticSkeleton/StaticSkeleton.styled.tsx","webpack:///./collections/components/PinnedQuestionCard/PinnedQuestionCard.styled.tsx","webpack:///./visualizations/components/skeletons/StaticSkeleton/StaticSkeleton.tsx","webpack:///./containers/QuestionResultLoader.jsx","webpack:///./collections/components/PinnedQuestionCard/PinnedQuestionLoader.tsx","webpack:///./collections/components/PinnedQuestionCard/PinnedQuestionCard.tsx","webpack:///./collections/components/PinnedItemOverview/PinnedItemOverview.tsx","webpack:///./components/MoveQuestionsIntoDashboardsModal/hooks.ts","webpack:///./hooks/use-user-acknowledgement.ts","webpack:///./hooks/use-user-key-value.ts","webpack:///./collections/components/CollectionMenu/CollectionMenu.tsx","webpack:///./collections/components/CollectionHeader/CollectionBookmark.tsx","webpack:///./common/components/EditableDescription/EditableDescription.tsx","webpack:///./collections/components/CollectionHeader/CollectionCaption.styled.tsx","webpack:///./collections/components/CollectionHeader/CollectionCaption.tsx","webpack:///./collections/components/CollectionHeader/CollectionHeader.styled.tsx","webpack:///./common/components/Sidesheet/sidesheet.module.css?8471","webpack:///./common/components/Sidesheet/Sidesheet.tsx","webpack:///./common/components/Sidesheet/SidesheetCard.tsx","webpack:///./common/components/Sidesheet/SidesheetCardSection.tsx","webpack:///./common/components/Sidesheet/SidesheetTabPanelContainer.tsx","webpack:///./common/components/Sidesheet/components/SidesheetEditableDescription.tsx","webpack:///./components/EntityIdCard/EntityIdCard.module.css?a8de","webpack:///./components/EntityIdCard/EntityIdCard.tsx","webpack:///./collections/components/CollectionInfoSidebar/CollectionInfoSidebar.tsx","webpack:///./collections/components/CollectionHeader/CollectionInfoSidebarToggle.tsx","webpack:///./collections/components/CollectionHeader/CollectionPermissions.tsx","webpack:///./collections/components/CollectionHeader/CollectionTimeline.tsx","webpack:///./collections/components/CollectionHeader/CollectionUpload.styled.tsx","webpack:///./collections/components/CollectionHeader/CollectionUploadInfoModal.tsx","webpack:///./collections/components/CollectionHeader/CollectionUpload.tsx","webpack:///./collections/components/CollectionHeader/CollectionHeader.tsx","webpack:///./collections/containers/CollectionHeader/CollectionHeader.tsx","webpack:///./containers/dnd/ItemsDragLayer.jsx","webpack:///./collections/components/UploadOverlay/UploadOverlay.styled.tsx","webpack:///./collections/components/UploadOverlay/UploadOverlay.tsx","webpack:///./collections/components/CollectionContent/CollectionContent.styled.tsx","webpack:///./collections/components/CollectionEmptyState/CollectionEmptyState.styled.tsx","webpack:///./collections/components/CollectionEmptyState/CollectionEmptyState.tsx","webpack:///./components/ItemsTable/ItemsTable.styled.tsx","webpack:///./components/ItemsTable/ItemsTable.tsx","webpack:///./collections/components/CollectionContent/CollectionItemsTable.tsx","webpack:///./collections/components/CollectionContent/utils.ts","webpack:///./collections/components/CollectionContent/CollectionContentView.tsx","webpack:///./hooks/use-list-select.ts","webpack:///./collections/components/CollectionContent/CollectionContent.tsx","webpack:///./collections/components/CollectionLanding/CollectionLanding.tsx","webpack:///./collections/components/MoveCollectionModal/MoveCollectionModal.tsx","webpack:///./collections/components/TrashCollectionLanding/TrashCollectionLanding.tsx","webpack:///./components/ArchiveModal/ArchiveModal.tsx","webpack:///./components/ArchiveCollectionModal/ArchiveCollectionModal.jsx","webpack:///./components/MoveQuestionsIntoDashboardsModal/ConfirmMoveDashboardQuestionCandidatesModal.module.css?687f","webpack:///./components/MoveQuestionsIntoDashboardsModal/ConfirmMoveDashboardQuestionCandidatesModal.tsx","webpack:///./components/MoveQuestionsIntoDashboardsModal/MoveQuestionsIntoDashboardsInfoModal.tsx","webpack:///./components/MoveQuestionsIntoDashboardsModal/MoveQuestionsIntoDashboardsModal.tsx","webpack:///./containers/NotFoundFallbackPage.tsx","webpack:///./core/components/MetabotLogo/MetabotLogo.styled.tsx","webpack:///./core/components/MetabotLogo/MetabotLogo.tsx","webpack:///./containers/Unsubscribe.styled.tsx","webpack:///./containers/Unsubscribe.tsx","webpack:///./containers/UserCollectionList.styled.tsx","webpack:///./containers/UserCollectionList.tsx","webpack:///./dashboard/components/DashboardCopyModal.jsx","webpack:///./dashboard/components/DashboardMoveModal.styled.tsx","webpack:///./dashboard/components/DashboardMoveModal.tsx","webpack:///./dashboard/containers/ArchiveDashboardModal.jsx","webpack:///./dashboard/containers/Dashboard.jsx","webpack:///./dashboard/hoc/DashboardData.jsx","webpack:///./dashboard/containers/AutomaticDashboardApp.styled.tsx","webpack:///./dashboard/containers/AutomaticDashboardApp.jsx","webpack:///./dashboard/components/Dashboard/use-set-dashboard-attribute.ts","webpack:///./dashboard/components/Sidebar.styled.tsx","webpack:///./dashboard/components/Sidebar.tsx","webpack:///./dashboard/components/DashboardHeaderView.styled.tsx","webpack:///./dashboard/components/DashboardHeader/DashboardHeaderView.tsx","webpack:///./dashboard/components/DashboardHeader/DashboardHeader.tsx","webpack:///./dashboard/components/DashboardParameterList/DashboardParameterList.tsx","webpack:///./dashboard/components/DashboardParameterPanel/DashboardParameterPanel.tsx","webpack:///./parameters/utils/linked-filters.js","webpack:///./parameters/components/ParameterLinkedFilters/ParameterLinkedFilters.styled.tsx","webpack:///./parameters/components/ParameterLinkedFilters/use-filter-fields.ts","webpack:///./parameters/components/ParameterLinkedFilters/ParameterLinkedFilters.tsx","webpack:///./parameters/components/RequiredParamToggle/RequiredParamToggle.styled.tsx","webpack:///./parameters/components/RequiredParamToggle/RequiredParamToggle.tsx","webpack:///./parameters/components/ValuesSourceModal/ValuesSourceCardModal.tsx","webpack:///./parameters/components/ValuesSourceModal/ValuesSourceModal.styled.tsx","webpack:///./parameters/components/ValuesSourceModal/ValuesSourceTypeModal.module.css?bc36","webpack:///./parameters/components/ValuesSourceModal/ValuesSourceTypeModal.styled.tsx","webpack:///./parameters/components/ValuesSourceModal/utils.ts","webpack:///./parameters/components/ValuesSourceModal/ValuesSourceTypeModal.tsx","webpack:///./parameters/components/ValuesSourceModal/ValuesSourceModal.tsx","webpack:///./parameters/components/ValuesSourceSettings/ValuesSourceSettings.styled.tsx","webpack:///./parameters/components/ValuesSourceSettings/ValuesSourceSettings.tsx","webpack:///./parameters/components/ParameterSettings/ParameterSettings.styled.tsx","webpack:///./parameters/components/ParameterSettings/TemporalUnitSettings/TemporalUnitSettings.module.css?9e7d","webpack:///./parameters/components/ParameterSettings/TemporalUnitSettings/TemporalUnitSettings.tsx","webpack:///./parameters/components/ParameterSettings/ParameterSettings.tsx","webpack:///./parameters/utils/parameter-type.ts","webpack:///./parameters/components/ParameterSidebar/ParameterSidebar.tsx","webpack:///./components/SendTestPulse/SendTestPulse.jsx","webpack:///./notifications/EmailAttachmentPicker.jsx","webpack:///./notifications/AddEditSidebar/CaveatMessage/CaveatMessage.styled.tsx","webpack:///./notifications/AddEditSidebar/CaveatMessage/CaveatMessage.jsx","webpack:///./notifications/AddEditSidebar/Heading.jsx","webpack:///./notifications/AddEditSidebar/DefaultParametersSection.jsx","webpack:///./notifications/AddEditSidebar/DeleteSubscriptionAction.jsx","webpack:///./notifications/AddEditSidebar/constants.js","webpack:///./notifications/AddEditSidebar/AddEditEmailSidebar.jsx","webpack:///./notifications/AddEditSidebar/AddEditSlackSidebar.jsx","webpack:///./notifications/AddEditSidebar/AddEditSidebar.jsx","webpack:///./notifications/pulse/components/ChannelCard.tsx","webpack:///./notifications/NewPulseSidebar.tsx","webpack:///./notifications/PulsesListSidebar.styled.tsx","webpack:///./notifications/PulsesListSidebar.jsx","webpack:///./sharing/components/SharingSidebar/SharingSidebar.jsx","webpack:///./dashboard/components/ActionSidebar/ActionSidebar.styled.tsx","webpack:///./dashboard/components/ActionSidebar/ActionSidebar.tsx","webpack:///./lib/collections.ts","webpack:///./dashboard/components/QuestionPicker/QuestionList.styled.tsx","webpack:///./dashboard/components/QuestionPicker/QuestionList.tsx","webpack:///./dashboard/components/QuestionPicker/QuestionPicker.module.css?80c3","webpack:///./dashboard/components/QuestionPicker/QuestionPicker.tsx","webpack:///./dashboard/components/AddCardSidebar/AddCardSidebar.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/SidebarItem/SidebarItem.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/SidebarItem/SidebarItem.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/ClickBehaviorSidebar.styled.tsx","webpack:///./dashboard/components/ClickMappings.styled.tsx","webpack:///./dashboard/components/ClickMappings.jsx","webpack:///./dashboard/components/ClickBehaviorSidebar/CrossfilterOptions.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/CustomLinkText.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/CustomLinkText.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/CustomURLPicker.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/ValuesYouCanReference.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/ValuesYouCanReference.jsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/CustomURLPicker.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/LinkOption.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/LinkOptions.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/LinkedEntityPicker/LinkedEntityPicker.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/LinkOptions/LinkOptions.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/hooks.ts","webpack:///./dashboard/components/ClickBehaviorSidebar/utils.ts","webpack:///./dashboard/components/ClickBehaviorSidebar/ClickBehaviorSidebarMainView/ClickBehaviorSidebarMainView.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/TableClickBehaviorView/Column.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/TableClickBehaviorView/TableClickBehaviorView.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/TypeSelector/TypeSelector.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/TypeSelector/TypeSelector.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/ClickBehaviorSidebarContent.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/ClickBehaviorSidebarHeader/ClickBehaviorSidebarHeader.styled.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/ClickBehaviorSidebarHeader/ClickBehaviorSidebarHeader.tsx","webpack:///./dashboard/components/ClickBehaviorSidebar/ClickBehaviorSidebar.tsx","webpack:///./common/components/Sidesheet/components/InsightsTab/InsightsTab.tsx","webpack:///./common/components/Sidesheet/components/InsightsTabOrLink/InsightsTabOrLink.tsx","webpack:///./common/components/Timeline/Timeline.styled.tsx","webpack:///./common/components/Timeline/Timeline.tsx","webpack:///./common/components/Timeline/utils.ts","webpack:///./dashboard/components/DashboardInfoSidebar/DashboardInfoSidebar.module.css?7b9c","webpack:///./dashboard/components/DashboardInfoSidebar/DashboardDetails.tsx","webpack:///./dashboard/components/DashboardInfoSidebar/DashboardEntityIdCard/DashboardEntityIdCard.tsx","webpack:///./admin/upsells/UpsellUsageAnalytics.tsx","webpack:///./dashboard/components/DashboardInfoSidebar/components/InsightsUpsellTab.tsx","webpack:///./dashboard/components/DashboardInfoSidebar/DashboardInfoSidebar.tsx","webpack:///./dashboard/components/DashboardSettingsSidebar/DashboardSettingsSidebar.tsx","webpack:///./dashboard/components/DashboardSidebars.tsx","webpack:///./dashboard/components/Dashboard/Dashboard.tsx","webpack:///./dashboard/components/DashboardLeaveConfirmationModal/utils.ts","webpack:///./dashboard/components/DashboardLeaveConfirmationModal/DashboardLeaveConfirmationModal.tsx","webpack:///./hoc/TitleWithLoadingTime.jsx","webpack:///./hooks/use-loading-timer.ts","webpack:///./hooks/use-web-notification.ts","webpack:///./dashboard/containers/DashboardApp/DashboardApp.tsx","webpack:///./common/hooks/use-homepage-dashboard.tsx","webpack:///./home/utils.ts","webpack:///./api/product-feedback.ts","webpack:///./home/components/EmbedHomepage/HeaderWithDismiss.tsx","webpack:///./home/components/EmbedHomepage/InteractiveContent.tsx","webpack:///./home/components/EmbedHomepage/NeedMoreInfoCard.tsx","webpack:///./home/components/EmbedHomepage/SDKContent.tsx","webpack:///./home/components/EmbedHomepage/analytics.ts","webpack:///./home/components/EmbedHomepage/StaticEmbedContent.tsx","webpack:///./home/components/EmbedHomepage/EmbedHomepageView.tsx","webpack:///./home/components/EmbedHomepage/FeedbackModal.tsx","webpack:///./home/components/EmbedHomepage/actions.ts","webpack:///./home/components/EmbedHomepage/EmbedHomepage.tsx","webpack:///./home/components/HomeCaption/HomeCaption.styled.tsx","webpack:///./home/components/HomeCaption/HomeCaption.tsx","webpack:///./home/components/HomeHelpCard/HomeHelpCard.styled.tsx","webpack:///./home/components/HomeHelpCard/HomeHelpCard.tsx","webpack:///./home/components/HomeCard/HomeCard.styled.tsx","webpack:///./home/components/HomeCard/HomeCard.tsx","webpack:///./home/components/HomeModelCard/HomeModelCard.styled.tsx","webpack:///./home/components/HomeModelCard/HomeModelCard.tsx","webpack:///./home/components/HomePopularSection/HomePopularSection.styled.tsx","webpack:///./home/components/HomePopularSection/HomePopularSection.tsx","webpack:///./home/components/HomeRecentSection/HomeRecentSection.styled.tsx","webpack:///./home/components/HomeRecentSection/HomeRecentSection.tsx","webpack:///./home/components/HomeXrayCard/HomeXrayCard.styled.tsx","webpack:///./home/components/HomeXrayCard/HomeXrayCard.tsx","webpack:///./home/components/HomeXraySection/HomeXraySection.styled.tsx","webpack:///./home/components/HomeXraySection/HomeXraySection.tsx","webpack:///./home/components/HomeContent/HomeContent.tsx","webpack:///./home/components/CustomHomePageModal/CustomHomePageModal.tsx","webpack:///./home/components/HomeGreeting/HomeGreeting.styled.tsx","webpack:///./home/components/HomeGreeting/HomeGreeting.tsx","webpack:///./home/components/HomeLayout/HomeLayout.styled.tsx","webpack:///./home/components/HomeLayout/HomeLayout.tsx","webpack:///./home/components/HomePage/HomePage.tsx","webpack:///./models/components/NewModelOption.module.css?ebe7","webpack:///./models/components/NewModelOption.jsx","webpack:///./components/AdminAwareEmptyState/AdminAwareEmptyState.jsx","webpack:///./reference/databases/NoDatabasesEmptyState.jsx","webpack:///./models/containers/NewModelOptions/NewModelOptions.styled.tsx","webpack:///./models/containers/NewModelOptions/NewModelOptions.tsx","webpack:///./actions/containers/ActionCreatorModal/ActionCreatorModal.tsx","webpack:///./models/components/ModelActions/EmptyState.styled.tsx","webpack:///./models/components/ModelActions/ModelActionDetails/ModelActionDetails.styled.tsx","webpack:///./models/components/ModelActions/ModelActionDetails/ModelActionListItem.styled.tsx","webpack:///./models/components/ModelActions/ModelActionDetails/ModelActionListItem.tsx","webpack:///./models/components/ModelActions/ModelActionDetails/ModelActionDetails.tsx","webpack:///./models/components/ModelActions/ModelActions.tsx","webpack:///./models/containers/ModelActions/ModelActions.tsx","webpack:///./models/routes.tsx","webpack:///./components/Toaster/Toaster.styled.tsx","webpack:///./components/Toaster/Toaster.tsx","webpack:///./components/SaveQuestionForm/schema.ts","webpack:///./components/SaveQuestionForm/util.ts","webpack:///./components/SaveQuestionForm/context.tsx","webpack:///./components/SaveQuestionForm/SaveQuestionTitle.tsx","webpack:///./components/SaveQuestionForm/SaveQuestionForm.module.css?d4a5","webpack:///./components/SaveQuestionForm/SaveQuestionForm.tsx","webpack:///./components/SaveQuestionForm/LLMSuggestionQuestionInfo.tsx","webpack:///./containers/SaveQuestionModal/SaveQuestionModal.tsx","webpack:///./querying/notebook/utils/steps.ts","webpack:///./components/ExpandingContent/ExpandingContent.jsx","webpack:///./querying/notebook/components/NotebookStep/NotebookActionButton/NotebookActionButton.module.css?f4ec","webpack:///./querying/notebook/components/NotebookStep/NotebookActionButton/NotebookActionButton.tsx","webpack:///./querying/notebook/components/NotebookStep/NotebookStep.module.css?38f0","webpack:///./querying/notebook/components/NotebookStep/NotebookStepPreview/NotebookStepPreview.jsx","webpack:///./common/components/AggregationPicker/AggregationPicker.styled.tsx","webpack:///./common/components/AggregationPicker/AggregationPicker.tsx","webpack:///./querying/notebook/components/NotebookCell/NotebookCell.module.css?871b","webpack:///./querying/notebook/components/NotebookCell/constants.ts","webpack:///./querying/notebook/components/NotebookCell/NotebookCell.tsx","webpack:///./querying/notebook/components/ClauseStep/ClausePopover.tsx","webpack:///./querying/notebook/components/ClauseStep/ClauseStep.module.css?5975","webpack:///./querying/notebook/components/ClauseStep/ClauseStep.tsx","webpack:///./querying/notebook/components/AggregateStep/AggregateStep.tsx","webpack:///./querying/notebook/components/BreakoutStep/BreakoutStep.tsx","webpack:///./querying/notebook/components/FieldPicker/FieldPicker.module.css?b5e5","webpack:///./querying/notebook/components/FieldPicker/FieldPicker.tsx","webpack:///./querying/notebook/components/Notebook/context.tsx","webpack:///./querying/notebook/components/NotebookDataPicker/utils.ts","webpack:///./querying/notebook/components/NotebookDataPicker/NotebookDataPicker.tsx","webpack:///./querying/notebook/components/DataStep/DataStep.module.css?e358","webpack:///./querying/notebook/components/DataStep/DataStep.tsx","webpack:///./querying/notebook/components/ExpressionStep/ExpressionStep.tsx","webpack:///../metabase-lib/v1/queries/utils/expression.js","webpack:///./querying/notebook/components/FilterStep/FilterStep.tsx","webpack:///./querying/notebook/components/JoinStep/JoinConditionColumnPicker/JoinConditionColumnPicker.module.css?ff07","webpack:///./querying/notebook/components/JoinStep/JoinConditionColumnPicker/JoinConditionColumnPicker.tsx","webpack:///./querying/notebook/components/JoinStep/JoinConditionOperatorPicker/JoinConditionOperatorPicker.module.css?4d97","webpack:///./querying/notebook/components/JoinStep/JoinConditionOperatorPicker/JoinConditionOperatorPicker.tsx","webpack:///./querying/notebook/components/JoinStep/JoinConditionRemoveButton/JoinConditionRemoveButton.module.css?7664","webpack:///./querying/notebook/components/JoinStep/JoinConditionRemoveButton/JoinConditionRemoveButton.tsx","webpack:///./querying/notebook/components/JoinStep/utils.ts","webpack:///./querying/notebook/components/JoinStep/JoinCondition/JoinCondition.module.css?c73f","webpack:///./querying/notebook/components/JoinStep/JoinCondition/JoinCondition.tsx","webpack:///./querying/notebook/components/JoinStep/JoinConditionDraft/JoinConditionDraft.module.css?9901","webpack:///./querying/notebook/components/JoinStep/JoinConditionDraft/JoinConditionDraft.tsx","webpack:///./querying/notebook/components/JoinStep/JoinConditionDraft/utils.ts","webpack:///./querying/notebook/components/JoinStep/JoinStrategyPicker/JoinStrategyPicker.module.css?86f3","webpack:///./querying/notebook/components/JoinStep/JoinStrategyPicker/JoinStrategyPicker.tsx","webpack:///./querying/notebook/components/JoinStep/JoinTableColumnPicker/JoinTableColumnPicker.tsx","webpack:///./querying/notebook/components/JoinStep/JoinTablePicker/JoinTablePicker.module.css?7e7b","webpack:///./querying/notebook/components/JoinStep/JoinTablePicker/JoinTablePicker.tsx","webpack:///./querying/notebook/components/JoinStep/JoinComplete/JoinComplete.module.css?286a","webpack:///./querying/notebook/components/JoinStep/JoinComplete/JoinComplete.tsx","webpack:///./querying/notebook/components/JoinStep/JoinTableColumnDraftPicker/JoinTableColumnDraftPicker.tsx","webpack:///./querying/notebook/components/JoinStep/JoinDraft/JoinDraft.module.css?a6e1","webpack:///./querying/notebook/components/JoinStep/JoinDraft/utils.ts","webpack:///./querying/notebook/components/JoinStep/JoinDraft/JoinDraft.tsx","webpack:///./querying/notebook/components/JoinStep/Join/Join.tsx","webpack:///./query_builder/components/LimitInput.tsx","webpack:///./querying/notebook/components/LimitStep/util.ts","webpack:///./querying/notebook/components/SortStep/SortStep.module.css?1389","webpack:///./querying/notebook/components/SortStep/SortStep.tsx","webpack:///./querying/notebook/components/NotebookStep/NotebookStepHeader/NotebookStepHeader.tsx","webpack:///./querying/notebook/components/NotebookStep/utils.ts","webpack:///./querying/notebook/components/JoinStep/JoinStep.tsx","webpack:///./querying/notebook/components/SummarizeStep/SummarizeStep.tsx","webpack:///./querying/notebook/components/SummarizeStep/SummarizeStepHeader/SummarizeStepHeader.tsx","webpack:///./querying/notebook/components/LimitStep/LimitStep.tsx","webpack:///./querying/notebook/components/NotebookStep/NotebookStep.tsx","webpack:///./querying/notebook/components/NotebookStepList/NotebookStepList.tsx","webpack:///./querying/notebook/components/Notebook/Notebook.tsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditorBody/MetricEditorBody.module.css?68a8","webpack:///./querying/metrics/components/MetricEditor/MetricEditorBody/MetricEditorSidebar/MetricEditorSidebar.tsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditorBody/ResizableBoxHandle/ResizableBoxHandle.module.css?1c16","webpack:///./querying/metrics/components/MetricEditor/MetricEditorBody/ResizableBoxHandle/ResizableBoxHandle.tsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditorBody/MetricEditorBody.tsx","webpack:///./components/DebouncedFrame/DebouncedFrame.jsx","webpack:///./query_builder/components/VisualizationError/VisualizationError.module.css?a719","webpack:///./query_builder/components/VisualizationError/components/AdminEmail/AdminEmail.tsx","webpack:///./query_builder/components/VisualizationError/VisualizationError.tsx","webpack:///./query_builder/components/VisualizationError/utils.jsx","webpack:///./query_builder/components/VisualizationResult.jsx","webpack:///./query_builder/components/QueryVisualization.jsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditorFooter/MetricEditorFooter.module.css?af8c","webpack:///./querying/metrics/components/MetricEditor/MetricEditorFooter/MetricEmptyState/MetricEmptyState.tsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditorFooter/MetricEditorFooter.tsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditorHeader/MetricEditorHeader.module.css?bdd1","webpack:///./querying/metrics/components/MetricEditor/MetricEditorHeader/MetricEditorHeader.tsx","webpack:///./querying/metrics/components/MetricEditor/MetricEditor.tsx","webpack:///./query_builder/components/template_tags/SnippetRow/SnippetRow.module.css?1f2e","webpack:///./query_builder/components/template_tags/SnippetRow/SnippetRow.jsx","webpack:///./query_builder/components/template_tags/SnippetSidebar/SnippetSidebar.module.css?d21b","webpack:///./query_builder/components/template_tags/SnippetSidebar/SnippetSidebar.jsx","webpack:///./query_builder/components/template_tags/TagEditorHelp/TagEditorHelp.tsx","webpack:///../metabase-types/api/mocks/entity-id.ts","webpack:///../metabase-types/api/mocks/card.ts","webpack:///../metabase-types/api/mocks/dashboard.ts","webpack:///../metabase-types/api/mocks/parameters.ts","webpack:///../metabase-lib/v1/parameters/utils/template-tag-options.ts","webpack:///./query_builder/components/template_tags/TagEditorParam.module.css?22a8","webpack:///./query_builder/components/template_tags/TagEditorParamParts/TagEditorParam.module.css?b855","webpack:///./query_builder/components/template_tags/TagEditorParamParts/TagEditorParam.tsx","webpack:///./query_builder/components/template_tags/TagEditorParamParts/DefaultRequiredValueControl.tsx","webpack:///./query_builder/components/template_tags/TagEditorParamParts/FilterWidgetTypeSelect.tsx","webpack:///./query_builder/components/template_tags/TagEditorParamParts/FieldMappingSelect.tsx","webpack:///./query_builder/components/template_tags/TagEditorParamParts/VariableTypeSelect.tsx","webpack:///./query_builder/components/template_tags/TagEditorParamParts/FilterWidgetLabelInput.tsx","webpack:///./query_builder/components/template_tags/TagEditorParam.tsx","webpack:///./query_builder/components/template_tags/TagEditorSidebar.tsx","webpack:///./query_builder/components/view/ViewSidebar/ViewSidebar.module.css?aa5e","webpack:///./query_builder/components/view/ViewSidebar/ViewSidebar.jsx","webpack:///./query_builder/components/DatasetEditor/DatasetEditor.module.css?9bdf","webpack:///./query_builder/components/DatasetEditor/constants.ts","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/DatasetFieldMetadataSidebar.module.css?b347","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/MappedFieldPicker/MappedFieldPicker.module.css?9b28","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/MappedFieldPicker/MappedFieldPicker.tsx","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/SemanticTypePicker/SemanticTypePicker.module.css?7466","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/SemanticTypePicker/SemanticTypePicker.jsx","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/SemanticTypePicker/FKTargetPicker.tsx","webpack:///./query_builder/components/DatasetEditor/DatasetFieldMetadataSidebar/DatasetFieldMetadataSidebar.jsx","webpack:///./query_builder/components/DatasetEditor/DatasetNotebook/DatasetNotebook.jsx","webpack:///./query_builder/components/DatasetEditor/DatasetQueryEditor.module.css?bd00","webpack:///./query_builder/components/DatasetEditor/DatasetQueryEditor.jsx","webpack:///./query_builder/components/DatasetEditor/EditorTabs/EditorTabs.module.css?6f89","webpack:///./query_builder/components/DatasetEditor/EditorTabs/EditorTabs.tsx","webpack:///./query_builder/components/DatasetEditor/TabHintToast/TabHintToast.module.css?797c","webpack:///./query_builder/components/DatasetEditor/TabHintToast/TabHintToast.tsx","webpack:///./query_builder/components/DatasetEditor/DatasetEditorInner.jsx","webpack:///./query_builder/components/DatasetEditor/DatasetEditor.tsx","webpack:///./components/QuestionSavedModal/QuestionSavedModal.tsx","webpack:///./containers/AddToDashSelectDashModal/hooks.ts","webpack:///./containers/AddToDashSelectDashModal/utils.ts","webpack:///./containers/AddToDashSelectDashModal/AddToDashSelectDashModal.tsx","webpack:///./query_builder/components/ImpossibleToCreateModelModal/ImpossibleToCreateModelModal.tsx","webpack:///./query_builder/components/NewDatasetModal/NewDatasetModal.module.css?1077","webpack:///./query_builder/components/NewDatasetModal/NewDatasetModal.tsx","webpack:///./query_builder/components/view/NativeCodePanel/NativeCodePanel.module.css?47d7","webpack:///./query_builder/components/view/NativeCodePanel/NativeCodePanel.tsx","webpack:///./query_builder/components/view/NativeQueryPreview/NativeQueryPreview.tsx","webpack:///./query_builder/components/view/PreviewQueryModal/PreviewQueryModal.module.css?27dc","webpack:///./query_builder/components/view/PreviewQueryModal/PreviewQueryModal.tsx","webpack:///./querying/filters/hooks/use-filter-modal/constants.ts","webpack:///./querying/filters/hooks/use-filter-modal/utils/search.ts","webpack:///./querying/filters/hooks/use-filter-modal/use-filter-modal.ts","webpack:///./querying/filters/hooks/use-filter-modal/utils/filters.ts","webpack:///./querying/filters/components/FilterModal/FilterModal.module.css?594b","webpack:///./querying/filters/components/FilterModal/context.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.module.css?2285","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.tsx","webpack:///./querying/filters/hooks/use-boolean-operator-filter/constants.ts","webpack:///./querying/filters/hooks/use-boolean-operator-filter/utils.ts","webpack:///./querying/filters/components/FilterModal/FilterOperatorPicker/FilterOperatorPicker.tsx","webpack:///./querying/filters/components/FilterModal/FilterTitle/FilterColumnName/FilterColumnName.tsx","webpack:///./querying/filters/components/FilterModal/FilterTitle/FilterTitle.tsx","webpack:///./querying/filters/components/FilterModal/BooleanFilterEditor/BooleanFilterEditor.tsx","webpack:///./querying/filters/hooks/use-boolean-operator-filter/use-boolean-operator-filter.ts","webpack:///./querying/filters/components/FilterModal/CoordinateFilterEditor/CoordinateFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.module.css?3db2","webpack:///./querying/filters/components/FilterModal/DateFilterEditor/constants.ts","webpack:///./querying/filters/components/FilterModal/DateFilterEditor/utils.ts","webpack:///./querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/DefaultFilterEditor/DefaultFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/NumberFilterEditor/NumberFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/StringFilterEditor/StringFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/TimeFilterEditor/TimeFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/ColumnFilterSection/ColumnFilterSection.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/FilterTabItem.module.css?ef0d","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/FilterTabItem.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/ColumnFilterItem.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/ColumnFilterGroup.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/utils.ts","webpack:///./querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/utils.ts","webpack:///./querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/ColumnFilterList.tsx","webpack:///./querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.css?3077","webpack:///./querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/SegmentFilterItem.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/utils.ts","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.module.css?68fd","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/FilterTabContent.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/FilterTabEmptyState.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalBody/FilterModalBody.tsx","webpack:///./querying/filters/components/FilterModal/FilterModalFooter/FilterModalFooter.tsx","webpack:///./querying/filters/components/FilterModal/FilterSearchInput/FilterSearchInput.tsx","webpack:///./querying/filters/components/FilterModal/FilterModal.tsx","webpack:///./querying/filters/components/FilterModal/utils.ts","webpack:///./questions/containers/ArchiveQuestionModal.jsx","webpack:///./core/components/DateInput/DateInput.tsx","webpack:///./components/Calendar/Calendar.module.css?8931","webpack:///./components/Calendar/Calendar.styled.tsx","webpack:///./components/Calendar/Calendar.tsx","webpack:///./core/components/TimeInput/TimeInput.styled.tsx","webpack:///./core/components/TimeInput/TimeInput.tsx","webpack:///./core/components/DateSelector/DateSelector.styled.tsx","webpack:///./core/components/DateSelector/DateSelector.tsx","webpack:///./core/components/DateWidget/DateWidget.tsx","webpack:///./core/components/FormDateInput/FormDateInput.tsx","webpack:///./timelines/common/components/FormArchiveButton/FormDangerButton.styled.tsx","webpack:///./timelines/common/components/FormArchiveButton/FormArchiveButton.tsx","webpack:///./timelines/common/components/EventForm/EventForm.styled.tsx","webpack:///./timelines/common/components/EventForm/EventForm.tsx","webpack:///./timelines/common/containers/EventForm/EventForm.tsx","webpack:///./timelines/common/components/ModalBody/ModalBody.styled.tsx","webpack:///./timelines/common/components/ModalBody/ModalBody.tsx","webpack:///./timelines/common/components/ModalHeader/ModalHeader.styled.tsx","webpack:///./timelines/common/components/ModalHeader/ModalHeader.tsx","webpack:///./timelines/common/components/EditEventModal/EditEventModal.tsx","webpack:///./timelines/questions/containers/EditEventModal/EditEventModal.tsx","webpack:///./timelines/common/components/ModalFooter/ModalFooter.styled.tsx","webpack:///./timelines/common/components/ModalFooter/ModalFooter.tsx","webpack:///./timelines/common/components/TimelinePicker/TimelinePicker.styled.tsx","webpack:///./timelines/common/components/TimelinePicker/TimelinePicker.tsx","webpack:///./timelines/common/components/MoveEventModal/MoveEventModal.styled.tsx","webpack:///./timelines/common/components/MoveEventModal/MoveEventModal.tsx","webpack:///./timelines/questions/containers/MoveEventModal/MoveEventModal.tsx","webpack:///./timelines/common/components/NewEventModal/NewEventModal.tsx","webpack:///./timelines/questions/containers/NewEventModal/NewEventModal.tsx","webpack:///./questions/components/QuestionMoveToast/QuestionMoveToast.styled.tsx","webpack:///./questions/components/QuestionMoveToast/QuestionMoveToast.tsx","webpack:///./query_builder/components/MoveQuestionModal/MoveQuestionModal.tsx","webpack:///./query_builder/components/QueryModals/QueryModals.tsx","webpack:///./query_builder/components/SavedQuestionIntroModal.tsx","webpack:///./querying/notebook/components/NotebookNativePreview/NotebookNativePreview.tsx","webpack:///./querying/notebook/components/NotebookNativePreview/utils.ts","webpack:///./query_builder/components/view/View/NotebookContainer/NotebookContainer.tsx","webpack:///./query_builder/components/view/ViewSection.module.css?2c66","webpack:///./query_builder/components/view/ViewSection.tsx","webpack:///./query_builder/components/view/ViewHeader/ViewTitleHeader.module.css?7ecb","webpack:///./query_builder/components/view/ViewHeader/components/ToggleNativeQueryPreview/ToggleNativeQueryPreview.tsx","webpack:///./query_builder/components/view/ViewHeader/components/HeaderBreadcrumbs/HeaderBreadcrumbs.module.css?9b13","webpack:///./query_builder/components/view/ViewHeader/components/HeaderBreadcrumbs/HeaderBreadcrumbs.tsx","webpack:///./query_builder/components/view/sidebars/DatasetManagementSection/DatasetMetadataStrengthIndicator/DatasetMetadataStrengthIndicator.module.css?6b52","webpack:///./query_builder/components/view/sidebars/DatasetManagementSection/DatasetMetadataStrengthIndicator/DatasetMetadataStrengthIndicator.tsx","webpack:///./query_builder/components/view/sidebars/ModelCacheManagementSection/ModelCacheManagementSection.tsx","webpack:///./query_builder/components/view/sidebars/QuestionSettingsSidebar/QuestionSettingsSidebar.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionActions/QuestionActions.module.css?bb19","webpack:///./query_builder/components/view/ViewHeader/components/QuestionActions/QuestionMoreActionsMenu.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionActions/QuestionActions.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.module.css?c5d4","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDataSource/utils.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDataSource/DataSourceCrumbs.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDataSource/SourceDatasetBreadcrumbs.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDataSource/SourceQuestionBreadcrumbs.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.tsx","webpack:///./query_builder/components/view/ViewHeader/components/AdHocQuestionDescription/AdHocQuestionDescription.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionDescription.tsx","webpack:///./querying/filters/components/FilterPanel/FilterPanel.module.css?5b9f","webpack:///./querying/filters/components/FilterPanel/FilterPanelPopover/FilterPanelPopover.tsx","webpack:///./querying/filters/components/FilterPanel/utils.ts","webpack:///./querying/filters/components/FilterPanel/FilterPanel.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionFiltersHeader/QuestionFiltersHeader.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionNotebookButton/QuestionNotebookButton.tsx","webpack:///./query_builder/components/view/ViewHeader/components/ExploreResultsLink.tsx","webpack:///./query_builder/components/view/ViewHeader/components/FilterHeaderButton.tsx","webpack:///./query_builder/components/view/ViewHeader/components/QuestionSummarizeWidget.jsx","webpack:///./query_builder/components/view/ViewHeader/components/AdHocQuestionLeftSide/AdHocQuestionLeftSide.module.css?d736","webpack:///./query_builder/components/view/ViewHeader/components/AdHocQuestionLeftSide/AdHocQuestionLeftSide.tsx","webpack:///./query_builder/components/view/ViewHeader/components/HeaderCollectionBadge/HeaderCollectionBadge.tsx","webpack:///./query_builder/components/SavedQuestionHeaderButton/CollectionIcon.tsx","webpack:///./query_builder/components/SavedQuestionHeaderButton/SavedQuestionHeaderButton.module.css?42dc","webpack:///./query_builder/components/SavedQuestionHeaderButton/SavedQuestionHeaderButton.tsx","webpack:///./query_builder/components/view/ViewHeader/components/SavedQuestionLeftSide/SavedQuestionLeftSide.module.css?37c0","webpack:///./query_builder/components/view/ViewHeader/components/SavedQuestionLeftSide/ViewOnly.tsx","webpack:///./query_builder/components/view/ViewHeader/components/SavedQuestionLeftSide/hooks.ts","webpack:///./query_builder/components/view/ViewHeader/components/SavedQuestionLeftSide/SavedQuestionLeftSide.tsx","webpack:///./query_builder/components/view/ViewHeader/utils.ts","webpack:///./query_builder/components/view/ViewHeader/components/ViewTitleHeaderRightSide/ViewTitleHeaderRightSide.tsx","webpack:///./query_builder/components/view/ViewHeader/components/DashboardBackButton/DashboardBackButton.module.css?15e5","webpack:///./query_builder/components/view/ViewHeader/components/DashboardBackButton/DashboardBackButton.tsx","webpack:///./query_builder/components/view/ViewHeader/ViewTitleHeader.tsx","webpack:///./query_builder/components/view/View/ViewHeaderContainer/ViewHeaderContainer.module.css?c001","webpack:///./query_builder/components/view/View/ViewHeaderContainer/ViewHeaderContainer.jsx","webpack:///./query_builder/components/view/sidebars/ChartSettingsSidebar.tsx","webpack:///./query_builder/components/chart-type-selector/ChartTypeOption/ChartTypeOption.module.css?e70d","webpack:///./query_builder/components/chart-type-selector/ChartTypeOption/ChartTypeOption.tsx","webpack:///./query_builder/components/chart-type-selector/ChartTypeList/ChartTypeList.tsx","webpack:///./query_builder/components/chart-type-selector/ChartTypeSettings/ChartTypeSettings.tsx","webpack:///./query_builder/components/chart-type-selector/viz-order.ts","webpack:///./query_builder/components/chart-type-selector/use-question-visualization-state.ts","webpack:///./query_builder/components/view/sidebars/ChartTypeSidebar/ChartTypeSidebar.tsx","webpack:///./query_builder/components/view/View/ViewLeftSidebarContainer/ViewLeftSidebarContainer.jsx","webpack:///./querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.tsx","webpack:///./querying/filters/components/DatePicker/DateOperatorPicker/constants.ts","webpack:///./querying/filters/components/DatePicker/DateOperatorPicker/DateOperatorPicker.tsx","webpack:///./querying/filters/components/DatePicker/DateOperatorPicker/utils.ts","webpack:///./querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.tsx","webpack:///./querying/filters/components/DatePicker/SimpleDatePicker/SimpleDatePicker.tsx","webpack:///./querying/filters/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx","webpack:///./querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx","webpack:///./querying/filters/components/TimeseriesChrome/TimeseriesChrome.tsx","webpack:///./querying/filters/components/TimeseriesChrome/utils.ts","webpack:///./query_builder/components/view/QuestionDisplayToggle/QuestionDisplayToggle.module.css?9869","webpack:///./query_builder/components/view/QuestionDisplayToggle/QuestionDisplayToggle.tsx","webpack:///./query_builder/components/view/ViewFooter/CenterViewFooterButtonGroup.tsx","webpack:///./core/components/ButtonGroup/ButtonGroup.styled.tsx","webpack:///./core/components/ButtonGroup/ButtonGroup.tsx","webpack:///./query_builder/components/view/ViewFooter/LeftViewFooterButtonGroup.module.css?27b1","webpack:///./query_builder/components/view/ViewFooter/LeftViewFooterButtonGroup.tsx","webpack:///./query_builder/components/view/ViewFooter/ViewFooterDownloadWidget.tsx","webpack:///./query_builder/components/view/ExecutionTime/utils.ts","webpack:///./query_builder/components/view/ExecutionTime/ExecutionTime.tsx","webpack:///./query_builder/components/view/QuestionLastUpdated/utils.tsx","webpack:///./query_builder/components/view/QuestionLastUpdated/QuestionLastUpdated.tsx","webpack:///./query_builder/components/LimitPopover.jsx","webpack:///./query_builder/components/view/QuestionRowCount/QuestionRowCount.module.css?3dbb","webpack:///./query_builder/components/view/QuestionRowCount/QuestionRowCount.tsx","webpack:///./query_builder/components/view/QuestionTimelineWidget/QuestionTimelineWidget.tsx","webpack:///./query_builder/components/view/ViewFooter/RightViewFooterButtonGroup.module.css?927e","webpack:///./query_builder/components/view/ViewFooter/RightViewFooterButtonGroup.tsx","webpack:///./query_builder/components/view/ViewFooter/ViewFooter.tsx","webpack:///./query_builder/components/view/View/ViewNativeQueryEditor/ViewNativeQueryEditor.module.css?bdb5","webpack:///./query_builder/components/view/View/ViewNativeQueryEditor/ViewNativeQueryEditor.jsx","webpack:///./query_builder/components/view/View/ViewMainContainer/ViewMainContainer.module.css?7f56","webpack:///./query_builder/components/view/View/ViewMainContainer/ViewMainContainer.jsx","webpack:///./query_builder/components/QuestionActivityTimeline.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/QuestionInfoSidebar.module.css?9fc0","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/utils.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/QuestionSources.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/QuestionDetails.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/ToggleFullList.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/hooks.ts","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/ModelUsageDetails.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/TablesLinkedToQuestion.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/QuestionRelationshipsTab.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/components/SidesheetCardWithFields.tsx","webpack:///./query_builder/components/view/sidebars/QuestionInfoSidebar/QuestionInfoSidebar.tsx","webpack:///./timelines/questions/components/TimelineEmptyState/TimelineEmptyState.styled.tsx","webpack:///./timelines/questions/components/TimelineEmptyState/TimelineEmptyState.tsx","webpack:///./timelines/questions/components/EventCard/EventCard.styled.tsx","webpack:///./timelines/questions/components/EventCard/EventCard.tsx","webpack:///./timelines/questions/components/TimelineCard/TimelineCard.styled.tsx","webpack:///./timelines/questions/components/TimelineCard/TimelineCard.tsx","webpack:///./timelines/questions/components/TimelineList/TimelineList.tsx","webpack:///./timelines/questions/components/TimelinePanel/TimelinePanel.styled.tsx","webpack:///./timelines/questions/containers/TimelinePanel/TimelinePanel.tsx","webpack:///./timelines/questions/components/TimelinePanel/TimelinePanel.tsx","webpack:///./query_builder/components/view/sidebars/TimelineSidebar/TimelineSidebar.tsx","webpack:///./query_builder/components/view/View/NativeQueryRightSidebar/NativeQueryRightSidebar.jsx","webpack:///./query_builder/hooks/use-default-query-aggregation.ts","webpack:///./query_builder/utils/get-aggregation-items.ts","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/AddAggregationButton/AddAggregationButton.module.css?9591","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/AddAggregationButton/AddAggregationButton.tsx","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/AggregationItem/AggregationItem.module.css?ecdb","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/AggregationItem/AggregationItem.tsx","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/SummarizeContent/SummarizeAggregationItemList.tsx","webpack:///./query_builder/hooks/use-breakout-query-handlers.ts","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnList.module.css?ca72","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.module.css?ed84","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.tsx","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnList.tsx","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/util.ts","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/SummarizeContent/SummarizeBreakoutColumnList.tsx","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/SummarizeSidebar.module.css?e13b","webpack:///./query_builder/components/view/sidebars/SummarizeSidebar/SummarizeSidebar.tsx","webpack:///./query_builder/components/view/View/StructuredQueryRightSidebar/StructuredQueryRightSidebar.jsx","webpack:///./query_builder/components/view/View/ViewRightSidebarContainer/ViewRightSidebarContainer.jsx","webpack:///./query_builder/components/view/View/View/View.module.css?137a","webpack:///./query_builder/components/view/View/View/View.jsx","webpack:///./query_builder/containers/use-create-question.ts","webpack:///./query_builder/containers/QueryBuilder.tsx","webpack:///./hooks/use-force-update.ts","webpack:///./query_builder/containers/use-save-question.ts","webpack:///./components/SidebarLayout/SidebarLayout.jsx","webpack:///./components/List/List.module.css?a774","webpack:///./components/List/List.jsx","webpack:///./reference/components/Detail.module.css?64da","webpack:///./reference/components/Detail.jsx","webpack:///./reference/components/RevisionMessageModal.module.css?e5c8","webpack:///./reference/components/RevisionMessageModal.jsx","webpack:///./reference/components/EditHeader.module.css?ffe8","webpack:///./reference/components/EditHeader.jsx","webpack:///./reference/components/ReferenceHeader.module.css?136e","webpack:///./reference/components/EditableReferenceHeader.jsx","webpack:///./reference/selectors.js","webpack:///./reference/databases/DatabaseDetail.jsx","webpack:///./components/Sidebar.module.css?92e7","webpack:///./components/LabelIcon/LabelIcon.module.css?4b64","webpack:///./components/LabelIcon/LabelIcon.jsx","webpack:///./components/SidebarItem/SidebarItem.jsx","webpack:///./reference/databases/DatabaseSidebar.jsx","webpack:///./reference/databases/DatabaseDetailContainer.jsx","webpack:///./components/ListItem/ListItem.styled.tsx","webpack:///./components/ListItem/ListItem.jsx","webpack:///./reference/components/ReferenceHeader.jsx","webpack:///./reference/databases/DatabaseList.jsx","webpack:///./reference/guide/BaseSidebar.jsx","webpack:///./reference/databases/DatabaseListContainer.jsx","webpack:///./reference/Reference.module.css?a858","webpack:///./reference/components/FieldTypeDetail.jsx","webpack:///./components/QueryButton/QueryButton.module.css?a309","webpack:///./components/QueryButton/QueryButton.jsx","webpack:///./reference/components/UsefulQuestions.module.css?8ca2","webpack:///./reference/components/UsefulQuestions.jsx","webpack:///./reference/databases/FieldDetail.jsx","webpack:///./reference/databases/FieldSidebar.jsx","webpack:///./reference/databases/FieldDetailContainer.jsx","webpack:///./reference/components/Field.module.css?617f","webpack:///./reference/components/Field.jsx","webpack:///./reference/databases/FieldList.jsx","webpack:///./reference/databases/TableSidebar.jsx","webpack:///./reference/databases/FieldListContainer.jsx","webpack:///./reference/databases/TableDetail.jsx","webpack:///./reference/databases/TableDetailContainer.jsx","webpack:///./reference/databases/TableList.jsx","webpack:///./reference/databases/TableListContainer.jsx","webpack:///./reference/databases/TableQuestions.jsx","webpack:///./reference/databases/TableQuestionsContainer.jsx","webpack:///./reference/components/Formula.module.css?cde7","webpack:///./reference/components/Formula.tsx","webpack:///./reference/segments/SegmentDetail.jsx","webpack:///./reference/segments/SegmentSidebar.jsx","webpack:///./reference/segments/SegmentDetailContainer.jsx","webpack:///./reference/segments/SegmentFieldDetail.jsx","webpack:///./reference/segments/SegmentFieldSidebar.jsx","webpack:///./reference/segments/SegmentFieldDetailContainer.jsx","webpack:///./reference/segments/SegmentFieldList.jsx","webpack:///./reference/segments/SegmentFieldListContainer.jsx","webpack:///./reference/segments/SegmentList/SegmentList.tsx","webpack:///./reference/segments/SegmentListContainer.jsx","webpack:///./reference/segments/SegmentQuestions.jsx","webpack:///./reference/segments/SegmentQuestionsContainer.jsx","webpack:///./reference/segments/SegmentRevisions.jsx","webpack:///./reference/segments/SegmentRevisionsContainer.jsx","webpack:///./search/components/DropdownSidebarFilter/DropdownSidebarFilter.styled.tsx","webpack:///./search/components/DropdownSidebarFilter/DropdownSidebarFilter.tsx","webpack:///./search/components/ToggleSidebarFilter/ToggleSidebarFilter.tsx","webpack:///./search/components/SearchFilterDateDisplay/SearchFilterDateDisplay.tsx","webpack:///./search/components/SearchFilterDatePicker/SearchFilterDatePicker.tsx","webpack:///./search/components/filters/CreatedAtFilter.tsx","webpack:///./search/components/SearchFilterPopoverWrapper/SearchFilterPopoverWrapper.styled.tsx","webpack:///./search/components/SearchFilterPopoverWrapper/SearchFilterPopoverWrapper.tsx","webpack:///./search/components/SearchUserPicker/SearchUserPicker.styled.tsx","webpack:///./search/components/UserListElement/UserListElement.styled.tsx","webpack:///./search/components/UserListElement/UserListElement.tsx","webpack:///./search/components/SearchUserPicker/SearchUserPicker.tsx","webpack:///./search/components/UserNameDisplay/UserNameDisplay.tsx","webpack:///./search/components/filters/CreatedByFilter/CreatedByFilter.tsx","webpack:///./search/components/filters/LastEditedAtFilter.tsx","webpack:///./search/components/filters/LastEditedByFilter.tsx","webpack:///./search/components/filters/NativeQueryFilter/NativeQueryFilter.tsx","webpack:///./search/components/filters/NativeQueryFilter/NativeQueryLabel.tsx","webpack:///./search/components/filters/SearchTrashedItemsFilter.tsx","webpack:///./search/utils/enabled-search-type/enabled-search-type.ts","webpack:///./search/components/filters/TypeFilter/TypeFilterContent.tsx","webpack:///./search/components/filters/TypeFilter/TypeFilter.tsx","webpack:///./search/components/filters/TypeFilter/TypeFilterDisplay.tsx","webpack:///./search/components/SearchSidebar/SearchSidebar.tsx","webpack:///./search/containers/SearchApp.styled.tsx","webpack:///./search/containers/SearchResultSection.tsx","webpack:///./search/containers/SearchApp.jsx","webpack:///./search/containers/constants.ts","webpack:///./setup/useStep.ts","webpack:///./setup/components/SetupCardContainer/SetupCardContainer.styled.tsx","webpack:///./setup/components/CloudMigrationHelp/CloudMigrationHelp.tsx","webpack:///./setup/components/CompletedStep/CompletedStep.styled.tsx","webpack:///./setup/components/CompletedStep/CompletedStep.tsx","webpack:///./setup/components/ActiveStep/ActiveStep.styled.tsx","webpack:///./setup/components/ActiveStep/ActiveStep.tsx","webpack:///./setup/components/InactiveStep/InactiveStep.styled.tsx","webpack:///./setup/components/InactiveStep/InactiveStep.tsx","webpack:///./setup/components/DataUsageStep/DataUsageStep.styled.tsx","webpack:///./setup/components/DataUsageStep/DataUsageStep.tsx","webpack:///./setup/components/DatabaseHelp/DatabaseHelp.tsx","webpack:///./setup/components/InviteUserForm/InviteUserForm.styled.tsx","webpack:///./setup/components/InviteUserForm/InviteUserForm.tsx","webpack:///./setup/components/SetupSection/SetupSection.styled.tsx","webpack:///./setup/components/SetupSection/SetupSection.tsx","webpack:///./setup/components/DatabaseStep/DatabaseStep.styled.tsx","webpack:///./setup/components/DatabaseStep/DatabaseStep.tsx","webpack:///./setup/components/LanguageStep/LanguageStep.styled.tsx","webpack:///./setup/components/LanguageStep/LanguageStep.tsx","webpack:///./setup/components/LicenseTokenStep/constants.tsx","webpack:///./setup/components/LicenseTokenStep/LicenseTokenForm.tsx","webpack:///./setup/components/LicenseTokenStep/LicenseTokenStep.tsx","webpack:///./setup/components/SetupHelp/SetupHelp.styled.tsx","webpack:///./setup/components/SetupHelp/SetupHelp.tsx","webpack:///./setup/components/UsageQuestionStep/UsageQuestionStep.tsx","webpack:///./setup/components/UserForm/UserForm.styled.tsx","webpack:///./setup/components/UserForm/UserForm.tsx","webpack:///./setup/components/UserStep/UserStep.styled.tsx","webpack:///./setup/components/UserStep/UserStep.tsx","webpack:///./setup/components/SettingsPage/SettingsPage.styled.tsx","webpack:///./setup/components/SettingsPage/SettingsPage.tsx","webpack:///./setup/components/WelcomePage/WelcomePage.styled.tsx","webpack:///./setup/components/WelcomePage/WelcomePage.tsx","webpack:///./setup/components/Setup/Setup.tsx","webpack:///./timelines/collections/containers/DeleteEventModal/DeleteEventModal.tsx","webpack:///./timelines/common/components/DeleteEventModal/DeleteEventModal.tsx","webpack:///./timelines/collections/containers/DeleteTimelineModal/DeleteTimelineModal.tsx","webpack:///./timelines/common/components/DeleteTimelineModal/DeleteTimelineModal.tsx","webpack:///./timelines/collections/components/LoadingAndErrorWrapper/LoadingAndErrorWrapper.styled.tsx","webpack:///./timelines/collections/containers/EditEventModal/EditEventModal.tsx","webpack:///./timelines/collections/components/LoadingAndErrorWrapper/LoadingAndErrorWrapper.tsx","webpack:///./timelines/common/components/TimelineForm/TimelineForm.styled.tsx","webpack:///./timelines/common/components/TimelineForm/TimelineForm.tsx","webpack:///./timelines/collections/containers/EditTimelineModal/EditTimelineModal.tsx","webpack:///./timelines/common/components/EditTimelineModal/EditTimelineModal.tsx","webpack:///./timelines/collections/containers/MoveEventModal/MoveEventModal.tsx","webpack:///./timelines/collections/actions.ts","webpack:///./timelines/collections/containers/MoveTimelineModal/MoveTimelineModal.tsx","webpack:///./timelines/common/components/MoveTimelineModal/MoveTimelineModal.tsx","webpack:///./timelines/collections/containers/NewEventModal/NewEventModal.tsx","webpack:///./timelines/collections/containers/NewEventWithTimelineModal/NewEventWithTimelineModal.tsx","webpack:///./timelines/common/components/NewTimelineModal/NewTimelineModal.tsx","webpack:///./timelines/collections/containers/NewTimelineModal/NewTimelineModal.tsx","webpack:///./timelines/collections/components/EventCard/EventCard.styled.tsx","webpack:///./timelines/collections/components/EventCard/EventCard.tsx","webpack:///./timelines/collections/components/EventList/EventList.styled.tsx","webpack:///./timelines/collections/components/EventList/EventList.tsx","webpack:///./timelines/collections/components/SearchEmptyState/SearchEmptyState.styled.tsx","webpack:///./timelines/collections/components/SearchEmptyState/SearchEmptyState.tsx","webpack:///./timelines/collections/components/TimelineEmptyState/TimelineEmptyState.styled.tsx","webpack:///./timelines/collections/components/TimelineEmptyState/TimelineEmptyState.tsx","webpack:///./timelines/collections/components/TimelineDetailsModal/TimelineDetailsModal.styled.tsx","webpack:///./timelines/collections/components/TimelineDetailsModal/TimelineDetailsModal.tsx","webpack:///./timelines/collections/containers/TimelineArchiveModal/TimelineArchiveModal.tsx","webpack:///./timelines/collections/containers/TimelineDetailsModal/TimelineDetailsModal.tsx","webpack:///./timelines/collections/components/TimelineCard/TimelineCard.styled.tsx","webpack:///./timelines/collections/components/TimelineCard/TimelineCard.tsx","webpack:///./timelines/collections/components/TimelineList/TimelineList.styled.tsx","webpack:///./timelines/collections/components/TimelineList/TimelineList.tsx","webpack:///./timelines/collections/components/TimelineListModal/TimelineListModal.styled.tsx","webpack:///./timelines/collections/components/TimelineListModal/TimelineListModal.tsx","webpack:///./timelines/collections/containers/TimelineListModal/TimelineListModal.tsx","webpack:///./timelines/collections/containers/TimelineIndexModal/TimelineIndexModal.tsx","webpack:///./timelines/collections/components/TimelineIndexModal/TimelineIndexModal.tsx","webpack:///./timelines/collections/containers/TimelineListArchiveModal/TimelineListArchiveModal.tsx","webpack:///./timelines/collections/routes.tsx","webpack:///./route-guards.tsx","webpack:///./routes-stable-id-aware.tsx","webpack:///./app-main.js","webpack:///./routes.jsx","webpack:///./lib/dayjs-parse-zone-plugin.js","webpack:///./lib/dayjs.ts","webpack:///./lib/i18n-debug.js","webpack:///./plugins/builtin/auth/password.js","webpack:///./admin/settings/auth/components/AuthCard/AuthCard.styled.tsx","webpack:///./admin/settings/auth/components/AuthCard/AuthCard.tsx","webpack:///./admin/settings/auth/constants.ts","webpack:///./admin/settings/auth/containers/GoogleAuthCard/GoogleAuthCard.tsx","webpack:///./admin/settings/auth/components/GoogleAuthForm/GoogleAuthForm.styled.tsx","webpack:///./admin/settings/auth/components/GoogleAuthForm/GoogleAuthForm.tsx","webpack:///./admin/settings/auth/containers/GoogleAuthForm/GoogleAuthForm.tsx","webpack:///./plugins/builtin/auth/google.js","webpack:///./admin/settings/auth/containers/LdapAuthCard/LdapAuthCard.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/AddMappingRow/AddMappingRow.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/GroupMappingsWidget.styled.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/DeleteGroupMappingModal/DeleteGroupMappingModal.styled.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/DeleteGroupMappingModal/DeleteGroupMappingModal.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/GroupSelect/GroupSelect.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/MappingRow/MappingRow.styled.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/MappingRow/MappingRow.tsx","webpack:///./admin/settings/components/widgets/GroupMappingsWidget/GroupMappingsWidget.jsx","webpack:///./admin/settings/containers/GroupMappingsWidget.tsx","webpack:///./admin/settings/components/SettingsLdapForm.tsx","webpack:///./plugins/builtin/auth/ldap.js","webpack:///./plugins/builtin/auth/jwt.js","webpack:///./plugins/builtin/auth/saml.js","webpack:///./admin/settings/auth/components/ApiKeysAuthCard.tsx","webpack:///./common/components/Table/Table.module.css?c2ab","webpack:///./common/components/Table/Table.tsx","webpack:///./common/components/Table/useTableSorting.tsx","webpack:///./common/components/Table/ClientSortableTable.tsx","webpack:///./admin/settings/components/AuthTabs.tsx","webpack:///./components/CopyTextInput/CopyTextInput.styled.tsx","webpack:///./components/CopyTextInput/CopyTextInput.tsx","webpack:///./admin/settings/components/ApiKeys/SecretKeyModal.tsx","webpack:///./admin/settings/components/ApiKeys/utils.ts","webpack:///./admin/settings/components/ApiKeys/CreateApiKeyModal.tsx","webpack:///./admin/settings/components/ApiKeys/DeleteApiKeyModal.tsx","webpack:///./admin/settings/components/ApiKeys/EditApiKeyModal.tsx","webpack:///./admin/settings/components/ApiKeys/ManageApiKeys.tsx","webpack:///./plugins/builtin/auth/apiKeys.js","webpack:///./lib/csp.js","webpack:///./styled-components/components/EmotionCacheProvider/EmotionCacheProvider.tsx","webpack:///./css/core/base.styled.ts","webpack:///./css/core/fonts.styled.ts","webpack:///./embedding-sdk/theme/css-vars-to-sdk-theme.ts","webpack:///./embedding-sdk/theme/dynamic-css-vars-config.ts","webpack:///./embedding-sdk/theme/dynamic-css-vars.ts","webpack:///./embedding-sdk/theme/embedding-color-palette.ts","webpack:///./styled-components/theme/css-variables.ts","webpack:///./styled-components/containers/GlobalStyles/GlobalStyles.tsx","webpack:///./visualizations/components/ChartRenderingErrorBoundary/ChartRenderingErrorBoundary.tsx","webpack:///./visualizations/components/EChartsRenderer/EChartsRenderer.styled.tsx","webpack:///./visualizations/echarts/index.ts","webpack:///./visualizations/components/EChartsRenderer/EChartsRenderer.tsx","webpack:///./visualizations/components/EChartsRenderer/ResponsiveEChartsRenderer.tsx","webpack:///./visualizations/components/EChartsRenderer/ResponsiveEChartsRenderer.styled.tsx","webpack:///./visualizations/echarts/cartesian/model/guards.ts","webpack:///./visualizations/echarts/cartesian/model/legend.ts","webpack:///./lib/objects.ts","webpack:///./visualizations/components/ChartTooltip/EChartsTooltip/EChartsTooltip.module.css?e53d","webpack:///./visualizations/echarts/pie/constants.ts","webpack:///./visualizations/echarts/pie/util/index.ts","webpack:///./visualizations/echarts/tooltip/index.tsx","webpack:///./visualizations/components/legend/Legend.styled.tsx","webpack:///./visualizations/components/legend/LegendItem.styled.tsx","webpack:///./visualizations/components/legend/LegendItemDot.styled.tsx","webpack:///./visualizations/components/legend/LegendItemDot.tsx","webpack:///./visualizations/components/legend/LegendItem.jsx","webpack:///./visualizations/components/legend/Legend.jsx","webpack:///./visualizations/components/legend/LegendLayout.styled.tsx","webpack:///./visualizations/components/legend/LegendLayout.jsx","webpack:///./visualizations/visualizations/CartesianChart/padding.ts","webpack:///./visualizations/visualizations/CartesianChart/CartesianChart.styled.tsx","webpack:///./visualizations/echarts/cartesian/model/other-series.ts","webpack:///./visualizations/visualizations/CartesianChart/events.ts","webpack:///./visualizations/visualizations/CartesianChart/utils.ts","webpack:///./visualizations/visualizations/CartesianChart/use-chart-events.ts","webpack:///./visualizations/echarts/cartesian/constants/style.ts","webpack:///./visualizations/echarts/cartesian/chart-measurements/index.ts","webpack:///./visualizations/echarts/cartesian/utils/formatter.ts","webpack:///./visualizations/echarts/cartesian/waterfall/constants.ts","webpack:///./visualizations/echarts/cartesian/model/series.ts","webpack:///./visualizations/lib/settings/row-values.ts","webpack:///./visualizations/echarts/cartesian/model/dataset.ts","webpack:///./visualizations/echarts/cartesian/model/transforms.ts","webpack:///./visualizations/echarts/cartesian/model/axis.ts","webpack:///./visualizations/shared/settings/cartesian-chart.ts","webpack:///./visualizations/echarts/cartesian/model/stack.ts","webpack:///./visualizations/lib/trends.js","webpack:///./visualizations/echarts/cartesian/model/trend-line.ts","webpack:///./visualizations/echarts/cartesian/model/index.ts","webpack:///./visualizations/echarts/cartesian/option/ticks.ts","webpack:///./visualizations/echarts/cartesian/option/axis.ts","webpack:///./visualizations/echarts/cartesian/option/utils.ts","webpack:///./visualizations/echarts/cartesian/option/series.ts","webpack:///./visualizations/echarts/cartesian/timeline-events/option.ts","webpack:///./visualizations/echarts/cartesian/option/goal-line.ts","webpack:///./visualizations/echarts/cartesian/option/trend-line.ts","webpack:///./visualizations/echarts/cartesian/option/index.ts","webpack:///./visualizations/components/ChartTooltip/EChartsTooltip/EChartsTooltip.tsx","webpack:///./visualizations/echarts/cartesian/option/tooltip.tsx","webpack:///./visualizations/echarts/cartesian/scatter/model/index.ts","webpack:///./visualizations/echarts/cartesian/scatter/model/dataset.ts","webpack:///./visualizations/echarts/cartesian/timeline-events/model.ts","webpack:///./visualizations/echarts/cartesian/waterfall/model/axis.ts","webpack:///./visualizations/echarts/cartesian/waterfall/model/dataset.ts","webpack:///./visualizations/echarts/cartesian/waterfall/model/index.ts","webpack:///./visualizations/echarts/cartesian/waterfall/option/index.ts","webpack:///./visualizations/shared/utils/size-in-px.ts","webpack:///./visualizations/shared/utils/theme.ts","webpack:///./visualizations/hooks/use-browser-rendering-context.ts","webpack:///./hooks/use-palette.ts","webpack:///./visualizations/visualizations/CartesianChart/CartesianChart.tsx","webpack:///./visualizations/visualizations/CartesianChart/use-models-and-option.ts","webpack:///./visualizations/echarts/cartesian/scatter/option/index.ts","webpack:///./visualizations/echarts/cartesian/scatter/option/series.ts","webpack:///./visualizations/visualizations/CartesianChart/use-chart-debug.ts","webpack:///./visualizations/lib/settings/stacking.ts","webpack:///./visualizations/lib/settings/goal.ts","webpack:///./visualizations/components/settings/ChartSettingMaxCategories.tsx","webpack:///./visualizations/components/settings/ChartSettingMessage.tsx","webpack:///./visualizations/components/settings/ChartSettingSeriesOrder.tsx","webpack:///./visualizations/lib/settings/utils.js","webpack:///./visualizations/lib/settings/graph.js","webpack:///./visualizations/lib/settings/validation.js","webpack:///./visualizations/visualizations/CartesianChart/chart-definition-legacy.js","webpack:///./visualizations/visualizations/CartesianChart/chart-definition.ts","webpack:///./visualizations/visualizations/AreaChart/AreaChart.tsx","webpack:///./visualizations/visualizations/BarChart/BarChart.tsx","webpack:///./visualizations/visualizations/ComboChart/ComboChart.tsx","webpack:///./visualizations/visualizations/DashCardPlaceholder.tsx","webpack:///./visualizations/components/TransformedVisualization/TransformedVisualization.tsx","webpack:///./visualizations/visualizations/Funnel/funnel-bar-transform.ts","webpack:///./visualizations/components/FunnelNormal.styled.tsx","webpack:///./visualizations/components/FunnelNormal.jsx","webpack:///./visualizations/visualizations/Funnel/Funnel.tsx","webpack:///./visualizations/components/settings/ChartSettingOrderedSimple.tsx","webpack:///./components/NumericInput/NumericInput.styled.tsx","webpack:///./components/NumericInput/NumericInput.jsx","webpack:///./visualizations/components/settings/ChartSettingGaugeSegments.jsx","webpack:///./visualizations/visualizations/Gauge/Gauge.styled.tsx","webpack:///./visualizations/visualizations/Gauge/utils.ts","webpack:///./visualizations/visualizations/Gauge/Gauge.jsx","webpack:///./visualizations/shared/utils/parameter-substitution.js","webpack:///./visualizations/visualizations/Heading/Heading.styled.tsx","webpack:///./visualizations/visualizations/Heading/index.ts","webpack:///./visualizations/visualizations/Heading/Heading.tsx","webpack:///./visualizations/visualizations/IFrameViz/IFrameViz.styled.tsx","webpack:///./visualizations/visualizations/IFrameViz/IFrameVizSettings.ts","webpack:///./visualizations/visualizations/IFrameViz/IFrameViz.tsx","webpack:///./visualizations/visualizations/LineChart/LineChart.tsx","webpack:///./visualizations/visualizations/LinkViz/EntityDisplay.styled.tsx","webpack:///./visualizations/visualizations/LinkViz/EntityDisplay.tsx","webpack:///./visualizations/visualizations/LinkViz/LinkViz.styled.tsx","webpack:///./visualizations/visualizations/LinkViz/LinkVizSettings.ts","webpack:///./visualizations/visualizations/LinkViz/utils.ts","webpack:///./visualizations/visualizations/LinkViz/LinkViz.tsx","webpack:///./core/components/ColorRange/ColorRange.styled.tsx","webpack:///./core/components/ColorRange/ColorRange.tsx","webpack:///./core/components/ColorRangeSelector/ColorRangePopover.styled.tsx","webpack:///./core/components/ColorRangeSelector/ColorRangeToggle.styled.tsx","webpack:///./core/components/ColorRangeSelector/ColorRangeToggle.tsx","webpack:///./core/components/ColorRangeSelector/ColorRangePopover.tsx","webpack:///./core/components/ColorRangeSelector/ColorRangeSelector.tsx","webpack:///./visualizations/components/ChartWithLegend.module.css?b6f4","webpack:///./visualizations/components/LegendItem.styled.tsx","webpack:///./visualizations/components/LegendItem.jsx","webpack:///./visualizations/components/LegendHorizontal.jsx","webpack:///./visualizations/components/LegendVertical.jsx","webpack:///./visualizations/components/ChartWithLegend.jsx","webpack:///./visualizations/components/LegacyChoropleth.jsx","webpack:///./visualizations/components/ChoroplethMap.jsx","webpack:///./visualizations/components/LeafletMap.jsx","webpack:///./visualizations/components/LeafletGridHeatMap.jsx","webpack:///./visualizations/components/PinMap.jsx","webpack:///./visualizations/components/LeafletMarkerPinMap.jsx","webpack:///./visualizations/components/LeafletTilePinMap.jsx","webpack:///./visualizations/components/LeafletHeatMap.jsx","webpack:///./visualizations/visualizations/Map/Maps.styled.tsx","webpack:///./visualizations/visualizations/Map/CustomMapFooter/CustomMapFooter.tsx","webpack:///./visualizations/visualizations/Map/Map.jsx","webpack:///./visualizations/components/ObjectDetail/DeleteObjectModal.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailBody.styled.tsx","webpack:///./query_builder/components/ExpandableString.jsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailsTable.styled.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailsTable.tsx","webpack:///./components/IconBorder/IconBorder.jsx","webpack:///./visualizations/components/ObjectDetail/ObjectRelationships.styled.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectRelationships.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailBody.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailHeader.styled.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailHeader.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailView.styled.tsx","webpack:///./visualizations/components/ObjectDetail/utils.ts","webpack:///./visualizations/components/ObjectDetail/ObjectDetailView.tsx","webpack:///./visualizations/components/TableInteractive/TableInteractive.module.css?2cf7","webpack:///./visualizations/components/TableRoot/TableRoot.styled.tsx","webpack:///./visualizations/components/TableSimple/TableSimple.styled.tsx","webpack:///./visualizations/components/TableSimple/TableFooter.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailWrapper.styled.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetail.tsx","webpack:///./visualizations/components/ObjectDetail/ObjectDetailWrapper.tsx","webpack:///./visualizations/visualizations/ObjectDetail.jsx","webpack:///./visualizations/echarts/pie/format.ts","webpack:///./visualizations/shared/settings/pie.ts","webpack:///./visualizations/echarts/pie/util/colors.ts","webpack:///./visualizations/echarts/pie/model/index.ts","webpack:///./visualizations/lib/text.ts","webpack:///./visualizations/echarts/pie/util/label.ts","webpack:///./visualizations/echarts/pie/option.ts","webpack:///./visualizations/visualizations/PieChart/use-chart-events.ts","webpack:///./visualizations/echarts/pie/tooltip.tsx","webpack:///./visualizations/visualizations/PieChart/DimensionsWidget.modules.css?b49e","webpack:///./visualizations/visualizations/PieChart/PieRowsPicker.tsx","webpack:///./visualizations/visualizations/PieChart/DimensionsWidget.tsx","webpack:///./visualizations/visualizations/PieChart/SliceNameWidget.styled.tsx","webpack:///./visualizations/visualizations/PieChart/chart-definition.ts","webpack:///./visualizations/visualizations/PieChart/PieChart.tsx","webpack:///./visualizations/visualizations/PieChart/SliceNameWidget.tsx","webpack:///./visualizations/visualizations/PivotTable/constants.ts","webpack:///./visualizations/visualizations/PivotTable/PivotTable.styled.tsx","webpack:///./visualizations/visualizations/PivotTable/RowToggleIcon.tsx","webpack:///./visualizations/visualizations/PivotTable/PivotTableCell.tsx","webpack:///./visualizations/components/settings/ChartSettingIconRadio.styled.tsx","webpack:///./visualizations/components/settings/ChartSettingsTableFormatting.jsx","webpack:///./visualizations/visualizations/PivotTable/partitions.tsx","webpack:///./visualizations/visualizations/PivotTable/utils.ts","webpack:///./visualizations/visualizations/PivotTable/settings.ts","webpack:///./visualizations/components/settings/ChartSettingIconRadio.tsx","webpack:///./visualizations/visualizations/PivotTable/PivotTable.tsx","webpack:///./visualizations/visualizations/Progress/utils.ts","webpack:///./visualizations/visualizations/Progress/Progress.jsx","webpack:///./visualizations/shared/components/VerticalGoalLine/VerticalGoalLine.tsx","webpack:///./visualizations/shared/components/RowChartView/utils/data-labels.ts","webpack:///./visualizations/shared/components/RowChartView/RowChartView.tsx","webpack:///./visualizations/shared/components/RowChartView/constants.ts","webpack:///./visualizations/shared/components/RowChart/utils/data.ts","webpack:///./visualizations/shared/components/RowChart/utils/layout.ts","webpack:///./visualizations/shared/components/RowChart/constants.ts","webpack:///./visualizations/shared/components/RowChart/utils/domain.ts","webpack:///./visualizations/shared/components/RowChart/utils/scale.ts","webpack:///./visualizations/shared/components/RowChart/utils/ticks.ts","webpack:///./visualizations/shared/components/RowChart/RowChart.tsx","webpack:///./visualizations/lib/tooltip.ts","webpack:///./visualizations/visualizations/RowChart/utils/events.ts","webpack:///./visualizations/visualizations/RowChart/utils/theme.ts","webpack:///./visualizations/visualizations/RowChart/RowChart.styled.tsx","webpack:///./visualizations/visualizations/RowChart/utils/format.ts","webpack:///./visualizations/visualizations/RowChart/utils/legend.ts","webpack:///./visualizations/visualizations/RowChart/utils/settings.ts","webpack:///./visualizations/visualizations/RowChart/utils/settings-definitions.js","webpack:///./visualizations/visualizations/RowChart/utils/warnings.ts","webpack:///./visualizations/visualizations/RowChart/RowChart.tsx","webpack:///./visualizations/echarts/graph/sankey/constants/style.ts","webpack:///./visualizations/echarts/graph/sankey/layout/index.ts","webpack:///./visualizations/echarts/graph/sankey/model/dataset.ts","webpack:///./visualizations/echarts/graph/sankey/model/formatters.ts","webpack:///./visualizations/echarts/graph/sankey/model/index.ts","webpack:///./visualizations/echarts/graph/sankey/option/index.ts","webpack:///./visualizations/echarts/graph/sankey/option/tooltip.tsx","webpack:///./visualizations/visualizations/SankeyChart/utils/cycle-detection.ts","webpack:///./visualizations/visualizations/SankeyChart/chart-definition.ts","webpack:///./visualizations/visualizations/SankeyChart/events.ts","webpack:///./visualizations/visualizations/SankeyChart/SankeyChart.tsx","webpack:///./visualizations/components/ScalarValue/ScalarValue.styled.tsx","webpack:///./visualizations/components/ScalarValue/utils.ts","webpack:///./visualizations/components/ScalarValue/ScalarValue.jsx","webpack:///./visualizations/lib/scalar_utils.ts","webpack:///./visualizations/visualizations/Scalar/Scalar.styled.tsx","webpack:///./visualizations/visualizations/Scalar/scalars-bar-transform.ts","webpack:///./visualizations/visualizations/Scalar/utils.ts","webpack:///./visualizations/visualizations/Scalar/constants.ts","webpack:///./visualizations/visualizations/Scalar/Scalar.jsx","webpack:///./visualizations/visualizations/ScatterPlot/ScatterPlot.tsx","webpack:///./visualizations/visualizations/SmartScalar/constants.ts","webpack:///./visualizations/visualizations/SmartScalar/utils.ts","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/SmartScalarSettingsWidgets.styled.tsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/AnotherColumnForm.tsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/MenuItem.styled.tsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/PeriodsAgoMenuOption.styled.tsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/PeriodsAgoMenuOption.tsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/StaticNumberForm.tsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/ComparisonPicker.tsx","webpack:///./visualizations/visualizations/SmartScalar/SmartScalar.styled.tsx","webpack:///./visualizations/visualizations/SmartScalar/compute.js","webpack:///./visualizations/visualizations/SmartScalar/SmartScalar.jsx","webpack:///./visualizations/visualizations/SmartScalar/SettingsComponents/SmartScalarSettingsWidgets.tsx","webpack:///./core/components/AutocompleteInput/AutocompleteInput.styled.tsx","webpack:///./core/components/AutocompleteInput/AutocompleteInput.tsx","webpack:///./visualizations/components/settings/ChartSettingLinkUrlInput.tsx","webpack:///./lib/compat/check-version.ts","webpack:///./visualizations/lib/table.js","webpack:///./visualizations/components/MiniBar.jsx","webpack:///./visualizations/components/TableInteractive/TableInteractive.styled.tsx","webpack:///./visualizations/components/TableInteractive/table-theme-utils.ts","webpack:///./visualizations/components/TableInteractive/TableInteractive.jsx","webpack:///./lib/react-compat.ts","webpack:///./hoc/MantineTheme.tsx","webpack:///./visualizations/components/TableSimple/TableCell.styled.tsx","webpack:///./visualizations/components/TableSimple/TableCell.tsx","webpack:///./visualizations/components/TableSimple/TableSimple.tsx","webpack:///./visualizations/visualizations/Table.tsx","webpack:///./visualizations/visualizations/Text/Text.styled.tsx","webpack:///./visualizations/visualizations/Text/Text.jsx","webpack:///./visualizations/visualizations/Text/index.ts","webpack:///./visualizations/visualizations/WaterfallChart/WaterfallChart.tsx","webpack:///./app.js","webpack:///./visualizations/register.js","webpack:///./components/MetadataInfo/ColumnInfoPopover/ColumnInfoPopover.tsx","webpack:///./components/Popover/Popover.jsx","webpack:///./components/PopoverWithTrigger/PopoverWithTrigger.jsx","webpack:///./components/UserAvatar/UserAvatar.styled.tsx","webpack:///./components/UserAvatar/UserAvatar.tsx","webpack:///./core/components/AccordionList/AccordionList.styled.tsx","webpack:///./css/components/list.module.css?1cc5","webpack:///./core/components/AccordionList/AccordionListCell.module.css?2a71","webpack:///./core/components/AccordionList/AccordionListCell.styled.tsx","webpack:///./core/components/AccordionList/AccordionListCell.jsx","webpack:///./core/components/AccordionList/utils.ts","webpack:///./core/components/AccordionList/AccordionList.jsx","webpack:///./dashboard/actions/save.js","webpack:///./entities/alerts.js","webpack:///./entities/bookmarks.js","webpack:///./entities/containers/EntityName.tsx","webpack:///./entities/containers/rtk-query/usePaginatedQuery.ts","webpack:///./entities/containers/rtk-query/EntityListLoader.tsx","webpack:///./entities/containers/rtk-query/EntityObjectLoader.tsx","webpack:///./entities/containers/index.js","webpack:///./entities/dashboards.js","webpack:///./entities/databases.js","webpack:///./entities/fields.js","webpack:///./entities/groups.js","webpack:///./entities/indexed-entities/indexed-entities.ts","webpack:///./entities/persisted-models.js","webpack:///./entities/pulses.js","webpack:///./entities/questions.js","webpack:///./entities/revisions.js","webpack:///./entities/schemas.js","webpack:///./entities/search.js","webpack:///./entities/segments.js","webpack:///./entities/snippet-collections.js","webpack:///./entities/snippets.js","webpack:///./entities/tables.js","webpack:///./entities/timeline-events.js","webpack:///./entities/timelines.js","webpack:///./lib/security.js","webpack:///./entities/users.js","webpack:///./hooks/use-scroll-on-mount.js","webpack:///./lib/ace/sql_behaviour.js","webpack:///./lib/api.js","webpack:///./lib/card.js","webpack:///./lib/click-behavior.js","webpack:///./lib/constants.js","webpack:///./lib/core.js","webpack:///./lib/dashboard_grid.js","webpack:///./lib/data_grid.js","webpack:///./lib/dom.js","webpack:///./lib/embed.js","webpack:///./lib/encoding.js","webpack:///./lib/entities.js","webpack:///./lib/formatting/colors.ts","webpack:///./lib/formatting/column.ts","webpack:///./lib/formatting/field.ts","webpack:///./lib/formatting.js","webpack:///./lib/formatting/currency.js","webpack:///./lib/groups.js","webpack:///./lib/i18n.js","webpack:///./lib/keyboard.js","webpack:///./lib/schema/schema.js","webpack:///./lib/schema_metadata.js","webpack:///./lib/syncing.js","webpack:///./lib/validate.js","webpack:///./notifications/pulse/actions.js","webpack:///./notifications/pulse/selectors.js","webpack:///./lib/request.js","webpack:///./notifications/redux/alert.js","webpack:///./query_builder/analytics.js","webpack:///./query_builder/selectors.js","webpack:///./query_builder/utils/question.ts","webpack:///./notifications/redux/selectors.js","webpack:///./redux/metadata.js","webpack:///./redux/requests.js","webpack:///./reference/reference.js","webpack:///./reference/utils.js","webpack:///./schema.js","webpack:///./services.js","webpack:///./store.js","webpack:///./visualizations/lib/action.js","webpack:///./visualizations/lib/errors.js","webpack:///./visualizations/lib/mapping_codes.ts","webpack:///./visualizations/lib/mapping.js","webpack:///./visualizations/lib/numeric.js","webpack:///./visualizations/lib/renderer_utils.js","webpack:///./visualizations/components/settings/ChartSettingColorsPicker.jsx","webpack:///./visualizations/components/settings/ChartSettingFieldsPartition.tsx","webpack:///./visualizations/components/settings/ChartSettingFieldsPicker.styled.tsx","webpack:///./visualizations/components/settings/ChartSettingRadio.tsx","webpack:///./visualizations/lib/settings.js","webpack:///./visualizations/components/settings/ChartSettingInput.tsx","webpack:///./visualizations/components/settings/ChartSettingToggle.tsx","webpack:///./visualizations/components/settings/ChartSettingSegmentedControl/ChartSettingSegmentedControl.tsx","webpack:///./visualizations/components/settings/ChartSettingFieldsPicker.jsx","webpack:///./visualizations/components/settings/ChartSettingMultiSelect.tsx","webpack:///./visualizations/components/settings/ChartNestedSettingColumns.jsx","webpack:///./querying/fields/components/FieldPanel/FieldPanel.tsx","webpack:///./querying/fields/components/FieldPanel/utils.ts","webpack:///./visualizations/components/settings/ChartSettingTableColumns/TableColumnPanel/utils.ts","webpack:///./visualizations/components/settings/ChartSettingTableColumns/TableColumnPanel/TableColumnPanel.tsx","webpack:///./visualizations/shared/settings/column.ts","webpack:///./visualizations/lib/settings/column.js","webpack:///./visualizations/components/settings/ChartSettingTableColumns/ChartSettingTableColumns.tsx","webpack:///./visualizations/components/settings/ChartSettingTableColumns/utils.ts","webpack:///./visualizations/components/settings/ChartSettingNestedSettings.jsx","webpack:///./visualizations/lib/settings/nested.js","webpack:///./components/IconWrapper/IconWrapper.jsx","webpack:///./visualizations/components/settings/ChartNestedSettingSeriesMultiple.jsx","webpack:///./visualizations/components/settings/ChartNestedSettingSeriesSingle.tsx","webpack:///./visualizations/components/settings/ChartNestedSettingSeries.tsx","webpack:///./visualizations/lib/settings/series.js","webpack:///./visualizations/lib/settings/analytics.ts","webpack:///./visualizations/lib/settings/visualization.js","webpack:///./visualizations/lib/table_format.js","webpack:///./visualizations/lib/timeseries.js","webpack:///./visualizations/lib/utils.js","webpack:///./visualizations/lib/warnings.js"],"sourcesContent":["// extracted by css-extract-rspack-plugin\nexport default {\"PopoverContainer\":\"dB_4r\",\"PopoverBody\":\"JZm6W\",\"PopoverBodyWithBackground\":\"Jh6uN\",\"PopoverBodyAutoWidth\":\"iwv03\",\"PopoverBodyWithArrow\":\"UhfGx\",\"PopoverBodyMarginBottom\":\"imcD2\",\"FormField\":\"CGjF4\",\"PopoverFooter\":\"zONZn\"};","// extracted by css-extract-rspack-plugin\nexport default {\"ContentTable\":\"z5Yxc\",\"PageHeader\":\"Szaxy\",\"TableActions\":\"D8HIX\",\"AdminList\":\"eouob\",\"AdminListSearch\":\"EynFO\",\"Icon\":\"PYshT\",\"AdminInput\":\"ockLA\",\"AdminListItem\":\"zTrck\",\"selected\":\"YMz3I\",\"AdminListSection\":\"eDamF\",\"MetadataTable\":\"koSqg\",\"TableEditorFieldDescription\":\"lPnV3\",\"TableEditorFieldSemanticType\":\"lp9Kh\",\"TableEditorFieldTarget\":\"smSEd\",\"SettingsInput\":\"XqC3s\",\"SettingsPassword\":\"XHsph\",\"UserActionsSelect\":\"DKD_5\",\"AdminTable\":\"ZrRW2\",\"SwagButton\":\"pkqAM\",\"animation-name\":\"tRCnk\",\"LameSwag\":\"n1ajm\"};","// extracted by css-extract-rspack-plugin\nexport default {\"Button\":\"jhuKC\",\"ButtonSmall\":\"unMw3\",\"ButtonMedium\":\"CO61X\",\"ButtonLarge\":\"_ei1S\",\"ButtonNormal\":\"mXyxi\",\"ButtonRound\":\"Y9RZL\",\"ButtonPrimary\":\"vaWZu\",\"ButtonWarning\":\"lP2Dq\",\"ButtonCancel\":\"V6IFS\",\"ButtonWhite\":\"ofctc\",\"ButtonBorderless\":\"avX19\",\"ButtonOnlyIcon\":\"msmel\",\"ButtonGroup\":\"r8wdU\",\"ButtonActive\":\"Yj6vk\",\"ButtonGroupBrand\":\"OFm7C\",\"ButtonDanger\":\"V83Zw\",\"ButtonSuccess\":\"pDYUO\",\"ButtonFullWidth\":\"ANr38\"};","// extracted by css-extract-rspack-plugin\nexport default {\"FormField\":\"D3Zqe\",\"FormFieldError\":\"LoOY8\",\"FormLabel\":\"MOrQr\",\"FormInput\":\"xG0K7\",\"noFocus\":\"zigwA\"};","// extracted by css-extract-rspack-plugin\nexport default {\"Grabber\":\"ZbXGf\",\"grabbing\":\"voztM\"};","// extracted by css-extract-rspack-plugin\nexport default {\"ModalContainer\":\"lFK_5\",\"Modal\":\"JrKb1\",\"ModalBackdrop\":\"slgsd\",\"ModalSmall\":\"zCfpu\",\"ModalMedium\":\"Rue4W\",\"ModalWide\":\"zeL_W\",\"ModalFit\":\"fmAi6\",\"ModalTall\":\"MT4zt\",\"ModalFull\":\"PsZVV\",\"ModalAppear\":\"iTO0B\",\"ModalEnter\":\"AUZsa\",\"ModalAppearActive\":\"JzmDI\",\"ModalEnterActive\":\"Paik1\",\"ModalExit\":\"C5mcB\",\"ModalExitActive\":\"Qdq0H\"};","// extracted by css-extract-rspack-plugin\nexport default {\"ProgressBarAnimation\":\"rVzBq\",\"progress-bar\":\"qaFee\",\"ProgressBarNoAnimation\":\"vFpYS\",\"SpinOut\":\"FhIcN\",\"SpinOutActive\":\"e8aS9\",\"popInFromBottom\":\"xZrUP\",\"pop-in-from-bottom\":\"bzTjz\",\"slideLeft\":\"F5r9V\",\"slide-left\":\"DTrNO\",\"popToast\":\"o4CNZ\",\"pop-toast\":\"tnNew\",\"fadeIn\":\"HISDS\",\"fade-in\":\"yf3Yz\"};","// extracted by css-extract-rspack-plugin\nexport default {\"textDefault\":\"sWIjA\",\"textBrand\":\"DuNWG\",\"textBrandHover\":\"F2LDN\",\"textSuccess\":\"AYFx4\",\"textError\":\"zVbBR\",\"textErrorHover\":\"Kqjgb\",\"bgErrorHover\":\"ocHrY\",\"bgErrorInput\":\"InmZe\",\"textSlate\":\"Wmf2Z\",\"textSlateLight\":\"ZuYSW\",\"textLight\":\"iPBhC\",\"textMedium\":\"AHtfq\",\"textMediumHover\":\"KNrtH\",\"textDark\":\"MUpDd\",\"textDarkHover\":\"hmEui\",\"textPrimary\":\"plk07\",\"textSecondary\":\"Fq9c4\",\"textTertiary\":\"NV9ue\",\"bgLight\":\"qWdg1\",\"bgLightHover\":\"QA0ZI\",\"bgMedium\":\"P54sL\",\"bgMediumHover\":\"Bjfd_\",\"textWhite\":\"DJZJM\",\"textWhiteHover\":\"YExmu\",\"bgWhite\":\"VrjWl\",\"bgLightBlue\":\"LiTGC\",\"DashboardNight\":\"NO8tQ\"};","// extracted by css-extract-rspack-plugin\nexport default {\"ProgressBarAnimation\":\"mEtOf\",\"progress-bar\":\"R4OpF\",\"ProgressBarNoAnimation\":\"venMo\",\"SpinOut\":\"sgvtf\",\"SpinOutActive\":\"qqLKO\",\"popInFromBottom\":\"rcLRX\",\"pop-in-from-bottom\":\"Yeb3S\",\"slideLeft\":\"RSdh9\",\"slide-left\":\"AmX1x\",\"popToast\":\"OswMS\",\"pop-toast\":\"EBIxa\",\"fadeIn\":\"ZYhuy\",\"fade-in\":\"EYuOq\",\"pointerEventsNone\":\"tpHqK\",\"pointerEventsAll\":\"SpgWq\",\"pointerEventsAuto\":\"iD_ru\",\"disabled\":\"Ma36o\",\"circle\":\"aPKfs\",\"bordered\":\"IUJkJ\",\"borderBottom\":\"ATEDd\",\"border-bottom\":\"gAwdy\",\"borderTop\":\"SB2sC\",\"border-top\":\"G6FE4\",\"borderRowDivider\":\"aa4vG\",\"borderRight\":\"mjkGv\",\"borderLeft\":\"oQZyc\",\"borderLight\":\"Mmm2Y\",\"borderError\":\"Ul0yS\",\"borderSuccess\":\"aAeYn\",\"borderBrand\":\"HNQym\",\"borderTransparent\":\"tpb2A\",\"borderless\":\"l17Bn\",\"borderMedium\":\"t1nUe\",\"clearfix\":\"bXmPC\",\"textDefault\":\"mwTJ3\",\"textBrand\":\"IXEGd\",\"textBrandHover\":\"vinJ5\",\"textSuccess\":\"P8Z2y\",\"textError\":\"prt2B\",\"textErrorHover\":\"PLMBX\",\"bgErrorHover\":\"BKdqA\",\"bgErrorInput\":\"ZyR45\",\"textSlate\":\"OcDyZ\",\"textSlateLight\":\"oFzjM\",\"textLight\":\"cq5WZ\",\"textMedium\":\"R4jSh\",\"textMediumHover\":\"gBUfW\",\"textDark\":\"IDnFd\",\"textDarkHover\":\"gYrIv\",\"textPrimary\":\"GSsGm\",\"textSecondary\":\"nos8B\",\"textTertiary\":\"LHMwy\",\"bgLight\":\"qA23A\",\"bgLightHover\":\"Pavc4\",\"bgMedium\":\"TuUW_\",\"bgMediumHover\":\"dhgi6\",\"textWhite\":\"SoFw4\",\"textWhiteHover\":\"xkjjD\",\"bgWhite\":\"zBc9t\",\"bgLightBlue\":\"yS50S\",\"DashboardNight\":\"OxI1F\",\"cursorPointer\":\"CkxlV\",\"cursorGrab\":\"aqT3Y\",\"cursorDefault\":\"wgpdp\",\"cursorInherit\":\"M_993\",\"flex\":\"pQ2ug\",\"flexAuto\":\"FykTI\",\"flexFull\":\"VAtvi\",\"flexHalf\":\"emSMQ\",\"flex1\":\"cA01f\",\"flexNoShrink\":\"vHRpE\",\"flexGrow1\":\"XiLKn\",\"flexBasisAuto\":\"E2JGK\",\"flexBasisNone\":\"SM6OJ\",\"shrinkBelowContentSize\":\"pJ90D\",\"alignCenter\":\"luisu\",\"justifyCenter\":\"O3_cv\",\"justifyBetween\":\"h2xaY\",\"justifyEnd\":\"YCcc5\",\"alignStart\":\"sUb3_\",\"alignEnd\":\"mSbS5\",\"alignStretch\":\"twXmG\",\"alignSelfEnd\":\"wP_mD\",\"alignSelfStretch\":\"MR0xN\",\"flexAlignRight\":\"RQrAi\",\"layoutCentered\":\"D6Ztf\",\"flexColumn\":\"Q0qFb\",\"flexRow\":\"mhSWB\",\"flexWrap\":\"Lw7Y8\",\"flexReverse\":\"E_DiM\",\"ieWrapContentFix\":\"ifXsp\",\"rowGap1\":\"ALjIj\",\"floatLeft\":\"zVQEX\",\"floatRight\":\"E_0Pk\",\"Grid\":\"Kk8xD\",\"GridCell\":\"vkeL0\",\"Grid1of2\":\"okbX6\",\"GridGutters\":\"KbH22\",\"h1\":\"I20Ol\",\"h2\":\"j7am9\",\"h3\":\"YDh1S\",\"h4\":\"BrK5R\",\"h5\":\"t91oi\",\"h6\":\"Hoqqj\",\"smH3\":\"A73qk\",\"mdH2\":\"nUBIU\",\"hide\":\"Qe7tL\",\"show\":\"g_d91\",\"hidden\":\"hSODZ\",\"smShow\":\"c6Kfz\",\"TableInteractiveDetailButton\":\"MGQK0\",\"hoverParent\":\"B_4tf\",\"hoverDisplay\":\"bwhfx\",\"hoverChild\":\"M9b80\",\"hoverChildHidden\":\"CpdPh\",\"hoverVisibility\":\"DND1P\",\"hoverInherit\":\"RinRg\",\"hoverChildSmooth\":\"nlXVw\",\"input\":\"STNQK\",\"inputBorderless\":\"SD8Gd\",\"wrapper\":\"DLaLX\",\"fullHeight\":\"G6zSq\",\"block\":\"OFJC9\",\"inline\":\"O296w\",\"inlineBlock\":\"h8Y6X\",\"full\":\"K7R8i\",\"fullWidth\":\"FVvUi\",\"half\":\"L6owb\",\"fixed\":\"CKpCj\",\"relative\":\"ENlnL\",\"absolute\":\"Fw2w3\",\"top\":\"noHIS\",\"right\":\"bsixx\",\"bottom\":\"yzgMb\",\"left\":\"Vui0a\",\"wrapperTrim\":\"XVRCu\",\"spread\":\"tNlo2\",\"stackingContext\":\"U9KLu\",\"noDecoration\":\"ovXPo\",\"link\":\"nQD8h\",\"linkWrappable\":\"gyUe6\",\"overflowAuto\":\"UnJu4\",\"overflowYAuto\":\"hPzpP\",\"overflowHidden\":\"YsTyl\",\"overflowYScroll\":\"hzF8z\",\"rounded\":\"cahH4\",\"circular\":\"m1M6I\",\"scrollY\":\"prIaB\",\"scrollX\":\"VUw7C\",\"scrollShow\":\"YJQAb\",\"scrollShowHover\":\"xLHoZ\",\"scrollLight\":\"GqO3i\",\"scrollHide\":\"Jaejr\",\"scrollHideAll\":\"GqO5z\",\"shadowed\":\"JJN9A\",\"mlAuto\":\"oQ6Dc\",\"mrAuto\":\"TlHWj\",\"mtAuto\":\"v7j9l\",\"p0\":\"bn04g\",\"pt0\":\"dTcN2\",\"p1\":\"TUR5f\",\"px1\":\"aNRHJ\",\"py1\":\"_Uhde\",\"pt1\":\"J_qx7\",\"pb1\":\"sdzgL\",\"pl1\":\"gUgCi\",\"pr1\":\"IeGpY\",\"p2\":\"O4m07\",\"px2\":\"OK2kc\",\"py2\":\"_79NX\",\"pt2\":\"NCsuG\",\"pb2\":\"FY7jl\",\"pl2\":\"lyZjJ\",\"pr2\":\"Zmb1S\",\"p3\":\"J8T8d\",\"px3\":\"EwkzK\",\"py3\":\"ACyl6\",\"pt3\":\"dyI3G\",\"pb3\":\"XzBqP\",\"pl3\":\"AYIVJ\",\"pr3\":\"TG8_S\",\"p4\":\"M43ou\",\"px4\":\"FC73o\",\"py4\":\"zGi4n\",\"pt4\":\"qB6W0\",\"pb4\":\"_0Ejr\",\"pl4\":\"u20YG\",\"pr4\":\"w11LS\",\"m0\":\"_s40L\",\"mt0\":\"yW_Hn\",\"mb0\":\"z54ZD\",\"m1\":\"abSgF\",\"mx1\":\"BWFZp\",\"my1\":\"Q_CKo\",\"mt1\":\"Trxz5\",\"mb1\":\"PsTpS\",\"ml1\":\"DG0Op\",\"mr1\":\"Iup3O\",\"m2\":\"oYyGS\",\"mx2\":\"dNRrp\",\"my2\":\"xJu3B\",\"mt2\":\"yZ44O\",\"mb2\":\"fA72n\",\"ml2\":\"SJXBn\",\"mr2\":\"BN9kK\",\"m3\":\"_4rCH_\",\"mx3\":\"B2yhO\",\"my3\":\"fEgWn\",\"mt3\":\"N7VMs\",\"mb3\":\"yk1X9\",\"ml3\":\"x45MJ\",\"mr3\":\"qLqi6\",\"m4\":\"kvrtt\",\"mx4\":\"JQbXH\",\"my4\":\"IxIZi\",\"mt4\":\"m1U6H\",\"mb4\":\"VyRqe\",\"ml4\":\"fa48S\",\"mr4\":\"CcYAu\",\"lgPy2\":\"UeGUE\",\"xlPy3\":\"gngQ3\",\"textCentered\":\"aOBOB\",\"textLeft\":\"h2DuX\",\"textRight\":\"NeT3o\",\"textUppercase\":\"nNGOB\",\"textNormal\":\"h3M59\",\"textBold\":\"ygoQK\",\"textHeavy\":\"l1gr5\",\"textItalic\":\"u1jp9\",\"textBody\":\"wpIai\",\"textList\":\"DrOhY\",\"textParagraph\":\"pNKZb\",\"textSpaced\":\"rouP3\",\"textUnspaced\":\"Cjogb\",\"textSmall\":\"ncZ1_\",\"textSmaller\":\"xLWcZ\",\"textEllipsis\":\"VEJDH\",\"textWrap\":\"pEnES\",\"textNoWrap\":\"b1FQW\",\"textCode\":\"NjYtb\",\"textMonospace\":\"QSlpX\",\"textPreWrap\":\"civOu\",\"textMeasure\":\"YZUMm\",\"breakAnywhere\":\"MUIez\",\"transitionColor\":\"c1h0N\",\"transitionThemeChange\":\"DiqL5\",\"wFull\":\"VXSmI\",\"ParameterDropdownWidth\":\"tlHrz\",\"Overlay\":\"RbbUp\",\"z1\":\"n6lDl\",\"z2\":\"utgie\",\"z3\":\"BNvpr\",\"z4\":\"tNND_\",\"z5\":\"jDaaD\",\"z6\":\"Ieabm\"};","// extracted by css-extract-rspack-plugin\nexport default {\"transitionColor\":\"KxxLs\",\"transitionThemeChange\":\"QjQnf\"};","// extracted by css-extract-rspack-plugin\nexport default {\"Overlay\":\"soN1a\",\"z1\":\"Nsvne\",\"z2\":\"RYWvA\",\"z3\":\"ODutq\",\"z4\":\"hMTsk\",\"z5\":\"RDlqR\",\"z6\":\"WKfZg\"};","// extracted by css-extract-rspack-plugin\nexport default {\"Dashboard\":\"Wr5uR\",\"DashboardFullscreen\":\"h2wwq\",\"DashboardNight\":\"fXdKU\",\"Card\":\"BM7bg\",\"fullscreenNormalText\":\"gDtsD\",\"fullscreenNightText\":\"aAXaA\",\"DashCard\":\"KyVDN\",\"enableDotsOnHover\":\"IIa9z\",\"enableDots\":\"GyfEY\",\"ParameterFieldSet\":\"UgkOs\",\"DashEditing\":\"xgz8U\",\"CardTitle\":\"ksJ6i\",\"PinMap\":\"YI2ER\",\"PinMapUpdateButtonDisabled\":\"FhU9V\",\"BrandColorResizeHandle\":\"wAOzv\",\"VisualizationSlowSpinner\":\"fPhma\",\"DashDragging\":\"loHBB\",\"Modal\":\"xLZY2\",\"AddSeriesModal\":\"e3pDX\",\"ScalarValue\":\"mkUXG\"};","// extracted by css-extract-rspack-plugin\nexport default {\"QueryBuilder\":\"cq4YB\",\"QuerySection\":\"t3VgB\",\"QueryLabel\":\"vTQPN\",\"QueryFilters\":\"a0dUK\",\"QueryFilterList\":\"qxqwd\",\"FilterSection\":\"rSBTR\",\"TooltipFilterList\":\"FqyIy\",\"SelectionList\":\"m7cR2\",\"SelectionItems\":\"fpni8\",\"SelectionItemsOpen\":\"hYZKM\",\"SelectionItemsExpanded\":\"jt6ye\",\"SelectionItem\":\"IbLAe\",\"SelectionModuleDisplay\":\"XkeVs\",\"SelectionModuleDescription\":\"jbxh0\",\"SelectionItemSelected\":\"v3L64\",\"Visualization\":\"z35aj\",\"VisualizationLoading\":\"XRfIo\",\"Loading\":\"vB6yW\",\"LoadingHidden\":\"hL6BI\",\"QueryError\":\"hMNCx\",\"QueryErrorImage\":\"w1d0n\",\"QueryErrorImageQueryError\":\"ibiJX\",\"QueryErrorImageServerError\":\"IA_DD\",\"QueryErrorImageTimeout\":\"mrUot\",\"QueryErrorMessageText\":\"g6xrg\",\"QueryErrorAdminEmail\":\"GlDOG\",\"QueryError-adminEmail\":\"fP_bI\",\"QueryError2\":\"CkcGF\",\"QueryError2Details\":\"XRzgB\",\"GuiBuilder\":\"pM44f\",\"GuiBuilderRow\":\"DXS_F\",\"GuiBuilderData\":\"DqtEE\",\"GuiBuilderFilteredBy\":\"m0SUk\",\"GuiBuilderView\":\"qawE_\",\"GuiBuilderExpand\":\"nfOkf\",\"GuiBuilderSection\":\"ZiDmk\",\"GuiBuilderSectionLabel\":\"cH0V5\",\"RunButton\":\"kphZe\",\"RunButtonCompact\":\"c5UqB\",\"RunButtonHidden\":\"nlgRA\",\"ObjectJSON\":\"Y8dnw\",\"QuestionTooltipTarget\":\"Vzteu\",\"ScalarValue\":\"emrQs\"};","// extracted by css-extract-rspack-plugin\nexport default {\"parameter\":\"lnsju\",\"selected\":\"qZ8sw\",\"noPopover\":\"QJ9jA\",\"DashboardNight\":\"afuoO\",\"name\":\"dZ0BH Iup3O\",\"widgetStatus\":\"qdMf6\"};","// extracted by css-extract-rspack-plugin\nexport default {\"EmbedFrame\":\"FRNiU\",\"WithThemeBackground\":\"UrmO8\",\"DashCard\":\"XXVm2\",\"Card\":\"h25oH\",\"EmbedFrameHeader\":\"t8Rgx\",\"EmbedFrameFooter\":\"uBIXt\",\"ContentContainer\":\"WYKoA\",\"Separator\":\"SaFh2\",\"ParameterFieldSet\":\"LrG0g\",\"ParametersWidgetContainer\":\"h2ZWP\",\"LogoBadge\":\"l0FIi\",\"fullscreenNightText\":\"Ff0pN\",\"NoBackground\":\"KCDOQ\"};","// extracted by css-extract-rspack-plugin\nexport default {\"SidebarContentMain\":\"Mgg6z\",\"FooterButton\":\"j1RKn\",\"SidebarContentRoot\":\"PTF9q\",\"SidebarContentHeader\":\"mUaDL\"};","// extracted by css-extract-rspack-plugin\nexport default {\"LegendItem\":\"aMeNc\",\"LegendHeader\":\"omIAu\",\"LegendItemMuted\":\"aN3hv\",\"Legend\":\"ZVH09\",\"none\":\"q9L2x\",\"vertical\":\"r0JPc\",\"horizontal\":\"gTNVY\",\"DashCard\":\"KY_Tw\"};","(ns ^:no-doc camel-snake-kebab.internals.alter-name\n #?(:clj (:import (clojure.lang Keyword Symbol))))\n\n(defprotocol AlterName\n (alter-name [this f] \"Alters the name of this with f.\"))\n\n(extend-protocol AlterName\n #?(:clj String\n :cljs string)\n (alter-name [this f]\n (-> this f))\n\n Keyword\n (alter-name [this f]\n (if (namespace this)\n (throw (ex-info \"Namespaced keywords are not supported\" {:input this}))\n (-> this name f keyword)))\n\n Symbol\n (alter-name [this f]\n (if (namespace this)\n (throw (ex-info \"Namespaced symbols are not supported\" {:input this}))\n (-> this name f symbol))))\n","(ns ^:no-doc camel-snake-kebab.internals.string-separator\n (:require [clojure.string :as string])\n #?(:clj (:import (java.util.regex Pattern))))\n\n#?(:clj (set! *warn-on-reflection* true))\n\n(defprotocol StringSeparator\n (split [this s] \": StringSeparator -> String -> NonEmptySeq[String]\"))\n\n#?(:clj\n (letfn [(split-by-pattern [^Pattern p, ^String s]\n (string/split s p))\n ;; These could be optimized e.g. by using StringUtils in Apache Commons:\n (split-by-string [^String p, ^String s]\n (split-by-pattern (-> p Pattern/quote Pattern/compile) s))\n (split-by-char [^Character p, ^String s]\n (split-by-string (String/valueOf p) s))]\n (extend Pattern StringSeparator {:split split-by-pattern})\n (extend String StringSeparator {:split split-by-string})\n (extend Character StringSeparator {:split split-by-char}))\n\n :cljs\n (extend-protocol StringSeparator\n ;; Notes:\n ;; * Characters are just strings in ClojureScript.\n ;; * Using js/RegExp generates a warning, but what's the right way?\n\n js/RegExp\n (split [this s] (string/split s this))\n\n string\n (split [this s] (string/split s this))))\n\n(defn classify-char [c]\n (case c\n (\\0 \\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9) :number\n (\\- \\_ \\space \\tab \\newline \\o013 \\formfeed \\return) :whitespace\n (\\a \\b \\c \\d \\e \\f \\g \\h \\i \\j \\k \\l \\m \\n \\o \\p \\q \\r \\s \\t \\u \\v \\w \\x \\y \\z) :lower\n (\\A \\B \\C \\D \\E \\F \\G \\H \\I \\J \\K \\L \\M \\N \\O \\P \\Q \\R \\S \\T \\U \\V \\W \\X \\Y \\Z) :upper\n :other))\n\n(defn generic-split [ss]\n (let [cs (mapv classify-char ss)\n ss-length #?(:clj (.length ^String ss)\n :cljs (.-length ss))]\n (loop [result (transient []), start 0, current 0]\n (let [next (inc current)\n result+new (fn [end]\n (if (> end start)\n (conj! result (.substring ^String ss start end))\n result))]\n (cond (>= current ss-length)\n (or (seq (persistent! (result+new current)))\n ;; Return this instead of an empty seq:\n [\"\"])\n\n (= (nth cs current) :whitespace)\n (recur (result+new current) next next)\n\n (let [[a b c] (subvec cs current)]\n ;; This expression is not pretty,\n ;; but it compiles down to sane JavaScript.\n (or (and (not= a :upper) (= b :upper))\n (and (not= a :number) (= b :number))\n (and (= a :upper) (= b :upper) (= c :lower))))\n (recur (result+new next) next next)\n\n :else\n (recur result start next))))))\n\n(def generic-separator\n (reify StringSeparator\n (split [_ s] (generic-split s))))\n","; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n(ns cljs.core\n (:require goog.math.Long\n goog.math.Integer\n [goog.string :as gstring]\n [goog.object :as gobject]\n [goog.array :as garray]\n [goog.Uri])\n (:import [goog.string StringBuffer]))\n\n;; next line is auto-generated by the build-script - Do not edit!\n(def *clojurescript-version* \"1.11.132\")\n\n;; Setting of these Vars is in ClojureScript code is associated with intrinsics\n;; that affect compilation state, but otherwise turn into no-ops in the emitted\n;; JavaScript.\n\n;; The scope of *unchecked-if* is controlled by balanced pairs of set! calls.\n(def *unchecked-if* false)\n;; The scope of *unchecked-arrays* is file-scope: In JVM ClojureScript its side-\n;; effect is to set same-named analyzer dynamic Var, which is unset via binding\n;; scopes. In self-hosted it is cleared via cljs.js/post-file-side-effects.\n(def *unchecked-arrays* false)\n;; The scope of *warn-on-infer* is file-scope: Its side effect is to set the\n;; cljs.analyzer/*cljs-warnings* dynamic Var, which is unset via binding scopes.\n(def *warn-on-infer* false)\n\n(set! *unchecked-arrays* true)\n\n(defonce PROTOCOL_SENTINEL #js {})\n\n(def MODULE_URIS nil) ;; set by compiler\n(def MODULE_INFOS nil) ;; set by compiler\n\n(goog-define\n ^{:dynamic true\n :doc \"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 *target* \"default\")\n\n(goog-define\n ^{:dynamic true\n :doc \"Manually set the JavaScript global context. Only \\\"window\\\", \\\"self\\\"\n , and \\\"global\\\" supported. \"}\n *global* \"default\")\n\n(def\n ^{:dynamic true\n :doc \"Var bound to the current namespace. Only used for bootstrapping.\"\n :jsdoc [\"@type {*}\"]}\n *ns* nil)\n\n(def\n ^{:dynamic true\n :jsdoc [\"@type {*}\"]}\n *out* nil)\n\n(def\n ^{:dynamic true}\n *assert* true)\n\n(defonce\n ^{:doc \"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.\" :dynamic true}\n *print-fn* nil)\n\n(declare boolean)\n\n(defn ^{:doc \"Arranges to have tap functions executed via the supplied f, a\n function of no arguments. Returns true if successful, false otherwise.\" :dynamic true}\n *exec-tap-fn*\n [f]\n (and\n (exists? js/setTimeout)\n ;; See CLJS-3274 - workaround for recent WebKit releases\n (boolean (js/setTimeout f 0))))\n\n(defonce\n ^{:doc \"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.\" :dynamic true}\n *print-err-fn* nil)\n\n(defn set-print-fn!\n \"Set *print-fn* to f.\"\n [f] (set! *print-fn* f))\n\n(defn set-print-err-fn!\n \"Set *print-err-fn* to f.\"\n [f] (set! *print-err-fn* f))\n\n(def\n ^{:dynamic true\n :doc \"When set to true, output will be flushed whenever a newline is printed.\n\n Defaults to true.\"}\n *flush-on-newline* true)\n\n(def\n ^{:dynamic true\n :doc \"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 *print-newline* true)\n\n(def\n ^{:dynamic true\n :doc \"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 *print-readably* true)\n\n(def\n ^{:dynamic true\n :doc \"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 *print-meta* false)\n\n(def\n ^{:dynamic true\n :doc \"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 *print-dup* false)\n\n(def\n ^{:dynamic true\n :doc \"*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 *print-namespace-maps* false)\n\n(def\n ^{:dynamic true\n :doc \"*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 :jsdoc [\"@type {null|number}\"]}\n *print-length* nil)\n\n(def\n ^{:dynamic true\n :doc \"*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 :jsdoc [\"@type {null|number}\"]}\n *print-level* nil)\n\n(def\n ^{:dynamic true\n :doc \"*print-fns-bodies* controls whether functions print their source or\n only their names.\"}\n *print-fn-bodies* false)\n\n(defonce\n ^{:dynamic true\n :jsdoc [\"@type {*}\"]}\n *loaded-libs* nil)\n\n(defn- pr-opts []\n {:flush-on-newline *flush-on-newline*\n :readably *print-readably*\n :meta *print-meta*\n :dup *print-dup*\n :print-length *print-length*})\n\n(declare into-array)\n\n(defn enable-console-print!\n \"Set *print-fn* to console.log\"\n []\n (set! *print-newline* false)\n (set-print-fn!\n (fn []\n (let [xs (js-arguments)]\n (.apply (.-log js/console) js/console (garray/clone xs)))))\n (set-print-err-fn!\n (fn []\n (let [xs (js-arguments)]\n (.apply (.-error js/console) js/console (garray/clone xs)))))\n nil)\n\n(def\n ^{:dynamic true\n :doc \"bound in a repl thread to the most recent value printed\"}\n *1)\n\n(def\n ^{:dynamic true\n :doc \"bound in a repl thread to the second most recent value printed\"}\n *2)\n\n(def\n ^{:dynamic true\n :doc \"bound in a repl thread to the third most recent value printed\"}\n *3)\n\n(def\n ^{:dynamic true\n :doc \"bound in a repl thread to the most recent exception caught by the repl\"}\n *e)\n\n(defn truth_\n \"Internal - do not use!\"\n [x]\n (cljs.core/truth_ x))\n\n(def not-native nil)\n\n(declare instance? Keyword)\n\n(defn ^boolean identical?\n \"Tests if 2 arguments are the same object\"\n [x y]\n (cljs.core/identical? x y))\n\n(defn ^boolean nil?\n \"Returns true if x is nil, false otherwise.\"\n [x]\n (coercive-= x nil))\n\n(defn ^boolean array?\n \"Returns true if x is a JavaScript array.\"\n [x]\n (if (identical? *target* \"nodejs\")\n (.isArray js/Array x)\n (instance? js/Array x)))\n\n(defn ^boolean number?\n \"Returns true if x is a JavaScript number.\"\n [x]\n (cljs.core/number? x))\n\n(defn not\n \"Returns true if x is logical false, false otherwise.\"\n [x]\n (cond\n (nil? x) true\n (false? x) true\n :else false))\n\n(defn ^boolean some?\n \"Returns true if x is not nil, false otherwise.\"\n [x] (not (nil? x)))\n\n(defn object?\n \"Returns true if x's constructor is Object\"\n [x]\n (if-not (nil? x)\n (identical? (.-constructor x) js/Object)\n false))\n\n(defn ^boolean string?\n \"Returns true if x is a JavaScript string.\"\n [x]\n (identical? \"string\" (goog/typeOf x)))\n\n(defn char?\n \"Returns true if x is a JavaScript string of length one.\"\n [x]\n (and (string? x) (== 1 (.-length x))))\n\n(defn any?\n \"Returns true if given any argument.\"\n [x] true)\n\n(set! *unchecked-if* true)\n(defn native-satisfies?\n \"Internal - do not use!\"\n [p x]\n (let [x (if (nil? x) nil x)]\n (cond\n (unchecked-get p (goog/typeOf x)) true\n (unchecked-get p \"_\") true\n :else false)))\n(set! *unchecked-if* false)\n\n(defn is_proto_\n [x]\n (identical? (.-prototype (.-constructor x)) x))\n\n(def\n ^{:doc \"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 *main-cli-fn* nil)\n\n(def\n ^{:doc \"A sequence of the supplied command line arguments, or nil if\n none were supplied\"}\n *command-line-args* nil)\n\n(defn type\n \"Return x's constructor.\"\n [x]\n (when-not (nil? x)\n (.-constructor x)))\n\n(defn missing-protocol [proto obj]\n (let [ty (type obj)\n ty (if (and ty (.-cljs$lang$type ty))\n (.-cljs$lang$ctorStr ty)\n (goog/typeOf obj))]\n (js/Error.\n (.join (array \"No protocol method \" proto\n \" defined for type \" ty \": \" obj) \"\"))))\n\n(defn type->str [ty]\n (if-let [s (.-cljs$lang$ctorStr ty)]\n s\n (str ty)))\n\n;; INTERNAL - do not use, only for Node.js\n(defn load-file [file]\n (when-not js/COMPILED\n (cljs.core/load-file* file)))\n\n(if (and (exists? js/Symbol)\n (identical? (goog/typeOf js/Symbol) \"function\"))\n (def ITER_SYMBOL (.-iterator js/Symbol))\n (def ITER_SYMBOL \"@@iterator\"))\n\n(def ^{:jsdoc [\"@enum {string}\"]}\n CHAR_MAP\n #js {\"-\" \"_\"\n \":\" \"_COLON_\"\n \"+\" \"_PLUS_\"\n \">\" \"_GT_\"\n \"<\" \"_LT_\"\n \"=\" \"_EQ_\"\n \"~\" \"_TILDE_\"\n \"!\" \"_BANG_\"\n \"@\" \"_CIRCA_\"\n \"#\" \"_SHARP_\"\n \"'\" \"_SINGLEQUOTE_\"\n \"\\\\\\\"\" \"_DOUBLEQUOTE_\"\n \"%\" \"_PERCENT_\"\n \"^\" \"_CARET_\"\n \"&\" \"_AMPERSAND_\"\n \"*\" \"_STAR_\"\n \"|\" \"_BAR_\"\n \"{\" \"_LBRACE_\"\n \"}\" \"_RBRACE_\"\n \"[\" \"_LBRACK_\"\n \"]\" \"_RBRACK_\"\n \"/\" \"_SLASH_\"\n \"\\\\\\\\\" \"_BSLASH_\"\n \"?\" \"_QMARK_\"})\n\n(def ^{:jsdoc [\"@enum {string}\"]}\n DEMUNGE_MAP\n #js {\"_\" \"-\"\n \"_COLON_\" \":\"\n \"_PLUS_\" \"+\"\n \"_GT_\" \">\"\n \"_LT_\" \"<\"\n \"_EQ_\" \"=\"\n \"_TILDE_\" \"~\"\n \"_BANG_\" \"!\"\n \"_CIRCA_\" \"@\"\n \"_SHARP_\" \"#\"\n \"_SINGLEQUOTE_\" \"'\"\n \"_DOUBLEQUOTE_\" \"\\\\\\\"\"\n \"_PERCENT_\" \"%\"\n \"_CARET_\" \"^\"\n \"_AMPERSAND_\" \"&\"\n \"_STAR_\" \"*\"\n \"_BAR_\" \"|\"\n \"_LBRACE_\" \"{\"\n \"_RBRACE_\" \"}\"\n \"_LBRACK_\" \"[\"\n \"_RBRACK_\" \"]\"\n \"_SLASH_\" \"/\"\n \"_BSLASH_\" \"\\\\\\\\\"\n \"_QMARK_\" \"?\"})\n\n(def DEMUNGE_PATTERN nil)\n\n(defn system-time\n \"Returns highest resolution time offered by host in milliseconds.\"\n []\n (cond\n (and (exists? js/performance)\n (not (nil? (. js/performance -now))))\n (.now js/performance)\n\n (and (exists? js/process)\n (not (nil? (. js/process -hrtime))))\n (let [t (.hrtime js/process)]\n (/ (+ (* (aget t 0) 1e9) (aget t 1)) 1e6))\n\n :else (.getTime (js/Date.))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; arrays ;;;;;;;;;;;;;;;;\n\n(declare apply)\n\n(defn ^array make-array\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 ([size]\n (js/Array. size))\n ([type size]\n (make-array size))\n ([type size & more-sizes]\n (let [dims more-sizes\n dimarray (make-array size)]\n (dotimes [i (alength dimarray)]\n (aset dimarray i (apply make-array nil dims)))\n dimarray)))\n\n(defn aclone\n \"Returns a javascript array, cloned from the passed in array\"\n [arr]\n (let [len (alength arr)\n new-arr (make-array len)]\n (dotimes [i len]\n (aset new-arr i (aget arr i)))\n new-arr))\n\n(defn ^array array\n \"Creates a new javascript array.\n@param {...*} var_args\" ;;array is a special case, don't emulate this doc string\n [var-args] ;; [& items]\n (let [a (js/Array. (alength (cljs.core/js-arguments)))]\n (loop [i 0]\n (if (< i (alength a))\n (do\n (aset a i (aget (cljs.core/js-arguments) i))\n (recur (inc i)))\n a))))\n\n(defn- maybe-warn\n [e]\n (when *print-err-fn*\n (*print-err-fn* e)))\n\n(defn- checked-aget\n ([array idx]\n (when-assert\n (try\n (assert (or (array? array) (goog/isArrayLike array)))\n (assert (number? idx))\n (assert (not (neg? idx)))\n (assert (< idx (alength array)))\n (catch :default e\n (maybe-warn e))))\n (unchecked-get array idx))\n ([array idx & idxs]\n (apply checked-aget (checked-aget array idx) idxs)))\n\n(defn- checked-aset\n ([array idx val]\n (when-assert\n (try\n (assert (or (array? array) (goog/isArrayLike array)))\n (assert (number? idx))\n (assert (not (neg? idx)))\n (assert (< idx (alength array)))\n (catch :default e\n (maybe-warn e))))\n (unchecked-set array idx val))\n ([array idx idx2 & idxv]\n (apply checked-aset (checked-aget array idx) idx2 idxv)))\n\n(defn- checked-aget'\n ([array idx]\n {:pre [(or (array? array) (goog/isArrayLike array))\n (number? idx) (not (neg? idx)) (< idx (alength array))]}\n (unchecked-get array idx))\n ([array idx & idxs]\n (apply checked-aget' (checked-aget' array idx) idxs)))\n\n(defn- checked-aset'\n ([array idx val]\n {:pre [(or (array? array) (goog/isArrayLike array))\n (number? idx) (not (neg? idx)) (< idx (alength array))]}\n (unchecked-set array idx val))\n ([array idx idx2 & idxv]\n (apply checked-aset' (checked-aget' array idx) idx2 idxv)))\n\n(defn aget\n \"Returns the value at the index/indices. Works on JavaScript arrays.\"\n ([array idx]\n (cljs.core/aget array idx))\n ([array idx & idxs]\n (apply aget (aget array idx) idxs)))\n\n(defn aset\n \"Sets the value at the index/indices. Works on JavaScript arrays.\n Returns val.\"\n ([array idx val]\n (cljs.core/aset array idx val))\n ([array idx idx2 & idxv]\n (apply aset (aget array idx) idx2 idxv)))\n\n(defn ^number alength\n \"Returns the length of the array. Works on arrays of all types.\"\n [array]\n (cljs.core/alength array))\n\n(declare reduce)\n\n(defn ^array into-array\n \"Returns an array with components set to the values in aseq. Optional type\n argument accepted for compatibility with Clojure.\"\n ([aseq]\n (into-array nil aseq))\n ([type aseq]\n (reduce (fn [a x] (.push a x) a) (array) aseq)))\n\n(defn js-invoke\n \"Invoke JavaScript object method via string. Needed when the\n string is not a valid unquoted property name.\"\n [obj s & args]\n (.apply (unchecked-get obj s) obj (into-array args)))\n\n(defn js-symbol?\n \"Returns true if x is an instance of Symbol\"\n [x]\n (or (identical? (goog/typeOf x) \"symbol\")\n (and (exists? js/Symbol)\n (instance? js/Symbol x))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;; core protocols ;;;;;;;;;;;;;\n\n(defprotocol Fn\n \"Marker protocol\")\n\n(defprotocol IFn\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 (-invoke\n [this]\n [this a]\n [this a b]\n [this a b c]\n [this a b c d]\n [this a b c d e]\n [this a b c d e f]\n [this a b c d e f g]\n [this a b c d e f g h]\n [this a b c d e f g h i]\n [this a b c d e f g h i j]\n [this a b c d e f g h i j k]\n [this a b c d e f g h i j k l]\n [this a b c d e f g h i j k l m]\n [this a b c d e f g h i j k l m n]\n [this a b c d e f g h i j k l m n o]\n [this a b c d e f g h i j k l m n o p]\n [this a b c d e f g h i j k l m n o p q]\n [this a b c d e f g h i j k l m n o p q r]\n [this a b c d e f g h i j k l m n o p q r s]\n [this a b c d e f g h i j k l m n o p q r s t]\n [this a b c d e f g h i j k l m n o p q r s t rest]))\n\n(defprotocol ICloneable\n \"Protocol for cloning a value.\"\n (^clj -clone [value]\n \"Creates a clone of value.\"))\n\n(defprotocol ICounted\n \"Protocol for adding the ability to count a collection in constant time.\"\n (^number -count [coll]\n \"Calculates the count of coll in constant time. Used by cljs.core/count.\"))\n\n(defprotocol IEmptyableCollection\n \"Protocol for creating an empty collection.\"\n (-empty [coll]\n \"Returns an empty collection of the same category as coll. Used\n by cljs.core/empty.\"))\n\n(defprotocol ICollection\n \"Protocol for adding to a collection.\"\n (^clj -conj [coll o]\n \"Returns a new collection of coll with o added to it. The new item\n should be added to the most efficient place, e.g.\n (conj [1 2 3 4] 5) => [1 2 3 4 5]\n (conj '(2 3 4 5) 1) => '(1 2 3 4 5)\"))\n\n#_(defprotocol IOrdinal\n (-index [coll]))\n\n(defprotocol IIndexed\n \"Protocol for collections to provide indexed-based access to their items.\"\n (-nth [coll n] [coll n not-found]\n \"Returns the value at the index n in the collection coll.\n Returns not-found if index n is out of bounds and not-found is supplied.\"))\n\n(defprotocol ASeq\n \"Marker protocol indicating an array sequence.\")\n\n(defprotocol ISeq\n \"Protocol for collections to provide access to their items as sequences.\"\n (-first [coll]\n \"Returns the first item in the collection coll. Used by cljs.core/first.\")\n (^clj -rest [coll]\n \"Returns a new collection of coll without the first item. It should\n always return a seq, e.g.\n (rest []) => ()\n (rest nil) => ()\"))\n\n(defprotocol INext\n \"Protocol for accessing the next items of a collection.\"\n (^clj-or-nil -next [coll]\n \"Returns a new collection of coll without the first item. In contrast to\n rest, it should return nil if there are no more items, e.g.\n (next []) => nil\n (next nil) => nil\"))\n\n(defprotocol ILookup\n \"Protocol for looking up a value in a data structure.\"\n (-lookup [o k] [o k not-found]\n \"Use k to look up a value in o. If not-found is supplied and k is not\n a valid value that can be used for look up, not-found is returned.\"))\n\n(defprotocol IAssociative\n \"Protocol for adding associativity to collections.\"\n (^boolean -contains-key? [coll k]\n \"Returns true if k is a key in coll.\")\n #_(-entry-at [coll k])\n (^clj -assoc [coll k v]\n \"Returns a new collection of coll with a mapping from key k to\n value v added to it.\"))\n\n(defprotocol IFind\n \"Protocol for implementing entry finding in collections.\"\n (-find [coll k] \"Returns the map entry for key, or nil if key not present.\"))\n\n(defprotocol IMap\n \"Protocol for adding mapping functionality to collections.\"\n #_(-assoc-ex [coll k v])\n (^clj -dissoc [coll k]\n \"Returns a new collection of coll without the mapping for key k.\"))\n\n(defprotocol IMapEntry\n \"Protocol for examining a map entry.\"\n (-key [coll]\n \"Returns the key of the map entry.\")\n (-val [coll]\n \"Returns the value of the map entry.\"))\n\n(defprotocol ISet\n \"Protocol for adding set functionality to a collection.\"\n (^clj -disjoin [coll v]\n \"Returns a new collection of coll that does not contain v.\"))\n\n(defprotocol IStack\n \"Protocol for collections to provide access to their items as stacks. The top\n of the stack should be accessed in the most efficient way for the different\n data structures.\"\n (-peek [coll]\n \"Returns the item from the top of the stack. Is used by cljs.core/peek.\")\n (^clj -pop [coll]\n \"Returns a new stack without the item on top of the stack. Is used\n by cljs.core/pop.\"))\n\n(defprotocol IVector\n \"Protocol for adding vector functionality to collections.\"\n (^clj -assoc-n [coll n val]\n \"Returns a new vector with value val added at position n.\"))\n\n(defprotocol IDeref\n \"Protocol for adding dereference functionality to a reference.\"\n (-deref [o]\n \"Returns the value of the reference o.\"))\n\n(defprotocol IDerefWithTimeout\n (-deref-with-timeout [o msec timeout-val]))\n\n(defprotocol IMeta\n \"Protocol for accessing the metadata of an object.\"\n (^clj-or-nil -meta [o]\n \"Returns the metadata of object o.\"))\n\n(defprotocol IWithMeta\n \"Protocol for adding metadata to an object.\"\n (^clj -with-meta [o meta]\n \"Returns a new object with value of o and metadata meta added to it.\"))\n\n(defprotocol IReduce\n \"Protocol for seq types that can reduce themselves.\n Called by cljs.core/reduce.\"\n (-reduce [coll f] [coll f start]\n \"f should be a function of 2 arguments. If start is not supplied,\n returns the result of applying f to the first 2 items in coll, then\n applying f to that result and the 3rd item, etc.\"))\n\n(defprotocol IKVReduce\n \"Protocol for associative types that can reduce themselves\n via a function of key and val. Called by cljs.core/reduce-kv.\"\n (-kv-reduce [coll f init]\n \"Reduces an associative collection and returns the result. f should be\n a function that takes three arguments.\"))\n\n(defprotocol IEquiv\n \"Protocol for adding value comparison functionality to a type.\"\n (^boolean -equiv [o other]\n \"Returns true if o and other are equal, false otherwise.\"))\n\n(defprotocol IHash\n \"Protocol for adding hashing functionality to a type.\"\n (-hash [o]\n \"Returns the hash code of o.\"))\n\n(defprotocol ISeqable\n \"Protocol for adding the ability to a type to be transformed into a sequence.\"\n (^clj-or-nil -seq [o]\n \"Returns a seq of o, or nil if o is empty.\"))\n\n(defprotocol ISequential\n \"Marker interface indicating a persistent collection of sequential items\")\n\n(defprotocol IList\n \"Marker interface indicating a persistent list\")\n\n(defprotocol IRecord\n \"Marker interface indicating a record object\")\n\n(defprotocol IReversible\n \"Protocol for reversing a seq.\"\n (^clj -rseq [coll]\n \"Returns a seq of the items in coll in reversed order.\"))\n\n(defprotocol ISorted\n \"Protocol for a collection which can represent their items\n in a sorted manner. \"\n (^clj -sorted-seq [coll ascending?]\n \"Returns a sorted seq from coll in either ascending or descending order.\")\n (^clj -sorted-seq-from [coll k ascending?]\n \"Returns a sorted seq from coll in either ascending or descending order.\n If ascending is true, the result should contain all items which are > or >=\n than k. If ascending is false, the result should contain all items which\n are < or <= than k, e.g.\n (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 true) => (3 4 5)\n (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 false) => (3 2 1)\")\n (-entry-key [coll entry]\n \"Returns the key for entry.\")\n (-comparator [coll]\n \"Returns the comparator for coll.\"))\n\n(defprotocol IWriter\n \"Protocol for writing. Currently only implemented by StringBufferWriter.\"\n (-write [writer s]\n \"Writes s with writer and returns the result.\")\n (-flush [writer]\n \"Flush writer.\"))\n\n(defprotocol IPrintWithWriter\n \"The old IPrintable protocol's implementation consisted of building a giant\n list of strings to concatenate. This involved lots of concat calls,\n intermediate vectors, and lazy-seqs, and was very slow in some older JS\n engines. IPrintWithWriter implements printing via the IWriter protocol, so it\n be implemented efficiently in terms of e.g. a StringBuffer append.\"\n (-pr-writer [o writer opts]))\n\n(defprotocol IPending\n \"Protocol for types which can have a deferred realization. Currently only\n implemented by Delay and LazySeq.\"\n (^boolean -realized? [x]\n \"Returns true if a value for x has been produced, false otherwise.\"))\n\n(defprotocol IWatchable\n \"Protocol for types that can be watched. Currently only implemented by Atom.\"\n (-notify-watches [this oldval newval]\n \"Calls all watchers with this, oldval and newval.\")\n (-add-watch [this key f]\n \"Adds a watcher function f to this. Keys must be unique per reference,\n and can be used to remove the watch with -remove-watch.\")\n (-remove-watch [this key]\n \"Removes watcher that corresponds to key from this.\"))\n\n(defprotocol IEditableCollection\n \"Protocol for collections which can transformed to transients.\"\n (^clj -as-transient [coll]\n \"Returns a new, transient version of the collection, in constant time.\"))\n\n(defprotocol ITransientCollection\n \"Protocol for adding basic functionality to transient collections.\"\n (^clj -conj! [tcoll val]\n \"Adds value val to tcoll and returns tcoll.\")\n (^clj -persistent! [tcoll]\n \"Creates a persistent data structure from tcoll and returns it.\"))\n\n(defprotocol ITransientAssociative\n \"Protocol for adding associativity to transient collections.\"\n (^clj -assoc! [tcoll key val]\n \"Returns a new transient collection of tcoll with a mapping from key to\n val added to it.\"))\n\n(defprotocol ITransientMap\n \"Protocol for adding mapping functionality to transient collections.\"\n (^clj -dissoc! [tcoll key]\n \"Returns a new transient collection of tcoll without the mapping for key.\"))\n\n(defprotocol ITransientVector\n \"Protocol for adding vector functionality to transient collections.\"\n (^clj -assoc-n! [tcoll n val]\n \"Returns tcoll with value val added at position n.\")\n (^clj -pop! [tcoll]\n \"Returns tcoll with the last item removed from it.\"))\n\n(defprotocol ITransientSet\n \"Protocol for adding set functionality to a transient collection.\"\n (^clj -disjoin! [tcoll v]\n \"Returns tcoll without v.\"))\n\n(defprotocol IComparable\n \"Protocol for values that can be compared.\"\n (^number -compare [x y]\n \"Returns a negative number, zero, or a positive number when x is logically\n 'less than', 'equal to', or 'greater than' y.\"))\n\n(defprotocol IChunk\n \"Protocol for accessing the items of a chunk.\"\n (-drop-first [coll]\n \"Return a new chunk of coll with the first item removed.\"))\n\n(defprotocol IChunkedSeq\n \"Protocol for accessing a collection as sequential chunks.\"\n (-chunked-first [coll]\n \"Returns the first chunk in coll.\")\n (-chunked-rest [coll]\n \"Return a new collection of coll with the first chunk removed.\"))\n\n(defprotocol IChunkedNext\n \"Protocol for accessing the chunks of a collection.\"\n (-chunked-next [coll]\n \"Returns a new collection of coll without the first chunk.\"))\n\n(defprotocol INamed\n \"Protocol for adding a name.\"\n (^string -name [x]\n \"Returns the name String of x.\")\n ( ^{:tag #{string clj-nil}}-namespace [x]\n \"Returns the namespace String of x.\"))\n\n(defprotocol IAtom\n \"Marker protocol indicating an atom.\")\n\n(defprotocol IReset\n \"Protocol for adding resetting functionality.\"\n (-reset! [o new-value]\n \"Sets the value of o to new-value.\"))\n\n(defprotocol ISwap\n \"Protocol for adding swapping functionality.\"\n (-swap! [o f] [o f a] [o f a b] [o f a b xs]\n \"Swaps the value of o to be (apply f current-value-of-atom args).\"))\n\n(defprotocol IVolatile\n \"Protocol for adding volatile functionality.\"\n (-vreset! [o new-value]\n \"Sets the value of volatile o to new-value without regard for the\n current value. Returns new-value.\"))\n\n(defprotocol IIterable\n \"Protocol for iterating over a collection.\"\n (-iterator [coll]\n \"Returns an iterator for coll.\"))\n\n(defprotocol IDrop\n \"Protocol for persistent or algorithmically defined collections to provide a\n means of dropping N items that is more efficient than sequential walking.\"\n (^clj-or-nil -drop [coll n]\n \"Returns a collection that is ISequential, ISeq, and IReduce, or nil if past\n the end. The number of items to drop n must be > 0. It is also useful if the\n returned coll implements IDrop for subsequent use in a partition-like scenario.\"))\n\n;; Printing support\n\n(deftype StringBufferWriter [sb]\n IWriter\n (-write [_ s] (.append sb s))\n (-flush [_] nil))\n\n(defn pr-str*\n \"Support so that collections can implement toString without\n loading all the printing machinery.\"\n [^not-native obj]\n (let [sb (StringBuffer.)\n writer (StringBufferWriter. sb)]\n (-pr-writer obj writer (pr-opts))\n (-flush writer)\n (str sb)))\n\n;;;;;;;;;;;;;;;;;;; Murmur3 ;;;;;;;;;;;;;;;\n\n;;http://hg.openjdk.java.net/jdk7u/jdk7u6/jdk/file/8c2c5d63a17e/src/share/classes/java/lang/Integer.java\n(defn ^number int-rotate-left [x n]\n (bit-or\n (bit-shift-left x n)\n (unsigned-bit-shift-right x (- n))))\n\n;; http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n(if (and (exists? Math/imul)\n (not (zero? (Math/imul 0xffffffff 5))))\n (defn ^number imul [a b] (Math/imul a b))\n (defn ^number imul [a b]\n (let [ah (bit-and (unsigned-bit-shift-right a 16) 0xffff)\n al (bit-and a 0xffff)\n bh (bit-and (unsigned-bit-shift-right b 16) 0xffff)\n bl (bit-and b 0xffff)]\n (bit-or\n (+ (* al bl)\n (unsigned-bit-shift-right\n (bit-shift-left (+ (* ah bl) (* al bh)) 16) 0)) 0))))\n\n;; http://smhasher.googlecode.com/svn/trunk/MurmurHash3.cpp\n(def m3-seed 0)\n(def m3-C1 (int 0xcc9e2d51))\n(def m3-C2 (int 0x1b873593))\n\n(defn ^number m3-mix-K1 [k1]\n (-> (int k1) (imul m3-C1) (int-rotate-left 15) (imul m3-C2)))\n\n(defn ^number m3-mix-H1 [h1 k1]\n (int (-> (int h1) (bit-xor (int k1)) (int-rotate-left 13) (imul 5) (+ (int 0xe6546b64)))))\n\n(defn ^number m3-fmix [h1 len]\n (as-> (int h1) h1\n (bit-xor h1 len)\n (bit-xor h1 (unsigned-bit-shift-right h1 16))\n (imul h1 (int 0x85ebca6b))\n (bit-xor h1 (unsigned-bit-shift-right h1 13))\n (imul h1 (int 0xc2b2ae35))\n (bit-xor h1 (unsigned-bit-shift-right h1 16))))\n\n(defn ^number m3-hash-int [in]\n (if (zero? in)\n in\n (let [k1 (m3-mix-K1 in)\n h1 (m3-mix-H1 m3-seed k1)]\n (m3-fmix h1 4))))\n\n(defn hash-long [high low]\n (bit-xor high low))\n\n(defn hash-double [f]\n (let [arr (doto (js/Float64Array. 1) (aset 0 f))\n buf (.-buffer arr)\n high (.getInt32 (js/DataView. buf 0 4))\n low (.getInt32 (js/DataView. buf 4 4))]\n (hash-long high low)))\n\n(defn ^number m3-hash-unencoded-chars [in]\n (let [h1 (loop [i 1 h1 m3-seed]\n (if (< i (.-length in))\n (recur (+ i 2)\n (m3-mix-H1 h1\n (m3-mix-K1\n (bit-or (.charCodeAt in (dec i))\n (bit-shift-left (.charCodeAt in i) 16)))))\n h1))\n h1 (if (== (bit-and (.-length in) 1) 1)\n (bit-xor h1 (m3-mix-K1 (.charCodeAt in (dec (.-length in)))))\n h1)]\n (m3-fmix h1 (imul 2 (.-length in)))))\n\n;;;;;;;;;;;;;;;;;;; symbols ;;;;;;;;;;;;;;;\n\n(declare list Symbol = compare)\n\n;; Simple caching of string hashcode\n(def string-hash-cache (js-obj))\n(def string-hash-cache-count 0)\n\n;;http://hg.openjdk.java.net/jdk7u/jdk7u6/jdk/file/8c2c5d63a17e/src/share/classes/java/lang/String.java\n(defn hash-string* [s]\n (if-not (nil? s)\n (let [len (.-length s)]\n (if (pos? len)\n (loop [i 0 hash 0]\n (if (< i len)\n (recur (inc i) (+ (imul 31 hash) (.charCodeAt s i)))\n hash))\n 0))\n 0))\n\n(defn add-to-string-hash-cache [k]\n (let [h (hash-string* k)]\n (gobject/set string-hash-cache k h)\n (set! string-hash-cache-count (inc string-hash-cache-count))\n h))\n\n(defn hash-string [k]\n (when (> string-hash-cache-count 255)\n (set! string-hash-cache (js-obj))\n (set! string-hash-cache-count 0))\n (if (nil? k)\n 0\n (let [h (unchecked-get string-hash-cache k)]\n (if (number? h)\n h\n (add-to-string-hash-cache k)))))\n\n(defn hash\n \"Returns the hash code of its argument. Note this is the hash code\n consistent with =.\"\n [o]\n (cond\n (implements? IHash o)\n (bit-xor (-hash o) 0)\n\n (number? o)\n (if ^boolean (js/isFinite o)\n (if-not ^boolean (.isSafeInteger js/Number o)\n (hash-double o)\n (js-mod (Math/floor o) 2147483647))\n (case o\n ##Inf\n 2146435072\n ##-Inf\n -1048576\n 2146959360))\n\n ;; note: mirrors Clojure's behavior on the JVM, where the hashCode is\n ;; 1231 for true and 1237 for false\n ;; http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#hashCode%28%29\n (true? o) 1231\n\n (false? o) 1237\n\n (string? o)\n (m3-hash-int (hash-string o))\n\n (instance? js/Date o)\n (bit-xor (.valueOf o) 0)\n\n (nil? o) 0\n\n :else\n (bit-xor (-hash o) 0)))\n\n(defn hash-combine [seed hash]\n ; a la boost\n (bit-xor seed\n (+ hash 0x9e3779b9\n (bit-shift-left seed 6)\n (bit-shift-right seed 2))))\n\n(defn ^boolean instance?\n \"Evaluates x and tests if it is an instance of the type\n c. Returns true or false\"\n [c x]\n (cljs.core/instance? c x))\n\n(defn ^boolean symbol?\n \"Return true if x is a Symbol\"\n [x]\n (instance? Symbol x))\n\n(defn- hash-symbol [sym]\n (hash-combine\n (m3-hash-unencoded-chars (.-name sym))\n (hash-string (.-ns sym))))\n\n(defn- compare-symbols [a b]\n (cond\n (identical? (.-str a) (.-str b)) 0\n (and (not (.-ns a)) (.-ns b)) -1\n (.-ns a) (if-not (.-ns b)\n 1\n (let [nsc (garray/defaultCompare (.-ns a) (.-ns b))]\n (if (== 0 nsc)\n (garray/defaultCompare (.-name a) (.-name b))\n nsc)))\n :default (garray/defaultCompare (.-name a) (.-name b))))\n\n(declare get)\n\n(deftype Symbol [ns name str ^:mutable _hash _meta]\n Object\n (toString [_] str)\n (equiv [this other] (-equiv this other))\n\n IEquiv\n (-equiv [_ other]\n (if (instance? Symbol other)\n (identical? str (.-str other))\n false))\n\n IFn\n (-invoke [sym coll]\n (get coll sym))\n (-invoke [sym coll not-found]\n (get coll sym not-found))\n\n IMeta\n (-meta [_] _meta)\n\n IWithMeta\n (-with-meta [_ new-meta] (Symbol. ns name str _hash new-meta))\n\n IHash\n (-hash [sym]\n (caching-hash sym hash-symbol _hash))\n\n INamed\n (-name [_] name)\n (-namespace [_] ns)\n\n IPrintWithWriter\n (-pr-writer [o writer _] (-write writer str)))\n\n(defn var?\n \"Returns true if v is of type cljs.core.Var\"\n [v]\n (instance? cljs.core.Var v))\n\n(defn symbol\n \"Returns a Symbol with the given namespace and name. Arity-1 works\n on strings, keywords, and vars.\"\n ([name]\n (cond (symbol? name) name\n (string? name) (let [idx (.indexOf name \"/\")]\n (if (< idx 1)\n (symbol nil name)\n (symbol (.substring name 0 idx)\n (.substring name (inc idx) (. name -length)))))\n (var? name) (.-sym name)\n (keyword? name) (recur (.-fqn name))\n :else (throw (new js/Error \"no conversion to symbol\"))))\n ([ns name]\n (let [sym-str (if-not (nil? ns)\n (str ns \"/\" name)\n name)]\n (Symbol. ns name sym-str nil nil))))\n\n(deftype Var [val sym _meta]\n Object\n (isMacro [_]\n (. (val) -cljs$lang$macro))\n (toString [_]\n (str \"#'\" sym))\n IDeref\n (-deref [_] (val))\n IMeta\n (-meta [_] _meta)\n IWithMeta\n (-with-meta [_ new-meta]\n (Var. val sym new-meta))\n IEquiv\n (-equiv [this other]\n (if (instance? Var other)\n (= (.-sym this) (.-sym other))\n false))\n IHash\n (-hash [_]\n (hash-symbol sym))\n Fn\n IFn\n (-invoke [_]\n ((val)))\n (-invoke [_ a]\n ((val) a))\n (-invoke [_ a b]\n ((val) a b))\n (-invoke [_ a b c]\n ((val) a b c))\n (-invoke [_ a b c d]\n ((val) a b c d))\n (-invoke [_ a b c d e]\n ((val) a b c d e))\n (-invoke [_ a b c d e f]\n ((val) a b c d e f))\n (-invoke [_ a b c d e f g]\n ((val) a b c d e f g))\n (-invoke [_ a b c d e f g h]\n ((val) a b c d e f g h))\n (-invoke [_ a b c d e f g h i]\n ((val) a b c d e f g h i))\n (-invoke [_ a b c d e f g h i j]\n ((val) a b c d e f g h i j))\n (-invoke [_ a b c d e f g h i j k]\n ((val) a b c d e f g h i j k))\n (-invoke [_ a b c d e f g h i j k l]\n ((val) a b c d e f g h i j k l))\n (-invoke [_ a b c d e f g h i j k l m]\n ((val) a b c d e f g h i j k l m))\n (-invoke [_ a b c d e f g h i j k l m n]\n ((val) a b c d e f g h i j k l m n))\n (-invoke [_ a b c d e f g h i j k l m n o]\n ((val) a b c d e f g h i j k l m n o))\n (-invoke [_ a b c d e f g h i j k l m n o p]\n ((val) a b c d e f g h i j k l m n o p))\n (-invoke [_ a b c d e f g h i j k l m n o p q]\n ((val) a b c d e f g h i j k l m n o p q))\n (-invoke [_ a b c d e f g h i j k l m n o p q r]\n ((val) a b c d e f g h i j k l m n o p q r))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s]\n ((val) a b c d e f g h i j k l m n o p q r s))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t]\n ((val) a b c d e f g h i j k l m n o p q r s t))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t rest]\n (apply (val) a b c d e f g h i j k l m n o p q r s t rest)))\n\n;;;;;;;;;;;;;;;;;;; fundamentals ;;;;;;;;;;;;;;;\n\n(declare array-seq prim-seq IndexedSeq)\n\n(defn iterable?\n \"Return true if x implements IIterable protocol.\"\n [x]\n (satisfies? IIterable x))\n\n(defn js-iterable?\n \"Return true if x has a JavaScript iterator property\"\n [x]\n (and (not (nil? x))\n (not (nil? (js* \"~{}[~{}]\" x ITER_SYMBOL)))))\n\n(defn clone\n \"Clone the supplied value which must implement ICloneable.\"\n [value]\n (-clone value))\n\n(defn cloneable?\n \"Return true if x implements ICloneable protocol.\"\n [value]\n (satisfies? ICloneable value))\n\n(declare es6-iterator-seq)\n\n(defn ^seq seq\n \"Returns a seq on the collection. If the collection is\n empty, returns nil. (seq nil) returns nil. seq also works on\n Strings.\"\n [coll]\n (when-not (nil? coll)\n (cond\n (implements? ISeqable coll)\n (-seq coll)\n\n (array? coll)\n (when-not (zero? (alength coll))\n (IndexedSeq. coll 0 nil))\n\n (string? coll)\n (when-not (zero? (.-length coll))\n (IndexedSeq. coll 0 nil))\n\n (js-iterable? coll)\n (es6-iterator-seq\n (.call (gobject/get coll ITER_SYMBOL) coll))\n\n (native-satisfies? ISeqable coll)\n (-seq coll)\n\n :else (throw (js/Error. (str coll \" is not ISeqable\"))))))\n\n(defn first\n \"Returns the first item in the collection. Calls seq on its\n argument. If coll is nil, returns nil.\"\n [coll]\n (when-not (nil? coll)\n (if (implements? ISeq coll)\n (-first coll)\n (let [s (seq coll)]\n (when-not (nil? s)\n (-first s))))))\n\n(defn ^seq rest\n \"Returns a possibly empty seq of the items after the first. Calls seq on its\n argument.\"\n [coll]\n (if-not (nil? coll)\n (if (implements? ISeq coll)\n (-rest coll)\n (let [s (seq coll)]\n (if s\n (-rest ^not-native s)\n ())))\n ()))\n\n(defn ^seq next\n \"Returns a seq of the items after the first. Calls seq on its\n argument. If there are no more items, returns nil\"\n [coll]\n (when-not (nil? coll)\n (if (implements? INext coll)\n (-next coll)\n (seq (rest coll)))))\n\n(defn ^boolean =\n \"Equality. Returns true if x equals y, false if not. Compares\n numbers and collections in a type-independent manner. Clojure's immutable data\n structures define -equiv (and thus =) as a value, not an identity,\n comparison.\"\n ([x] true)\n ([x y]\n (if (nil? x)\n (nil? y)\n (or (identical? x y)\n ^boolean (-equiv x y))))\n ([x y & more]\n (if (= x y)\n (if (next more)\n (recur y (first more) (next more))\n (= y (first more)))\n false)))\n\n(deftype ES6Iterator [^:mutable s]\n Object\n (next [_]\n (if-not (nil? s)\n (let [x (first s)]\n (set! s (next s))\n #js {:value x :done false})\n #js {:value nil :done true})))\n\n(defn es6-iterator\n \"Return a ES2015+ compatible iterator for coll.\"\n [coll]\n (ES6Iterator. (seq coll)))\n\n(deftype ES6IteratorSeq [value iter ^:mutable _rest]\n ISeqable\n (-seq [this] this)\n ISeq\n (-first [_] value)\n (-rest [_]\n (when (nil? _rest)\n (set! _rest (es6-iterator-seq iter)))\n _rest))\n\n(defn es6-iterator-seq\n \"Given an ES2015+ compatible iterator return a seq.\"\n [iter]\n (let [v (.next iter)]\n (if (.-done v)\n nil\n (ES6IteratorSeq. (.-value v) iter nil))))\n\n;;;;;;;;;;;;;;;;;;; Murmur3 Helpers ;;;;;;;;;;;;;;;;\n\n(defn ^number mix-collection-hash\n \"Mix final collection hash for ordered or unordered collections.\n hash-basis is the combined collection hash, count is the number\n of elements included in the basis. Note this is the hash code\n consistent with =, different from .hashCode.\n See http://clojure.org/data_structures#hash for full algorithms.\"\n [hash-basis count]\n (let [h1 m3-seed\n k1 (m3-mix-K1 hash-basis)\n h1 (m3-mix-H1 h1 k1)]\n (m3-fmix h1 count)))\n\n(defn ^number hash-ordered-coll\n \"Returns the hash code, consistent with =, for an external ordered\n collection implementing Iterable.\n See http://clojure.org/data_structures#hash for full algorithms.\"\n [coll]\n (loop [n 0 hash-code 1 coll (seq coll)]\n (if-not (nil? coll)\n (recur (inc n) (bit-or (+ (imul 31 hash-code) (hash (first coll))) 0)\n (next coll))\n (mix-collection-hash hash-code n))))\n\n(def ^:private empty-ordered-hash\n (mix-collection-hash 1 0))\n\n(defn ^number hash-unordered-coll\n \"Returns the hash code, consistent with =, for an external unordered\n collection implementing Iterable. For maps, the iterator should\n return map entries whose hash is computed as\n (hash-ordered-coll [k v]).\n See http://clojure.org/data_structures#hash for full algorithms.\"\n [coll]\n (loop [n 0 hash-code 0 coll (seq coll)]\n (if-not (nil? coll)\n (recur (inc n) (bit-or (+ hash-code (hash (first coll))) 0) (next coll))\n (mix-collection-hash hash-code n))))\n\n(def ^:private empty-unordered-hash\n (mix-collection-hash 0 0))\n\n;;;;;;;;;;;;;;;;;;; protocols on primitives ;;;;;;;;\n(declare hash-map list equiv-sequential)\n\n(extend-type nil\n ICounted\n (-count [_] 0))\n\n;; TODO: we should remove this and handle date equality checking\n;; by some other means, probably by adding a new primitive type\n;; case to the hash table lookup - David\n\n(extend-type js/Date\n IEquiv\n (-equiv [o other]\n (and (instance? js/Date other)\n (== (.valueOf o) (.valueOf other))))\n\n IComparable\n (-compare [this other]\n (if (instance? js/Date other)\n (garray/defaultCompare (.valueOf this) (.valueOf other))\n (throw (js/Error. (str \"Cannot compare \" this \" to \" other))))))\n\n(defprotocol Inst\n (inst-ms* [inst]))\n\n(extend-protocol Inst\n js/Date\n (inst-ms* [inst] (.getTime inst)))\n\n(defn inst-ms\n \"Return the number of milliseconds since January 1, 1970, 00:00:00 GMT\"\n [inst]\n (inst-ms* inst))\n\n(defn inst?\n \"Return true if x satisfies Inst\"\n [x]\n (satisfies? Inst x))\n\n(extend-type number\n IEquiv\n (-equiv [x o] (identical? x o)))\n\n(declare with-meta)\n\n(extend-type function\n Fn\n IMeta\n (-meta [_] nil))\n\n(extend-type default\n IHash\n (-hash [o]\n (goog/getUid o)))\n\n;;this is primitive because & emits call to array-seq\n(defn inc\n \"Returns a number one greater than num.\"\n [x] (cljs.core/+ x 1))\n\n(declare deref)\n\n(deftype Reduced [val]\n IDeref\n (-deref [o] val))\n\n(defn reduced\n \"Wraps x in a way such that a reduce will terminate with the value x\"\n [x]\n (Reduced. x))\n\n(defn reduced?\n \"Returns true if x is the result of a call to reduced\"\n [r]\n (instance? Reduced r))\n\n(defn ensure-reduced\n \"If x is already reduced?, returns it, else returns (reduced x)\"\n [x]\n (if (reduced? x) x (reduced x)))\n\n(defn unreduced\n \"If x is reduced?, returns (deref x), else returns x\"\n [x]\n (if (reduced? x) (deref x) x))\n\n;; generic to all refs\n;; (but currently hard-coded to atom!)\n(defn deref\n \"Also reader macro: @var/@atom/@delay. Returns the\n most-recently-committed value of ref. When applied to a var\n or atom, returns its current state. When applied to a delay, forces\n it if not already forced. See also - realized?.\"\n [o]\n (-deref o))\n\n(defn- ci-reduce\n \"Accepts any collection which satisfies the ICount and IIndexed protocols and\nreduces them without incurring seq initialization\"\n ([^not-native cicoll f]\n (let [cnt (-count cicoll)]\n (if (zero? cnt)\n (f)\n (loop [val (-nth cicoll 0), n 1]\n (if (< n cnt)\n (let [nval (f val (-nth cicoll n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n ([^not-native cicoll f val]\n (let [cnt (-count cicoll)]\n (loop [val val, n 0]\n (if (< n cnt)\n (let [nval (f val (-nth cicoll n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n\n(defn- array-reduce\n ([arr f]\n (let [cnt (alength arr)]\n (if (zero? (alength arr))\n (f)\n (loop [val (aget arr 0), n 1]\n (if (< n cnt)\n (let [nval (f val (aget arr n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n ([arr f val]\n (let [cnt (alength arr)]\n (loop [val val, n 0]\n (if (< n cnt)\n (let [nval (f val (aget arr n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val))))\n ([arr f val idx]\n (let [cnt (alength arr)]\n (loop [val val, n idx]\n (if (< n cnt)\n (let [nval (f val (aget arr n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n\n(declare hash-coll cons drop count nth RSeq List)\n\n(defn counted?\n \"Returns true if coll implements count in constant time\"\n [x] (satisfies? ICounted x))\n\n(defn indexed?\n \"Returns true if coll implements nth in constant time\"\n [x] (satisfies? IIndexed x))\n\n(defn- -indexOf\n ([coll x]\n (-indexOf coll x 0))\n ([coll x start]\n (let [len (count coll)]\n (if (>= start len)\n -1\n (loop [idx (cond\n (pos? start) start\n (neg? start) (max 0 (+ start len))\n :else start)]\n (if (< idx len)\n (if (= (nth coll idx) x)\n idx\n (recur (inc idx)))\n -1))))))\n\n(defn- -lastIndexOf\n ([coll x]\n (-lastIndexOf coll x (count coll)))\n ([coll x start]\n (let [len (count coll)]\n (if (zero? len)\n -1\n (loop [idx (cond\n (pos? start) (min (dec len) start)\n (neg? start) (+ len start)\n :else start)]\n (if (>= idx 0)\n (if (= (nth coll idx) x)\n idx\n (recur (dec idx)))\n -1))))))\n\n(deftype IndexedSeqIterator [arr ^:mutable i]\n Object\n (hasNext [_]\n (< i (alength arr)))\n (next [_]\n (let [ret (aget arr i)]\n (set! i (inc i))\n ret)))\n\n(deftype IndexedSeq [arr i meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (IndexedSeq. arr i meta))\n\n ISeqable\n (-seq [this]\n (when (< i (alength arr))\n this))\n\n IMeta\n (-meta [coll] meta)\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (IndexedSeq. arr i new-meta)))\n\n ASeq\n ISeq\n (-first [_] (aget arr i))\n (-rest [_] (if (< (inc i) (alength arr))\n (IndexedSeq. arr (inc i) nil)\n (list)))\n\n INext\n (-next [_] (if (< (inc i) (alength arr))\n (IndexedSeq. arr (inc i) nil)\n nil))\n\n IDrop\n (-drop [coll n]\n (if (pos? n)\n (if (< (+ i n) (alength arr))\n (IndexedSeq. arr (+ i n) nil)\n nil)\n coll))\n\n ICounted\n (-count [_]\n (max 0 (- (alength arr) i)))\n\n IIndexed\n (-nth [coll n]\n (let [i (+ n i)]\n (if (and (<= 0 i) (< i (alength arr)))\n (aget arr i)\n (throw (js/Error. \"Index out of bounds\")))))\n (-nth [coll n not-found]\n (let [i (+ n i)]\n (if (and (<= 0 i) (< i (alength arr)))\n (aget arr i)\n not-found)))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IIterable\n (-iterator [coll]\n (IndexedSeqIterator. arr i))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IReduce\n (-reduce [coll f]\n (array-reduce arr f (aget arr i) (inc i)))\n (-reduce [coll f start]\n (array-reduce arr f start i))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n IReversible\n (-rseq [coll]\n (let [c (-count coll)]\n (if (pos? c)\n (RSeq. coll (dec c) nil)))))\n\n(es6-iterable IndexedSeq)\n\n(defn prim-seq\n \"Create seq from a primitive JavaScript Array-like.\"\n ([prim]\n (prim-seq prim 0))\n ([prim i]\n (when (< i (alength prim))\n (IndexedSeq. prim i nil))))\n\n(defn array-seq\n \"Create a seq from a JavaScript array.\"\n ([array]\n (prim-seq array 0))\n ([array i]\n (prim-seq array i)))\n\n(declare with-meta seq-reduce)\n\n(deftype RSeq [ci i meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (RSeq. ci i meta))\n\n IMeta\n (-meta [coll] meta)\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (RSeq. ci i new-meta)))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ISeq\n (-first [coll]\n (-nth ci i))\n (-rest [coll]\n (if (pos? i)\n (RSeq. ci (dec i) nil)\n ()))\n\n INext\n (-next [coll]\n (when (pos? i)\n (RSeq. ci (dec i) nil)))\n\n ICounted\n (-count [coll] (inc i))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n IReduce\n (-reduce [col f] (seq-reduce f col))\n (-reduce [col f start] (seq-reduce f start col)))\n\n(es6-iterable RSeq)\n\n(defn second\n \"Same as (first (next x))\"\n [coll]\n (first (next coll)))\n\n(defn ffirst\n \"Same as (first (first x))\"\n [coll]\n (first (first coll)))\n\n(defn nfirst\n \"Same as (next (first x))\"\n [coll]\n (next (first coll)))\n\n(defn fnext\n \"Same as (first (next x))\"\n [coll]\n (first (next coll)))\n\n(defn nnext\n \"Same as (next (next x))\"\n [coll]\n (next (next coll)))\n\n(defn last\n \"Return the last item in coll, in linear time\"\n [s]\n (let [sn (next s)]\n (if-not (nil? sn)\n (recur sn)\n (first s))))\n\n(extend-type default\n IEquiv\n (-equiv [x o] (identical? x o)))\n\n(defn conj\n \"conj[oin]. Returns a new collection with the xs\n 'added'. (conj nil item) returns (item).\n (conj coll) returns coll. (conj) returns [].\n The 'addition' may happen at different 'places' depending\n on the concrete type.\"\n ([] [])\n ([coll] coll)\n ([coll x]\n (if-not (nil? coll)\n (-conj coll x)\n (list x)))\n ([coll x & xs]\n (if xs\n (recur (conj coll x) (first xs) (next xs))\n (conj coll x))))\n\n(defn empty\n \"Returns an empty collection of the same category as coll, or nil\"\n [coll]\n (when-not (nil? coll)\n (cond\n (implements? IEmptyableCollection coll)\n (-empty coll)\n\n (satisfies? IEmptyableCollection coll)\n (-empty coll)\n\n :else nil)))\n\n(defn- accumulating-seq-count [coll]\n (loop [s (seq coll) acc 0]\n (if (counted? s) ; assumes nil is counted, which it currently is\n (+ acc (-count s))\n (recur (next s) (inc acc)))))\n\n(defn count\n \"Returns the number of items in the collection. (count nil) returns\n 0. Also works on strings, arrays, and Maps\"\n [coll]\n (if-not (nil? coll)\n (cond\n (implements? ICounted coll)\n (-count coll)\n\n (array? coll)\n (alength coll)\n\n (string? coll)\n ^number (.-length coll)\n\n (implements? ISeqable coll)\n (accumulating-seq-count coll)\n\n :else (-count coll))\n 0))\n\n(defn- linear-traversal-nth\n ([coll n]\n (cond\n (nil? coll) (throw (js/Error. \"Index out of bounds\"))\n (zero? n) (if (seq coll)\n (first coll)\n (throw (js/Error. \"Index out of bounds\")))\n (indexed? coll) (-nth coll n)\n (seq coll) (recur (next coll) (dec n))\n :else (throw (js/Error. \"Index out of bounds\"))))\n ([coll n not-found]\n (cond\n (nil? coll) not-found\n (zero? n) (if (seq coll)\n (first coll)\n not-found)\n (indexed? coll) (-nth coll n not-found)\n (seq coll) (recur (next coll) (dec n) not-found)\n :else not-found)))\n\n(defn nth\n \"Returns the value at the index. get returns nil if index out of\n bounds, nth throws an exception unless not-found is supplied. nth\n also works for strings, arrays, regex Matchers and Lists, and,\n in O(n) time, for sequences.\"\n ([coll n]\n (cond\n (not (number? n))\n (throw (js/Error. \"Index argument to nth must be a number\"))\n\n (nil? coll)\n coll\n\n (implements? IIndexed coll)\n (-nth coll n)\n\n (array? coll)\n (if (and (< -1 n (.-length coll)))\n (aget coll (int n))\n (throw (js/Error. \"Index out of bounds\")))\n\n (string? coll)\n (if (and (< -1 n (.-length coll)))\n (.charAt coll (int n))\n (throw (js/Error. \"Index out of bounds\")))\n\n (or (implements? ISeq coll)\n (implements? ISequential coll))\n (if (neg? n)\n (throw (js/Error. \"Index out of bounds\"))\n (linear-traversal-nth coll n))\n\n (native-satisfies? IIndexed coll)\n (-nth coll n)\n\n :else\n (throw (js/Error. (str \"nth not supported on this type \"\n (type->str (type coll)))))))\n ([coll n not-found]\n (cond\n (not (number? n))\n (throw (js/Error. \"Index argument to nth must be a number.\"))\n\n (nil? coll)\n not-found\n\n (implements? IIndexed coll)\n (-nth coll n not-found)\n\n (array? coll)\n (if (and (< -1 n (.-length coll)))\n (aget coll (int n))\n not-found)\n\n (string? coll)\n (if (and (< -1 n (.-length coll)))\n (.charAt coll (int n))\n not-found)\n\n (or (implements? ISeq coll)\n (implements? ISequential coll))\n (if (neg? n)\n not-found\n (linear-traversal-nth coll n not-found))\n\n (native-satisfies? IIndexed coll)\n (-nth coll n not-found)\n\n :else\n (throw (js/Error. (str \"nth not supported on this type \"\n (type->str (type coll))))))))\n\n(defn nthrest\n \"Returns the nth rest of coll, coll when n is 0.\"\n [coll n]\n (if (implements? IDrop coll)\n (if (pos? n)\n (or (-drop coll (Math/ceil n)) ())\n coll)\n (loop [n n xs coll]\n (if-let [xs (and (pos? n) (seq xs))]\n (recur (dec n) (rest xs))\n xs))))\n\n(defn get\n \"Returns the value mapped to key, not-found or nil if key not present\n in associative collection, set, string, array, or ILookup instance.\"\n ([o k]\n (when-not (nil? o)\n (cond\n (implements? ILookup o)\n (-lookup o k)\n\n (array? o)\n (when (and (some? k) (< k (.-length o)))\n (aget o (int k)))\n\n (string? o)\n (when (and (some? k) (< -1 k (.-length o)))\n (.charAt o (int k)))\n\n (native-satisfies? ILookup o)\n (-lookup o k)\n\n :else nil)))\n ([o k not-found]\n (if-not (nil? o)\n (cond\n (implements? ILookup o)\n (-lookup o k not-found)\n\n (array? o)\n (if (and (some? k) (< -1 k (.-length o)))\n (aget o (int k))\n not-found)\n\n (string? o)\n (if (and (some? k) (< -1 k (.-length o)))\n (.charAt o (int k))\n not-found)\n\n (native-satisfies? ILookup o)\n (-lookup o k not-found)\n\n :else not-found)\n not-found)))\n\n(declare PersistentHashMap PersistentArrayMap MapEntry)\n\n(defn assoc\n \"assoc[iate]. When applied to a map, returns a new map of the\n same (hashed/sorted) type, that contains the mapping of key(s) to\n val(s). When applied to a vector, returns a new vector that\n contains val at index. Note - index must be <= (count vector).\"\n ([coll k v]\n (if (implements? IAssociative coll)\n (-assoc coll k v)\n (if-not (nil? coll)\n (-assoc coll k v)\n (array-map k v))))\n ([coll k v & kvs]\n (let [ret (assoc coll k v)]\n (if kvs\n (recur ret (first kvs) (second kvs) (nnext kvs))\n ret))))\n\n(defn dissoc\n \"dissoc[iate]. Returns a new map of the same (hashed/sorted) type,\n that does not contain a mapping for key(s).\"\n ([coll] coll)\n ([coll k]\n (when-not (nil? coll)\n (-dissoc coll k)))\n ([coll k & ks]\n (when-not (nil? coll)\n (let [ret (dissoc coll k)]\n (if ks\n (recur ret (first ks) (next ks))\n ret)))))\n\n(defn fn?\n \"Return true if f is a JavaScript function or satisfies the Fn protocol.\"\n [f]\n (or (js-fn? f) (satisfies? Fn f)))\n\n(deftype MetaFn [afn meta]\n IMeta\n (-meta [_] meta)\n IWithMeta\n (-with-meta [_ new-meta]\n (MetaFn. afn new-meta))\n Fn\n IFn\n (-invoke [_]\n (afn))\n (-invoke [_ a]\n (afn a))\n (-invoke [_ a b]\n (afn a b))\n (-invoke [_ a b c]\n (afn a b c))\n (-invoke [_ a b c d]\n (afn a b c d))\n (-invoke [_ a b c d e]\n (afn a b c d e))\n (-invoke [_ a b c d e f]\n (afn a b c d e f))\n (-invoke [_ a b c d e f g]\n (afn a b c d e f g))\n (-invoke [_ a b c d e f g h]\n (afn a b c d e f g h))\n (-invoke [_ a b c d e f g h i]\n (afn a b c d e f g h i))\n (-invoke [_ a b c d e f g h i j]\n (afn a b c d e f g h i j))\n (-invoke [_ a b c d e f g h i j k]\n (afn a b c d e f g h i j k))\n (-invoke [_ a b c d e f g h i j k l]\n (afn a b c d e f g h i j k l))\n (-invoke [_ a b c d e f g h i j k l m]\n (afn a b c d e f g h i j k l m))\n (-invoke [_ a b c d e f g h i j k l m n]\n (afn a b c d e f g h i j k l m n))\n (-invoke [_ a b c d e f g h i j k l m n o]\n (afn a b c d e f g h i j k l m n o))\n (-invoke [_ a b c d e f g h i j k l m n o p]\n (afn a b c d e f g h i j k l m n o p))\n (-invoke [_ a b c d e f g h i j k l m n o p q]\n (afn a b c d e f g h i j k l m n o p q))\n (-invoke [_ a b c d e f g h i j k l m n o p q r]\n (afn a b c d e f g h i j k l m n o p q r))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s]\n (afn a b c d e f g h i j k l m n o p q r s))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t]\n (afn a b c d e f g h i j k l m n o p q r s t))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t rest]\n (apply afn a b c d e f g h i j k l m n o p q r s t rest)))\n\n(defn with-meta\n \"Returns an object of the same type and value as obj, with\n map m as its metadata.\"\n [o meta]\n (if (js-fn? o)\n (MetaFn. o meta)\n (when-not (nil? o)\n (-with-meta o meta))))\n\n(defn meta\n \"Returns the metadata of obj, returns nil if there is no metadata.\"\n [o]\n (when (and (not (nil? o))\n (satisfies? IMeta o))\n (-meta o)))\n\n(defn peek\n \"For a list or queue, same as first, for a vector, same as, but much\n more efficient than, last. If the collection is empty, returns nil.\"\n [coll]\n (when-not (nil? coll)\n (-peek coll)))\n\n(defn pop\n \"For a list or queue, returns a new list/queue without the first\n item, for a vector, returns a new vector without the last item.\n Note - not the same as next/butlast.\"\n [coll]\n (when-not (nil? coll)\n (-pop coll)))\n\n(defn disj\n \"disj[oin]. Returns a new set of the same (hashed/sorted) type, that\n does not contain key(s).\"\n ([coll] coll)\n ([coll k]\n (when-not (nil? coll)\n (-disjoin coll k)))\n ([coll k & ks]\n (when-not (nil? coll)\n (let [ret (disj coll k)]\n (if ks\n (recur ret (first ks) (next ks))\n ret)))))\n\n(defn empty?\n \"Returns true if coll has no items. To check the emptiness of a seq,\n please use the idiom (seq x) rather than (not (empty? x))\"\n [coll]\n (cond\n (nil? coll)\n true\n\n (satisfies? ICounted coll)\n (zero? (-count coll))\n\n :else\n (not (seq coll))))\n\n(defn coll?\n \"Returns true if x satisfies ICollection\"\n [x]\n (if (nil? x)\n false\n (satisfies? ICollection x)))\n\n(defn set?\n \"Returns true if x satisfies ISet\"\n [x]\n (if (nil? x)\n false\n (satisfies? ISet x)))\n\n(defn associative?\n \"Returns true if coll implements IAssociative\"\n [x] (satisfies? IAssociative x))\n\n(defn ifind?\n \"Returns true if coll implements IFind\"\n [x] (satisfies? IFind x))\n\n(defn sequential?\n \"Returns true if coll satisfies ISequential\"\n [x] (satisfies? ISequential x))\n\n(defn sorted?\n \"Returns true if coll satisfies ISorted\"\n [x] (satisfies? ISorted x))\n\n(defn reduceable?\n \"Returns true if coll satisfies IReduce\"\n [x] (satisfies? IReduce x))\n\n(defn map?\n \"Return true if x satisfies IMap\"\n [x]\n (if (nil? x)\n false\n (satisfies? IMap x)))\n\n(defn record?\n \"Return true if x satisfies IRecord\"\n [x]\n (satisfies? IRecord x))\n\n(defn vector?\n \"Return true if x satisfies IVector\"\n [x] (satisfies? IVector x))\n\n(declare ChunkedCons ChunkedSeq)\n\n(defn chunked-seq?\n \"Return true if x satisfies IChunkedSeq.\"\n [x] (implements? IChunkedSeq x))\n\n;;;;;;;;;;;;;;;;;;;; js primitives ;;;;;;;;;;;;\n(defn js-obj\n \"Create JavaSript object from an even number arguments representing\n interleaved keys and values.\"\n ([]\n (cljs.core/js-obj))\n ([& keyvals]\n (apply gobject/create keyvals)))\n\n(defn js-keys\n \"Return the JavaScript keys for an object.\"\n [obj]\n (gobject/getKeys obj))\n\n(defn js-delete\n \"Delete a property from a JavaScript object.\n Returns true upon success, false otherwise.\"\n [obj key]\n (cljs.core/js-delete obj key))\n\n(defn- array-copy\n ([from i to j len]\n (loop [i i j j len len]\n (if (zero? len)\n to\n (do (aset to j (aget from i))\n (recur (inc i) (inc j) (dec len)))))))\n\n(defn- array-copy-downward\n ([from i to j len]\n (loop [i (+ i (dec len)) j (+ j (dec len)) len len]\n (if (zero? len)\n to\n (do (aset to j (aget from i))\n (recur (dec i) (dec j) (dec len)))))))\n\n;;;;;;;;;;;;;;;; preds ;;;;;;;;;;;;;;;;;;\n\n(def ^:private lookup-sentinel (js-obj))\n\n(defn ^boolean false?\n \"Returns true if x is the value false, false otherwise.\"\n [x] (cljs.core/false? x))\n\n(defn ^boolean true?\n \"Returns true if x is the value true, false otherwise.\"\n [x] (cljs.core/true? x))\n\n(defn boolean?\n \"Return true if x is a Boolean\"\n [x] (or (cljs.core/true? x) (cljs.core/false? x)))\n\n(defn ^boolean undefined?\n \"Returns true if x identical to the JavaScript undefined value.\"\n [x]\n (cljs.core/undefined? x))\n\n(defn seq?\n \"Return true if s satisfies ISeq\"\n [s]\n (if (nil? s)\n false\n (satisfies? ISeq s)))\n\n(defn seqable?\n \"Return true if the seq function is supported for s\"\n [s]\n (or\n (nil? s)\n (satisfies? ISeqable s)\n (array? s)\n (string? s)))\n\n(defn boolean\n \"Coerce to boolean\"\n [x]\n (cond\n (nil? x) false\n (false? x) false\n :else true))\n\n(defn ifn?\n \"Returns true if f returns true for fn? or satisfies IFn.\"\n [f]\n (or (fn? f) (satisfies? IFn f)))\n\n(defn integer?\n \"Returns true if n is a JavaScript number with no decimal part.\"\n [n]\n (and (number? n)\n (not ^boolean (js/isNaN n))\n (not (identical? n js/Infinity))\n (== (js/parseFloat n) (js/parseInt n 10))))\n\n(def\n ^{:doc \"INTERNAL: do not use\"}\n LongImpl goog.math.Long)\n\n(defn int?\n \"Return true if x satisfies integer? or is an instance of goog.math.Integer\n or goog.math.Long.\"\n [x]\n (or (integer? x)\n (instance? goog.math.Integer x)\n (instance? goog.math.Long x)))\n\n(defn pos-int?\n \"Return true if x satisfies int? and is positive.\"\n [x]\n (cond\n (integer? x) (pos? x)\n\n (instance? goog.math.Integer x)\n (and (not (.isNegative x))\n (not (.isZero x)))\n\n (instance? goog.math.Long x)\n (and (not (.isNegative x))\n (not (.isZero x)))\n\n :else false))\n\n(defn ^boolean neg-int?\n \"Return true if x satisfies int? and is negative.\"\n [x]\n (cond\n (integer? x) (neg? x)\n\n (instance? goog.math.Integer x)\n (.isNegative x)\n\n (instance? goog.math.Long x)\n (.isNegative x)\n\n :else false))\n\n(defn nat-int?\n \"Return true if x satisfies int? and is a natural integer value.\"\n [x]\n (cond\n (integer? x)\n (not (neg? x))\n\n (instance? goog.math.Integer x)\n (not (.isNegative x))\n\n (instance? goog.math.Long x)\n (not (.isNegative x))\n\n :else false))\n\n(defn float?\n \"Returns true for JavaScript numbers, false otherwise.\"\n [x]\n (number? x))\n\n(defn double?\n \"Returns true for JavaScript numbers, false otherwise.\"\n [x]\n (number? x))\n\n(defn infinite?\n \"Returns true for Infinity and -Infinity values.\"\n [x]\n (or (identical? x js/Number.POSITIVE_INFINITY)\n (identical? x js/Number.NEGATIVE_INFINITY)))\n\n(defn contains?\n \"Returns true if key is present in the given collection, otherwise\n returns false. Note that for numerically indexed collections like\n vectors and arrays, this tests if the numeric key is within the\n range of indexes. 'contains?' operates constant or logarithmic time;\n it will not perform a linear search for a value. See also 'some'.\"\n [coll v]\n (cond\n (implements? IAssociative coll)\n (-contains-key? coll v)\n\n (native-satisfies? IAssociative coll)\n (-contains-key? coll v)\n\n (identical? (get coll v lookup-sentinel) lookup-sentinel)\n false\n\n :else\n true))\n\n(defn find\n \"Returns the map entry for key, or nil if key not present.\"\n [coll k]\n (if (ifind? coll)\n (-find coll k)\n (when (and (not (nil? coll))\n (associative? coll)\n (contains? coll k))\n (MapEntry. k (get coll k) nil))))\n\n(defn ^boolean distinct?\n \"Returns true if no two of the arguments are =\"\n ([x] true)\n ([x y] (not (= x y)))\n ([x y & more]\n (if (not (= x y))\n (loop [s #{x y} xs more]\n (let [x (first xs)\n etc (next xs)]\n (if xs\n (if (contains? s x)\n false\n (recur (conj s x) etc))\n true)))\n false)))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Seq fns ;;;;;;;;;;;;;;;;\n\n(defn ^number compare\n \"Comparator. Returns a negative number, zero, or a positive number\n when x is logically 'less than', 'equal to', or 'greater than'\n y. Uses IComparable if available and google.array.defaultCompare for objects\n of the same type and special-cases nil to be less than any other object.\"\n [x y]\n (cond\n (identical? x y) 0\n\n (nil? x) -1\n\n (nil? y) 1\n\n (number? x) (if (number? y)\n (garray/defaultCompare x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y))))\n\n (satisfies? IComparable x)\n (-compare x y)\n\n :else\n (if (and (or (string? x) (array? x) (true? x) (false? x))\n (identical? (type x) (type y)))\n (garray/defaultCompare x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y))))))\n\n(defn ^:private compare-indexed\n \"Compare indexed collection.\"\n ([xs ys]\n (let [xl (count xs)\n yl (count ys)]\n (cond\n (< xl yl) -1\n (> xl yl) 1\n (== xl 0) 0\n :else (compare-indexed xs ys xl 0))))\n ([xs ys len n]\n (let [d (compare (nth xs n) (nth ys n))]\n (if (and (zero? d) (< (+ n 1) len))\n (recur xs ys len (inc n))\n d))))\n\n(defn ^:private fn->comparator\n \"Given a fn that might be boolean valued or a comparator,\n return a fn that is a comparator.\"\n [f]\n (if (= f compare)\n compare\n (fn [x y]\n (let [r (f x y)]\n (if (number? r)\n r\n (if r\n -1\n (if (f y x) 1 0)))))))\n\n(declare to-array)\n\n(defn sort\n \"Returns a sorted sequence of the items in coll. Comp can be\n boolean-valued comparison function, or a -/0/+ valued comparator.\n Comp defaults to compare.\"\n ([coll]\n (sort compare coll))\n ([comp coll]\n (if (seq coll)\n (let [a (to-array coll)]\n ;; matching Clojure's stable sort, though docs don't promise it\n (garray/stableSort a (fn->comparator comp))\n (with-meta (seq a) (meta coll)))\n ())))\n\n(defn sort-by\n \"Returns a sorted sequence of the items in coll, where the sort\n order is determined by comparing (keyfn item). Comp can be\n boolean-valued comparison function, or a -/0/+ valued comparator.\n Comp defaults to compare.\"\n ([keyfn coll]\n (sort-by keyfn compare coll))\n ([keyfn comp coll]\n (sort (fn [x y] ((fn->comparator comp) (keyfn x) (keyfn y))) coll)))\n\n; simple reduce based on seqs, used as default\n(defn- seq-reduce\n ([f coll]\n (if-let [s (seq coll)]\n (reduce f (first s) (next s))\n (f)))\n ([f val coll]\n (loop [val val, coll (seq coll)]\n (if coll\n (let [nval (f val (first coll))]\n (if (reduced? nval)\n @nval\n (recur nval (next coll))))\n val))))\n\n(declare vec)\n\n(defn shuffle\n \"Return a random permutation of coll\"\n [coll]\n (let [a (to-array coll)]\n (garray/shuffle a)\n (vec a)))\n\n(defn- iter-reduce\n ([coll f]\n (let [iter (-iterator coll)]\n (if (.hasNext iter)\n (let [init (.next iter)]\n (loop [acc init]\n (if ^boolean (.hasNext iter)\n (let [nacc (f acc (.next iter))]\n (if (reduced? nacc)\n @nacc\n (recur nacc)))\n acc)))\n (f))))\n ([coll f init]\n (let [iter (-iterator coll)]\n (loop [acc init]\n (if ^boolean (.hasNext iter)\n (let [nacc (f acc (.next iter))]\n (if (reduced? nacc)\n @nacc\n (recur nacc)))\n acc)))))\n\n(defn reduce\n \"f should be a function of 2 arguments. If val is not supplied,\n returns the result of applying f to the first 2 items in coll, then\n applying f to that result and the 3rd item, etc. If coll contains no\n items, f must accept no arguments as well, and reduce returns the\n result of calling f with no arguments. If coll has only 1 item, it\n is returned and f is not called. If val is supplied, returns the\n result of applying f to val and the first item in coll, then\n applying f to that result and the 2nd item, etc. If coll contains no\n items, returns val and f is not called.\"\n ([f coll]\n (cond\n (implements? IReduce coll)\n (-reduce coll f)\n\n (array? coll)\n (array-reduce coll f)\n\n (string? coll)\n (array-reduce coll f)\n\n (native-satisfies? IReduce coll)\n (-reduce coll f)\n\n (iterable? coll)\n (iter-reduce coll f)\n\n :else\n (seq-reduce f coll)))\n ([f val coll]\n (cond\n (implements? IReduce coll)\n (-reduce coll f val)\n\n (array? coll)\n (array-reduce coll f val)\n\n (string? coll)\n (array-reduce coll f val)\n\n (native-satisfies? IReduce coll)\n (-reduce coll f val)\n\n (iterable? coll)\n (iter-reduce coll f val)\n\n :else\n (seq-reduce f val coll))))\n\n(defn reduce-kv\n \"Reduces an associative collection. f should be a function of 3\n arguments. Returns the result of applying f to init, the first key\n and the first value in coll, then applying f to that result and the\n 2nd key and value, etc. If coll contains no entries, returns init\n and f is not called. Note that reduce-kv is supported on vectors,\n where the keys will be the ordinals.\"\n ([f init coll]\n (if (satisfies? IKVReduce coll)\n (-kv-reduce coll f init)\n (reduce (fn [ret me]\n (f ret (-key me) (-val me)))\n init coll))))\n\n(defn identity\n \"Returns its argument.\"\n [x] x)\n\n(defn completing\n \"Takes a reducing function f of 2 args and returns a fn suitable for\n transduce by adding an arity-1 signature that calls cf (default -\n identity) on the result argument.\"\n ([f] (completing f identity))\n ([f cf]\n (fn\n ([] (f))\n ([x] (cf x))\n ([x y] (f x y)))))\n\n(defn transduce\n \"reduce with a transformation of f (xf). If init is not\n supplied, (f) will be called to produce it. f should be a reducing\n step function that accepts both 1 and 2 arguments, if it accepts\n only 2 you can add the arity-1 with 'completing'. Returns the result\n of applying (the transformed) xf to init and the first item in coll,\n then applying xf to that result and the 2nd item, etc. If coll\n contains no items, returns init and f is not called. Note that\n certain transforms may inject or skip items.\"\n ([xform f coll] (transduce xform f (f) coll))\n ([xform f init coll]\n (let [f (xform f)\n ret (reduce f init coll)]\n (f ret))))\n\n;;; Math - variadic forms will not work until the following implemented:\n;;; first, next, reduce\n\n(defn ^number +\n \"Returns the sum of nums. (+) returns 0.\"\n ([] 0)\n ([x] x)\n ([x y] (cljs.core/+ x y))\n ([x y & more]\n (reduce + (cljs.core/+ x y) more)))\n\n(defn ^number -\n \"If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result.\"\n ([x] (cljs.core/- x))\n ([x y] (cljs.core/- x y))\n ([x y & more] (reduce - (cljs.core/- x y) more)))\n\n(defn ^number *\n \"Returns the product of nums. (*) returns 1.\"\n ([] 1)\n ([x] x)\n ([x y] (cljs.core/* x y))\n ([x y & more] (reduce * (cljs.core/* x y) more)))\n\n(declare divide)\n\n(defn ^number /\n \"If no denominators are supplied, returns 1/numerator,\n else returns numerator divided by all of the denominators.\"\n ([x] (/ 1 x))\n ([x y] (cljs.core/divide x y)) ;; FIXME: waiting on cljs.core//\n ([x y & more] (reduce / (/ x y) more)))\n\n(defn ^boolean <\n \"Returns non-nil if nums are in monotonically increasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core/< x y))\n ([x y & more]\n (if (cljs.core/< x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core/< y (first more)))\n false)))\n\n(defn ^boolean <=\n \"Returns non-nil if nums are in monotonically non-decreasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core/<= x y))\n ([x y & more]\n (if (cljs.core/<= x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core/<= y (first more)))\n false)))\n\n(defn ^boolean >\n \"Returns non-nil if nums are in monotonically decreasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core/> x y))\n ([x y & more]\n (if (cljs.core/> x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core/> y (first more)))\n false)))\n\n(defn ^boolean >=\n \"Returns non-nil if nums are in monotonically non-increasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core/>= x y))\n ([x y & more]\n (if (cljs.core/>= x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core/>= y (first more)))\n false)))\n\n(defn dec\n \"Returns a number one less than num.\"\n [x] (- x 1))\n\n(defn ^number abs\n {:doc \"Returns the absolute value of a.\"\n :added \"1.11.10\"}\n [a] (Math/abs a))\n\n(defn ^number max\n \"Returns the greatest of the nums.\"\n ([x] x)\n ([x y] (cljs.core/max x y))\n ([x y & more]\n (reduce max (cljs.core/max x y) more)))\n\n(defn ^number min\n \"Returns the least of the nums.\"\n ([x] x)\n ([x y] (cljs.core/min x y))\n ([x y & more]\n (reduce min (cljs.core/min x y) more)))\n\n(defn ^number byte [x] x)\n\n(defn char\n \"Coerce to char\"\n [x]\n (cond\n (number? x) (.fromCharCode js/String x)\n (and (string? x) (== (.-length x) 1)) x\n :else (throw (js/Error. \"Argument to char must be a character or number\"))))\n\n(defn ^number short [x] x)\n(defn ^number float [x] x)\n(defn ^number double [x] x)\n\n(defn ^number unchecked-byte [x] x)\n(defn ^number unchecked-char [x] x)\n(defn ^number unchecked-short [x] x)\n(defn ^number unchecked-float [x] x)\n(defn ^number unchecked-double [x] x)\n\n(defn ^number unchecked-add\n \"Returns the sum of nums. (+) returns 0.\"\n ([] 0)\n ([x] x)\n ([x y] (cljs.core/unchecked-add x y))\n ([x y & more] (reduce unchecked-add (cljs.core/unchecked-add x y) more)))\n\n(defn ^number unchecked-add-int\n \"Returns the sum of nums. (+) returns 0.\"\n ([] 0)\n ([x] x)\n ([x y] (cljs.core/unchecked-add-int x y))\n ([x y & more] (reduce unchecked-add-int (cljs.core/unchecked-add-int x y) more)))\n\n(defn unchecked-dec\n \"Returns a number one less than x, an int.\"\n [x]\n (cljs.core/unchecked-dec x))\n\n(defn unchecked-dec-int\n \"Returns a number one less than x, an int.\"\n [x]\n (cljs.core/unchecked-dec-int x))\n\n(defn ^number unchecked-divide-int\n \"If no denominators are supplied, returns 1/numerator,\n else returns numerator divided by all of the denominators.\"\n ([x] (unchecked-divide-int 1 x))\n ([x y] (cljs.core/divide x y)) ;; FIXME: waiting on cljs.core//\n ([x y & more] (reduce unchecked-divide-int (unchecked-divide-int x y) more)))\n\n(defn unchecked-inc [x]\n (cljs.core/unchecked-inc x))\n\n(defn unchecked-inc-int [x]\n (cljs.core/unchecked-inc-int x))\n\n(defn ^number unchecked-multiply\n \"Returns the product of nums. (*) returns 1.\"\n ([] 1)\n ([x] x)\n ([x y] (cljs.core/unchecked-multiply x y))\n ([x y & more] (reduce unchecked-multiply (cljs.core/unchecked-multiply x y) more)))\n\n(defn ^number unchecked-multiply-int\n \"Returns the product of nums. (*) returns 1.\"\n ([] 1)\n ([x] x)\n ([x y] (cljs.core/unchecked-multiply-int x y))\n ([x y & more] (reduce unchecked-multiply-int (cljs.core/unchecked-multiply-int x y) more)))\n\n(defn unchecked-negate [x]\n (cljs.core/unchecked-negate x))\n\n(defn unchecked-negate-int [x]\n (cljs.core/unchecked-negate-int x))\n\n(declare mod)\n\n(defn unchecked-remainder-int [x n]\n (cljs.core/unchecked-remainder-int x n))\n\n(defn ^number unchecked-subtract\n \"If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result.\"\n ([x] (cljs.core/unchecked-subtract x))\n ([x y] (cljs.core/unchecked-subtract x y))\n ([x y & more] (reduce unchecked-subtract (cljs.core/unchecked-subtract x y) more)))\n\n(defn ^number unchecked-subtract-int\n \"If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result.\"\n ([x] (cljs.core/unchecked-subtract-int x))\n ([x y] (cljs.core/unchecked-subtract-int x y))\n ([x y & more] (reduce unchecked-subtract-int (cljs.core/unchecked-subtract-int x y) more)))\n\n(defn- ^number fix [q]\n (if (>= q 0)\n (Math/floor q)\n (Math/ceil q)))\n\n(defn int\n \"Coerce to int by stripping decimal places.\"\n [x]\n (bit-or x 0))\n\n(defn unchecked-int\n \"Coerce to int by stripping decimal places.\"\n [x]\n (fix x))\n\n(defn long\n \"Coerce to long by stripping decimal places. Identical to `int'.\"\n [x]\n (fix x))\n\n(defn unchecked-long\n \"Coerce to long by stripping decimal places. Identical to `int'.\"\n [x]\n (fix x))\n\n(defn booleans [x] x)\n(defn bytes [x] x)\n(defn chars [x] x)\n(defn shorts [x] x)\n(defn ints [x] x)\n(defn floats [x] x)\n(defn doubles [x] x)\n(defn longs [x] x)\n\n(defn js-mod\n \"Modulus of num and div with original javascript behavior. i.e. bug for negative numbers\"\n [n d]\n (cljs.core/js-mod n d))\n\n(defn mod\n \"Modulus of num and div. Truncates toward negative infinity.\"\n [n d]\n (js-mod (+ (js-mod n d) d) d))\n\n(defn quot\n \"quot[ient] of dividing numerator by denominator.\"\n [n d]\n (let [rem (js-mod n d)]\n (fix (/ (- n rem) d))))\n\n(defn rem\n \"remainder of dividing numerator by denominator.\"\n [n d]\n (let [q (quot n d)]\n (- n (* d q))))\n\n(defn bit-xor\n \"Bitwise exclusive or\"\n ([x y] (cljs.core/bit-xor x y))\n ([x y & more]\n (reduce bit-xor (cljs.core/bit-xor x y) more)))\n\n(defn bit-and\n \"Bitwise and\"\n ([x y] (cljs.core/bit-and x y))\n ([x y & more]\n (reduce bit-and (cljs.core/bit-and x y) more)))\n\n(defn bit-or\n \"Bitwise or\"\n ([x y] (cljs.core/bit-or x y))\n ([x y & more]\n (reduce bit-or (cljs.core/bit-or x y) more)))\n\n(defn bit-and-not\n \"Bitwise and with complement\"\n ([x y] (cljs.core/bit-and-not x y))\n ([x y & more]\n (reduce bit-and-not (cljs.core/bit-and-not x y) more)))\n\n(defn bit-clear\n \"Clear bit at index n\"\n [x n]\n (cljs.core/bit-clear x n))\n\n(defn bit-flip\n \"Flip bit at index n\"\n [x n]\n (cljs.core/bit-flip x n))\n\n(defn bit-not\n \"Bitwise complement\"\n [x] (cljs.core/bit-not x))\n\n(defn bit-set\n \"Set bit at index n\"\n [x n]\n (cljs.core/bit-set x n))\n\n(defn ^boolean bit-test\n \"Test bit at index n\"\n [x n]\n (cljs.core/bit-test x n))\n\n(defn bit-shift-left\n \"Bitwise shift left\"\n [x n] (cljs.core/bit-shift-left x n))\n\n(defn bit-shift-right\n \"Bitwise shift right\"\n [x n] (cljs.core/bit-shift-right x n))\n\n(defn bit-shift-right-zero-fill\n \"DEPRECATED: Bitwise shift right with zero fill\"\n [x n] (cljs.core/bit-shift-right-zero-fill x n))\n\n(defn unsigned-bit-shift-right\n \"Bitwise shift right with zero fill\"\n [x n] (cljs.core/unsigned-bit-shift-right x n))\n\n(defn bit-count\n \"Counts the number of bits set in n\"\n [v]\n (let [v (- v (bit-and (bit-shift-right v 1) 0x55555555))\n v (+ (bit-and v 0x33333333) (bit-and (bit-shift-right v 2) 0x33333333))]\n (bit-shift-right (* (bit-and (+ v (bit-shift-right v 4)) 0xF0F0F0F) 0x1010101) 24)))\n\n(defn ^boolean ==\n \"Returns non-nil if nums all have the equivalent\n value, otherwise false. Behavior on non nums is\n undefined.\"\n ([x] true)\n ([x y] (-equiv x y))\n ([x y & more]\n (if (== x y)\n (if (next more)\n (recur y (first more) (next more))\n (== y (first more)))\n false)))\n\n(defn ^boolean pos?\n \"Returns true if num is greater than zero, else false\"\n [x] (cljs.core/pos? x))\n\n(defn ^boolean zero?\n \"Returns true if num is zero, else false\"\n [x]\n (cljs.core/zero? x))\n\n(defn ^boolean neg?\n \"Returns true if num is less than zero, else false\"\n [x] (cljs.core/neg? x))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; protocols for host types ;;;;;;\n\n(defn nthnext\n \"Returns the nth next of coll, (seq coll) when n is 0.\"\n [coll n]\n (if (implements? IDrop coll)\n (if (pos? n)\n (-drop coll (Math/ceil n))\n (seq coll))\n (loop [n n xs (seq coll)]\n (if (and xs (pos? n))\n (recur (dec n) (next xs))\n xs))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;; basics ;;;;;;;;;;;;;;;;;;\n\n(defn str\n \"With no args, returns the empty string. With one arg x, returns\n x.toString(). (str nil) returns the empty string. With more than\n one arg, returns the concatenation of the str values of the args.\"\n ([] \"\")\n ([x] (if (nil? x)\n \"\"\n (.join #js [x] \"\")))\n ([x & ys]\n (loop [sb (StringBuffer. (str x)) more ys]\n (if more\n (recur (. sb (append (str (first more)))) (next more))\n (.toString sb)))))\n\n(defn subs\n \"Returns the substring of s beginning at start inclusive, and ending\n at end (defaults to length of string), exclusive.\"\n ([s start] ^string (.substring s start))\n ([s start end] ^string (.substring s start end)))\n\n(declare map name)\n\n(defn- equiv-sequential\n \"Assumes x is sequential. Returns true if x equals y, otherwise\n returns false.\"\n [x y]\n (boolean\n (when (sequential? y)\n (if (and (counted? x) (counted? y)\n (not (== (count x) (count y))))\n false\n (loop [xs (seq x) ys (seq y)]\n (cond (nil? xs) (nil? ys)\n (nil? ys) false\n (= (first xs) (first ys)) (recur (next xs) (next ys))\n :else false))))))\n\n(defn- hash-coll [coll]\n (if (seq coll)\n (loop [res (hash (first coll)) s (next coll)]\n (if (nil? s)\n res\n (recur (hash-combine res (hash (first s))) (next s))))\n 0))\n\n(declare key val)\n\n(defn- hash-imap [m]\n ;; a la clojure.lang.APersistentMap\n (loop [h 0 s (seq m)]\n (if s\n (let [e (first s)]\n (recur (js-mod (+ h (bit-xor (hash (key e)) (hash (val e))))\n 4503599627370496)\n (next s)))\n h)))\n\n(defn- hash-iset [s]\n ;; a la clojure.lang.APersistentSet\n (loop [h 0 s (seq s)]\n (if s\n (let [e (first s)]\n (recur (js-mod (+ h (hash e)) 4503599627370496)\n (next s)))\n h)))\n\n(declare name chunk-first chunk-rest)\n\n(defn- extend-object!\n \"Takes a JavaScript object and a map of names to functions and\n attaches said functions as methods on the object. Any references to\n JavaScript's implicit this (via the this-as macro) will resolve to the\n object that the function is attached.\"\n [obj fn-map]\n (doseq [[key-name f] fn-map]\n (let [str-name (name key-name)]\n (gobject/set obj str-name f)))\n obj)\n\n;;;;;;;;;;;;;;;; cons ;;;;;;;;;;;;;;;;\n(deftype List [meta first rest count ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x count))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IList\n\n ICloneable\n (-clone [_] (List. meta first rest count __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (List. new-meta first rest count __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ASeq\n ISeq\n (-first [coll] first)\n (-rest [coll]\n (if (== count 1)\n ()\n rest))\n\n INext\n (-next [coll]\n (if (== count 1)\n nil\n rest))\n\n IStack\n (-peek [coll] first)\n (-pop [coll] (-rest coll))\n\n ICollection\n (-conj [coll o] (List. meta o coll (inc count) nil))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY List) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll] coll)\n\n ICounted\n (-count [coll] count)\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(defn list?\n \"Returns true if x implements IList\"\n [x]\n (satisfies? IList x))\n\n(es6-iterable List)\n\n(deftype EmptyList [meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IList\n\n ICloneable\n (-clone [_] (EmptyList. meta))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (EmptyList. new-meta)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll] nil)\n (-rest [coll] ())\n\n INext\n (-next [coll] nil)\n\n IStack\n (-peek [coll] nil)\n (-pop [coll] (throw (js/Error. \"Can't pop empty list\")))\n\n ICollection\n (-conj [coll o] (List. meta o nil 1 nil))\n\n IEmptyableCollection\n (-empty [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other]\n (if (or (list? other)\n (sequential? other))\n (nil? (seq other))\n false))\n\n IHash\n (-hash [coll] empty-ordered-hash)\n\n ISeqable\n (-seq [coll] nil)\n\n ICounted\n (-count [coll] 0)\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(set! (.-EMPTY List) (EmptyList. nil))\n\n(es6-iterable EmptyList)\n\n(defn reversible?\n \"Returns true if coll satisfies? IReversible.\"\n [coll]\n (satisfies? IReversible coll))\n\n(defn ^seq rseq\n \"Returns, in constant time, a seq of the items in rev (which\n can be a vector or sorted-map), in reverse order. If rev is empty returns nil\"\n [rev]\n (-rseq rev))\n\n(defn reverse\n \"Returns a seq of the items in coll in reverse order. Not lazy.\"\n [coll]\n (if (reversible? coll)\n (or (rseq coll) ())\n (reduce conj () coll)))\n\n(defn list\n \"Creates a new list containing the items.\"\n [& xs]\n (let [arr (if (and (instance? IndexedSeq xs) (zero? (.-i xs)))\n (.-arr xs)\n (let [arr (array)]\n (loop [^not-native xs xs]\n (if-not (nil? xs)\n (do\n (.push arr (-first xs))\n (recur (-next xs)))\n arr))))]\n (loop [i (alength arr) r ()]\n (if (> i 0)\n (recur (dec i) (-conj r (aget arr (dec i))))\n r))))\n\n(deftype Cons [meta first rest ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IList\n\n ICloneable\n (-clone [_] (Cons. meta first rest __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Cons. new-meta first rest __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ASeq\n ISeq\n (-first [coll] first)\n (-rest [coll] (if (nil? rest) () rest))\n\n INext\n (-next [coll]\n (if (nil? rest) nil (seq rest)))\n\n ICollection\n (-conj [coll o] (Cons. nil o coll nil))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll] coll)\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable Cons)\n\n(defn cons\n \"Returns a new seq where x is the first element and coll is the rest.\"\n [x coll]\n (cond\n (nil? coll) (List. nil x nil 1 nil)\n (implements? ISeq coll) (Cons. nil x coll nil)\n :default (Cons. nil x (seq coll) nil)))\n\n(defn hash-keyword [k]\n (int (+ (hash-symbol k) 0x9e3779b9)))\n\n(defn- compare-keywords [a b]\n (cond\n (identical? (.-fqn a) (.-fqn b)) 0\n (and (not (.-ns a)) (.-ns b)) -1\n (.-ns a) (if-not (.-ns b)\n 1\n (let [nsc (garray/defaultCompare (.-ns a) (.-ns b))]\n (if (== 0 nsc)\n (garray/defaultCompare (.-name a) (.-name b))\n nsc)))\n :default (garray/defaultCompare (.-name a) (.-name b))))\n\n(deftype Keyword [ns name fqn ^:mutable _hash]\n Object\n (toString [_] (str \":\" fqn))\n (equiv [this other]\n (-equiv this other))\n\n IEquiv\n (-equiv [_ other]\n (if (instance? Keyword other)\n (identical? fqn (.-fqn other))\n false))\n IFn\n (-invoke [kw coll]\n (get coll kw))\n (-invoke [kw coll not-found]\n (get coll kw not-found))\n\n IHash\n (-hash [this]\n (caching-hash this hash-keyword _hash))\n\n INamed\n (-name [_] name)\n (-namespace [_] ns)\n\n IPrintWithWriter\n (-pr-writer [o writer _] (-write writer (str \":\" fqn))))\n\n(defn keyword?\n \"Return true if x is a Keyword\"\n [x]\n (instance? Keyword x))\n\n(defn keyword-identical?\n \"Efficient test to determine that two keywords are identical.\"\n [x y]\n (if (identical? x y)\n true\n (if (and (keyword? x) (keyword? y))\n (identical? (.-fqn x) (.-fqn y))\n false)))\n\n(defn symbol-identical?\n \"Efficient test to determine that two symbols are identical.\"\n [x y]\n (if (identical? x y)\n true\n (if (and (symbol? x) (symbol? y))\n (identical? (.-str x) (.-str y))\n false)))\n\n(defn namespace\n \"Returns the namespace String of a symbol or keyword, or nil if not present.\"\n [x]\n (if (implements? INamed x)\n (-namespace x)\n (throw (js/Error. (str \"Doesn't support namespace: \" x)))))\n\n(defn ident?\n \"Return true if x is a symbol or keyword\"\n [x] (or (keyword? x) (symbol? x)))\n\n(defn simple-ident?\n \"Return true if x is a symbol or keyword without a namespace\"\n [x] (and (ident? x) (nil? (namespace x))))\n\n(defn qualified-ident?\n \"Return true if x is a symbol or keyword with a namespace\"\n [x] (boolean (and (ident? x) (namespace x) true)))\n\n(defn simple-symbol?\n \"Return true if x is a symbol without a namespace\"\n [x] (and (symbol? x) (nil? (namespace x))))\n\n(defn qualified-symbol?\n \"Return true if x is a symbol with a namespace\"\n [x] (boolean (and (symbol? x) (namespace x) true)))\n\n(defn simple-keyword?\n \"Return true if x is a keyword without a namespace\"\n [x] (and (keyword? x) (nil? (namespace x))))\n\n(defn qualified-keyword?\n \"Return true if x is a keyword with a namespace\"\n [x] (boolean (and (keyword? x) (namespace x) true)))\n\n(defn keyword\n \"Returns a Keyword with the given namespace and name. Do not use :\n in the keyword strings, it will be added automatically.\"\n ([name] (cond\n (keyword? name) name\n (symbol? name) (Keyword.\n (cljs.core/namespace name)\n (cljs.core/name name) (.-str name) nil)\n (= \"/\" name) (Keyword. nil name name nil)\n (string? name) (let [parts (.split name \"/\")]\n (if (== (alength parts) 2)\n (Keyword. (aget parts 0) (aget parts 1) name nil)\n (Keyword. nil (aget parts 0) name nil)))))\n ([ns name]\n (let [ns (cond\n (keyword? ns) (cljs.core/name ns)\n (symbol? ns) (cljs.core/name ns)\n :else ns)\n name (cond\n (keyword? name) (cljs.core/name name)\n (symbol? name) (cljs.core/name name)\n :else name)]\n (Keyword. ns name (str (when ns (str ns \"/\")) name) nil))))\n\n\n(deftype LazySeq [meta ^:mutable fn ^:mutable s ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (sval [coll]\n (if (nil? fn)\n s\n (do\n (set! s (fn))\n (set! fn nil)\n s)))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IPending\n (-realized? [coll]\n (not fn))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (LazySeq. new-meta #(-seq coll) nil __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n (-seq coll)\n (when-not (nil? s)\n (first s)))\n (-rest [coll]\n (-seq coll)\n (if-not (nil? s)\n (rest s)\n ()))\n\n INext\n (-next [coll]\n (-seq coll)\n (when-not (nil? s)\n (next s)))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY List) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (.sval coll)\n (when-not (nil? s)\n (loop [ls s]\n (if (instance? LazySeq ls)\n (recur (.sval ls))\n (do (set! s ls)\n (seq s))))))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable LazySeq)\n\n(declare ArrayChunk)\n\n(deftype ChunkBuffer [^:mutable buf ^:mutable end]\n Object\n (add [_ o]\n (aset buf end o)\n (set! end (inc end)))\n\n (chunk [_]\n (let [ret (ArrayChunk. buf 0 end)]\n (set! buf nil)\n ret))\n\n ICounted\n (-count [_] end))\n\n(defn chunk-buffer [capacity]\n (ChunkBuffer. (make-array capacity) 0))\n\n(deftype ArrayChunk [arr off end]\n ICounted\n (-count [_] (- end off))\n\n IIndexed\n (-nth [coll i]\n (aget arr (+ off i)))\n (-nth [coll i not-found]\n (if (and (>= i 0) (< i (- end off)))\n (aget arr (+ off i))\n not-found))\n\n IChunk\n (-drop-first [coll]\n (if (== off end)\n (throw (js/Error. \"-drop-first of empty chunk\"))\n (ArrayChunk. arr (inc off) end)))\n\n IReduce\n (-reduce [coll f]\n (array-reduce arr f (aget arr off) (inc off)))\n (-reduce [coll f start]\n (array-reduce arr f start off)))\n\n(defn array-chunk\n ([arr]\n (ArrayChunk. arr 0 (alength arr)))\n ([arr off]\n (ArrayChunk. arr off (alength arr)))\n ([arr off end]\n (ArrayChunk. arr off end)))\n\n(deftype ChunkedCons [chunk more meta ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (ChunkedCons. chunk more new-meta __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ISeqable\n (-seq [coll] coll)\n\n ASeq\n ISeq\n (-first [coll] (-nth chunk 0))\n (-rest [coll]\n (if (> (-count chunk) 1)\n (ChunkedCons. (-drop-first chunk) more nil nil)\n (if (nil? more)\n ()\n more)))\n\n INext\n (-next [coll]\n (if (> (-count chunk) 1)\n (ChunkedCons. (-drop-first chunk) more nil nil)\n (when-not (nil? more)\n (-seq more))))\n\n IChunkedSeq\n (-chunked-first [coll] chunk)\n (-chunked-rest [coll]\n (if (nil? more)\n ()\n more))\n\n IChunkedNext\n (-chunked-next [coll]\n (if (nil? more)\n nil\n more))\n\n ICollection\n (-conj [this o]\n (cons o this))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash)))\n\n(es6-iterable ChunkedCons)\n\n(defn chunk-cons [chunk rest]\n (if (zero? (-count chunk))\n rest\n (ChunkedCons. chunk rest nil nil)))\n\n(defn chunk-append [b x]\n (.add b x))\n\n(defn chunk [b]\n (.chunk b))\n\n(defn chunk-first [s]\n (-chunked-first s))\n\n(defn chunk-rest [s]\n (-chunked-rest s))\n\n(defn chunk-next [s]\n (if (implements? IChunkedNext s)\n (-chunked-next s)\n (seq (-chunked-rest s))))\n\n;;;;;;;;;;;;;;;;\n\n(defn to-array\n \"Returns an array containing the contents of coll.\"\n [coll]\n (let [ary (array)]\n (loop [s (seq coll)]\n (if-not (nil? s)\n (do (. ary push (first s))\n (recur (next s)))\n ary))))\n\n(defn to-array-2d\n \"Returns a (potentially-ragged) 2-dimensional array\n containing the contents of coll.\"\n [coll]\n (let [ret (make-array (count coll))]\n (loop [i 0 xs (seq coll)]\n (when-not (nil? xs)\n (aset ret i (to-array (first xs)))\n (recur (inc i) (next xs))))\n ret))\n\n(defn int-array\n \"Creates an array of ints. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (int-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn long-array\n \"Creates an array of longs. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (long-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn double-array\n \"Creates an array of doubles. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (double-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn object-array\n \"Creates an array of objects. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (object-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn bounded-count\n \"If coll is counted? returns its count, else will count at most the first n\n elements of coll using its seq\"\n {:added \"1.9\"}\n [n coll]\n (if (counted? coll)\n (count coll)\n (loop [i 0 s (seq coll)]\n (if (and (not (nil? s)) (< i n))\n (recur (inc i) (next s))\n i))))\n\n(defn spread\n [arglist]\n (when-not (nil? arglist)\n (let [n (next arglist)]\n (if (nil? n)\n (seq (first arglist))\n (cons (first arglist)\n (spread n))))))\n\n(defn concat\n \"Returns a lazy seq representing the concatenation of the elements in the supplied colls.\"\n ([] (lazy-seq nil))\n ([x] (lazy-seq x))\n ([x y]\n (lazy-seq\n (let [s (seq x)]\n (if s\n (if (chunked-seq? s)\n (chunk-cons (chunk-first s) (concat (chunk-rest s) y))\n (cons (first s) (concat (rest s) y)))\n y))))\n ([x y & zs]\n (let [cat (fn cat [xys zs]\n (lazy-seq\n (let [xys (seq xys)]\n (if xys\n (if (chunked-seq? xys)\n (chunk-cons (chunk-first xys)\n (cat (chunk-rest xys) zs))\n (cons (first xys) (cat (rest xys) zs)))\n (when zs\n (cat (first zs) (next zs)))))))]\n (cat (concat x y) zs))))\n\n(defn list*\n \"Creates a new list containing the items prepended to the rest, the\n last of which will be treated as a sequence.\"\n ([args] (seq args))\n ([a args] (cons a args))\n ([a b args] (cons a (cons b args)))\n ([a b c args] (cons a (cons b (cons c args))))\n ([a b c d & more]\n (cons a (cons b (cons c (cons d (spread more)))))))\n\n\n;;; Transients\n\n(defn transient\n \"Returns a new, transient version of the collection, in constant time.\"\n [coll]\n (-as-transient coll))\n\n(defn persistent!\n \"Returns a new, persistent version of the transient collection, in\n constant time. The transient collection cannot be used after this\n call, any such use will throw an exception.\"\n [tcoll]\n (-persistent! tcoll))\n\n(defn conj!\n \"Adds val to the transient collection, and return tcoll. The 'addition'\n may happen at different 'places' depending on the concrete type.\"\n ([] (transient []))\n ([tcoll] tcoll)\n ([tcoll val]\n (-conj! tcoll val))\n ([tcoll val & vals]\n (let [ntcoll (-conj! tcoll val)]\n (if vals\n (recur ntcoll (first vals) (next vals))\n ntcoll))))\n\n(defn assoc!\n \"When applied to a transient map, adds mapping of key(s) to\n val(s). When applied to a transient vector, sets the val at index.\n Note - index must be <= (count vector). Returns coll.\"\n ([tcoll key val]\n (-assoc! tcoll key val))\n ([tcoll key val & kvs]\n (let [ntcoll (-assoc! tcoll key val)]\n (if kvs\n (recur ntcoll (first kvs) (second kvs) (nnext kvs))\n ntcoll))))\n\n(defn dissoc!\n \"Returns a transient map that doesn't contain a mapping for key(s).\"\n ([tcoll key]\n (-dissoc! tcoll key))\n ([tcoll key & ks]\n (let [ntcoll (-dissoc! tcoll key)]\n (if ks\n (recur ntcoll (first ks) (next ks))\n ntcoll))))\n\n(defn pop!\n \"Removes the last item from a transient vector. If\n the collection is empty, throws an exception. Returns tcoll\"\n [tcoll]\n (-pop! tcoll))\n\n(defn disj!\n \"disj[oin]. Returns a transient set of the same (hashed/sorted) type, that\n does not contain key(s).\"\n ([tcoll val]\n (-disjoin! tcoll val))\n ([tcoll val & vals]\n (let [ntcoll (-disjoin! tcoll val)]\n (if vals\n (recur ntcoll (first vals) (next vals))\n ntcoll))))\n\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; apply ;;;;;;;;;;;;;;;;\n\n;; see core.clj\n(gen-apply-to)\n\n(set! *unchecked-if* true)\n\n(defn- ^seq next*\n \"Internal. DO NOT USE! Next without the nil? check.\"\n [coll]\n (if (implements? INext coll)\n (-next ^not-native coll)\n (seq (rest coll))))\n\n(defn- apply-to-simple\n \"Internal. DO NOT USE!\n Assumes args was already called with seq beforehand!\"\n ([f ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$0 f)\n (.cljs$core$IFn$_invoke$arity$0 f)\n (.call f f))\n (apply-to-simple f (-first args) (next* args))))\n ([f a0 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$1 f)\n (.cljs$core$IFn$_invoke$arity$1 f a0)\n (.call f f a0))\n (apply-to-simple f a0 (-first args) (next* args))))\n ([f a0 a1 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$2 f)\n (.cljs$core$IFn$_invoke$arity$2 f a0 a1)\n (.call f f a0 a1))\n (apply-to-simple f a0 a1 (-first args) (next* args))))\n ([f a0 a1 a2 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$3 f)\n (.cljs$core$IFn$_invoke$arity$3 f a0 a1 a2)\n (.call f f a0 a1 a2))\n (apply-to-simple f a0 a1 a2 (-first args) (next* args))))\n ([f a0 a1 a2 a3 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$4 f)\n (.cljs$core$IFn$_invoke$arity$4 f a0 a1 a2 a3)\n (.call f f a0 a1 a2 a3))\n (gen-apply-to-simple f 4 args))))\n\n(defn apply\n \"Applies fn f to the argument list formed by prepending intervening arguments to args.\"\n ([f args]\n (if (.-cljs$lang$applyTo f)\n (let [fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (bounded-count (inc fixed-arity) args)]\n (if (<= bc fixed-arity)\n (apply-to f bc args)\n (.cljs$lang$applyTo f args)))\n (apply-to-simple f (seq args))))\n ([f x args]\n (if (.-cljs$lang$applyTo f)\n (let [arglist (list* x args)\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (inc (bounded-count fixed-arity args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f x (seq args))))\n ([f x y args]\n (if (.-cljs$lang$applyTo f)\n (let [arglist (list* x y args)\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (+ 2 (bounded-count (dec fixed-arity) args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f x y (seq args))))\n ([f x y z args]\n (if (.-cljs$lang$applyTo f)\n (let [arglist (list* x y z args)\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (+ 3 (bounded-count (- fixed-arity 2) args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f x y z (seq args))))\n ([f a b c d & args]\n (if (.-cljs$lang$applyTo f)\n (let [spread-args (spread args)\n arglist (cons a (cons b (cons c (cons d spread-args))))\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (+ 4 (bounded-count (- fixed-arity 3) spread-args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f a b c d (spread args)))))\n\n(set! *unchecked-if* false)\n\n;; CLJS-3200: used by destructure macro for maps to reduce amount of repeated code\n;; placed here because it needs apply and hash-map (only declared at this point)\n(defn --destructure-map [gmap]\n (if (implements? ISeq gmap)\n (if (next gmap)\n (.createAsIfByAssoc PersistentArrayMap (to-array gmap))\n (if (seq gmap)\n (first gmap)\n (.-EMPTY PersistentArrayMap)))\n gmap))\n\n(defn vary-meta\n \"Returns an object of the same type and value as obj, with\n (apply f (meta obj) args) as its metadata.\"\n ([obj f]\n (with-meta obj (f (meta obj))))\n ([obj f a]\n (with-meta obj (f (meta obj) a)))\n ([obj f a b]\n (with-meta obj (f (meta obj) a b)))\n ([obj f a b c]\n (with-meta obj (f (meta obj) a b c)))\n ([obj f a b c d]\n (with-meta obj (f (meta obj) a b c d)))\n ([obj f a b c d & args]\n (with-meta obj (apply f (meta obj) a b c d args))))\n\n(defn ^boolean not=\n \"Same as (not (= obj1 obj2))\"\n ([x] false)\n ([x y] (not (= x y)))\n ([x y & more]\n (not (apply = x y more))))\n\n(defn not-empty\n \"If coll is empty, returns nil, else coll\"\n [coll] (when (seq coll) coll))\n\n(defn nil-iter []\n (reify\n Object\n (hasNext [_] false)\n (next [_] (js/Error. \"No such element\"))\n (remove [_] (js/Error. \"Unsupported operation\"))))\n\n(deftype StringIter [s ^:mutable i]\n Object\n (hasNext [_] (< i (.-length s)))\n (next [_]\n (let [ret (.charAt s i)]\n (set! i (inc i))\n ret))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(defn string-iter [x]\n (StringIter. x 0))\n\n(deftype ArrayIter [arr ^:mutable i]\n Object\n (hasNext [_] (< i (alength arr)))\n (next [_]\n (let [ret (aget arr i)]\n (set! i (inc i))\n ret))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(defn array-iter [x]\n (ArrayIter. x 0))\n\n(def INIT #js {})\n(def START #js {})\n\n(deftype SeqIter [^:mutable _seq ^:mutable _next]\n Object\n (hasNext [_]\n (if (identical? _seq INIT)\n (do\n (set! _seq START)\n (set! _next (seq _next)))\n (if (identical? _seq _next)\n (set! _next (next _seq))))\n (not (nil? _next)))\n (next [this]\n (if-not ^boolean (.hasNext this)\n (throw (js/Error. \"No such element\"))\n (do\n (set! _seq _next)\n (first _next))))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(defn seq-iter [coll]\n (SeqIter. INIT coll))\n\n(defn iter [coll]\n (cond\n (iterable? coll) (-iterator coll)\n (nil? coll) (nil-iter)\n (string? coll) (string-iter coll)\n (array? coll) (array-iter coll)\n (seqable? coll) (seq-iter coll)\n :else (throw (js/Error. (str \"Cannot create iterator from \" coll)))))\n\n(deftype Many [vals]\n Object\n (add [this o]\n (.push vals o)\n this)\n (remove [this]\n (.shift vals))\n (isEmpty [this]\n (zero? (.-length vals)))\n (toString [this]\n (str \"Many: \" vals)))\n\n(def ^:private NONE #js {})\n\n(deftype Single [^:mutable val]\n Object\n (add [this o]\n (if (identical? val NONE)\n (do\n (set! val o)\n this)\n (Many. #js [val o])))\n (remove [this]\n (if (identical? val NONE)\n (throw (js/Error. (str \"Removing object from empty buffer\")))\n (let [ret val]\n (set! val NONE)\n ret)))\n (isEmpty [this]\n (identical? val NONE))\n (toString [this]\n (str \"Single: \" val)))\n\n(deftype Empty []\n Object\n (add [this o]\n (Single. o))\n (remove [this]\n (throw (js/Error. (str \"Removing object from empty buffer\"))))\n (isEmpty [this]\n true)\n (toString [this]\n \"Empty\"))\n\n(def ^:private EMPTY (Empty.))\n\n(deftype MultiIterator [iters]\n Object\n (hasNext [_]\n (loop [iters (seq iters)]\n (if-not (nil? iters)\n (let [iter (first iters)]\n (if-not ^boolean (.hasNext iter)\n false\n (recur (next iters))))\n true)))\n (next [_]\n (let [nexts (array)]\n (dotimes [i (alength iters)]\n (aset nexts i (.next (aget iters i))))\n (prim-seq nexts 0))))\n\n(defn- chunkIteratorSeq [iter]\n (lazy-seq\n (when ^boolean (.hasNext iter)\n (let [arr (array)]\n (loop [n 0]\n (if (and (.hasNext iter) (< n 32))\n (do\n (aset arr n (.next iter))\n (recur (inc n)))\n (chunk-cons (array-chunk arr 0 n) (chunkIteratorSeq iter))))))))\n\n(deftype TransformerIterator [^:mutable buffer ^:mutable _next ^:mutable completed ^:mutable xf sourceIter multi]\n Object\n (step [this]\n (if-not (identical? _next NONE)\n true\n (loop []\n (if (identical? _next NONE)\n (if ^boolean (.isEmpty buffer)\n (if ^boolean completed\n false\n (if ^boolean (.hasNext sourceIter)\n (let [iter (if ^boolean multi\n (apply xf (cons nil (.next sourceIter)))\n (xf nil (.next sourceIter)))]\n (when (reduced? iter)\n (xf nil)\n (set! completed true))\n (recur))\n (do\n (xf nil)\n (set! completed true)\n (recur))))\n (do\n (set! _next (.remove buffer))\n (recur)))\n true))))\n (hasNext [this]\n (.step this))\n (next [this]\n (if ^boolean (.hasNext this)\n (let [ret _next]\n (set! _next NONE)\n ret)\n (throw (js/Error. \"No such element\"))))\n (remove [_]\n (js/Error. \"Unsupported operation\")))\n\n(es6-iterable TransformerIterator)\n\n(defn transformer-iterator\n [xform sourceIter multi]\n (let [iterator (TransformerIterator. EMPTY NONE false nil sourceIter multi)]\n (set! (.-xf iterator)\n (xform (fn\n ([] nil)\n ([acc] acc)\n ([acc o]\n (set! (.-buffer iterator) (.add (.-buffer iterator) o))\n acc))))\n iterator))\n\n(set! (.-create TransformerIterator)\n (fn [xform source]\n (transformer-iterator xform source false)))\n\n(set! (.-createMulti TransformerIterator)\n (fn [xform sources]\n (transformer-iterator xform (MultiIterator. (to-array sources)) true)))\n\n(defn sequence\n \"Coerces coll to a (possibly empty) sequence, if it is not already\n one. Will not force a lazy seq. (sequence nil) yields (), When a\n transducer is supplied, returns a lazy sequence of applications of\n the transform to the items in coll(s), i.e. to the set of first\n items of each coll, followed by the set of second\n items in each coll, until any one of the colls is exhausted. Any\n remaining items in other colls are ignored. The transform should accept\n number-of-colls arguments\"\n ([coll]\n (if (seq? coll)\n coll\n (or (seq coll) ())))\n ([xform coll]\n (or (chunkIteratorSeq\n (.create TransformerIterator xform (iter coll)))\n ()))\n ([xform coll & colls]\n (or (chunkIteratorSeq\n (.createMulti TransformerIterator xform (map iter (cons coll colls))))\n ())))\n\n(defn every?\n \"Returns true if (pred x) is logical true for every x in coll, else\n false.\"\n [pred coll]\n (cond\n (nil? (seq coll)) true\n (pred (first coll)) (recur pred (next coll))\n :else false))\n\n(defn not-every?\n \"Returns false if (pred x) is logical true for every x in\n coll, else true.\"\n [pred coll] (not (every? pred coll)))\n\n(defn some\n \"Returns the first logical true value of (pred x) for any x in coll,\n else nil. One common idiom is to use a set as pred, for example\n this will return :fred if :fred is in the sequence, otherwise nil:\n (some #{:fred} coll)\"\n [pred coll]\n (when-let [s (seq coll)]\n (or (pred (first s)) (recur pred (next s)))))\n\n(defn not-any?\n \"Returns false if (pred x) is logical true for any x in coll,\n else true.\"\n [pred coll] (not (some pred coll)))\n\n(defn even?\n \"Returns true if n is even, throws an exception if n is not an integer\"\n [n] (if (integer? n)\n (zero? (bit-and n 1))\n (throw (js/Error. (str \"Argument must be an integer: \" n)))))\n\n(defn odd?\n \"Returns true if n is odd, throws an exception if n is not an integer\"\n [n] (not (even? n)))\n\n(defn complement\n \"Takes a fn f and returns a fn that takes the same arguments as f,\n has the same effects, if any, and returns the opposite truth value.\"\n [f]\n (fn\n ([] (not (f)))\n ([x] (not (f x)))\n ([x y] (not (f x y)))\n ([x y & zs] (not (apply f x y zs)))))\n\n(defn constantly\n \"Returns a function that takes any number of arguments and returns x.\"\n [x] (fn [& args] x))\n\n(defn comp\n \"Takes a set of functions and returns a fn that is the composition\n of those fns. The returned fn takes a variable number of args,\n applies the rightmost of fns to the args, the next\n fn (right-to-left) to the result, etc.\"\n ([] identity)\n ([f] f)\n ([f g]\n (fn\n ([] (f (g)))\n ([x] (f (g x)))\n ([x y] (f (g x y)))\n ([x y z] (f (g x y z)))\n ([x y z & args] (f (apply g x y z args)))))\n ([f g h]\n (fn\n ([] (f (g (h))))\n ([x] (f (g (h x))))\n ([x y] (f (g (h x y))))\n ([x y z] (f (g (h x y z))))\n ([x y z & args] (f (g (apply h x y z args))))))\n ([f1 f2 f3 & fs]\n (let [fs (reverse (list* f1 f2 f3 fs))]\n (fn [& args]\n (loop [ret (apply (first fs) args) fs (next fs)]\n (if fs\n (recur ((first fs) ret) (next fs))\n ret))))))\n\n(defn partial\n \"Takes a function f and fewer than the normal arguments to f, and\n returns a fn that takes a variable number of additional args. When\n called, the returned function calls f with args + additional args.\"\n ([f] f)\n ([f arg1]\n (fn\n ([] (f arg1))\n ([x] (f arg1 x))\n ([x y] (f arg1 x y))\n ([x y z] (f arg1 x y z))\n ([x y z & args] (apply f arg1 x y z args))))\n ([f arg1 arg2]\n (fn\n ([] (f arg1 arg2))\n ([x] (f arg1 arg2 x))\n ([x y] (f arg1 arg2 x y))\n ([x y z] (f arg1 arg2 x y z))\n ([x y z & args] (apply f arg1 arg2 x y z args))))\n ([f arg1 arg2 arg3]\n (fn\n ([] (f arg1 arg2 arg3))\n ([x] (f arg1 arg2 arg3 x))\n ([x y] (f arg1 arg2 arg3 x y))\n ([x y z] (f arg1 arg2 arg3 x y z))\n ([x y z & args] (apply f arg1 arg2 arg3 x y z args))))\n ([f arg1 arg2 arg3 & more]\n (fn [& args] (apply f arg1 arg2 arg3 (concat more args)))))\n\n(defn fnil\n \"Takes a function f, and returns a function that calls f, replacing\n a nil first argument to f with the supplied value x. Higher arity\n versions can replace arguments in the second and third\n positions (y, z). Note that the function f can take any number of\n arguments, not just the one(s) being nil-patched.\"\n ([f x]\n (fn\n ([a] (f (if (nil? a) x a)))\n ([a b] (f (if (nil? a) x a) b))\n ([a b c] (f (if (nil? a) x a) b c))\n ([a b c & ds] (apply f (if (nil? a) x a) b c ds))))\n ([f x y]\n (fn\n ([a b] (f (if (nil? a) x a) (if (nil? b) y b)))\n ([a b c] (f (if (nil? a) x a) (if (nil? b) y b) c))\n ([a b c & ds] (apply f (if (nil? a) x a) (if (nil? b) y b) c ds))))\n ([f x y z]\n (fn\n ([a b] (f (if (nil? a) x a) (if (nil? b) y b)))\n ([a b c] (f (if (nil? a) x a) (if (nil? b) y b) (if (nil? c) z c)))\n ([a b c & ds] (apply f (if (nil? a) x a) (if (nil? b) y b) (if (nil? c) z c) ds)))))\n\n(declare volatile!)\n\n(defn map-indexed\n \"Returns a lazy sequence consisting of the result of applying f to 0\n and the first item of coll, followed by applying f to 1 and the second\n item in coll, etc, until coll is exhausted. Thus function f should\n accept 2 arguments, index and item. Returns a stateful transducer when\n no collection is provided.\"\n ([f]\n (fn [rf]\n (let [i (volatile! -1)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (rf result (f (vswap! i inc) input)))))))\n ([f coll]\n (letfn [(mapi [idx coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (chunk-append b (f (+ idx i) (-nth c i))))\n (chunk-cons (chunk b) (mapi (+ idx size) (chunk-rest s))))\n (cons (f idx (first s)) (mapi (inc idx) (rest s)))))))]\n (mapi 0 coll))))\n\n(defn keep\n \"Returns a lazy sequence of the non-nil results of (f item). Note,\n this means false return values will be included. f must be free of\n side-effects. Returns a transducer when no collection is provided.\"\n ([f]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [v (f input)]\n (if (nil? v)\n result\n (rf result v)))))))\n ([f coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (let [x (f (-nth c i))]\n (when-not (nil? x)\n (chunk-append b x))))\n (chunk-cons (chunk b) (keep f (chunk-rest s))))\n (let [x (f (first s))]\n (if (nil? x)\n (keep f (rest s))\n (cons x (keep f (rest s))))))))))\n\n;; =============================================================================\n;; Atom\n\n(deftype Atom [state meta validator watches]\n Object\n (equiv [this other]\n (-equiv this other))\n\n IAtom\n\n IEquiv\n (-equiv [o other] (identical? o other))\n\n IDeref\n (-deref [_] state)\n\n IMeta\n (-meta [_] meta)\n\n IWatchable\n (-notify-watches [this oldval newval]\n (doseq [[key f] watches]\n (f key this oldval newval)))\n (-add-watch [this key f]\n (set! (.-watches this) (assoc watches key f))\n this)\n (-remove-watch [this key]\n (set! (.-watches this) (dissoc watches key)))\n\n IHash\n (-hash [this] (goog/getUid this)))\n\n(defn atom\n \"Creates and returns an Atom with an initial value of x and zero or\n more options (in any order):\n\n :meta metadata-map\n\n :validator validate-fn\n\n If metadata-map is supplied, it will become the metadata on the\n atom. validate-fn must be nil or a side-effect-free fn of one\n argument, which will be passed the intended new state on any state\n change. If the new state is unacceptable, the validate-fn should\n return false or throw an Error. If either of these error conditions\n occur, then the value of the atom will not change.\"\n ([x] (Atom. x nil nil nil))\n ([x & {:keys [meta validator]}] (Atom. x meta validator nil)))\n\n(declare pr-str)\n\n(defn reset!\n \"Sets the value of atom to newval without regard for the\n current value. Returns new-value.\"\n [a new-value]\n (if (instance? Atom a)\n (let [validate (.-validator a)]\n (when-not (nil? validate)\n (when-not (validate new-value)\n (throw (js/Error. \"Validator rejected reference state\"))))\n (let [old-value (.-state a)]\n (set! (.-state a) new-value)\n (when-not (nil? (.-watches a))\n (-notify-watches a old-value new-value))\n new-value))\n (-reset! a new-value)))\n\n(defn reset-vals!\n \"Sets the value of atom to newval. Returns [old new], the value of the\n atom before and after the reset.\"\n {:added \"1.9\"}\n [a new-value]\n (if (instance? Atom a)\n (let [validate (.-validator a)]\n (when-not (nil? validate)\n (when-not (validate new-value)\n (throw (js/Error. \"Validator rejected reference state\"))))\n (let [old-value (.-state a)]\n (set! (.-state a) new-value)\n (when-not (nil? (.-watches a))\n (-notify-watches a old-value new-value))\n [old-value new-value]))\n [(-deref a) (-reset! a new-value)]))\n\n(defn swap!\n \"Atomically swaps the value of atom to be:\n (apply f current-value-of-atom args). Note that f may be called\n multiple times, and thus should be free of side effects. Returns\n the value that was swapped in.\"\n ([a f]\n (if (instance? Atom a)\n (reset! a (f (.-state a)))\n (-swap! a f)))\n ([a f x]\n (if (instance? Atom a)\n (reset! a (f (.-state a) x))\n (-swap! a f x)))\n ([a f x y]\n (if (instance? Atom a)\n (reset! a (f (.-state a) x y))\n (-swap! a f x y)))\n ([a f x y & more]\n (if (instance? Atom a)\n (reset! a (apply f (.-state a) x y more))\n (-swap! a f x y more))))\n\n(defn swap-vals!\n \"Atomically swaps the value of atom to be:\n (apply f current-value-of-atom args). Note that f may be called\n multiple times, and thus should be free of side effects.\n Returns [old new], the value of the atom before and after the swap.\"\n {:added \"1.9\"}\n ([a f]\n (if (instance? Atom a)\n (reset-vals! a (f (.-state a)))\n [(-deref a) (-swap! a f)]))\n ([a f x]\n (if (instance? Atom a)\n (reset-vals! a (f (.-state a) x))\n [(-deref a) (-swap! a f x)]))\n ([a f x y]\n (if (instance? Atom a)\n (reset-vals! a (f (.-state a) x y))\n [(-deref a) (-swap! a f x y)]))\n ([a f x y & more]\n (if (instance? Atom a)\n (reset-vals! a (apply f (.-state a) x y more))\n [(-deref a) (-swap! a f x y more)])))\n\n(defn compare-and-set!\n \"Atomically sets the value of atom to newval if and only if the\n current value of the atom is equal to oldval. Returns true if\n set happened, else false.\"\n [^not-native a oldval newval]\n (if (= (-deref a) oldval)\n (do (reset! a newval) true)\n false))\n\n(defn set-validator!\n \"Sets the validator-fn for an atom. validator-fn must be nil or a\n side-effect-free fn of one argument, which will be passed the intended\n new state on any state change. If the new state is unacceptable, the\n validator-fn should return false or throw an Error. If the current state\n is not acceptable to the new validator, an Error will be thrown and the\n validator will not be changed.\"\n [iref val]\n (when (and (some? val)\n (not (val (-deref iref))))\n (throw (js/Error. \"Validator rejected reference state\")))\n (set! (.-validator iref) val))\n\n(defn get-validator\n \"Gets the validator-fn for a var/ref/agent/atom.\"\n [iref]\n (.-validator iref))\n\n(deftype Volatile [^:mutable state]\n IVolatile\n (-vreset! [_ new-state]\n (set! state new-state))\n\n IDeref\n (-deref [_] state))\n\n(defn volatile!\n \"Creates and returns a Volatile with an initial value of val.\"\n [val]\n (Volatile. val))\n\n(defn volatile?\n \"Returns true if x is a volatile.\"\n [x] (instance? Volatile x))\n\n(defn vreset!\n \"Sets the value of volatile to newval without regard for the\n current value. Returns newval.\"\n [vol newval] (-vreset! vol newval))\n\n(defn keep-indexed\n \"Returns a lazy sequence of the non-nil results of (f index item). Note,\n this means false return values will be included. f must be free of\n side-effects. Returns a stateful transducer when no collection is\n provided.\"\n ([f]\n (fn [rf]\n (let [ia (volatile! -1)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [i (vswap! ia inc)\n v (f i input)]\n (if (nil? v)\n result\n (rf result v))))))))\n ([f coll]\n (letfn [(keepi [idx coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (let [x (f (+ idx i) (-nth c i))]\n (when-not (nil? x)\n (chunk-append b x))))\n (chunk-cons (chunk b) (keepi (+ idx size) (chunk-rest s))))\n (let [x (f idx (first s))]\n (if (nil? x)\n (keepi (inc idx) (rest s))\n (cons x (keepi (inc idx) (rest s)))))))))]\n (keepi 0 coll))))\n\n(defn every-pred\n \"Takes a set of predicates and returns a function f that returns true if all of its\n composing predicates return a logical true value against all of its arguments, else it returns\n false. Note that f is short-circuiting in that it will stop execution on the first\n argument that triggers a logical false result against the original predicates.\"\n ([p]\n (fn ep1\n ([] true)\n ([x] (boolean (p x)))\n ([x y] (boolean (and (p x) (p y))))\n ([x y z] (boolean (and (p x) (p y) (p z))))\n ([x y z & args] (boolean (and (ep1 x y z)\n (every? p args))))))\n ([p1 p2]\n (fn ep2\n ([] true)\n ([x] (boolean (and (p1 x) (p2 x))))\n ([x y] (boolean (and (p1 x) (p1 y) (p2 x) (p2 y))))\n ([x y z] (boolean (and (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z))))\n ([x y z & args] (boolean (and (ep2 x y z)\n (every? #(and (p1 %) (p2 %)) args))))))\n ([p1 p2 p3]\n (fn ep3\n ([] true)\n ([x] (boolean (and (p1 x) (p2 x) (p3 x))))\n ([x y] (boolean (and (p1 x) (p1 y) (p2 x) (p2 y) (p3 x) (p3 y))))\n ([x y z] (boolean (and (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z) (p3 x) (p3 y) (p3 z))))\n ([x y z & args] (boolean (and (ep3 x y z)\n (every? #(and (p1 %) (p2 %) (p3 %)) args))))))\n ([p1 p2 p3 & ps]\n (let [ps (list* p1 p2 p3 ps)]\n (fn epn\n ([] true)\n ([x] (every? #(% x) ps))\n ([x y] (every? #(and (% x) (% y)) ps))\n ([x y z] (every? #(and (% x) (% y) (% z)) ps))\n ([x y z & args] (boolean (and (epn x y z)\n (every? #(every? % args) ps))))))))\n\n(defn some-fn\n \"Takes a set of predicates and returns a function f that returns the first logical true value\n returned by one of its composing predicates against any of its arguments, else it returns\n logical false. Note that f is short-circuiting in that it will stop execution on the first\n argument that triggers a logical true result against the original predicates.\"\n ([p]\n (fn sp1\n ([] nil)\n ([x] (p x))\n ([x y] (or (p x) (p y)))\n ([x y z] (or (p x) (p y) (p z)))\n ([x y z & args] (or (sp1 x y z)\n (some p args)))))\n ([p1 p2]\n (fn sp2\n ([] nil)\n ([x] (or (p1 x) (p2 x)))\n ([x y] (or (p1 x) (p1 y) (p2 x) (p2 y)))\n ([x y z] (or (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z)))\n ([x y z & args] (or (sp2 x y z)\n (some #(or (p1 %) (p2 %)) args)))))\n ([p1 p2 p3]\n (fn sp3\n ([] nil)\n ([x] (or (p1 x) (p2 x) (p3 x)))\n ([x y] (or (p1 x) (p1 y) (p2 x) (p2 y) (p3 x) (p3 y)))\n ([x y z] (or (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z) (p3 x) (p3 y) (p3 z)))\n ([x y z & args] (or (sp3 x y z)\n (some #(or (p1 %) (p2 %) (p3 %)) args)))))\n ([p1 p2 p3 & ps]\n (let [ps (list* p1 p2 p3 ps)]\n (fn spn\n ([] nil)\n ([x] (some #(% x) ps))\n ([x y] (some #(or (% x) (% y)) ps))\n ([x y z] (some #(or (% x) (% y) (% z)) ps))\n ([x y z & args] (or (spn x y z)\n (some #(some % args) ps)))))))\n\n(defn map\n \"Returns a lazy sequence consisting of the result of applying f to\n the set of first items of each coll, followed by applying f to the\n set of second items in each coll, until any one of the colls is\n exhausted. Any remaining items in other colls are ignored. Function\n f should accept number-of-colls arguments. Returns a transducer when\n no collection is provided.\"\n ([f]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (rf result (f input)))\n ([result input & inputs]\n (rf result (apply f input inputs))))))\n ([f coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (chunk-append b (f (-nth c i))))\n (chunk-cons (chunk b) (map f (chunk-rest s))))\n (cons (f (first s)) (map f (rest s)))))))\n ([f c1 c2]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2)]\n (when (and s1 s2)\n (cons (f (first s1) (first s2))\n (map f (rest s1) (rest s2)))))))\n ([f c1 c2 c3]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2) s3 (seq c3)]\n (when (and s1 s2 s3)\n (cons (f (first s1) (first s2) (first s3))\n (map f (rest s1) (rest s2) (rest s3)))))))\n ([f c1 c2 c3 & colls]\n (let [step (fn step [cs]\n (lazy-seq\n (let [ss (map seq cs)]\n (when (every? identity ss)\n (cons (map first ss) (step (map rest ss)))))))]\n (map #(apply f %) (step (conj colls c3 c2 c1))))))\n\n(defn take\n \"Returns a lazy sequence of the first n items in coll, or all items if\n there are fewer than n. Returns a stateful transducer when\n no collection is provided.\"\n ([n]\n {:pre [(number? n)]}\n (fn [rf]\n (let [na (volatile! n)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [n @na\n nn (vswap! na dec)\n result (if (pos? n)\n (rf result input)\n result)]\n (if (not (pos? nn))\n (ensure-reduced result)\n result)))))))\n ([n coll]\n {:pre [(number? n)]}\n (lazy-seq\n (when (pos? n)\n (when-let [s (seq coll)]\n (cons (first s) (take (dec n) (rest s))))))))\n\n(defn drop\n \"Returns a laziness-preserving sequence of all but the first n items in coll.\n Returns a stateful transducer when no collection is provided.\"\n ([n]\n {:pre [(number? n)]}\n (fn [rf]\n (let [na (volatile! n)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [n @na]\n (vswap! na dec)\n (if (pos? n)\n result\n (rf result input))))))))\n ([n coll]\n {:pre [(number? n)]}\n (if (implements? IDrop coll)\n (or\n (if (pos? n)\n (-drop coll (Math/ceil n))\n (seq coll))\n ())\n (let [step (fn [n coll]\n (let [s (seq coll)]\n (if (and (pos? n) s)\n (recur (dec n) (rest s))\n s)))]\n (lazy-seq (step n coll))))))\n\n(defn drop-last\n \"Return a lazy sequence of all but the last n (default 1) items in coll\"\n ([s] (drop-last 1 s))\n ([n s] (map (fn [x _] x) s (drop n s))))\n\n(defn take-last\n \"Returns a seq of the last n items in coll. Depending on the type\n of coll may be no better than linear time. For vectors, see also subvec.\"\n [n coll]\n (loop [s (seq coll), lead (seq (drop n coll))]\n (if lead\n (recur (next s) (next lead))\n s)))\n\n(defn drop-while\n \"Returns a lazy sequence of the items in coll starting from the\n first item for which (pred item) returns logical false. Returns a\n stateful transducer when no collection is provided.\"\n ([pred]\n (fn [rf]\n (let [da (volatile! true)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [drop? @da]\n (if (and drop? (pred input))\n result\n (do\n (vreset! da nil)\n (rf result input)))))))))\n ([pred coll]\n (let [step (fn [pred coll]\n (let [s (seq coll)]\n (if (and s (pred (first s)))\n (recur pred (rest s))\n s)))]\n (lazy-seq (step pred coll)))))\n\n(deftype Cycle [meta all prev ^:mutable current ^:mutable _next]\n Object\n (toString [coll]\n (pr-str* coll))\n (currentval [coll]\n (when-not ^seq current\n (if-let [c (next prev)]\n (set! current c)\n (set! current all)))\n current)\n\n IPending\n (-realized? [coll]\n (some? current))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Cycle. new-meta all prev current _next)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n (first (.currentval coll)))\n (-rest [coll]\n (when (nil? _next)\n (set! _next (Cycle. nil all (.currentval coll) nil nil)))\n _next)\n\n INext\n (-next [coll]\n (-rest coll))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeqable\n (-seq [coll] coll)\n\n IReduce\n (-reduce [coll f]\n (loop [s (.currentval coll) ret (first s)]\n (let [s (or (next s) all)\n ret (f ret (first s))]\n (if (reduced? ret)\n @ret\n (recur s ret)))))\n (-reduce [coll f start]\n (loop [s (.currentval coll) ret start]\n (let [ret (f ret (first s))]\n (if (reduced? ret)\n @ret\n (recur (or (next s) all) ret))))))\n\n(defn cycle\n \"Returns a lazy (infinite!) sequence of repetitions of the items in coll.\"\n [coll] (if-let [vals (seq coll)]\n (Cycle. nil vals nil vals nil)\n (.-EMPTY List)))\n\n(defn split-at\n \"Returns a vector of [(take n coll) (drop n coll)]\"\n [n coll]\n [(take n coll) (drop n coll)])\n\n(deftype Repeat [meta count val ^:mutable next ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x count))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IPending\n (-realized? [coll] false)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Repeat. new-meta count val next nil)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n val)\n (-rest [coll]\n (if (nil? next)\n (if (> count 1)\n (do\n (set! next (Repeat. nil (dec count) val nil nil))\n next)\n (if (== -1 count)\n coll\n ()))\n next))\n\n INext\n (-next [coll]\n (if (nil? next)\n (if (> count 1)\n (do\n (set! next (Repeat. nil (dec count) val nil nil))\n next)\n (if (== -1 count)\n coll\n nil))\n next))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IDrop\n (-drop [coll n]\n (if (== count -1)\n coll\n (let [dropped-count (- count n)]\n (when (pos? dropped-count)\n (Repeat. nil dropped-count val nil nil)))))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISequential\n ISeqable\n (-seq [coll] coll)\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IReduce\n (-reduce [coll f]\n (if (== count -1)\n (loop [ret (f val val)]\n (if (reduced? ret)\n @ret\n (recur (f ret val))))\n (loop [i 1 ret val]\n (if (< i count)\n (let [ret (f ret val)]\n (if (reduced? ret)\n @ret\n (recur (inc i) ret)))\n ret))))\n (-reduce [coll f start]\n (if (== count -1)\n (loop [ret (f start val)]\n (if (reduced? ret)\n @ret\n (recur (f ret val))))\n (loop [i 0 ret start]\n (if (< i count)\n (let [ret (f ret val)]\n (if (reduced? ret)\n @ret\n (recur (inc i) ret)))\n ret)))))\n\n(defn repeat\n \"Returns a lazy (infinite!, or length n if supplied) sequence of xs.\"\n ([x] (Repeat. nil -1 x nil nil))\n ([n x] (if (pos? n)\n (Repeat. nil n x nil nil)\n (.-EMPTY List))))\n\n(defn replicate\n \"DEPRECATED: Use 'repeat' instead.\n Returns a lazy seq of n xs.\"\n [n x] (take n (repeat x)))\n\n(defn repeatedly\n \"Takes a function of no args, presumably with side effects, and\n returns an infinite (or length n if supplied) lazy sequence of calls\n to it\"\n ([f] (lazy-seq (cons (f) (repeatedly f))))\n ([n f] (take n (repeatedly f))))\n\n(def ^:private UNREALIZED-SEED #js {})\n\n(deftype Iterate [meta f prev-seed ^:mutable seed ^:mutable next]\n Object\n (toString [coll]\n (pr-str* coll))\n\n IPending\n (-realized? [coll]\n (not (identical? seed UNREALIZED-SEED)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Iterate. new-meta f prev-seed seed next)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n (when (identical? UNREALIZED-SEED seed)\n (set! seed (f prev-seed)))\n seed)\n (-rest [coll]\n (when (nil? next)\n (set! next (Iterate. nil f (-first coll) UNREALIZED-SEED nil)))\n next)\n\n INext\n (-next [coll]\n (-rest coll))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeqable\n (-seq [coll] coll)\n\n IReduce\n (-reduce [coll rf]\n (let [first (-first coll)\n v (f first)]\n (loop [ret (rf first v) v v]\n (if (reduced? ret)\n @ret\n (let [v (f v)]\n (recur (rf ret v) v))))))\n (-reduce [coll rf start]\n (let [v (-first coll)]\n (loop [ret (rf start v) v v]\n (if (reduced? ret)\n @ret\n (let [v (f v)]\n (recur (rf ret v) v)))))))\n\n(defn iterate\n \"Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects\"\n {:added \"1.0\"}\n [f x] (Iterate. nil f nil x nil))\n\n(defn interleave\n \"Returns a lazy seq of the first item in each coll, then the second etc.\"\n ([] ())\n ([c1] (lazy-seq c1))\n ([c1 c2]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2)]\n (when (and s1 s2)\n (cons (first s1) (cons (first s2)\n (interleave (rest s1) (rest s2))))))))\n ([c1 c2 & colls]\n (lazy-seq\n (let [ss (map seq (conj colls c2 c1))]\n (when (every? identity ss)\n (concat (map first ss) (apply interleave (map rest ss))))))))\n\n(defn interpose\n \"Returns a lazy seq of the elements of coll separated by sep.\n Returns a stateful transducer when no collection is provided.\"\n ([sep]\n (fn [rf]\n (let [started (volatile! false)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if @started\n (let [sepr (rf result sep)]\n (if (reduced? sepr)\n sepr\n (rf sepr input)))\n (do\n (vreset! started true)\n (rf result input))))))))\n ([sep coll] (drop 1 (interleave (repeat sep) coll))))\n\n\n\n(defn- flatten1\n \"Take a collection of collections, and return a lazy seq\n of items from the inner collection\"\n [colls]\n (let [cat (fn cat [coll colls]\n (lazy-seq\n (if-let [coll (seq coll)]\n (cons (first coll) (cat (rest coll) colls))\n (when (seq colls)\n (cat (first colls) (rest colls))))))]\n (cat nil colls)))\n\n(declare cat)\n\n(defn mapcat\n \"Returns the result of applying concat to the result of applying map\n to f and colls. Thus function f should return a collection. Returns\n a transducer when no collections are provided\"\n {:added \"1.0\"\n :static true}\n ([f] (comp (map f) cat))\n ([f & colls]\n (apply concat (apply map f colls))))\n\n(defn filter\n \"Returns a lazy sequence of the items in coll for which\n (pred item) returns logical true. pred must be free of side-effects.\n Returns a transducer when no collection is provided.\"\n ([pred]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if (pred input)\n (rf result input)\n result)))))\n ([pred coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (when (pred (-nth c i))\n (chunk-append b (-nth c i))))\n (chunk-cons (chunk b) (filter pred (chunk-rest s))))\n (let [f (first s) r (rest s)]\n (if (pred f)\n (cons f (filter pred r))\n (filter pred r))))))))\n\n(defn remove\n \"Returns a lazy sequence of the items in coll for which\n (pred item) returns logical false. pred must be free of side-effects.\n Returns a transducer when no collection is provided.\"\n ([pred] (filter (complement pred)))\n ([pred coll]\n (filter (complement pred) coll)))\n\n(defn tree-seq\n \"Returns a lazy sequence of the nodes in a tree, via a depth-first walk.\n branch? must be a fn of one arg that returns true if passed a node\n that can have children (but may not). children must be a fn of one\n arg that returns a sequence of the children. Will only be called on\n nodes for which branch? returns true. Root is the root node of the\n tree.\"\n [branch? children root]\n (let [walk (fn walk [node]\n (lazy-seq\n (cons node\n (when (branch? node)\n (mapcat walk (children node))))))]\n (walk root)))\n\n(defn flatten\n \"Takes any nested combination of sequential things (lists, vectors,\n etc.) and returns their contents as a single, flat sequence.\n (flatten nil) returns nil.\"\n [x]\n (filter #(not (sequential? %))\n (rest (tree-seq sequential? seq x))))\n\n(defn into\n \"Returns a new coll consisting of to-coll with all of the items of\n from-coll conjoined. A transducer may be supplied.\"\n ([] [])\n ([to] to)\n ([to from]\n (if-not (nil? to)\n (if (implements? IEditableCollection to)\n (-with-meta (persistent! (reduce -conj! (transient to) from)) (meta to))\n (reduce -conj to from))\n (reduce conj to from)))\n ([to xform from]\n (if (implements? IEditableCollection to)\n (let [tm (meta to)\n rf (fn\n ([coll] (-> (persistent! coll) (-with-meta tm)))\n ([coll v] (conj! coll v)))]\n (transduce xform rf (transient to) from))\n (transduce xform conj to from))))\n\n(defn mapv\n \"Returns a vector consisting of the result of applying f to the\n set of first items of each coll, followed by applying f to the set\n of second items in each coll, until any one of the colls is\n exhausted. Any remaining items in other colls are ignored. Function\n f should accept number-of-colls arguments.\"\n ([f coll]\n (-> (reduce (fn [v o] (conj! v (f o))) (transient []) coll)\n persistent!))\n ([f c1 c2]\n (into [] (map f c1 c2)))\n ([f c1 c2 c3]\n (into [] (map f c1 c2 c3)))\n ([f c1 c2 c3 & colls]\n (into [] (apply map f c1 c2 c3 colls))))\n\n(defn filterv\n \"Returns a vector of the items in coll for which\n (pred item) returns logical true. pred must be free of side-effects.\"\n [pred coll]\n (-> (reduce (fn [v o] (if (pred o) (conj! v o) v))\n (transient [])\n coll)\n persistent!))\n\n(defn partition\n \"Returns a lazy sequence of lists of n items each, at offsets step\n apart. If step is not supplied, defaults to n, i.e. the partitions\n do not overlap. If a pad collection is supplied, use its elements as\n necessary to complete last partition up to n items. In case there are\n not enough padding elements, return a partition with less than n items.\"\n ([n coll]\n (partition n n coll))\n ([n step coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [p (take n s)]\n (when (== n (count p))\n (cons p (partition n step (drop step s))))))))\n ([n step pad coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [p (take n s)]\n (if (== n (count p))\n (cons p (partition n step pad (drop step s)))\n (list (take n (concat p pad)))))))))\n\n(defn get-in\n \"Returns the value in a nested associative structure,\n where ks is a sequence of keys. Returns nil if the key is not present,\n or the not-found value if supplied.\"\n {:added \"1.2\"\n :static true}\n ([m ks]\n (loop [m m\n ks (seq ks)]\n (if (nil? ks)\n m\n (recur (get m (first ks))\n (next ks)))))\n ([m ks not-found]\n (loop [sentinel lookup-sentinel\n m m\n ks (seq ks)]\n (if-not (nil? ks)\n (let [m (get m (first ks) sentinel)]\n (if (identical? sentinel m)\n not-found\n (recur sentinel m (next ks))))\n m))))\n\n(defn assoc-in\n \"Associates a value in a nested associative structure, where ks is a\n sequence of keys and v is the new value and returns a new nested structure.\n If any levels do not exist, hash-maps will be created.\"\n [m [k & ks] v]\n (if ks\n (assoc m k (assoc-in (get m k) ks v))\n (assoc m k v)))\n\n(defn update-in\n \"'Updates' a value in a nested associative structure, where ks is a\n sequence of keys and f is a function that will take the old value\n and any supplied args and return the new value, and returns a new\n nested structure. If any levels do not exist, hash-maps will be\n created.\"\n ([m [k & ks] f]\n (if ks\n (assoc m k (update-in (get m k) ks f))\n (assoc m k (f (get m k)))))\n ([m [k & ks] f a]\n (if ks\n (assoc m k (update-in (get m k) ks f a))\n (assoc m k (f (get m k) a))))\n ([m [k & ks] f a b]\n (if ks\n (assoc m k (update-in (get m k) ks f a b))\n (assoc m k (f (get m k) a b))))\n ([m [k & ks] f a b c]\n (if ks\n (assoc m k (update-in (get m k) ks f a b c))\n (assoc m k (f (get m k) a b c))))\n ([m [k & ks] f a b c & args]\n (if ks\n (assoc m k (apply update-in (get m k) ks f a b c args))\n (assoc m k (apply f (get m k) a b c args)))))\n\n(defn update\n \"'Updates' a value in an associative structure, where k is a\n key and f is a function that will take the old value\n and any supplied args and return the new value, and returns a new\n structure. If the key does not exist, nil is passed as the old value.\"\n ([m k f]\n (assoc m k (f (get m k))))\n ([m k f x]\n (assoc m k (f (get m k) x)))\n ([m k f x y]\n (assoc m k (f (get m k) x y)))\n ([m k f x y z]\n (assoc m k (f (get m k) x y z)))\n ([m k f x y z & more]\n (assoc m k (apply f (get m k) x y z more))))\n\n;;; PersistentVector\n\n(deftype VectorNode [edit arr])\n\n(defn- pv-fresh-node [edit]\n (VectorNode. edit (make-array 32)))\n\n(defn- pv-aget [node idx]\n (aget (.-arr node) idx))\n\n(defn- pv-aset [node idx val]\n (aset (.-arr node) idx val))\n\n(defn- pv-clone-node [node]\n (VectorNode. (.-edit node) (aclone (.-arr node))))\n\n(defn- tail-off [pv]\n (let [cnt (.-cnt pv)]\n (if (< cnt 32)\n 0\n (bit-shift-left (bit-shift-right-zero-fill (dec cnt) 5) 5))))\n\n(defn- new-path [edit level node]\n (loop [ll level\n ret node]\n (if (zero? ll)\n ret\n (let [embed ret\n r (pv-fresh-node edit)\n _ (pv-aset r 0 embed)]\n (recur (- ll 5) r)))))\n\n(defn- push-tail [pv level parent tailnode]\n (let [ret (pv-clone-node parent)\n subidx (bit-and (bit-shift-right-zero-fill (dec (.-cnt pv)) level) 0x01f)]\n (if (== 5 level)\n (do\n (pv-aset ret subidx tailnode)\n ret)\n (let [child (pv-aget parent subidx)]\n (if-not (nil? child)\n (let [node-to-insert (push-tail pv (- level 5) child tailnode)]\n (pv-aset ret subidx node-to-insert)\n ret)\n (let [node-to-insert (new-path nil (- level 5) tailnode)]\n (pv-aset ret subidx node-to-insert)\n ret))))))\n\n(defn- vector-index-out-of-bounds [i cnt]\n (throw (js/Error. (str \"No item \" i \" in vector of length \" cnt))))\n\n(defn- first-array-for-longvec [pv]\n ;; invariants: (count pv) > 32.\n (loop [node (.-root pv)\n level (.-shift pv)]\n (if (pos? level)\n (recur (pv-aget node 0) (- level 5))\n (.-arr node))))\n\n(defn- unchecked-array-for [pv i]\n ;; invariant: i is a valid index of pv (use array-for if unknown).\n (if (>= i (tail-off pv))\n (.-tail pv)\n (loop [node (.-root pv)\n level (.-shift pv)]\n (if (pos? level)\n (recur (pv-aget node (bit-and (bit-shift-right-zero-fill i level) 0x01f))\n (- level 5))\n (.-arr node)))))\n\n(defn- array-for [pv i]\n (if (and (<= 0 i) (< i (.-cnt pv)))\n (unchecked-array-for pv i)\n (vector-index-out-of-bounds i (.-cnt pv))))\n\n(defn- do-assoc [pv level node i val]\n (let [ret (pv-clone-node node)]\n (if (zero? level)\n (do\n (pv-aset ret (bit-and i 0x01f) val)\n ret)\n (let [subidx (bit-and (bit-shift-right-zero-fill i level) 0x01f)]\n (pv-aset ret subidx (do-assoc pv (- level 5) (pv-aget node subidx) i val))\n ret))))\n\n(defn- pop-tail [pv level node]\n (let [subidx (bit-and (bit-shift-right-zero-fill (- (.-cnt pv) 2) level) 0x01f)]\n (cond\n (> level 5) (let [new-child (pop-tail pv (- level 5) (pv-aget node subidx))]\n (if (and (nil? new-child) (zero? subidx))\n nil\n (let [ret (pv-clone-node node)]\n (pv-aset ret subidx new-child)\n ret)))\n (zero? subidx) nil\n :else (let [ret (pv-clone-node node)]\n (pv-aset ret subidx nil)\n ret))))\n\n(deftype RangedIterator [^:mutable i ^:mutable base ^:mutable arr v start end]\n Object\n (hasNext [this]\n (< i end))\n (next [this]\n (when (== (- i base) 32)\n (set! arr (unchecked-array-for v i))\n (set! base (+ base 32)))\n (let [ret (aget arr (bit-and i 0x01f))]\n (set! i (inc i))\n ret)))\n\n(defn ranged-iterator [v start end]\n (let [i start]\n (RangedIterator. i (- i (js-mod i 32))\n (when (< start (count v))\n (unchecked-array-for v i))\n v start end)))\n\n(defn- pv-reduce\n ([pv f start end]\n (if (< start end)\n (pv-reduce pv f (nth pv start) (inc start) end)\n (f)))\n ([pv f init start end]\n (loop [acc init i start arr (unchecked-array-for pv start)]\n (if (< i end)\n (let [j (bit-and i 0x01f)\n arr (if (zero? j) (unchecked-array-for pv i) arr)\n nacc (f acc (aget arr j))]\n (if (reduced? nacc)\n @nacc\n (recur nacc (inc i) arr)))\n acc))))\n\n(declare tv-editable-root tv-editable-tail TransientVector\n pr-sequential-writer pr-writer chunked-seq)\n\n(defprotocol APersistentVector\n \"Marker protocol\")\n\n(deftype PersistentVector [meta cnt shift root tail ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (PersistentVector. meta cnt shift root tail __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentVector. new-meta cnt shift root tail __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n IStack\n (-peek [coll]\n (when (> cnt 0)\n (-nth coll (dec cnt))))\n (-pop [coll]\n (cond\n (zero? cnt) (throw (js/Error. \"Can't pop empty vector\"))\n (== 1 cnt) (-with-meta (.-EMPTY PersistentVector) meta)\n (< 1 (- cnt (tail-off coll)))\n (PersistentVector. meta (dec cnt) shift root (.slice tail 0 -1) nil)\n :else (let [new-tail (unchecked-array-for coll (- cnt 2))\n nr (pop-tail coll shift root)\n new-root (if (nil? nr) (.-EMPTY-NODE PersistentVector) nr)\n cnt-1 (dec cnt)]\n (if (and (< 5 shift) (nil? (pv-aget new-root 1)))\n (PersistentVector. meta cnt-1 (- shift 5) (pv-aget new-root 0) new-tail nil)\n (PersistentVector. meta cnt-1 shift new-root new-tail nil)))))\n\n ICollection\n (-conj [coll o]\n (if (< (- cnt (tail-off coll)) 32)\n (let [len (alength tail)\n new-tail (make-array (inc len))]\n (dotimes [i len]\n (aset new-tail i (aget tail i)))\n (aset new-tail len o)\n (PersistentVector. meta (inc cnt) shift root new-tail nil))\n (let [root-overflow? (> (bit-shift-right-zero-fill cnt 5) (bit-shift-left 1 shift))\n new-shift (if root-overflow? (+ shift 5) shift)\n new-root (if root-overflow?\n (let [n-r (pv-fresh-node nil)]\n (pv-aset n-r 0 root)\n (pv-aset n-r 1 (new-path nil shift (VectorNode. nil tail)))\n n-r)\n (push-tail coll shift root (VectorNode. nil tail)))]\n (PersistentVector. meta (inc cnt) new-shift new-root (array o) nil))))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentVector) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other]\n (if (instance? PersistentVector other)\n (if (== cnt (count other))\n (let [me-iter (-iterator coll)\n you-iter (-iterator other)]\n (loop []\n (if ^boolean (.hasNext me-iter)\n (let [x (.next me-iter)\n y (.next you-iter)]\n (if (= x y)\n (recur)\n false))\n true)))\n false)\n (equiv-sequential coll other)))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (cond\n (zero? cnt) nil\n (<= cnt 32) (IndexedSeq. tail 0 nil)\n :else (chunked-seq coll (first-array-for-longvec coll) 0 0)))\n\n IDrop\n (-drop [coll n]\n (if (< n cnt)\n (let [offset (js-mod n 32)]\n (chunked-seq coll (unchecked-array-for coll n) (- n offset) offset))\n nil))\n\n ICounted\n (-count [coll] cnt)\n\n IIndexed\n (-nth [coll n]\n (aget (array-for coll n) (bit-and n 0x01f)))\n (-nth [coll n not-found]\n (if (and (<= 0 n) (< n cnt))\n (aget (unchecked-array-for coll n) (bit-and n 0x01f))\n not-found))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n (-lookup [coll k not-found] (if (number? k)\n (-nth coll k not-found)\n not-found))\n\n IAssociative\n (-assoc [coll k v]\n (if (number? k)\n (-assoc-n coll k v)\n (throw (js/Error. \"Vector's key for assoc must be a number.\"))))\n (-contains-key? [coll k]\n (if (integer? k)\n (and (<= 0 k) (< k cnt))\n false))\n\n IFind\n (-find [coll n]\n (when (and (<= 0 n) (< n cnt))\n (MapEntry. n (aget (unchecked-array-for coll n) (bit-and n 0x01f)) nil)))\n\n APersistentVector\n IVector\n (-assoc-n [coll n val]\n (cond\n (and (<= 0 n) (< n cnt))\n (if (<= (tail-off coll) n)\n (let [new-tail (aclone tail)]\n (aset new-tail (bit-and n 0x01f) val)\n (PersistentVector. meta cnt shift root new-tail nil))\n (PersistentVector. meta cnt shift (do-assoc coll shift root n val) tail nil))\n (== n cnt) (-conj coll val)\n :else (throw (js/Error. (str \"Index \" n \" out of bounds [0,\" cnt \"]\")))))\n\n IReduce\n (-reduce [v f]\n (pv-reduce v f 0 cnt))\n (-reduce [v f init]\n (loop [i 0 init init]\n (if (< i cnt)\n (let [arr (unchecked-array-for v i)\n len (alength arr)\n init (loop [j 0 init init]\n (if (< j len)\n (let [init (f init (aget arr j))]\n (if (reduced? init)\n init\n (recur (inc j) init)))\n init))]\n (if (reduced? init)\n @init\n (recur (+ i len) init)))\n init)))\n\n IKVReduce\n (-kv-reduce [v f init]\n (loop [i 0 init init]\n (if (< i cnt)\n (let [arr (unchecked-array-for v i)\n len (alength arr)\n init (loop [j 0 init init]\n (if (< j len)\n (let [init (f init (+ j i) (aget arr j))]\n (if (reduced? init)\n init\n (recur (inc j) init)))\n init))]\n (if (reduced? init)\n @init\n (recur (+ i len) init)))\n init)))\n\n IFn\n (-invoke [coll k]\n (if (number? k)\n (-nth coll k)\n (throw (js/Error. \"Key must be integer\"))))\n\n IEditableCollection\n (-as-transient [coll]\n (TransientVector. cnt shift (tv-editable-root root) (tv-editable-tail tail)))\n\n IReversible\n (-rseq [coll]\n (when (pos? cnt)\n (RSeq. coll (dec cnt) nil)))\n\n IIterable\n (-iterator [this]\n (ranged-iterator this 0 cnt)))\n\n(set! (.-EMPTY-NODE PersistentVector) (VectorNode. nil (make-array 32)))\n\n(set! (.-EMPTY PersistentVector)\n (PersistentVector. nil 0 5 (.-EMPTY-NODE PersistentVector) (array) empty-ordered-hash))\n\n(set! (.-fromArray PersistentVector)\n (fn [xs ^boolean no-clone]\n (let [l (alength xs)\n xs (if no-clone xs (aclone xs))]\n (if (< l 32)\n (PersistentVector. nil l 5 (.-EMPTY-NODE PersistentVector) xs nil)\n (let [node (.slice xs 0 32)\n v (PersistentVector. nil 32 5 (.-EMPTY-NODE PersistentVector) node nil)]\n (loop [i 32 out (-as-transient v)]\n (if (< i l)\n (recur (inc i) (conj! out (aget xs i)))\n (persistent! out))))))))\n\n(es6-iterable PersistentVector)\n\n(declare map-entry?)\n\n(defn vec\n \"Creates a new vector containing the contents of coll. JavaScript arrays\n will be aliased and should not be modified.\"\n [coll]\n (cond\n (map-entry? coll)\n [(key coll) (val coll)]\n\n (vector? coll)\n (with-meta coll nil)\n\n (array? coll)\n (.fromArray PersistentVector coll true)\n\n :else\n (-persistent!\n (reduce -conj!\n (-as-transient (.-EMPTY PersistentVector))\n coll))))\n\n(defn vector\n \"Creates a new vector containing the args.\"\n [& args]\n (if (and (instance? IndexedSeq args) (zero? (.-i args)))\n (.fromArray PersistentVector (.-arr args) (not (array? (.-arr args))))\n (vec args)))\n\n(declare subvec)\n\n(deftype ChunkedSeq [vec node i off meta ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (chunked-seq vec node i off new-meta)))\n IMeta\n (-meta [coll] meta)\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ASeq\n ISeq\n (-first [coll]\n (aget node off))\n (-rest [coll]\n (if (< (inc off) (alength node))\n (let [s (chunked-seq vec node i (inc off))]\n (if (nil? s)\n ()\n s))\n (-chunked-rest coll)))\n\n INext\n (-next [coll]\n (if (< (inc off) (alength node))\n (let [s (chunked-seq vec node i (inc off))]\n (if (nil? s)\n nil\n s))\n (-chunked-next coll)))\n\n IDrop\n (-drop [coll n]\n (let [o (+ off n)]\n (if (< o (alength node))\n (chunked-seq vec node i o)\n (let [i (+ i o)]\n (if (< i (-count vec))\n (let [new-offset (js-mod i 32)]\n (chunked-seq vec (unchecked-array-for vec i) (- i new-offset) new-offset))\n nil)))))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll]\n ())\n\n IChunkedSeq\n (-chunked-first [coll]\n (array-chunk node off))\n (-chunked-rest [coll]\n (let [end (+ i (alength node))]\n (if (< end (-count vec))\n (chunked-seq vec (unchecked-array-for vec end) end 0)\n ())))\n\n IChunkedNext\n (-chunked-next [coll]\n (let [end (+ i (alength node))]\n (when (< end (-count vec))\n (chunked-seq vec (unchecked-array-for vec end) end 0))))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IReduce\n (-reduce [coll f]\n (pv-reduce vec f (+ i off) (count vec)))\n\n (-reduce [coll f start]\n (pv-reduce vec f start (+ i off) (count vec))))\n\n(es6-iterable ChunkedSeq)\n\n(defn chunked-seq\n ([vec i off] (ChunkedSeq. vec (array-for vec i) i off nil nil))\n ([vec node i off] (ChunkedSeq. vec node i off nil nil))\n ([vec node i off meta]\n (ChunkedSeq. vec node i off meta nil)))\n\n(declare build-subvec)\n\n(deftype Subvec [meta v start end ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (Subvec. meta v start end __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (build-subvec new-meta v start end __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n IStack\n (-peek [coll]\n (when-not (== start end)\n (-nth v (dec end))))\n (-pop [coll]\n (if (== start end)\n (throw (js/Error. \"Can't pop empty vector\"))\n (build-subvec meta v start (dec end) nil)))\n\n ICollection\n (-conj [coll o]\n (build-subvec meta (-assoc-n v end o) start (inc end) nil))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentVector) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (let [subvec-seq (fn subvec-seq [i]\n (when-not (== i end)\n (cons (-nth v i)\n (lazy-seq\n (subvec-seq (inc i))))))]\n (subvec-seq start)))\n\n IReversible\n (-rseq [coll]\n (if-not (== start end)\n (RSeq. coll (dec (- end start)) nil)))\n\n ICounted\n (-count [coll] (- end start))\n\n IIndexed\n (-nth [coll n]\n (if (or (neg? n) (<= end (+ start n)))\n (vector-index-out-of-bounds n (- end start))\n (-nth v (+ start n))))\n (-nth [coll n not-found]\n (if (or (neg? n) (<= end (+ start n)))\n not-found\n (-nth v (+ start n) not-found)))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n (-lookup [coll k not-found] (if (number? k)\n (-nth coll k not-found)\n not-found))\n\n IAssociative\n (-assoc [coll key val]\n (if (number? key)\n (-assoc-n coll key val)\n (throw (js/Error. \"Subvec's key for assoc must be a number.\"))))\n (-contains-key? [coll key]\n (if (integer? key)\n (and (<= 0 key) (< key (- end start)))\n false))\n\n IFind\n (-find [coll n]\n (when-not (neg? n)\n (let [idx (+ start n)]\n (when (< idx end)\n (MapEntry. n (-lookup v idx) nil)))))\n\n IVector\n (-assoc-n [coll n val]\n (let [v-pos (+ start n)]\n (if (or (neg? n) (<= (inc end) v-pos))\n (throw (js/Error. (str \"Index \" n \" out of bounds [0,\" (-count coll) \"]\")))\n (build-subvec meta (assoc v v-pos val) start (max end (inc v-pos)) nil))))\n\n IReduce\n (-reduce [coll f]\n (if (implements? APersistentVector v)\n (pv-reduce v f start end)\n (ci-reduce coll f)))\n (-reduce [coll f init]\n (if (implements? APersistentVector v)\n (pv-reduce v f init start end)\n (ci-reduce coll f init)))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (loop [i start j 0 init init]\n (if (< i end)\n (let [init (f init j (-nth v i))]\n (if (reduced? init)\n @init\n (recur (inc i) (inc j) init)))\n init)))\n\n IFn\n (-invoke [coll k]\n (-nth coll k))\n (-invoke [coll k not-found]\n (-nth coll k not-found))\n\n IIterable\n (-iterator [coll]\n (if (implements? APersistentVector v)\n (ranged-iterator v start end)\n (seq-iter coll))))\n\n(es6-iterable Subvec)\n\n(defn- build-subvec [meta v start end __hash]\n (if (instance? Subvec v)\n (recur meta (.-v v) (+ (.-start v) start) (+ (.-start v) end) __hash)\n (do\n (when-not (vector? v)\n (throw (js/Error. \"v must satisfy IVector\")))\n (when (or (neg? start)\n (< end start)\n (> end (count v)))\n (throw (js/Error. \"Index out of bounds\")))\n (Subvec. meta v start end __hash))))\n\n(defn subvec\n \"Returns a persistent vector of the items in vector from\n start (inclusive) to end (exclusive). If end is not supplied,\n defaults to (count vector). This operation is O(1) and very fast, as\n the resulting vector shares structure with the original and no\n trimming is done.\"\n ([v start]\n (subvec v start (count v)))\n ([v start end]\n (assert (and (not (nil? start)) (not (nil? end))))\n (build-subvec nil v (int start) (int end) nil)))\n\n(defn- tv-ensure-editable [edit node]\n (if (identical? edit (.-edit node))\n node\n (VectorNode. edit (aclone (.-arr node)))))\n\n(defn- tv-editable-root [node]\n (VectorNode. (js-obj) (aclone (.-arr node))))\n\n(defn- tv-editable-tail [tl]\n (let [ret (make-array 32)]\n (array-copy tl 0 ret 0 (alength tl))\n ret))\n\n(defn- tv-push-tail [tv level parent tail-node]\n (let [ret (tv-ensure-editable (.. tv -root -edit) parent)\n subidx (bit-and (bit-shift-right-zero-fill (dec (.-cnt tv)) level) 0x01f)]\n (pv-aset ret subidx\n (if (== level 5)\n tail-node\n (let [child (pv-aget ret subidx)]\n (if-not (nil? child)\n (tv-push-tail tv (- level 5) child tail-node)\n (new-path (.. tv -root -edit) (- level 5) tail-node)))))\n ret))\n\n(defn- tv-pop-tail [tv level node]\n (let [node (tv-ensure-editable (.. tv -root -edit) node)\n subidx (bit-and (bit-shift-right-zero-fill (- (.-cnt tv) 2) level) 0x01f)]\n (cond\n (> level 5) (let [new-child (tv-pop-tail\n tv (- level 5) (pv-aget node subidx))]\n (if (and (nil? new-child) (zero? subidx))\n nil\n (do (pv-aset node subidx new-child)\n node)))\n (zero? subidx) nil\n :else (do (pv-aset node subidx nil)\n node))))\n\n(defn- unchecked-editable-array-for [tv i]\n ;; invariant: i is a valid index of tv.\n (if (>= i (tail-off tv))\n (.-tail tv)\n (let [root (.-root tv)]\n (loop [node root\n level (.-shift tv)]\n (if (pos? level)\n (recur (tv-ensure-editable\n (.-edit root)\n (pv-aget node\n (bit-and (bit-shift-right-zero-fill i level)\n 0x01f)))\n (- level 5))\n (.-arr node))))))\n\n(deftype TransientVector [^:mutable cnt\n ^:mutable shift\n ^:mutable root\n ^:mutable tail]\n ITransientCollection\n (-conj! [tcoll o]\n (if ^boolean (.-edit root)\n (if (< (- cnt (tail-off tcoll)) 32)\n (do (aset tail (bit-and cnt 0x01f) o)\n (set! cnt (inc cnt))\n tcoll)\n (let [tail-node (VectorNode. (.-edit root) tail)\n new-tail (make-array 32)]\n (aset new-tail 0 o)\n (set! tail new-tail)\n (if (> (bit-shift-right-zero-fill cnt 5)\n (bit-shift-left 1 shift))\n (let [new-root-array (make-array 32)\n new-shift (+ shift 5)]\n (aset new-root-array 0 root)\n (aset new-root-array 1 (new-path (.-edit root) shift tail-node))\n (set! root (VectorNode. (.-edit root) new-root-array))\n (set! shift new-shift)\n (set! cnt (inc cnt))\n tcoll)\n (let [new-root (tv-push-tail tcoll shift root tail-node)]\n (set! root new-root)\n (set! cnt (inc cnt))\n tcoll))))\n (throw (js/Error. \"conj! after persistent!\"))))\n\n (-persistent! [tcoll]\n (if ^boolean (.-edit root)\n (do (set! (.-edit root) nil)\n (let [len (- cnt (tail-off tcoll))\n trimmed-tail (make-array len)]\n (array-copy tail 0 trimmed-tail 0 len)\n (PersistentVector. nil cnt shift root trimmed-tail nil)))\n (throw (js/Error. \"persistent! called twice\"))))\n\n ITransientAssociative\n (-assoc! [tcoll key val]\n (if (number? key)\n (-assoc-n! tcoll key val)\n (throw (js/Error. \"TransientVector's key for assoc! must be a number.\"))))\n\n ITransientVector\n (-assoc-n! [tcoll n val]\n (if ^boolean (.-edit root)\n (cond\n (and (<= 0 n) (< n cnt))\n (if (<= (tail-off tcoll) n)\n (do (aset tail (bit-and n 0x01f) val)\n tcoll)\n (let [new-root\n ((fn go [level node]\n (let [node (tv-ensure-editable (.-edit root) node)]\n (if (zero? level)\n (do (pv-aset node (bit-and n 0x01f) val)\n node)\n (let [subidx (bit-and (bit-shift-right-zero-fill n level)\n 0x01f)]\n (pv-aset node subidx\n (go (- level 5) (pv-aget node subidx)))\n node))))\n shift root)]\n (set! root new-root)\n tcoll))\n (== n cnt) (-conj! tcoll val)\n :else\n (throw\n (js/Error.\n (str \"Index \" n \" out of bounds for TransientVector of length\" cnt))))\n (throw (js/Error. \"assoc! after persistent!\"))))\n\n (-pop! [tcoll]\n (if ^boolean (.-edit root)\n (cond\n (zero? cnt) (throw (js/Error. \"Can't pop empty vector\"))\n (== 1 cnt) (do (set! cnt 0) tcoll)\n (pos? (bit-and (dec cnt) 0x01f)) (do (set! cnt (dec cnt)) tcoll)\n :else\n (let [new-tail (unchecked-editable-array-for tcoll (- cnt 2))\n new-root (let [nr (tv-pop-tail tcoll shift root)]\n (if-not (nil? nr)\n nr\n (VectorNode. (.-edit root) (make-array 32))))]\n (if (and (< 5 shift) (nil? (pv-aget new-root 1)))\n (let [new-root (tv-ensure-editable (.-edit root) (pv-aget new-root 0))]\n (set! root new-root)\n (set! shift (- shift 5))\n (set! cnt (dec cnt))\n (set! tail new-tail)\n tcoll)\n (do (set! root new-root)\n (set! cnt (dec cnt))\n (set! tail new-tail)\n tcoll))))\n (throw (js/Error. \"pop! after persistent!\"))))\n\n ICounted\n (-count [coll]\n (if ^boolean (.-edit root)\n cnt\n (throw (js/Error. \"count after persistent!\"))))\n\n IIndexed\n (-nth [coll n]\n (if ^boolean (.-edit root)\n (aget (array-for coll n) (bit-and n 0x01f))\n (throw (js/Error. \"nth after persistent!\"))))\n\n (-nth [coll n not-found]\n (if (and (<= 0 n) (< n cnt))\n (-nth coll n)\n not-found))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (cond\n (not ^boolean (.-edit root)) (throw (js/Error. \"lookup after persistent!\"))\n (number? k) (-nth coll k not-found)\n :else not-found))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found)))\n\n;;; PersistentQueue ;;;\n\n(deftype PersistentQueueIter [^:mutable fseq riter]\n Object\n (hasNext [_]\n (or (and (some? fseq) (seq fseq)) (and (some? riter) (.hasNext riter))))\n (next [_]\n (cond\n (some? fseq)\n (let [ret (first fseq)]\n (set! fseq (next fseq))\n ret)\n (and (some? riter) ^boolean (.hasNext riter))\n (.next riter)\n :else (throw (js/Error. \"No such element\"))))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(deftype PersistentQueueSeq [meta front rear ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentQueueSeq. new-meta front rear __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll] (first front))\n (-rest [coll]\n (if-let [f1 (next front)]\n (PersistentQueueSeq. meta f1 rear nil)\n (if (nil? rear)\n (-empty coll)\n (PersistentQueueSeq. meta rear nil nil))))\n\n INext\n (-next [coll]\n (if-let [f1 (next front)]\n (PersistentQueueSeq. meta f1 rear nil)\n (when (some? rear)\n (PersistentQueueSeq. meta rear nil nil))))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY List) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll] coll))\n\n(es6-iterable PersistentQueueSeq)\n\n(deftype PersistentQueue [meta count front rear ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [coll] (PersistentQueue. meta count front rear __hash))\n\n IIterable\n (-iterator [coll]\n (PersistentQueueIter. front (-iterator rear)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentQueue. new-meta count front rear __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll] (first front))\n (-rest [coll] (rest (seq coll)))\n\n IStack\n (-peek [coll] (first front))\n (-pop [coll]\n (if front\n (if-let [f1 (next front)]\n (PersistentQueue. meta (dec count) f1 rear nil)\n (PersistentQueue. meta (dec count) (seq rear) [] nil))\n coll))\n\n ICollection\n (-conj [coll o]\n (if front\n (PersistentQueue. meta (inc count) front (conj (or rear []) o) nil)\n (PersistentQueue. meta (inc count) (conj front o) [] nil)))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentQueue) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (let [rear (seq rear)]\n (if (or front rear)\n (PersistentQueueSeq. nil front (seq rear) nil))))\n\n ICounted\n (-count [coll] count))\n\n(set! (.-EMPTY PersistentQueue) (PersistentQueue. nil 0 nil [] empty-ordered-hash))\n\n(es6-iterable PersistentQueue)\n\n(deftype NeverEquiv []\n Object\n (equiv [this other]\n (-equiv this other))\n IEquiv\n (-equiv [o other] false))\n\n(def ^:private never-equiv (NeverEquiv.))\n\n(defn equiv-map\n \"Test map equivalence. Returns true if x equals y, otherwise returns false.\"\n [x y]\n (boolean\n (when (and (map? y) (not (record? y)))\n ; assume all maps are counted\n (when (== (count x) (count y))\n (if (satisfies? IKVReduce x)\n (reduce-kv\n (fn [_ k v]\n (if (= (get y k never-equiv) v)\n true\n (reduced false)))\n true x)\n (every?\n (fn [xkv]\n (= (get y (first xkv) never-equiv) (second xkv)))\n x))))))\n\n\n(defn- scan-array [incr k array]\n (let [len (alength array)]\n (loop [i 0]\n (when (< i len)\n (if (identical? k (aget array i))\n i\n (recur (+ i incr)))))))\n\n; The keys field is an array of all keys of this map, in no particular\n; order. Any string, keyword, or symbol key is used as a property name\n; to store the value in strobj. If a key is assoc'ed when that same\n; key already exists in strobj, the old value is overwritten. If a\n; non-string key is assoc'ed, return a HashMap object instead.\n\n(defn- obj-map-compare-keys [a b]\n (let [a (hash a)\n b (hash b)]\n (cond\n (< a b) -1\n (> a b) 1\n :else 0)))\n\n(defn- obj-map->hash-map [m k v]\n (let [ks (.-keys m)\n len (alength ks)\n so (.-strobj m)\n mm (meta m)]\n (loop [i 0\n out (transient (.-EMPTY PersistentHashMap))]\n (if (< i len)\n (let [k (aget ks i)]\n (recur (inc i) (assoc! out k (gobject/get so k))))\n (-with-meta (persistent! (assoc! out k v)) mm)))))\n\n;;; ObjMap - DEPRECATED\n\n(defn- obj-clone [obj ks]\n (let [new-obj (js-obj)\n l (alength ks)]\n (loop [i 0]\n (when (< i l)\n (let [k (aget ks i)]\n (gobject/set new-obj k (gobject/get obj k))\n (recur (inc i)))))\n new-obj))\n\n(deftype ObjMap [meta keys strobj update-count ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (ObjMap. new-meta keys strobj update-count __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (reduce -conj\n coll\n entry)))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY ObjMap) meta))\n\n IEquiv\n (-equiv [coll other] (equiv-map coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (when (pos? (alength keys))\n (map #(vector % (unchecked-get strobj %))\n (.sort keys obj-map-compare-keys))))\n\n ICounted\n (-count [coll] (alength keys))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n (-lookup [coll k not-found]\n (if (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n (unchecked-get strobj k)\n not-found))\n\n IAssociative\n (-assoc [coll k v]\n (if (string? k)\n (if (or (> update-count (.-HASHMAP_THRESHOLD ObjMap))\n (>= (alength keys) (.-HASHMAP_THRESHOLD ObjMap)))\n (obj-map->hash-map coll k v)\n (if-not (nil? (scan-array 1 k keys))\n (let [new-strobj (obj-clone strobj keys)]\n (gobject/set new-strobj k v)\n (ObjMap. meta keys new-strobj (inc update-count) nil)) ; overwrite\n (let [new-strobj (obj-clone strobj keys) ; append\n new-keys (aclone keys)]\n (gobject/set new-strobj k v)\n (.push new-keys k)\n (ObjMap. meta new-keys new-strobj (inc update-count) nil))))\n ;; non-string key. game over.\n (obj-map->hash-map coll k v)))\n (-contains-key? [coll k]\n (if (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n true\n false))\n\n IFind\n (-find [coll k]\n (when (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n (MapEntry. k (unchecked-get strobj k) nil)))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (let [len (alength keys)]\n (loop [keys (.sort keys obj-map-compare-keys)\n init init]\n (if (seq keys)\n (let [k (first keys)\n init (f init k (unchecked-get strobj k))]\n (if (reduced? init)\n @init\n (recur (rest keys) init)))\n init))))\n\n IMap\n (-dissoc [coll k]\n (if (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n (let [new-keys (aclone keys)\n new-strobj (obj-clone strobj keys)]\n (.splice new-keys (scan-array 1 k new-keys) 1)\n (js-delete new-strobj k)\n (ObjMap. meta new-keys new-strobj (inc update-count) nil))\n coll)) ; key not found, return coll unchanged\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll]\n (transient (into (hash-map) coll))))\n\n(set! (.-EMPTY ObjMap) (ObjMap. nil (array) (js-obj) 0 empty-unordered-hash))\n\n(set! (.-HASHMAP_THRESHOLD ObjMap) 8)\n\n(set! (.-fromObject ObjMap) (fn [ks obj] (ObjMap. nil ks obj 0 nil)))\n\n;; Record Iterator\n(deftype RecordIter [^:mutable i record base-count fields ext-map-iter]\n Object\n (hasNext [_]\n (or (< i base-count) (.hasNext ext-map-iter)))\n (next [_]\n (if (< i base-count)\n (let [k (nth fields i)]\n (set! i (inc i))\n (MapEntry. k (-lookup record k) nil))\n (.next ext-map-iter)))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(deftype ES6EntriesIterator [^:mutable s]\n Object\n (next [_]\n (if-not (nil? s)\n (let [[k v] (first s)]\n (set! s (next s))\n #js {:value #js [k v] :done false})\n #js {:value nil :done true})))\n\n(defn es6-entries-iterator [coll]\n (ES6EntriesIterator. (seq coll)))\n\n(deftype ES6SetEntriesIterator [^:mutable s]\n Object\n (next [_]\n (if-not (nil? s)\n (let [x (first s)]\n (set! s (next s))\n #js {:value #js [x x] :done false})\n #js {:value nil :done true})))\n\n(defn es6-set-entries-iterator [coll]\n (ES6SetEntriesIterator. (seq coll)))\n\n;;; PersistentArrayMap\n\n(defn- array-index-of-nil? [arr]\n (let [len (alength arr)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (nil? (aget arr i)) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-keyword? [arr k]\n (let [len (alength arr)\n kstr (.-fqn k)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (and (keyword? (aget arr i))\n (identical? kstr (.-fqn (aget arr i)))) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-symbol? [arr k]\n (let [len (alength arr)\n kstr (.-str k)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (and (symbol? (aget arr i))\n (identical? kstr (.-str (aget arr i)))) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-identical? [arr k]\n (let [len (alength arr)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (identical? k (aget arr i)) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-equiv? [arr k]\n (let [len (alength arr)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (= k (aget arr i)) i\n :else (recur (+ i 2))))))\n\n(defn array-index-of [arr k]\n (cond\n (keyword? k) (array-index-of-keyword? arr k)\n\n (or (string? k) (number? k))\n (array-index-of-identical? arr k)\n\n (symbol? k) (array-index-of-symbol? arr k)\n\n (nil? k)\n (array-index-of-nil? arr)\n\n :else (array-index-of-equiv? arr k)))\n\n(defn- array-map-index-of [m k]\n (array-index-of (.-arr m) k))\n\n(defn- array-extend-kv [arr k v]\n (let [l (alength arr)\n narr (make-array (+ l 2))]\n (loop [i 0]\n (when (< i l)\n (aset narr i (aget arr i))\n (recur (inc i))))\n (aset narr l k)\n (aset narr (inc l) v)\n narr))\n\n(defn- array-map-extend-kv [m k v]\n (array-extend-kv (.-arr m) k v))\n\n(declare TransientArrayMap)\n\n(deftype MapEntry [key val ^:mutable __hash]\n Object\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMapEntry\n (-key [node] key)\n (-val [node] val)\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IMeta\n (-meta [node] nil)\n\n IWithMeta\n (-with-meta [node meta]\n (with-meta [key val] meta))\n\n IStack\n (-peek [node] val)\n\n (-pop [node] [key])\n\n ICollection\n (-conj [node o] [key val o])\n\n IEmptyableCollection\n (-empty [node] nil)\n\n ISequential\n ISeqable\n (-seq [node] (IndexedSeq. #js [key val] 0 nil))\n\n IReversible\n (-rseq [node] (IndexedSeq. #js [val key] 0 nil))\n\n ICounted\n (-count [node] 2)\n\n IIndexed\n (-nth [node n]\n (cond (== n 0) key\n (== n 1) val\n :else (throw (js/Error. \"Index out of bounds\"))))\n\n (-nth [node n not-found]\n (cond (== n 0) key\n (== n 1) val\n :else not-found))\n\n ILookup\n (-lookup [node k] (-nth node k nil))\n (-lookup [node k not-found] (-nth node k not-found))\n\n IAssociative\n (-assoc [node k v]\n (assoc [key val] k v))\n (-contains-key? [node k]\n (or (== k 0) (== k 1)))\n\n IFind\n (-find [node k]\n (case k\n 0 (MapEntry. 0 key nil)\n 1 (MapEntry. 1 val nil)\n nil))\n\n IVector\n (-assoc-n [node n v]\n (-assoc-n [key val] n v))\n\n IReduce\n (-reduce [node f]\n (ci-reduce node f))\n\n (-reduce [node f start]\n (ci-reduce node f start))\n\n IFn\n (-invoke [node k]\n (-nth node k))\n\n (-invoke [node k not-found]\n (-nth node k not-found)))\n\n(defn map-entry?\n \"Returns true if x satisfies IMapEntry\"\n [x]\n (implements? IMapEntry x))\n\n(deftype PersistentArrayMapSeq [arr i _meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] _meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta _meta)\n coll\n (PersistentArrayMapSeq. arr i new-meta)))\n\n ICounted\n (-count [coll]\n (/ (- (alength arr) i) 2))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n ISeq\n (-first [coll]\n (MapEntry. (aget arr i) (aget arr (inc i)) nil))\n\n (-rest [coll]\n (if (< i (- (alength arr) 2))\n (PersistentArrayMapSeq. arr (+ i 2) nil)\n ()))\n\n INext\n (-next [coll]\n (when (< i (- (alength arr) 2))\n (PersistentArrayMapSeq. arr (+ i 2) nil)))\n\n IDrop\n (-drop [coll n]\n (when (< n (-count coll))\n (PersistentArrayMapSeq. arr (+ i (* 2 n)) nil)))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable PersistentArrayMapSeq)\n\n(defn persistent-array-map-seq [arr i _meta]\n (when (<= i (- (alength arr) 2))\n (PersistentArrayMapSeq. arr i _meta)))\n\n(declare keys vals)\n\n(deftype PersistentArrayMapIterator [arr ^:mutable i cnt]\n Object\n (hasNext [_]\n (< i cnt))\n (next [_]\n (let [ret (MapEntry. (aget arr i) (aget arr (inc i)) nil)]\n (set! i (+ i 2))\n ret)))\n\n(deftype PersistentArrayMap [meta cnt arr ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (keys [coll]\n (es6-iterator (keys coll)))\n (entries [coll]\n (es6-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (vals coll)))\n (has [coll k]\n (contains? coll k))\n (get [coll k not-found]\n (-lookup coll k not-found))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentArrayMap. meta cnt arr __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentArrayMap. new-meta cnt arr __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (loop [ret coll es (seq entry)]\n (if (nil? es)\n ret\n (let [e (first es)]\n (if (vector? e)\n (recur (-assoc ret (-nth e 0) (-nth e 1))\n (next es))\n (throw (js/Error. \"conj on a map takes map entries or seqables of map entries\"))))))))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentArrayMap) meta))\n\n IEquiv\n (-equiv [coll other]\n (if (and (map? other) (not (record? other)))\n (let [alen (alength arr)\n ^not-native other other]\n (if (== cnt (-count other))\n (loop [i 0]\n (if (< i alen)\n (let [v (-lookup other (aget arr i) lookup-sentinel)]\n (if-not (identical? v lookup-sentinel)\n (if (= (aget arr (inc i)) v)\n (recur (+ i 2))\n false)\n false))\n true))\n false))\n false))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n IIterable\n (-iterator [this]\n (PersistentArrayMapIterator. arr 0 (* cnt 2)))\n\n ISeqable\n (-seq [coll]\n (persistent-array-map-seq arr 0 nil))\n\n IDrop\n (-drop [coll n]\n (when-some [s (-seq coll)]\n (-drop s n)))\n\n ICounted\n (-count [coll] cnt)\n\n ILookup\n (-lookup [coll k]\n (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (let [idx (array-map-index-of coll k)]\n (if (== idx -1)\n not-found\n (aget arr (inc idx)))))\n\n IAssociative\n (-assoc [coll k v]\n (let [idx (array-map-index-of coll k)]\n (cond\n (== idx -1)\n (if (< cnt (.-HASHMAP-THRESHOLD PersistentArrayMap))\n (let [arr (array-map-extend-kv coll k v)]\n (PersistentArrayMap. meta (inc cnt) arr nil))\n (-> (into (.-EMPTY PersistentHashMap) coll)\n (-assoc k v)\n (-with-meta meta)))\n\n (identical? v (aget arr (inc idx)))\n coll\n\n :else\n (let [arr (doto (aclone arr)\n (aset (inc idx) v))]\n (PersistentArrayMap. meta cnt arr nil)))))\n\n (-contains-key? [coll k]\n (not (== (array-map-index-of coll k) -1)))\n\n IFind\n (-find [coll k]\n (let [idx (array-map-index-of coll k)]\n (when-not (== idx -1)\n (MapEntry. (aget arr idx) (aget arr (inc idx)) nil))))\n\n IMap\n (-dissoc [coll k]\n (let [idx (array-map-index-of coll k)]\n (if (>= idx 0)\n (let [len (alength arr)\n new-len (- len 2)]\n (if (zero? new-len)\n (-empty coll)\n (let [new-arr (make-array new-len)]\n (loop [s 0 d 0]\n (cond\n (>= s len) (PersistentArrayMap. meta (dec cnt) new-arr nil)\n (= k (aget arr s)) (recur (+ s 2) d)\n :else (do (aset new-arr d (aget arr s))\n (aset new-arr (inc d) (aget arr (inc s)))\n (recur (+ s 2) (+ d 2))))))))\n coll)))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (let [len (alength arr)]\n (loop [i 0 init init]\n (if (< i len)\n (let [init (f init (aget arr i) (aget arr (inc i)))]\n (if (reduced? init)\n @init\n (recur (+ i 2) init)))\n init))))\n\n IReduce\n (-reduce [coll f]\n (iter-reduce coll f))\n (-reduce [coll f start]\n (iter-reduce coll f start))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll]\n (TransientArrayMap. (js-obj) (alength arr) (aclone arr))))\n\n(set! (.-EMPTY PersistentArrayMap) (PersistentArrayMap. nil 0 (array) empty-unordered-hash))\n\n(set! (.-HASHMAP-THRESHOLD PersistentArrayMap) 8)\n\n(set! (.-fromArray PersistentArrayMap)\n (fn [arr ^boolean no-clone ^boolean no-check]\n (as-> (if no-clone arr (aclone arr)) arr\n (if no-check\n arr\n (let [ret (array)]\n (loop [i 0]\n (when (< i (alength arr))\n (let [k (aget arr i)\n v (aget arr (inc i))\n idx (array-index-of ret k)]\n (when (== idx -1)\n (.push ret k)\n (.push ret v)))\n (recur (+ i 2))))\n ret))\n (let [cnt (/ (alength arr) 2)]\n (PersistentArrayMap. nil cnt arr nil)))))\n\n(set! (.-createWithCheck PersistentArrayMap)\n (fn [arr]\n (let [ret (array)]\n (loop [i 0]\n (when (< i (alength arr))\n (let [k (aget arr i)\n v (aget arr (inc i))\n idx (array-index-of ret k)]\n (if (== idx -1)\n (doto ret (.push k) (.push v))\n (throw (js/Error. (str \"Duplicate key: \" k)))))\n (recur (+ i 2))))\n (let [cnt (/ (alength arr) 2)]\n (PersistentArrayMap. nil cnt arr nil)))))\n\n(defn key-test [key other]\n (cond\n (identical? key other) true\n (keyword-identical? key other) true\n :else (= key other)))\n\n(defn- ^boolean pam-dupes? [arr]\n (loop [i 0]\n (if (< i (alength arr))\n (let [dupe? (loop [j 0]\n (if (< j i)\n (or\n (key-test (aget arr i) (aget arr j))\n (recur (+ 2 j)))\n false))]\n (or dupe? (recur (+ 2 i))))\n false)))\n\n(defn- pam-new-size [arr]\n (loop [i 0 n 0]\n (if (< i (alength arr))\n (let [dupe? (loop [j 0]\n (if (< j i)\n (or\n (key-test (aget arr i) (aget arr j))\n (recur (+ 2 j)))\n false))]\n (recur (+ 2 i) (if dupe? n (+ n 2))))\n n)))\n\n(defn- pam-grow-seed-array [seed trailing]\n (let [seed-cnt (dec (alength seed))\n extra-kvs (seq trailing)\n ret (make-array (+ seed-cnt (* 2 (count extra-kvs))))\n ret (array-copy seed 0 ret 0 seed-cnt)]\n (loop [i seed-cnt extra-kvs extra-kvs]\n (if extra-kvs\n (let [kv (first extra-kvs)]\n (aset ret i (-key kv))\n (aset ret (inc i) (-val kv))\n (recur (+ 2 seed-cnt) (next extra-kvs)))\n ret))))\n\n(set! (.-createAsIfByAssoc PersistentArrayMap)\n (fn [init]\n ;; check trailing element\n (let [len (alength init)\n has-trailing? (== 1 (bit-and len 1))]\n (if-not (or has-trailing? (pam-dupes? init))\n (PersistentArrayMap. nil (/ len 2) init nil)\n (.createAsIfByAssocComplexPath PersistentArrayMap init has-trailing?)))))\n\n(set! (.-createAsIfByAssocComplexPath PersistentArrayMap)\n (fn [init ^boolean has-trailing?]\n (let [init (if has-trailing?\n (pam-grow-seed-array init\n ;; into {} in case the final element is not a map but something conj-able\n ;; for parity with Clojure implementation of CLJ-2603\n (into {} (aget init (dec (alength init)))))\n init)\n n (pam-new-size init)\n len (alength init)]\n (if (< n len)\n (let [nodups (make-array n)]\n (loop [i 0 m 0]\n (if (< i len)\n (let [dupe? (loop [j 0]\n (if (< j m)\n (or\n (key-test (aget init i) (aget init j))\n (recur (+ 2 j)))\n false))]\n (if-not dupe?\n (let [j (loop [j (- len 2)]\n (if (>= j i)\n (if (key-test (aget init i) (aget init j))\n j\n (recur (- j 2)))\n j))]\n (aset nodups m (aget init i))\n (aset nodups (inc m) (aget init (inc j)))\n (recur (+ 2 i) (+ 2 m)))\n (recur (+ 2 i) m)))))\n (PersistentArrayMap. nil (/ (alength nodups) 2) nodups nil))\n (PersistentArrayMap. nil (/ (alength init) 2) init nil)))))\n\n(es6-iterable PersistentArrayMap)\n\n(declare array->transient-hash-map)\n\n(deftype TransientArrayMap [^:mutable ^boolean editable?\n ^:mutable len\n arr]\n ICounted\n (-count [tcoll]\n (if editable?\n (quot len 2)\n (throw (js/Error. \"count after persistent!\"))))\n\n ILookup\n (-lookup [tcoll k]\n (-lookup tcoll k nil))\n\n (-lookup [tcoll k not-found]\n (if editable?\n (let [idx (array-map-index-of tcoll k)]\n (if (== idx -1)\n not-found\n (aget arr (inc idx))))\n (throw (js/Error. \"lookup after persistent!\"))))\n\n ITransientCollection\n (-conj! [tcoll o]\n (if editable?\n (cond\n (map-entry? o)\n (-assoc! tcoll (key o) (val o))\n\n (vector? o)\n (-assoc! tcoll (o 0) (o 1))\n\n :else\n (loop [es (seq o) tcoll tcoll]\n (if-let [e (first es)]\n (recur (next es)\n (-assoc! tcoll (key e) (val e)))\n tcoll)))\n (throw (js/Error. \"conj! after persistent!\"))))\n\n (-persistent! [tcoll]\n (if editable?\n (do (set! editable? false)\n (PersistentArrayMap. nil (quot len 2) arr nil))\n (throw (js/Error. \"persistent! called twice\"))))\n\n ITransientAssociative\n (-assoc! [tcoll key val]\n (if editable?\n (let [idx (array-map-index-of tcoll key)]\n (if (== idx -1)\n (if (<= (+ len 2) (* 2 (.-HASHMAP-THRESHOLD PersistentArrayMap)))\n (do (set! len (+ len 2))\n (.push arr key)\n (.push arr val)\n tcoll)\n (assoc! (array->transient-hash-map len arr) key val))\n (if (identical? val (aget arr (inc idx)))\n tcoll\n (do (aset arr (inc idx) val)\n tcoll))))\n (throw (js/Error. \"assoc! after persistent!\"))))\n\n ITransientMap\n (-dissoc! [tcoll key]\n (if editable?\n (let [idx (array-map-index-of tcoll key)]\n (when (>= idx 0)\n (aset arr idx (aget arr (- len 2)))\n (aset arr (inc idx) (aget arr (dec len)))\n (doto arr .pop .pop)\n (set! len (- len 2)))\n tcoll)\n (throw (js/Error. \"dissoc! after persistent!\"))))\n\n IFn\n (-invoke [tcoll key]\n (-lookup tcoll key nil))\n (-invoke [tcoll key not-found]\n (-lookup tcoll key not-found)))\n\n(declare TransientHashMap)\n\n(defn- array->transient-hash-map [len arr]\n (loop [out (transient (.-EMPTY PersistentHashMap))\n i 0]\n (if (< i len)\n (recur (assoc! out (aget arr i) (aget arr (inc i))) (+ i 2))\n out)))\n\n;;; PersistentHashMap\n\n(deftype Box [^:mutable val])\n\n(declare create-inode-seq create-array-node-seq create-node)\n\n(defn- mask [hash shift]\n (bit-and (bit-shift-right-zero-fill hash shift) 0x01f))\n\n(defn- clone-and-set\n ([arr i a]\n (doto (aclone arr)\n (aset i a)))\n ([arr i a j b]\n (doto (aclone arr)\n (aset i a)\n (aset j b))))\n\n(defn- remove-pair [arr i]\n (let [new-arr (make-array (- (alength arr) 2))]\n (array-copy arr 0 new-arr 0 (* 2 i))\n (array-copy arr (* 2 (inc i)) new-arr (* 2 i) (- (alength new-arr) (* 2 i)))\n new-arr))\n\n(defn- bitmap-indexed-node-index [bitmap bit]\n (bit-count (bit-and bitmap (dec bit))))\n\n(defn- bitpos [hash shift]\n (bit-shift-left 1 (mask hash shift)))\n\n(defn- edit-and-set\n ([inode edit i a]\n (let [editable (.ensure-editable inode edit)]\n (aset (.-arr editable) i a)\n editable))\n ([inode edit i a j b]\n (let [editable (.ensure-editable inode edit)]\n (aset (.-arr editable) i a)\n (aset (.-arr editable) j b)\n editable)))\n\n(defn- inode-kv-reduce [arr f init]\n (let [len (alength arr)]\n (loop [i 0 init init]\n (if (< i len)\n (let [init (let [k (aget arr i)]\n (if-not (nil? k)\n (f init k (aget arr (inc i)))\n (let [node (aget arr (inc i))]\n (if-not (nil? node)\n (.kv-reduce node f init)\n init))))]\n (if (reduced? init)\n init\n (recur (+ i 2) init)))\n init))))\n\n(declare ArrayNode)\n\n (deftype NodeIterator [arr ^:mutable i ^:mutable next-entry ^:mutable next-iter]\n Object\n (advance [this]\n (let [len (alength arr)]\n (loop []\n (if (< i len)\n (let [key (aget arr i)\n node-or-val (aget arr (inc i))\n ^boolean found\n (cond (some? key)\n (set! next-entry (MapEntry. key node-or-val nil))\n (some? node-or-val)\n (let [new-iter (-iterator node-or-val)]\n (if ^boolean (.hasNext new-iter)\n (set! next-iter new-iter)\n false))\n :else false)]\n (set! i (+ i 2))\n (if found true (recur)))\n false))))\n (hasNext [this]\n (or (some? next-entry) (some? next-iter) (.advance this)))\n (next [this]\n (cond\n (some? next-entry)\n (let [ret next-entry]\n (set! next-entry nil)\n ret)\n (some? next-iter)\n (let [ret (.next next-iter)]\n (when-not ^boolean (.hasNext next-iter)\n (set! next-iter nil))\n ret)\n ^boolean (.advance this)\n (.next this)\n :else (throw (js/Error. \"No such element\"))))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(deftype BitmapIndexedNode [edit ^:mutable bitmap ^:mutable arr]\n Object\n (inode-assoc [inode shift hash key val added-leaf?]\n (let [bit (bitpos hash shift)\n idx (bitmap-indexed-node-index bitmap bit)]\n (if (zero? (bit-and bitmap bit))\n (let [n (bit-count bitmap)]\n (if (>= n 16)\n (let [nodes (make-array 32)\n jdx (mask hash shift)]\n (aset nodes jdx (.inode-assoc (.-EMPTY BitmapIndexedNode) (+ shift 5) hash key val added-leaf?))\n (loop [i 0 j 0]\n (if (< i 32)\n (if (zero? (bit-and (bit-shift-right-zero-fill bitmap i) 1))\n (recur (inc i) j)\n (do (aset nodes i\n (if-not (nil? (aget arr j))\n (.inode-assoc (.-EMPTY BitmapIndexedNode)\n (+ shift 5) (cljs.core/hash (aget arr j)) (aget arr j) (aget arr (inc j)) added-leaf?)\n (aget arr (inc j))))\n (recur (inc i) (+ j 2))))))\n (ArrayNode. nil (inc n) nodes))\n (let [new-arr (make-array (* 2 (inc n)))]\n (array-copy arr 0 new-arr 0 (* 2 idx))\n (aset new-arr (* 2 idx) key)\n (aset new-arr (inc (* 2 idx)) val)\n (array-copy arr (* 2 idx) new-arr (* 2 (inc idx)) (* 2 (- n idx)))\n (set! (.-val added-leaf?) true)\n (BitmapIndexedNode. nil (bit-or bitmap bit) new-arr))))\n (let [key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-assoc val-or-node (+ shift 5) hash key val added-leaf?)]\n (if (identical? n val-or-node)\n inode\n (BitmapIndexedNode. nil bitmap (clone-and-set arr (inc (* 2 idx)) n))))\n\n (key-test key key-or-nil)\n (if (identical? val val-or-node)\n inode\n (BitmapIndexedNode. nil bitmap (clone-and-set arr (inc (* 2 idx)) val)))\n\n :else\n (do (set! (.-val added-leaf?) true)\n (BitmapIndexedNode. nil bitmap\n (clone-and-set arr (* 2 idx) nil (inc (* 2 idx))\n (create-node (+ shift 5) key-or-nil val-or-node hash key val)))))))))\n\n (inode-without [inode shift hash key]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n inode\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-without val-or-node (+ shift 5) hash key)]\n (cond (identical? n val-or-node) inode\n (not (nil? n)) (BitmapIndexedNode. nil bitmap (clone-and-set arr (inc (* 2 idx)) n))\n (== bitmap bit) nil\n :else (BitmapIndexedNode. nil (bit-xor bitmap bit) (remove-pair arr idx))))\n (key-test key key-or-nil)\n (if (== bitmap bit)\n nil\n (BitmapIndexedNode. nil (bit-xor bitmap bit) (remove-pair arr idx)))\n :else inode)))))\n\n (inode-lookup [inode shift hash key not-found]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n not-found\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil) (.inode-lookup val-or-node (+ shift 5) hash key not-found)\n (key-test key key-or-nil) val-or-node\n :else not-found)))))\n\n (inode-find [inode shift hash key not-found]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n not-found\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil) (.inode-find val-or-node (+ shift 5) hash key not-found)\n (key-test key key-or-nil) (MapEntry. key-or-nil val-or-node nil)\n :else not-found)))))\n\n (inode-seq [inode]\n (create-inode-seq arr))\n\n (ensure-editable [inode e]\n (if (identical? e edit)\n inode\n (let [n (bit-count bitmap)\n new-arr (make-array (if (neg? n) 4 (* 2 (inc n))))]\n (array-copy arr 0 new-arr 0 (* 2 n))\n (BitmapIndexedNode. e bitmap new-arr))))\n\n (edit-and-remove-pair [inode e bit i]\n (if (== bitmap bit)\n nil\n (let [editable (.ensure-editable inode e)\n earr (.-arr editable)\n len (alength earr)]\n (set! (.-bitmap editable) (bit-xor bit (.-bitmap editable)))\n (array-copy earr (* 2 (inc i))\n earr (* 2 i)\n (- len (* 2 (inc i))))\n (aset earr (- len 2) nil)\n (aset earr (dec len) nil)\n editable)))\n\n (inode-assoc! [inode edit shift hash key val added-leaf?]\n (let [bit (bitpos hash shift)\n idx (bitmap-indexed-node-index bitmap bit)]\n (if (zero? (bit-and bitmap bit))\n (let [n (bit-count bitmap)]\n (cond\n (< (* 2 n) (alength arr))\n (let [editable (.ensure-editable inode edit)\n earr (.-arr editable)]\n (set! (.-val added-leaf?) true)\n (array-copy-downward earr (* 2 idx)\n earr (* 2 (inc idx))\n (* 2 (- n idx)))\n (aset earr (* 2 idx) key)\n (aset earr (inc (* 2 idx)) val)\n (set! (.-bitmap editable) (bit-or (.-bitmap editable) bit))\n editable)\n\n (>= n 16)\n (let [nodes (make-array 32)\n jdx (mask hash shift)]\n (aset nodes jdx (.inode-assoc! (.-EMPTY BitmapIndexedNode) edit (+ shift 5) hash key val added-leaf?))\n (loop [i 0 j 0]\n (if (< i 32)\n (if (zero? (bit-and (bit-shift-right-zero-fill bitmap i) 1))\n (recur (inc i) j)\n (do (aset nodes i\n (if-not (nil? (aget arr j))\n (.inode-assoc! (.-EMPTY BitmapIndexedNode)\n edit (+ shift 5) (cljs.core/hash (aget arr j)) (aget arr j) (aget arr (inc j)) added-leaf?)\n (aget arr (inc j))))\n (recur (inc i) (+ j 2))))))\n (ArrayNode. edit (inc n) nodes))\n\n :else\n (let [new-arr (make-array (* 2 (+ n 4)))]\n (array-copy arr 0 new-arr 0 (* 2 idx))\n (aset new-arr (* 2 idx) key)\n (aset new-arr (inc (* 2 idx)) val)\n (array-copy arr (* 2 idx) new-arr (* 2 (inc idx)) (* 2 (- n idx)))\n (set! (.-val added-leaf?) true)\n (let [editable (.ensure-editable inode edit)]\n (set! (.-arr editable) new-arr)\n (set! (.-bitmap editable) (bit-or (.-bitmap editable) bit))\n editable))))\n (let [key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-assoc! val-or-node edit (+ shift 5) hash key val added-leaf?)]\n (if (identical? n val-or-node)\n inode\n (edit-and-set inode edit (inc (* 2 idx)) n)))\n\n (key-test key key-or-nil)\n (if (identical? val val-or-node)\n inode\n (edit-and-set inode edit (inc (* 2 idx)) val))\n\n :else\n (do (set! (.-val added-leaf?) true)\n (edit-and-set inode edit (* 2 idx) nil (inc (* 2 idx))\n (create-node edit (+ shift 5) key-or-nil val-or-node hash key val))))))))\n\n (inode-without! [inode edit shift hash key removed-leaf?]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n inode\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-without! val-or-node edit (+ shift 5) hash key removed-leaf?)]\n (cond (identical? n val-or-node) inode\n (not (nil? n)) (edit-and-set inode edit (inc (* 2 idx)) n)\n (== bitmap bit) nil\n :else (.edit-and-remove-pair inode edit bit idx)))\n (key-test key key-or-nil)\n (do (set! (.-val removed-leaf?) true)\n (.edit-and-remove-pair inode edit bit idx))\n :else inode)))))\n\n (kv-reduce [inode f init]\n (inode-kv-reduce arr f init))\n\n IIterable\n (-iterator [coll]\n (NodeIterator. arr 0 nil nil)))\n\n(set! (.-EMPTY BitmapIndexedNode) (BitmapIndexedNode. nil 0 (make-array 0)))\n\n(defn- pack-array-node [array-node edit idx]\n (let [arr (.-arr array-node)\n len (alength arr)\n new-arr (make-array (* 2 (dec (.-cnt array-node))))]\n (loop [i 0 j 1 bitmap 0]\n (if (< i len)\n (if (and (not (== i idx))\n (not (nil? (aget arr i))))\n (do (aset new-arr j (aget arr i))\n (recur (inc i) (+ j 2) (bit-or bitmap (bit-shift-left 1 i))))\n (recur (inc i) j bitmap))\n (BitmapIndexedNode. edit bitmap new-arr)))))\n\n(deftype ArrayNodeIterator [arr ^:mutable i ^:mutable next-iter]\n Object\n (hasNext [this]\n (let [len (alength arr)]\n (loop []\n (if-not (and (some? next-iter) ^boolean (.hasNext next-iter))\n (if (< i len)\n (let [node (aget arr i)]\n (set! i (inc i))\n (when (some? node)\n (set! next-iter (-iterator node)))\n (recur))\n false)\n true))))\n (next [this]\n (if ^boolean (.hasNext this)\n (.next next-iter)\n (throw (js/Error. \"No such element\"))))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(deftype ArrayNode [edit ^:mutable cnt ^:mutable arr]\n Object\n (inode-assoc [inode shift hash key val added-leaf?]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if (nil? node)\n (ArrayNode. nil (inc cnt) (clone-and-set arr idx (.inode-assoc (.-EMPTY BitmapIndexedNode) (+ shift 5) hash key val added-leaf?)))\n (let [n (.inode-assoc node (+ shift 5) hash key val added-leaf?)]\n (if (identical? n node)\n inode\n (ArrayNode. nil cnt (clone-and-set arr idx n)))))))\n\n (inode-without [inode shift hash key]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if-not (nil? node)\n (let [n (.inode-without node (+ shift 5) hash key)]\n (cond\n (identical? n node)\n inode\n\n (nil? n)\n (if (<= cnt 8)\n (pack-array-node inode nil idx)\n (ArrayNode. nil (dec cnt) (clone-and-set arr idx n)))\n\n :else\n (ArrayNode. nil cnt (clone-and-set arr idx n))))\n inode)))\n\n (inode-lookup [inode shift hash key not-found]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if-not (nil? node)\n (.inode-lookup node (+ shift 5) hash key not-found)\n not-found)))\n\n (inode-find [inode shift hash key not-found]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if-not (nil? node)\n (.inode-find node (+ shift 5) hash key not-found)\n not-found)))\n\n (inode-seq [inode]\n (create-array-node-seq arr))\n\n (ensure-editable [inode e]\n (if (identical? e edit)\n inode\n (ArrayNode. e cnt (aclone arr))))\n\n (inode-assoc! [inode edit shift hash key val added-leaf?]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if (nil? node)\n (let [editable (edit-and-set inode edit idx (.inode-assoc! (.-EMPTY BitmapIndexedNode) edit (+ shift 5) hash key val added-leaf?))]\n (set! (.-cnt editable) (inc (.-cnt editable)))\n editable)\n (let [n (.inode-assoc! node edit (+ shift 5) hash key val added-leaf?)]\n (if (identical? n node)\n inode\n (edit-and-set inode edit idx n))))))\n\n (inode-without! [inode edit shift hash key removed-leaf?]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if (nil? node)\n inode\n (let [n (.inode-without! node edit (+ shift 5) hash key removed-leaf?)]\n (cond\n (identical? n node)\n inode\n\n (nil? n)\n (if (<= cnt 8)\n (pack-array-node inode edit idx)\n (let [editable (edit-and-set inode edit idx n)]\n (set! (.-cnt editable) (dec (.-cnt editable)))\n editable))\n\n :else\n (edit-and-set inode edit idx n))))))\n\n (kv-reduce [inode f init]\n (let [len (alength arr)] ; actually 32\n (loop [i 0 init init]\n (if (< i len)\n (let [node (aget arr i)]\n (if-not (nil? node)\n (let [init (.kv-reduce node f init)]\n (if (reduced? init)\n init\n (recur (inc i) init)))\n (recur (inc i) init)))\n init))))\n\n IIterable\n (-iterator [coll]\n (ArrayNodeIterator. arr 0 nil)))\n\n(defn- hash-collision-node-find-index [arr cnt key]\n (let [lim (* 2 cnt)]\n (loop [i 0]\n (if (< i lim)\n (if (key-test key (aget arr i))\n i\n (recur (+ i 2)))\n -1))))\n\n(deftype HashCollisionNode [edit\n ^:mutable collision-hash\n ^:mutable cnt\n ^:mutable arr]\n Object\n (inode-assoc [inode shift hash key val added-leaf?]\n (if (== hash collision-hash)\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (if (== idx -1)\n (let [len (* 2 cnt)\n new-arr (make-array (+ len 2))]\n (array-copy arr 0 new-arr 0 len)\n (aset new-arr len key)\n (aset new-arr (inc len) val)\n (set! (.-val added-leaf?) true)\n (HashCollisionNode. nil collision-hash (inc cnt) new-arr))\n (if (= (aget arr (inc idx)) val)\n inode\n (HashCollisionNode. nil collision-hash cnt (clone-and-set arr (inc idx) val)))))\n (.inode-assoc (BitmapIndexedNode. nil (bitpos collision-hash shift) (array nil inode))\n shift hash key val added-leaf?)))\n\n (inode-without [inode shift hash key]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (cond (== idx -1) inode\n (== cnt 1) nil\n :else (HashCollisionNode. nil collision-hash (dec cnt) (remove-pair arr (quot idx 2))))))\n\n (inode-lookup [inode shift hash key not-found]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (cond (< idx 0) not-found\n (key-test key (aget arr idx)) (aget arr (inc idx))\n :else not-found)))\n\n (inode-find [inode shift hash key not-found]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (cond (< idx 0) not-found\n (key-test key (aget arr idx)) (MapEntry. (aget arr idx) (aget arr (inc idx)) nil)\n :else not-found)))\n\n (inode-seq [inode]\n (create-inode-seq arr))\n\n (ensure-editable [inode e]\n (if (identical? e edit)\n inode\n (let [new-arr (make-array (* 2 (inc cnt)))]\n (array-copy arr 0 new-arr 0 (* 2 cnt))\n (HashCollisionNode. e collision-hash cnt new-arr))))\n\n (ensure-editable-array [inode e count array]\n (if (identical? e edit)\n (do (set! arr array)\n (set! cnt count)\n inode)\n (HashCollisionNode. edit collision-hash count array)))\n\n (inode-assoc! [inode edit shift hash key val added-leaf?]\n (if (== hash collision-hash)\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (if (== idx -1)\n (if (> (alength arr) (* 2 cnt))\n (let [editable (edit-and-set inode edit (* 2 cnt) key (inc (* 2 cnt)) val)]\n (set! (.-val added-leaf?) true)\n (set! (.-cnt editable) (inc (.-cnt editable)))\n editable)\n (let [len (alength arr)\n new-arr (make-array (+ len 2))]\n (array-copy arr 0 new-arr 0 len)\n (aset new-arr len key)\n (aset new-arr (inc len) val)\n (set! (.-val added-leaf?) true)\n (.ensure-editable-array inode edit (inc cnt) new-arr)))\n (if (identical? (aget arr (inc idx)) val)\n inode\n (edit-and-set inode edit (inc idx) val))))\n (.inode-assoc! (BitmapIndexedNode. edit (bitpos collision-hash shift) (array nil inode nil nil))\n edit shift hash key val added-leaf?)))\n\n (inode-without! [inode edit shift hash key removed-leaf?]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (if (== idx -1)\n inode\n (do (set! (.-val removed-leaf?) true)\n (if (== cnt 1)\n nil\n (let [editable (.ensure-editable inode edit)\n earr (.-arr editable)]\n (aset earr idx (aget earr (- (* 2 cnt) 2)))\n (aset earr (inc idx) (aget earr (dec (* 2 cnt))))\n (aset earr (dec (* 2 cnt)) nil)\n (aset earr (- (* 2 cnt) 2) nil)\n (set! (.-cnt editable) (dec (.-cnt editable)))\n editable))))))\n\n (kv-reduce [inode f init]\n (inode-kv-reduce arr f init))\n\n IIterable\n (-iterator [coll]\n (NodeIterator. arr 0 nil nil)))\n\n(defn- create-node\n ([shift key1 val1 key2hash key2 val2]\n (let [key1hash (hash key1)]\n (if (== key1hash key2hash)\n (HashCollisionNode. nil key1hash 2 (array key1 val1 key2 val2))\n (let [added-leaf? (Box. false)]\n (-> (.-EMPTY BitmapIndexedNode)\n (.inode-assoc shift key1hash key1 val1 added-leaf?)\n (.inode-assoc shift key2hash key2 val2 added-leaf?))))))\n ([edit shift key1 val1 key2hash key2 val2]\n (let [key1hash (hash key1)]\n (if (== key1hash key2hash)\n (HashCollisionNode. nil key1hash 2 (array key1 val1 key2 val2))\n (let [added-leaf? (Box. false)]\n (-> (.-EMPTY BitmapIndexedNode)\n (.inode-assoc! edit shift key1hash key1 val1 added-leaf?)\n (.inode-assoc! edit shift key2hash key2 val2 added-leaf?)))))))\n\n(deftype NodeSeq [meta nodes i s ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (NodeSeq. new-meta nodes i s __hash)))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeq\n (-first [coll]\n (if (nil? s)\n (MapEntry. (aget nodes i) (aget nodes (inc i)) nil)\n (first s)))\n\n (-rest [coll]\n (let [ret (if (nil? s)\n (create-inode-seq nodes (+ i 2) nil)\n (create-inode-seq nodes i (next s)))]\n (if-not (nil? ret) ret ())))\n\n INext\n (-next [coll]\n (if (nil? s)\n (create-inode-seq nodes (+ i 2) nil)\n (create-inode-seq nodes i (next s))))\n\n ISeqable\n (-seq [this] this)\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable NodeSeq)\n\n(defn- create-inode-seq\n ([nodes]\n (create-inode-seq nodes 0 nil))\n ([nodes i s]\n (if (nil? s)\n (let [len (alength nodes)]\n (loop [j i]\n (if (< j len)\n (if-not (nil? (aget nodes j))\n (NodeSeq. nil nodes j nil nil)\n (if-let [node (aget nodes (inc j))]\n (if-let [node-seq (.inode-seq node)]\n (NodeSeq. nil nodes (+ j 2) node-seq nil)\n (recur (+ j 2)))\n (recur (+ j 2)))))))\n (NodeSeq. nil nodes i s nil))))\n\n(deftype ArrayNodeSeq [meta nodes i s ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (ArrayNodeSeq. new-meta nodes i s __hash)))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeq\n (-first [coll] (first s))\n (-rest [coll]\n (let [ret (create-array-node-seq nodes i (next s))]\n (if-not (nil? ret) ret ())))\n\n INext\n (-next [coll]\n (create-array-node-seq nodes i (next s)))\n\n ISeqable\n (-seq [this] this)\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable ArrayNodeSeq)\n\n(defn- create-array-node-seq\n ([nodes] (create-array-node-seq nodes 0 nil))\n ([nodes i s]\n (if (nil? s)\n (let [len (alength nodes)]\n (loop [j i]\n (if (< j len)\n (if-let [nj (aget nodes j)]\n (if-let [ns (.inode-seq nj)]\n (ArrayNodeSeq. nil nodes (inc j) ns nil)\n (recur (inc j)))\n (recur (inc j))))))\n (ArrayNodeSeq. nil nodes i s nil))))\n\n(deftype HashMapIter [nil-val root-iter ^:mutable seen]\n Object\n (hasNext [_]\n (or (not ^boolean seen) ^boolean (.hasNext root-iter)))\n (next [_]\n (if-not ^boolean seen\n (do\n (set! seen true)\n (MapEntry. nil nil-val nil))\n (.next root-iter)))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(deftype PersistentHashMap [meta cnt root ^boolean has-nil? nil-val ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (keys [coll]\n (es6-iterator (keys coll)))\n (entries [coll]\n (es6-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (vals coll)))\n (has [coll k]\n (contains? coll k))\n (get [coll k not-found]\n (-lookup coll k not-found))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentHashMap. meta cnt root has-nil? nil-val __hash))\n\n IIterable\n (-iterator [coll]\n (let [root-iter (if ^boolean root (-iterator root) (nil-iter))]\n (if has-nil?\n (HashMapIter. nil-val root-iter false)\n root-iter)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentHashMap. new-meta cnt root has-nil? nil-val __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (loop [ret coll es (seq entry)]\n (if (nil? es)\n ret\n (let [e (first es)]\n (if (vector? e)\n (recur (-assoc ret (-nth e 0) (-nth e 1))\n (next es))\n (throw (js/Error. \"conj on a map takes map entries or seqables of map entries\"))))))))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentHashMap) meta))\n\n IEquiv\n (-equiv [coll other] (equiv-map coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (when (pos? cnt)\n (let [s (if-not (nil? root) (.inode-seq root))]\n (if has-nil?\n (cons (MapEntry. nil nil-val nil) s)\n s))))\n\n ICounted\n (-count [coll] cnt)\n\n ILookup\n (-lookup [coll k]\n (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (cond (nil? k) (if has-nil?\n nil-val\n not-found)\n (nil? root) not-found\n :else (.inode-lookup root 0 (hash k) k not-found)))\n\n IAssociative\n (-assoc [coll k v]\n (if (nil? k)\n (if (and has-nil? (identical? v nil-val))\n coll\n (PersistentHashMap. meta (if has-nil? cnt (inc cnt)) root true v nil))\n (let [added-leaf? (Box. false)\n new-root (-> (if (nil? root)\n (.-EMPTY BitmapIndexedNode)\n root)\n (.inode-assoc 0 (hash k) k v added-leaf?))]\n (if (identical? new-root root)\n coll\n (PersistentHashMap. meta (if ^boolean (.-val added-leaf?) (inc cnt) cnt) new-root has-nil? nil-val nil)))))\n\n (-contains-key? [coll k]\n (cond (nil? k) has-nil?\n (nil? root) false\n :else (not (identical? (.inode-lookup root 0 (hash k) k lookup-sentinel)\n lookup-sentinel))))\n\n IFind\n (-find [coll k]\n (cond\n (nil? k) (when has-nil? (MapEntry. nil nil-val nil))\n (nil? root) nil\n :else (.inode-find root 0 (hash k) k nil)))\n\n IMap\n (-dissoc [coll k]\n (cond (nil? k) (if has-nil?\n (PersistentHashMap. meta (dec cnt) root false nil nil)\n coll)\n (nil? root) coll\n :else\n (let [new-root (.inode-without root 0 (hash k) k)]\n (if (identical? new-root root)\n coll\n (PersistentHashMap. meta (dec cnt) new-root has-nil? nil-val nil)))))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (let [init (if has-nil? (f init nil nil-val) init)]\n (cond\n (reduced? init) @init\n (not (nil? root)) (unreduced (.kv-reduce root f init))\n :else init)))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll]\n (TransientHashMap. (js-obj) root cnt has-nil? nil-val)))\n\n(set! (.-EMPTY PersistentHashMap) (PersistentHashMap. nil 0 nil false nil empty-unordered-hash))\n\n(set! (.-fromArray PersistentHashMap)\n (fn [arr ^boolean no-clone]\n (let [arr (if no-clone arr (aclone arr))\n len (alength arr)]\n (loop [i 0 ret (transient (.-EMPTY PersistentHashMap))]\n (if (< i len)\n (recur (+ i 2)\n (-assoc! ret (aget arr i) (aget arr (inc i))))\n (-persistent! ret))))))\n\n(set! (.-fromArrays PersistentHashMap)\n (fn [ks vs]\n (let [len (alength ks)]\n (loop [i 0 ^not-native out (transient (.-EMPTY PersistentHashMap))]\n (if (< i len)\n (if (<= (alength vs) i)\n (throw (js/Error. (str \"No value supplied for key: \" (aget ks i))))\n (recur (inc i) (-assoc! out (aget ks i) (aget vs i))))\n (persistent! out))))))\n\n(set! (.-createWithCheck PersistentHashMap)\n (fn [arr]\n (let [len (alength arr)\n ret (transient (.-EMPTY PersistentHashMap))]\n (loop [i 0]\n (when (< i len)\n (-assoc! ret (aget arr i) (aget arr (inc i)))\n (if (not= (-count ret) (inc (/ i 2)))\n (throw (js/Error. (str \"Duplicate key: \" (aget arr i))))\n (recur (+ i 2)))))\n (-persistent! ret))))\n\n(es6-iterable PersistentHashMap)\n\n(deftype TransientHashMap [^:mutable ^boolean edit\n ^:mutable root\n ^:mutable count\n ^:mutable ^boolean has-nil?\n ^:mutable nil-val]\n Object\n (conj! [tcoll o]\n (if edit\n (cond\n (map-entry? o)\n (.assoc! tcoll (key o) (val o))\n\n (vector? o)\n (.assoc! tcoll (o 0) (o 1))\n\n :else\n (loop [es (seq o) tcoll tcoll]\n (if-let [e (first es)]\n (recur (next es)\n (.assoc! tcoll (key e) (val e)))\n tcoll)))\n (throw (js/Error. \"conj! after persistent\"))))\n\n (assoc! [tcoll k v]\n (if edit\n (if (nil? k)\n (do (if (identical? nil-val v)\n nil\n (set! nil-val v))\n (if has-nil?\n nil\n (do (set! count (inc count))\n (set! has-nil? true)))\n tcoll)\n (let [added-leaf? (Box. false)\n node (-> (if (nil? root)\n (.-EMPTY BitmapIndexedNode)\n root)\n (.inode-assoc! edit 0 (hash k) k v added-leaf?))]\n (if (identical? node root)\n nil\n (set! root node))\n (if ^boolean (.-val added-leaf?)\n (set! count (inc count)))\n tcoll))\n (throw (js/Error. \"assoc! after persistent!\"))))\n\n (without! [tcoll k]\n (if edit\n (if (nil? k)\n (if has-nil?\n (do (set! has-nil? false)\n (set! nil-val nil)\n (set! count (dec count))\n tcoll)\n tcoll)\n (if (nil? root)\n tcoll\n (let [removed-leaf? (Box. false)\n node (.inode-without! root edit 0 (hash k) k removed-leaf?)]\n (if (identical? node root)\n nil\n (set! root node))\n (if ^boolean (.-val removed-leaf?)\n (set! count (dec count)))\n tcoll)))\n (throw (js/Error. \"dissoc! after persistent!\"))))\n\n (persistent! [tcoll]\n (if edit\n (do (set! edit nil)\n (PersistentHashMap. nil count root has-nil? nil-val nil))\n (throw (js/Error. \"persistent! called twice\"))))\n\n ICounted\n (-count [coll]\n (if edit\n count\n (throw (js/Error. \"count after persistent!\"))))\n\n ILookup\n (-lookup [tcoll k]\n (if (nil? k)\n (if has-nil?\n nil-val)\n (if (nil? root)\n nil\n (.inode-lookup root 0 (hash k) k))))\n\n (-lookup [tcoll k not-found]\n (if (nil? k)\n (if has-nil?\n nil-val\n not-found)\n (if (nil? root)\n not-found\n (.inode-lookup root 0 (hash k) k not-found))))\n\n ITransientCollection\n (-conj! [tcoll val] (.conj! tcoll val))\n\n (-persistent! [tcoll] (.persistent! tcoll))\n\n ITransientAssociative\n (-assoc! [tcoll key val] (.assoc! tcoll key val))\n\n ITransientMap\n (-dissoc! [tcoll key] (.without! tcoll key))\n\n IFn\n (-invoke [tcoll key]\n (-lookup tcoll key))\n (-invoke [tcoll key not-found]\n (-lookup tcoll key not-found)))\n\n;;; PersistentTreeMap\n\n(defn- tree-map-seq-push [node stack ^boolean ascending?]\n (loop [t node stack stack]\n (if-not (nil? t)\n (recur (if ascending? (.-left t) (.-right t))\n (conj stack t))\n stack)))\n\n(deftype PersistentTreeMapSeq [meta stack ^boolean ascending? cnt ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ISeqable\n (-seq [this] this)\n\n ISequential\n ISeq\n (-first [this] (peek stack))\n (-rest [this]\n (let [t (first stack)\n next-stack (tree-map-seq-push (if ascending? (.-right t) (.-left t))\n (next stack)\n ascending?)]\n (if-not (nil? next-stack)\n (PersistentTreeMapSeq. nil next-stack ascending? (dec cnt) nil)\n ())))\n INext\n (-next [this]\n (let [t (first stack)\n next-stack (tree-map-seq-push (if ascending? (.-right t) (.-left t))\n (next stack)\n ascending?)]\n (when-not (nil? next-stack)\n (PersistentTreeMapSeq. nil next-stack ascending? (dec cnt) nil))))\n\n ICounted\n (-count [coll]\n (if (neg? cnt)\n (inc (count (next coll)))\n cnt))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IMeta\n (-meta [coll] meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentTreeMapSeq. new-meta stack ascending? cnt __hash)))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable PersistentTreeMapSeq)\n\n(defn- create-tree-map-seq [tree ascending? cnt]\n (PersistentTreeMapSeq. nil (tree-map-seq-push tree nil ascending?) ascending? cnt nil))\n\n(declare RedNode BlackNode)\n\n(defn- balance-left [key val ins right]\n (if (instance? RedNode ins)\n (cond\n (instance? RedNode (.-left ins))\n (RedNode. (.-key ins) (.-val ins)\n (.blacken (.-left ins))\n (BlackNode. key val (.-right ins) right nil)\n nil)\n\n (instance? RedNode (.-right ins))\n (RedNode. (.. ins -right -key) (.. ins -right -val)\n (BlackNode. (.-key ins) (.-val ins)\n (.-left ins)\n (.. ins -right -left)\n nil)\n (BlackNode. key val\n (.. ins -right -right)\n right\n nil)\n nil)\n\n :else\n (BlackNode. key val ins right nil))\n (BlackNode. key val ins right nil)))\n\n(defn- balance-right [key val left ins]\n (if (instance? RedNode ins)\n (cond\n (instance? RedNode (.-right ins))\n (RedNode. (.-key ins) (.-val ins)\n (BlackNode. key val left (.-left ins) nil)\n (.blacken (.-right ins))\n nil)\n\n (instance? RedNode (.-left ins))\n (RedNode. (.. ins -left -key) (.. ins -left -val)\n (BlackNode. key val left (.. ins -left -left) nil)\n (BlackNode. (.-key ins) (.-val ins)\n (.. ins -left -right)\n (.-right ins)\n nil)\n nil)\n\n :else\n (BlackNode. key val left ins nil))\n (BlackNode. key val left ins nil)))\n\n(defn- balance-left-del [key val del right]\n (cond\n (instance? RedNode del)\n (RedNode. key val (.blacken del) right nil)\n\n (instance? BlackNode right)\n (balance-right key val del (.redden right))\n\n (and (instance? RedNode right) (instance? BlackNode (.-left right)))\n (RedNode. (.. right -left -key) (.. right -left -val)\n (BlackNode. key val del (.. right -left -left) nil)\n (balance-right (.-key right) (.-val right)\n (.. right -left -right)\n (.redden (.-right right)))\n nil)\n\n :else\n (throw (js/Error. \"red-black tree invariant violation\"))))\n\n(defn- balance-right-del [key val left del]\n (cond\n (instance? RedNode del)\n (RedNode. key val left (.blacken del) nil)\n\n (instance? BlackNode left)\n (balance-left key val (.redden left) del)\n\n (and (instance? RedNode left) (instance? BlackNode (.-right left)))\n (RedNode. (.. left -right -key) (.. left -right -val)\n (balance-left (.-key left) (.-val left)\n (.redden (.-left left))\n (.. left -right -left))\n (BlackNode. key val (.. left -right -right) del nil)\n nil)\n\n :else\n (throw (js/Error. \"red-black tree invariant violation\"))))\n\n(defn- tree-map-kv-reduce [node f init]\n (let [init (if-not (nil? (.-left node))\n (tree-map-kv-reduce (.-left node) f init)\n init)]\n (if (reduced? init)\n init\n (let [init (f init (.-key node) (.-val node))]\n (if (reduced? init)\n init\n (if-not (nil? (.-right node))\n (tree-map-kv-reduce (.-right node) f init)\n init))))))\n\n(deftype BlackNode [key val left right ^:mutable __hash]\n Object\n (add-left [node ins]\n (.balance-left ins node))\n\n (add-right [node ins]\n (.balance-right ins node))\n\n (remove-left [node del]\n (balance-left-del key val del right))\n\n (remove-right [node del]\n (balance-right-del key val left del))\n\n (blacken [node] node)\n\n (redden [node] (RedNode. key val left right nil))\n\n (balance-left [node parent]\n (BlackNode. (.-key parent) (.-val parent) node (.-right parent) nil))\n\n (balance-right [node parent]\n (BlackNode. (.-key parent) (.-val parent) (.-left parent) node nil))\n\n (replace [node key val left right]\n (BlackNode. key val left right nil))\n\n (kv-reduce [node f init]\n (tree-map-kv-reduce node f init))\n\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMapEntry\n (-key [node] key)\n (-val [node] val)\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IMeta\n (-meta [node] nil)\n\n IWithMeta\n (-with-meta [node meta]\n (-with-meta [key val] meta))\n\n IStack\n (-peek [node] val)\n\n (-pop [node] [key])\n\n ICollection\n (-conj [node o] [key val o])\n\n IEmptyableCollection\n (-empty [node] nil)\n\n ISequential\n ISeqable\n (-seq [node] (IndexedSeq. #js [key val] 0 nil))\n\n IReversible\n (-rseq [node] (IndexedSeq. #js [val key] 0 nil))\n\n ICounted\n (-count [node] 2)\n\n IIndexed\n (-nth [node n]\n (cond (== n 0) key\n (== n 1) val\n :else (throw (js/Error. \"Index out of bounds\"))))\n\n (-nth [node n not-found]\n (cond (== n 0) key\n (== n 1) val\n :else not-found))\n\n ILookup\n (-lookup [node k] (-nth node k nil))\n (-lookup [node k not-found] (-nth node k not-found))\n\n IAssociative\n (-assoc [node k v]\n (assoc [key val] k v))\n (-contains-key? [node k]\n (or (== k 0) (== k 1)))\n\n IFind\n (-find [node k]\n (case k\n 0 (MapEntry. 0 key nil)\n 1 (MapEntry. 1 val nil)\n nil))\n\n IVector\n (-assoc-n [node n v]\n (-assoc-n [key val] n v))\n\n IReduce\n (-reduce [node f]\n (ci-reduce node f))\n\n (-reduce [node f start]\n (ci-reduce node f start))\n\n IFn\n (-invoke [node k]\n (-nth node k))\n\n (-invoke [node k not-found]\n (-nth node k not-found)))\n\n(es6-iterable BlackNode)\n\n(deftype RedNode [key val left right ^:mutable __hash]\n Object\n (add-left [node ins]\n (RedNode. key val ins right nil))\n\n (add-right [node ins]\n (RedNode. key val left ins nil))\n\n (remove-left [node del]\n (RedNode. key val del right nil))\n\n (remove-right [node del]\n (RedNode. key val left del nil))\n\n (blacken [node]\n (BlackNode. key val left right nil))\n\n (redden [node]\n (throw (js/Error. \"red-black tree invariant violation\")))\n\n (balance-left [node parent]\n (cond\n (instance? RedNode left)\n (RedNode. key val\n (.blacken left)\n (BlackNode. (.-key parent) (.-val parent) right (.-right parent) nil)\n nil)\n\n (instance? RedNode right)\n (RedNode. (.-key right) (.-val right)\n (BlackNode. key val left (.-left right) nil)\n (BlackNode. (.-key parent) (.-val parent)\n (.-right right)\n (.-right parent)\n nil)\n nil)\n\n :else\n (BlackNode. (.-key parent) (.-val parent) node (.-right parent) nil)))\n\n (balance-right [node parent]\n (cond\n (instance? RedNode right)\n (RedNode. key val\n (BlackNode. (.-key parent) (.-val parent)\n (.-left parent)\n left\n nil)\n (.blacken right)\n nil)\n\n (instance? RedNode left)\n (RedNode. (.-key left) (.-val left)\n (BlackNode. (.-key parent) (.-val parent)\n (.-left parent)\n (.-left left)\n nil)\n (BlackNode. key val (.-right left) right nil)\n nil)\n\n :else\n (BlackNode. (.-key parent) (.-val parent) (.-left parent) node nil)))\n\n (replace [node key val left right]\n (RedNode. key val left right nil))\n\n (kv-reduce [node f init]\n (tree-map-kv-reduce node f init))\n\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMapEntry\n (-key [node] key)\n (-val [node] val)\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IMeta\n (-meta [node] nil)\n\n IWithMeta\n (-with-meta [node meta]\n (-with-meta [key val] meta))\n\n IStack\n (-peek [node] val)\n\n (-pop [node] [key])\n\n ICollection\n (-conj [node o] [key val o])\n\n IEmptyableCollection\n (-empty [node] nil)\n\n ISequential\n ISeqable\n (-seq [node] (IndexedSeq. #js [key val] 0 nil))\n\n IReversible\n (-rseq [node] (IndexedSeq. #js [val key] 0 nil))\n\n ICounted\n (-count [node] 2)\n\n IIndexed\n (-nth [node n]\n (cond (== n 0) key\n (== n 1) val\n :else (throw (js/Error. \"Index out of bounds\"))))\n\n (-nth [node n not-found]\n (cond (== n 0) key\n (== n 1) val\n :else not-found))\n\n ILookup\n (-lookup [node k] (-nth node k nil))\n (-lookup [node k not-found] (-nth node k not-found))\n\n IAssociative\n (-assoc [node k v]\n (assoc [key val] k v))\n (-contains-key? [node k]\n (or (== k 0) (== k 1)))\n\n IFind\n (-find [node k]\n (case k\n 0 (MapEntry. 0 key nil)\n 1 (MapEntry. 1 val nil)\n nil))\n\n IVector\n (-assoc-n [node n v]\n (-assoc-n [key val] n v))\n\n IReduce\n (-reduce [node f]\n (ci-reduce node f))\n\n (-reduce [node f start]\n (ci-reduce node f start))\n\n IFn\n (-invoke [node k]\n (-nth node k))\n\n (-invoke [node k not-found]\n (-nth node k not-found)))\n\n(es6-iterable RedNode)\n\n(defn- tree-map-add [comp tree k v found]\n (if (nil? tree)\n (RedNode. k v nil nil nil)\n (let [c (comp k (.-key tree))]\n (cond\n (zero? c)\n (do (aset found 0 tree)\n nil)\n\n (neg? c)\n (let [ins (tree-map-add comp (.-left tree) k v found)]\n (if-not (nil? ins)\n (.add-left tree ins)))\n\n :else\n (let [ins (tree-map-add comp (.-right tree) k v found)]\n (if-not (nil? ins)\n (.add-right tree ins)))))))\n\n(defn- tree-map-append [left right]\n (cond\n (nil? left)\n right\n\n (nil? right)\n left\n\n (instance? RedNode left)\n (if (instance? RedNode right)\n (let [app (tree-map-append (.-right left) (.-left right))]\n (if (instance? RedNode app)\n (RedNode. (.-key app) (.-val app)\n (RedNode. (.-key left) (.-val left)\n (.-left left)\n (.-left app)\n nil)\n (RedNode. (.-key right) (.-val right)\n (.-right app)\n (.-right right)\n nil)\n nil)\n (RedNode. (.-key left) (.-val left)\n (.-left left)\n (RedNode. (.-key right) (.-val right) app (.-right right) nil)\n nil)))\n (RedNode. (.-key left) (.-val left)\n (.-left left)\n (tree-map-append (.-right left) right)\n nil))\n\n (instance? RedNode right)\n (RedNode. (.-key right) (.-val right)\n (tree-map-append left (.-left right))\n (.-right right)\n nil)\n\n :else\n (let [app (tree-map-append (.-right left) (.-left right))]\n (if (instance? RedNode app)\n (RedNode. (.-key app) (.-val app)\n (BlackNode. (.-key left) (.-val left)\n (.-left left)\n (.-left app)\n nil)\n (BlackNode. (.-key right) (.-val right)\n (.-right app)\n (.-right right)\n nil)\n nil)\n (balance-left-del (.-key left) (.-val left)\n (.-left left)\n (BlackNode. (.-key right) (.-val right)\n app\n (.-right right)\n nil))))))\n\n(defn- tree-map-remove [comp tree k found]\n (if-not (nil? tree)\n (let [c (comp k (.-key tree))]\n (cond\n (zero? c)\n (do (aset found 0 tree)\n (tree-map-append (.-left tree) (.-right tree)))\n\n (neg? c)\n (let [del (tree-map-remove comp (.-left tree) k found)]\n (if (or (not (nil? del)) (not (nil? (aget found 0))))\n (if (instance? BlackNode (.-left tree))\n (balance-left-del (.-key tree) (.-val tree) del (.-right tree))\n (RedNode. (.-key tree) (.-val tree) del (.-right tree) nil))))\n\n :else\n (let [del (tree-map-remove comp (.-right tree) k found)]\n (if (or (not (nil? del)) (not (nil? (aget found 0))))\n (if (instance? BlackNode (.-right tree))\n (balance-right-del (.-key tree) (.-val tree) (.-left tree) del)\n (RedNode. (.-key tree) (.-val tree) (.-left tree) del nil))))))))\n\n(defn- tree-map-replace [comp tree k v]\n (let [tk (.-key tree)\n c (comp k tk)]\n (cond (zero? c) (.replace tree tk v (.-left tree) (.-right tree))\n (neg? c) (.replace tree tk (.-val tree) (tree-map-replace comp (.-left tree) k v) (.-right tree))\n :else (.replace tree tk (.-val tree) (.-left tree) (tree-map-replace comp (.-right tree) k v)))))\n\n(declare key)\n\n(deftype PersistentTreeMap [comp tree cnt meta ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (keys [coll]\n (es6-iterator (keys coll)))\n (entries [coll]\n (es6-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (vals coll)))\n (has [coll k]\n (contains? coll k))\n (get [coll k not-found]\n (-lookup coll k not-found))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n (entry-at [coll k]\n (loop [t tree]\n (if-not (nil? t)\n (let [c (comp k (.-key t))]\n (cond (zero? c) t\n (neg? c) (recur (.-left t))\n :else (recur (.-right t)))))))\n\n ICloneable\n (-clone [_] (PersistentTreeMap. comp tree cnt meta __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentTreeMap. comp tree cnt new-meta __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (loop [ret coll es (seq entry)]\n (if (nil? es)\n ret\n (let [e (first es)]\n (if (vector? e)\n (recur (-assoc ret (-nth e 0) (-nth e 1))\n (next es))\n (throw (js/Error. \"conj on a map takes map entries or seqables of map entries\"))))))))\n\n IEmptyableCollection\n (-empty [coll] (PersistentTreeMap. comp nil 0 meta 0))\n\n IEquiv\n (-equiv [coll other] (equiv-map coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ICounted\n (-count [coll] cnt)\n\n IKVReduce\n (-kv-reduce [coll f init]\n (if-not (nil? tree)\n (unreduced (tree-map-kv-reduce tree f init))\n init))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n ISeqable\n (-seq [coll]\n (if (pos? cnt)\n (create-tree-map-seq tree true cnt)))\n\n IReversible\n (-rseq [coll]\n (if (pos? cnt)\n (create-tree-map-seq tree false cnt)))\n\n ILookup\n (-lookup [coll k]\n (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (let [n (.entry-at coll k)]\n (if-not (nil? n)\n (.-val n)\n not-found)))\n\n IAssociative\n (-assoc [coll k v]\n (let [found (array nil)\n t (tree-map-add comp tree k v found)]\n (if (nil? t)\n (let [found-node (nth found 0)]\n (if (= v (.-val found-node))\n coll\n (PersistentTreeMap. comp (tree-map-replace comp tree k v) cnt meta nil)))\n (PersistentTreeMap. comp (.blacken t) (inc cnt) meta nil))))\n\n (-contains-key? [coll k]\n (not (nil? (.entry-at coll k))))\n\n IFind\n (-find [coll k]\n (.entry-at coll k))\n\n IMap\n (-dissoc [coll k]\n (let [found (array nil)\n t (tree-map-remove comp tree k found)]\n (if (nil? t)\n (if (nil? (nth found 0))\n coll\n (PersistentTreeMap. comp nil 0 meta nil))\n (PersistentTreeMap. comp (.blacken t) (dec cnt) meta nil))))\n\n ISorted\n (-sorted-seq [coll ascending?]\n (if (pos? cnt)\n (create-tree-map-seq tree ascending? cnt)))\n\n (-sorted-seq-from [coll k ascending?]\n (if (pos? cnt)\n (loop [stack nil t tree]\n (if-not (nil? t)\n (let [c (comp k (.-key t))]\n (cond\n (zero? c) (PersistentTreeMapSeq. nil (conj stack t) ascending? -1 nil)\n ascending? (if (neg? c)\n (recur (conj stack t) (.-left t))\n (recur stack (.-right t)))\n :else (if (pos? c)\n (recur (conj stack t) (.-right t))\n (recur stack (.-left t)))))\n (when-not (nil? stack)\n (PersistentTreeMapSeq. nil stack ascending? -1 nil))))))\n\n (-entry-key [coll entry] (key entry))\n\n (-comparator [coll] comp))\n\n(set! (.-EMPTY PersistentTreeMap) (PersistentTreeMap. compare nil 0 nil empty-unordered-hash))\n\n(es6-iterable PersistentTreeMap)\n\n(defn hash-map\n \"keyval => key val\n Returns a new hash map with supplied mappings.\"\n [& keyvals]\n (loop [in (seq keyvals), out (transient (.-EMPTY PersistentHashMap))]\n (if in\n (let [in' (next in)]\n (if (nil? in')\n (throw (js/Error. (str \"No value supplied for key: \" (first in))))\n (recur (next in') (assoc! out (first in) (first in')) )))\n (persistent! out))))\n\n(defn array-map\n \"keyval => key val\n Returns a new array map with supplied mappings.\"\n [& keyvals]\n (let [arr (if (and (instance? IndexedSeq keyvals) (zero? (.-i keyvals)))\n (.-arr keyvals)\n (into-array keyvals))]\n (if (odd? (alength arr))\n (throw (js/Error. (str \"No value supplied for key: \" (last arr))))\n (.createAsIfByAssoc PersistentArrayMap arr))))\n\n(defn seq-to-map-for-destructuring\n \"Builds a map from a seq as described in\n https://clojure.org/reference/special_forms#keyword-arguments\"\n [s]\n (if (next s)\n (.createAsIfByAssoc PersistentArrayMap (to-array s))\n (if (seq s) (first s) (.-EMPTY PersistentArrayMap))))\n\n(defn obj-map\n \"keyval => key val\n Returns a new object map with supplied mappings.\"\n [& keyvals]\n (let [ks (array)\n obj (js-obj)]\n (loop [kvs (seq keyvals)]\n (if kvs\n (do (.push ks (first kvs))\n (gobject/set obj (first kvs) (second kvs))\n (recur (nnext kvs)))\n (.fromObject ObjMap ks obj)))))\n\n(defn sorted-map\n \"keyval => key val\n Returns a new sorted map with supplied mappings.\"\n ([& keyvals]\n (loop [in (seq keyvals) out (.-EMPTY PersistentTreeMap)]\n (if in\n (recur (nnext in) (assoc out (first in) (second in)))\n out))))\n\n(defn sorted-map-by\n \"keyval => key val\n Returns a new sorted map with supplied mappings, using the supplied comparator.\"\n ([comparator & keyvals]\n (loop [in (seq keyvals)\n out (PersistentTreeMap. (fn->comparator comparator) nil 0 nil 0)]\n (if in\n (recur (nnext in) (assoc out (first in) (second in)))\n out))))\n\n(deftype KeySeq [^not-native mseq _meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] _meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta _meta)\n coll\n (KeySeq. mseq new-meta)))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n ISeq\n (-first [coll]\n (let [^not-native me (-first mseq)]\n (-key me)))\n\n (-rest [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (if-not (nil? nseq)\n (KeySeq. nseq nil)\n ())))\n\n INext\n (-next [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (when-not (nil? nseq)\n (KeySeq. nseq nil))))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable KeySeq)\n\n(defn keys\n \"Returns a sequence of the map's keys, in the same order as (seq map).\"\n [map]\n (when-let [mseq (seq map)]\n (KeySeq. mseq nil)))\n\n(defn key\n \"Returns the key of the map entry.\"\n [map-entry]\n (-key map-entry))\n\n(deftype ValSeq [^not-native mseq _meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] _meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta _meta)\n coll\n (ValSeq. mseq new-meta)))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n ISeq\n (-first [coll]\n (let [^not-native me (-first mseq)]\n (-val me)))\n\n (-rest [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (if-not (nil? nseq)\n (ValSeq. nseq nil)\n ())))\n\n INext\n (-next [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (when-not (nil? nseq)\n (ValSeq. nseq nil))))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable ValSeq)\n\n(defn vals\n \"Returns a sequence of the map's values, in the same order as (seq map).\"\n [map]\n (when-let [mseq (seq map)]\n (ValSeq. mseq nil)))\n\n(defn val\n \"Returns the value in the map entry.\"\n [map-entry]\n (-val map-entry))\n\n(defn merge\n \"Returns a map that consists of the rest of the maps conj-ed onto\n the first. If a key occurs in more than one map, the mapping from\n the latter (left-to-right) will be the mapping in the result.\"\n [& maps]\n (when (some identity maps)\n (reduce #(conj (or %1 {}) %2) maps)))\n\n(defn merge-with\n \"Returns a map that consists of the rest of the maps conj-ed onto\n the first. If a key occurs in more than one map, the mapping(s)\n from the latter (left-to-right) will be combined with the mapping in\n the result by calling (f val-in-result val-in-latter).\"\n [f & maps]\n (when (some identity maps)\n (let [merge-entry (fn [m e]\n (let [k (key e) v (val e)]\n (if (contains? m k)\n (assoc m k (f (get m k) v))\n (assoc m k v))))\n merge2 (fn [m1 m2]\n (reduce merge-entry (or m1 {}) (seq m2)))]\n (reduce merge2 maps))))\n\n(defn select-keys\n \"Returns a map containing only those entries in map whose key is in keys\"\n [map keyseq]\n (loop [ret {} keys (seq keyseq)]\n (if keys\n (let [key (first keys)\n entry (get map key ::not-found)]\n (recur\n (if (not= entry ::not-found)\n (assoc ret key entry)\n ret)\n (next keys)))\n (-with-meta ret (meta map)))))\n\n;;; PersistentHashSet\n\n(declare TransientHashSet)\n\n(deftype HashSetIter [iter]\n Object\n (hasNext [_]\n (.hasNext iter))\n (next [_]\n (if ^boolean (.hasNext iter)\n (.-key (.next iter))\n (throw (js/Error. \"No such element\"))))\n (remove [_] (js/Error. \"Unsupported operation\")))\n\n(deftype PersistentHashSet [meta hash-map ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (keys [coll]\n (es6-iterator (seq coll)))\n (entries [coll]\n (es6-set-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (seq coll)))\n (has [coll k]\n (contains? coll k))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentHashSet. meta hash-map __hash))\n\n IIterable\n (-iterator [coll]\n (HashSetIter. (-iterator hash-map)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentHashSet. new-meta hash-map __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll o]\n (PersistentHashSet. meta (assoc hash-map o nil) nil))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentHashSet) meta))\n\n IEquiv\n (-equiv [coll other]\n (and\n (set? other)\n (== (count coll) (count other))\n ^boolean\n (try\n (reduce-kv\n #(or (contains? other %2) (reduced false))\n true hash-map)\n (catch js/Error ex\n false))))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll] (keys hash-map))\n\n ICounted\n (-count [coll] (-count hash-map))\n\n ILookup\n (-lookup [coll v]\n (-lookup coll v nil))\n (-lookup [coll v not-found]\n (if-let [entry (-find hash-map v)]\n (key entry)\n not-found))\n\n ISet\n (-disjoin [coll v]\n (PersistentHashSet. meta (-dissoc hash-map v) nil))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll] (TransientHashSet. (-as-transient hash-map))))\n\n(set! (.-EMPTY PersistentHashSet)\n (PersistentHashSet. nil (.-EMPTY PersistentArrayMap) empty-unordered-hash))\n\n(set! (.-fromArray PersistentHashSet)\n (fn [items ^boolean no-clone]\n (let [len (alength items)]\n (if (<= len (.-HASHMAP-THRESHOLD PersistentArrayMap))\n (let [arr (if no-clone items (aclone items))]\n (loop [i 0\n out (transient (.-EMPTY PersistentArrayMap))]\n (if (< i len)\n (recur (inc i) (-assoc! out (aget items i) nil))\n (PersistentHashSet. nil (-persistent! out) nil))))\n (loop [i 0\n out (transient (.-EMPTY PersistentHashSet))]\n (if (< i len)\n (recur (inc i) (-conj! out (aget items i)))\n (-persistent! out)))))))\n\n(set! (.-createWithCheck PersistentHashSet)\n (fn [items]\n (let [len (alength items)\n t (-as-transient (.-EMPTY PersistentHashSet))]\n (dotimes [i len]\n (-conj! t (aget items i))\n (when-not (= (count t) (inc i))\n (throw (js/Error. (str \"Duplicate key: \" (aget items i))))))\n (-persistent! t))))\n\n(set! (.-createAsIfByAssoc PersistentHashSet)\n (fn [items]\n (let [len (alength items)\n t (-as-transient (.-EMPTY PersistentHashSet))]\n (dotimes [i len] (-conj! t (aget items i)))\n (-persistent! t))))\n\n(es6-iterable PersistentHashSet)\n\n(deftype TransientHashSet [^:mutable transient-map]\n ITransientCollection\n (-conj! [tcoll o]\n (set! transient-map (assoc! transient-map o nil))\n tcoll)\n\n (-persistent! [tcoll]\n (PersistentHashSet. nil (persistent! transient-map) nil))\n\n ITransientSet\n (-disjoin! [tcoll v]\n (set! transient-map (dissoc! transient-map v))\n tcoll)\n\n ICounted\n (-count [tcoll] (count transient-map))\n\n ILookup\n (-lookup [tcoll v]\n (-lookup tcoll v nil))\n\n (-lookup [tcoll v not-found]\n (if (identical? (-lookup transient-map v lookup-sentinel) lookup-sentinel)\n not-found\n v))\n\n IFn\n (-invoke [tcoll k]\n (if (identical? (-lookup transient-map k lookup-sentinel) lookup-sentinel)\n nil\n k))\n\n (-invoke [tcoll k not-found]\n (if (identical? (-lookup transient-map k lookup-sentinel) lookup-sentinel)\n not-found\n k)))\n\n(deftype PersistentTreeSet [meta tree-map ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (keys [coll]\n (es6-iterator (seq coll)))\n (entries [coll]\n (es6-set-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (seq coll)))\n (has [coll k]\n (contains? coll k))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentTreeSet. meta tree-map __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentTreeSet. new-meta tree-map __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll o]\n (PersistentTreeSet. meta (assoc tree-map o nil) nil))\n\n IEmptyableCollection\n (-empty [coll] (PersistentTreeSet. meta (-empty tree-map) 0))\n\n IEquiv\n (-equiv [coll other]\n (and\n (set? other)\n (== (count coll) (count other))\n ^boolean\n (try\n (reduce-kv\n #(or (contains? other %2) (reduced false))\n true tree-map)\n (catch js/Error ex\n false))))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll] (keys tree-map))\n\n ISorted\n (-sorted-seq [coll ascending?]\n (map key (-sorted-seq tree-map ascending?)))\n\n (-sorted-seq-from [coll k ascending?]\n (map key (-sorted-seq-from tree-map k ascending?)))\n\n (-entry-key [coll entry] entry)\n\n (-comparator [coll] (-comparator tree-map))\n\n IReversible\n (-rseq [coll]\n (if (pos? (count tree-map))\n (map key (rseq tree-map))))\n\n ICounted\n (-count [coll] (count tree-map))\n\n ILookup\n (-lookup [coll v]\n (-lookup coll v nil))\n (-lookup [coll v not-found]\n (let [n (.entry-at tree-map v)]\n (if-not (nil? n)\n (.-key n)\n not-found)))\n\n ISet\n (-disjoin [coll v]\n (PersistentTreeSet. meta (dissoc tree-map v) nil))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n (-invoke [coll k not-found]\n (-lookup coll k not-found)))\n\n(set! (.-EMPTY PersistentTreeSet)\n (PersistentTreeSet. nil (.-EMPTY PersistentTreeMap) empty-unordered-hash))\n\n(es6-iterable PersistentTreeSet)\n\n(defn set-from-indexed-seq [iseq]\n (let [arr (.-arr iseq)\n ret (areduce arr i ^not-native res (-as-transient #{})\n (-conj! res (aget arr i)))]\n (-persistent! ^not-native ret)))\n\n(defn set\n \"Returns a set of the distinct elements of coll.\"\n [coll]\n (if (set? coll)\n (with-meta coll nil)\n (let [in (seq coll)]\n (cond\n (nil? in) #{}\n\n (and (instance? IndexedSeq in) (zero? (.-i in)))\n (.createAsIfByAssoc PersistentHashSet (.-arr in))\n\n :else\n (loop [^not-native in in\n ^not-native out (-as-transient #{})]\n (if-not (nil? in)\n (recur (next in) (-conj! out (-first in)))\n (persistent! out)))))))\n\n(defn hash-set\n \"Returns a new hash set with supplied keys. Any equal keys are\n handled as if by repeated uses of conj.\"\n ([] #{})\n ([& keys] (set keys)))\n\n(defn sorted-set\n \"Returns a new sorted set with supplied keys.\"\n ([& keys]\n (reduce -conj (.-EMPTY PersistentTreeSet) keys)))\n\n(defn sorted-set-by\n \"Returns a new sorted set with supplied keys, using the supplied comparator.\"\n ([comparator & keys]\n (reduce -conj\n (PersistentTreeSet. nil (sorted-map-by comparator) 0)\n keys)))\n\n(defn replace\n \"Given a map of replacement pairs and a vector/collection, returns a\n vector/seq with any elements = a key in smap replaced with the\n corresponding val in smap. Returns a transducer when no collection\n is provided.\"\n ([smap]\n (map #(if-let [e (find smap %)] (val e) %)))\n ([smap coll]\n (if (vector? coll)\n (let [n (count coll)]\n (reduce (fn [v i]\n (if-let [e (find smap (nth v i))]\n (assoc v i (second e))\n v))\n coll (take n (iterate inc 0))))\n (map #(if-let [e (find smap %)] (second e) %) coll))))\n\n(defn distinct\n \"Returns a lazy sequence of the elements of coll with duplicates removed.\n Returns a stateful transducer when no collection is provided.\"\n ([]\n (fn [rf]\n (let [seen (volatile! #{})]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if (contains? @seen input)\n result\n (do (vswap! seen conj input)\n (rf result input))))))))\n ([coll]\n (let [step (fn step [xs seen]\n (lazy-seq\n ((fn [[f :as xs] seen]\n (when-let [s (seq xs)]\n (if (contains? seen f)\n (recur (rest s) seen)\n (cons f (step (rest s) (conj seen f))))))\n xs seen)))]\n (step coll #{}))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n(defn butlast\n \"Return a seq of all but the last item in coll, in linear time\"\n [s]\n (loop [ret [] s s]\n (if (next s)\n (recur (conj ret (first s)) (next s))\n (seq ret))))\n\n(defn name\n \"Returns the name String of a string, symbol or keyword.\"\n [x]\n (if (implements? INamed x)\n (-name x)\n (if (string? x)\n x\n (throw (js/Error. (str \"Doesn't support name: \" x))))))\n\n(defn zipmap\n \"Returns a map with the keys mapped to the corresponding vals.\"\n [keys vals]\n (loop [map (transient {})\n ks (seq keys)\n vs (seq vals)]\n (if (and ks vs)\n (recur (assoc! map (first ks) (first vs))\n (next ks)\n (next vs))\n (persistent! map))))\n\n(defn max-key\n \"Returns the x for which (k x), a number, is greatest.\n\n If there are multiple such xs, the last one is returned.\"\n ([k x] x)\n ([k x y] (if (> (k x) (k y)) x y))\n ([k x y & more]\n (reduce #(max-key k %1 %2) (max-key k x y) more)))\n\n(defn min-key\n \"Returns the x for which (k x), a number, is least.\n\n If there are multiple such xs, the last one is returned.\"\n ([k x] x)\n ([k x y] (if (< (k x) (k y)) x y))\n ([k x y & more]\n (reduce #(min-key k %1 %2) (min-key k x y) more)))\n\n(deftype ArrayList [^:mutable arr]\n Object\n (add [_ x] (.push arr x))\n (size [_] (alength arr))\n (clear [_] (set! arr (array)))\n (isEmpty [_] (zero? (alength arr)))\n (toArray [_] arr))\n\n(defn array-list []\n (ArrayList. (array)))\n\n(defn partition-all\n \"Returns a lazy sequence of lists like partition, but may include\n partitions with fewer than n items at the end. Returns a stateful\n transducer when no collection is provided.\"\n ([n]\n (fn [rf]\n (let [a (array-list)]\n (fn\n ([] (rf))\n ([result]\n (let [result (if (.isEmpty a)\n result\n (let [v (vec (.toArray a))]\n ;;clear first!\n (.clear a)\n (unreduced (rf result v))))]\n (rf result)))\n ([result input]\n (.add a input)\n (if (== n (.size a))\n (let [v (vec (.toArray a))]\n (.clear a)\n (rf result v))\n result))))))\n ([n coll]\n (partition-all n n coll))\n ([n step coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (cons (take n s) (partition-all n step (drop step s)))))))\n\n(defn splitv-at\n \"Returns a vector of [(into [] (take n) coll) (drop n coll)]\"\n [n coll]\n [(into [] (take n) coll) (drop n coll)])\n\n(defn partitionv\n \"Returns a lazy sequence of vectors of n items each, at offsets step\n apart. If step is not supplied, defaults to n, i.e. the partitions\n do not overlap. If a pad collection is supplied, use its elements as\n necessary to complete last partition upto n items. In case there are\n not enough padding elements, return a partition with less than n items.\"\n ([n coll]\n (partitionv n n coll))\n ([n step coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [p (into [] (take n) s)]\n (when (= n (count p))\n (cons p (partitionv n step (nthrest s step))))))))\n ([n step pad coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [p (into [] (take n) s)]\n (if (= n (count p))\n (cons p (partitionv n step pad (nthrest s step)))\n (list (into [] (take n) (concat p pad)))))))))\n\n(defn partitionv-all\n \"Returns a lazy sequence of vector partitions, but may include\n partitions with fewer than n items at the end.\n Returns a stateful transducer when no collection is provided.\"\n ([n]\n (partition-all n))\n ([n coll]\n (partitionv-all n n coll))\n ([n step coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [seg (into [] (take n) coll)]\n (cons seg (partitionv-all n step (drop step s))))))))\n\n(defn take-while\n \"Returns a lazy sequence of successive items from coll while\n (pred item) returns logical true. pred must be free of side-effects.\n Returns a transducer when no collection is provided.\"\n ([pred]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if (pred input)\n (rf result input)\n (reduced result))))))\n ([pred coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (when (pred (first s))\n (cons (first s) (take-while pred (rest s))))))))\n\n(defn mk-bound-fn\n [sc test key]\n (fn [e]\n (let [comp (-comparator sc)]\n (test (comp (-entry-key sc e) key) 0))))\n\n(defn subseq\n \"sc must be a sorted collection, test(s) one of <, <=, > or\n >=. Returns a seq of those entries with keys ek for\n which (test (.. sc comparator (compare ek key)) 0) is true\"\n ([sc test key]\n (let [include (mk-bound-fn sc test key)]\n (if (#{> >=} test)\n (when-let [[e :as s] (-sorted-seq-from sc key true)]\n (if (include e) s (next s)))\n (take-while include (-sorted-seq sc true)))))\n ([sc start-test start-key end-test end-key]\n (when-let [[e :as s] (-sorted-seq-from sc start-key true)]\n (take-while (mk-bound-fn sc end-test end-key)\n (if ((mk-bound-fn sc start-test start-key) e) s (next s))))))\n\n(defn rsubseq\n \"sc must be a sorted collection, test(s) one of <, <=, > or\n >=. Returns a reverse seq of those entries with keys ek for\n which (test (.. sc comparator (compare ek key)) 0) is true\"\n ([sc test key]\n (let [include (mk-bound-fn sc test key)]\n (if (#{< <=} test)\n (when-let [[e :as s] (-sorted-seq-from sc key false)]\n (if (include e) s (next s)))\n (take-while include (-sorted-seq sc false)))))\n ([sc start-test start-key end-test end-key]\n (when-let [[e :as s] (-sorted-seq-from sc end-key false)]\n (take-while (mk-bound-fn sc start-test start-key)\n (if ((mk-bound-fn sc end-test end-key) e) s (next s))))))\n\n(deftype IntegerRangeChunk [start step count]\n ICounted\n (-count [coll] count)\n\n ISeq\n (-first [coll] start)\n\n IIndexed\n (-nth [coll i]\n (+ start (* i step)))\n (-nth [coll i not-found]\n (if (and (>= i 0) (< i count))\n (+ start (* i step))\n not-found))\n\n IChunk\n (-drop-first [coll]\n (if (<= count 1)\n (throw (js/Error. \"-drop-first of empty chunk\"))\n (IntegerRangeChunk. (+ start step) step (dec count)))))\n\n(deftype RangeIterator [^:mutable i end step]\n Object\n (hasNext [_]\n (if (pos? step)\n (< i end)\n (> i end)))\n (next [_]\n (let [ret i]\n (set! i (+ i step))\n ret)))\n\n(defn- range-count\n \"Returns exact size of remaining items in an IntegerRange.\"\n [start end step]\n (Math/ceil (/ (- end start) step)))\n\n(deftype IntegerRange [meta start end step cnt ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (IntegerRange. meta start end step cnt __hash))\n\n IWithMeta\n (-with-meta [rng new-meta]\n (if (identical? new-meta meta)\n rng\n (IntegerRange. new-meta start end step cnt __hash)))\n\n IMeta\n (-meta [rng] meta)\n\n ISeqable\n (-seq [rng] rng)\n\n ISeq\n (-first [rng] start)\n (-rest [rng]\n (let [s (-next rng)]\n (if (nil? s)\n ()\n s)))\n\n IIterable\n (-iterator [_]\n (RangeIterator. start end step))\n\n INext\n (-next [rng]\n (if (pos? step)\n (when (< (+ start step) end)\n (IntegerRange. nil (+ start step) end step (range-count (+ start step) end step) nil))\n (when (> (+ start step) end)\n (IntegerRange. nil (+ start step) end step (range-count (+ start step) end step) nil))))\n\n IDrop\n (-drop [rng n]\n (if (pos? n)\n (if (< n cnt)\n (IntegerRange. nil (+ start (* step n)) end step (- cnt n) nil)\n nil)\n rng))\n\n IChunkedSeq\n (-chunked-first [rng]\n (IntegerRangeChunk. start step (min cnt 32)))\n (-chunked-rest [rng]\n (if (<= cnt 32)\n ()\n (let [start (+ start (* step 32))]\n (cond\n (pos? step)\n (if (<= end start)\n ()\n (IntegerRange. nil start end step (range-count start end step) nil))\n\n (neg? step)\n (if (>= end start)\n ()\n (IntegerRange. nil start end step (range-count start end step) nil))\n\n :else\n (if (== end start)\n ()\n (repeat start))))))\n\n IChunkedNext\n (-chunked-next [rng]\n (seq (-chunked-rest rng)))\n\n ICollection\n (-conj [rng o] (cons o rng))\n\n IEmptyableCollection\n (-empty [rng] (.-EMPTY List))\n\n ISequential\n IEquiv\n (-equiv [rng other] (equiv-sequential rng other))\n\n IHash\n (-hash [rng] (caching-hash rng hash-ordered-coll __hash))\n\n ICounted\n (-count [rng]\n cnt)\n\n IIndexed\n (-nth [rng n]\n (if (and (<= 0 n) (< n (-count rng)))\n (+ start (* n step))\n (if (and (<= 0 n) (> start end) (zero? step))\n start\n (throw (js/Error. \"Index out of bounds\")))))\n (-nth [rng n not-found]\n (if (and (<= 0 n) (< n (-count rng)))\n (+ start (* n step))\n (if (and (<= 0 n) (> start end) (zero? step))\n start\n not-found)))\n\n IReduce\n (-reduce [rng f] (ci-reduce rng f))\n (-reduce [rng f init]\n (loop [i start ret init]\n (if (if (pos? step) (< i end) (> i end))\n (let [ret (f ret i)]\n (if (reduced? ret)\n @ret\n (recur (+ i step) ret)))\n ret))))\n\n(es6-iterable IntegerRange)\n\n(deftype Range [meta start end step ^:mutable chunk ^:mutable chunk-next ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n (forceChunk [coll]\n (when (nil? chunk)\n (let [arr (make-array 32)\n val (loop [n 0 val start]\n (if (< n 32)\n (do\n (aset arr n val)\n (let [n (inc n)\n val (+ val step)]\n (if (if (pos? step) (< val end) (> val end))\n (recur n val)\n (set! chunk (array-chunk arr 0 n)))))\n val))]\n (when (nil? chunk)\n (set! chunk (array-chunk arr 0 32))\n (when (if (pos? step) (< val end) (> val end))\n (set! chunk-next (Range. nil val end step nil nil nil)))))))\n\n ICloneable\n (-clone [_] (Range. meta start end step chunk chunk-next __hash))\n\n IWithMeta\n (-with-meta [rng new-meta]\n (if (identical? new-meta meta)\n rng\n (Range. new-meta start end step chunk chunk-next __hash)))\n\n IMeta\n (-meta [rng] meta)\n\n ISeqable\n (-seq [rng] rng)\n\n ISeq\n (-first [rng] start)\n (-rest [rng]\n (let [s (-next rng)]\n (if (nil? s)\n ()\n s)))\n\n IIterable\n (-iterator [_]\n (RangeIterator. start end step))\n\n INext\n (-next [rng]\n (if (pos? step)\n (when (< (+ start step) end)\n (Range. nil (+ start step) end step nil nil nil))\n (when (> (+ start step) end)\n (Range. nil (+ start step) end step nil nil nil))))\n\n IChunkedSeq\n (-chunked-first [rng]\n (.forceChunk rng)\n chunk)\n (-chunked-rest [rng]\n (.forceChunk rng)\n (if (nil? chunk-next)\n ()\n chunk-next))\n\n IChunkedNext\n (-chunked-next [rng]\n (seq (-chunked-rest rng)))\n\n ICollection\n (-conj [rng o] (cons o rng))\n\n IEmptyableCollection\n (-empty [rng] (.-EMPTY List))\n\n ISequential\n IEquiv\n (-equiv [rng other] (equiv-sequential rng other))\n\n IHash\n (-hash [rng] (caching-hash rng hash-ordered-coll __hash))\n\n IReduce\n (-reduce [rng f] (seq-reduce f rng))\n (-reduce [rng f init]\n (loop [i start ret init]\n (if (if (pos? step) (< i end) (> i end))\n (let [ret (f ret i)]\n (if (reduced? ret)\n @ret\n (recur (+ i step) ret)))\n ret))))\n\n(es6-iterable Range)\n\n(defn range\n \"Returns a lazy seq of nums from start (inclusive) to end\n (exclusive), by step, where start defaults to 0, step to 1,\n and end to infinity.\"\n ([] (range 0 (.-MAX_VALUE js/Number) 1))\n ([end] (range 0 end 1))\n ([start end] (range start end 1))\n ([start end step]\n (cond\n (pos? step)\n (if (<= end start)\n ()\n (if (and (integer? start) (integer? end) (integer? step))\n (IntegerRange. nil start end step (range-count start end step) nil)\n (Range. nil start end step nil nil nil)))\n\n (neg? step)\n (if (>= end start)\n ()\n (if (and (integer? start) (integer? end) (integer? step))\n (IntegerRange. nil start end step (range-count start end step) nil)\n (Range. nil start end step nil nil nil)))\n\n :else\n (if (== end start)\n ()\n (repeat start)))))\n\n(defn take-nth\n \"Returns a lazy seq of every nth item in coll. Returns a stateful\n transducer when no collection is provided.\"\n ([n]\n {:pre [(number? n)]}\n (fn [rf]\n (let [ia (volatile! -1)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [i (vswap! ia inc)]\n (if (zero? (rem i n))\n (rf result input)\n result)))))))\n ([n coll]\n {:pre [(number? n)]}\n (lazy-seq\n (when-let [s (seq coll)]\n (cons (first s) (take-nth n (drop n s)))))))\n\n(defn split-with\n \"Returns a vector of [(take-while pred coll) (drop-while pred coll)]\"\n [pred coll]\n [(take-while pred coll) (drop-while pred coll)])\n\n(defn partition-by\n \"Applies f to each value in coll, splitting it each time f returns a\n new value. Returns a lazy seq of partitions. Returns a stateful\n transducer when no collection is provided.\"\n ([f]\n (fn [rf]\n (let [a (array-list)\n pa (volatile! ::none)]\n (fn\n ([] (rf))\n ([result]\n (let [result (if (.isEmpty a)\n result\n (let [v (vec (.toArray a))]\n ;;clear first!\n (.clear a)\n (unreduced (rf result v))))]\n (rf result)))\n ([result input]\n (let [pval @pa\n val (f input)]\n (vreset! pa val)\n (if (or (keyword-identical? pval ::none)\n (= val pval))\n (do\n (.add a input)\n result)\n (let [v (vec (.toArray a))]\n (.clear a)\n (let [ret (rf result v)]\n (when-not (reduced? ret)\n (.add a input))\n ret)))))))))\n ([f coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [fst (first s)\n fv (f fst)\n run (cons fst (take-while #(= fv (f %)) (next s)))]\n (cons run (partition-by f (lazy-seq (drop (count run) s)))))))))\n\n(defn frequencies\n \"Returns a map from distinct items in coll to the number of times\n they appear.\"\n [coll]\n (persistent!\n (reduce (fn [counts x]\n (assoc! counts x (inc (get counts x 0))))\n (transient {}) coll)))\n\n(defn reductions\n \"Returns a lazy seq of the intermediate values of the reduction (as\n per reduce) of coll by f, starting with init.\"\n ([f coll]\n (lazy-seq\n (if-let [s (seq coll)]\n (reductions f (first s) (rest s))\n (list (f)))))\n ([f init coll]\n (if (reduced? init)\n (list @init)\n (cons init\n (lazy-seq\n (when-let [s (seq coll)]\n (reductions f (f init (first s)) (rest s))))))))\n\n(defn juxt\n \"Takes a set of functions and returns a fn that is the juxtaposition\n of those fns. The returned fn takes a variable number of args, and\n returns a vector containing the result of applying each fn to the\n args (left-to-right).\n ((juxt a b c) x) => [(a x) (b x) (c x)]\"\n ([f]\n (fn\n ([] (vector (f)))\n ([x] (vector (f x)))\n ([x y] (vector (f x y)))\n ([x y z] (vector (f x y z)))\n ([x y z & args] (vector (apply f x y z args)))))\n ([f g]\n (fn\n ([] (vector (f) (g)))\n ([x] (vector (f x) (g x)))\n ([x y] (vector (f x y) (g x y)))\n ([x y z] (vector (f x y z) (g x y z)))\n ([x y z & args] (vector (apply f x y z args) (apply g x y z args)))))\n ([f g h]\n (fn\n ([] (vector (f) (g) (h)))\n ([x] (vector (f x) (g x) (h x)))\n ([x y] (vector (f x y) (g x y) (h x y)))\n ([x y z] (vector (f x y z) (g x y z) (h x y z)))\n ([x y z & args] (vector (apply f x y z args) (apply g x y z args) (apply h x y z args)))))\n ([f g h & fs]\n (let [fs (list* f g h fs)]\n (fn\n ([] (reduce #(conj %1 (%2)) [] fs))\n ([x] (reduce #(conj %1 (%2 x)) [] fs))\n ([x y] (reduce #(conj %1 (%2 x y)) [] fs))\n ([x y z] (reduce #(conj %1 (%2 x y z)) [] fs))\n ([x y z & args] (reduce #(conj %1 (apply %2 x y z args)) [] fs))))))\n\n(defn dorun\n \"When lazy sequences are produced via functions that have side\n effects, any effects other than those needed to produce the first\n element in the seq do not occur until the seq is consumed. dorun can\n be used to force any effects. Walks through the successive nexts of\n the seq, does not retain the head and returns nil.\"\n ([coll]\n (when-let [s (seq coll)]\n (recur (next s))))\n ([n coll]\n (when (and (seq coll) (pos? n))\n (recur (dec n) (next coll)))))\n\n(defn doall\n \"When lazy sequences are produced via functions that have side\n effects, any effects other than those needed to produce the first\n element in the seq do not occur until the seq is consumed. doall can\n be used to force any effects. Walks through the successive nexts of\n the seq, retains the head and returns it, thus causing the entire\n seq to reside in memory at one time.\"\n ([coll]\n (dorun coll)\n coll)\n ([n coll]\n (dorun n coll)\n coll))\n\n;;;;;;;;;;;;;;;;;;;;;;;;; Regular Expressions ;;;;;;;;;;\n\n(defn regexp?\n \"Returns true if x is a JavaScript RegExp instance.\"\n [x]\n (instance? js/RegExp x))\n\n(defn re-matches\n \"Returns the result of (re-find re s) if re fully matches s.\"\n [re s]\n (if (string? s)\n (let [matches (.exec re s)]\n (when (and (not (nil? matches))\n (= (aget matches 0) s))\n (if (== (count ^array matches) 1)\n (aget matches 0)\n (vec matches))))\n (throw (js/TypeError. \"re-matches must match against a string.\"))))\n\n\n(defn re-find\n \"Returns the first regex match, if any, of s to re, using\n re.exec(s). Returns a vector, containing first the matching\n substring, then any capturing groups if the regular expression contains\n capturing groups.\"\n [re s]\n (if (string? s)\n (let [matches (.exec re s)]\n (when-not (nil? matches)\n (if (== (count ^array matches) 1)\n (aget matches 0)\n (vec matches))))\n (throw (js/TypeError. \"re-find must match against a string.\"))))\n\n(defn- re-seq* [re s]\n (when-some [matches (.exec re s)]\n (let [match-str (aget matches 0)\n match-vals (if (== (.-length matches) 1)\n match-str\n (vec matches))]\n (cons match-vals\n (lazy-seq\n (let [post-idx (+ (.-index matches)\n (max 1 (.-length match-str)))]\n (when (<= post-idx (.-length s))\n (re-seq* re (subs s post-idx)))))))))\n\n(defn re-seq\n \"Returns a lazy sequence of successive matches of re in s.\"\n [re s]\n (if (string? s)\n (re-seq* re s)\n (throw (js/TypeError. \"re-seq must match against a string.\"))))\n\n(defn re-pattern\n \"Returns an instance of RegExp which has compiled the provided string.\"\n [s]\n (if (instance? js/RegExp s)\n s\n (let [[prefix flags] (re-find #\"^\\(\\?([idmsux]*)\\)\" s)\n pattern (subs s (if (nil? prefix)\n 0\n (count ^string prefix)))]\n (js/RegExp. pattern (or flags \"\")))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Printing ;;;;;;;;;;;;;;;;\n\n(defn pr-sequential-writer [writer print-one begin sep end opts coll]\n (binding [*print-level* (when-not (nil? *print-level*) (dec *print-level*))]\n (if (and (not (nil? *print-level*)) (neg? *print-level*))\n (-write writer \"#\")\n (do\n (-write writer begin)\n (if (zero? (:print-length opts))\n (when (seq coll)\n (-write writer (or (:more-marker opts) \"...\")))\n (do\n (when (seq coll)\n (print-one (first coll) writer opts))\n (loop [coll (next coll) n (dec (:print-length opts))]\n (if (and coll (or (nil? n) (not (zero? n))))\n (do\n (-write writer sep)\n (print-one (first coll) writer opts)\n (recur (next coll) (dec n)))\n (when (and (seq coll) (zero? n))\n (-write writer sep)\n (-write writer (or (:more-marker opts) \"...\")))))))\n (-write writer end)))))\n\n(defn write-all [writer & ss]\n (doseq [s ss]\n (-write writer s)))\n\n(defn string-print [x]\n (when (nil? *print-fn*)\n (throw (js/Error. \"No *print-fn* fn set for evaluation environment\")))\n (*print-fn* x)\n nil)\n\n(defn flush [] ;stub\n nil)\n\n(def ^:private char-escapes\n (js-obj\n \"\\\"\" \"\\\\\\\"\"\n \"\\\\\" \"\\\\\\\\\"\n \"\\b\" \"\\\\b\"\n \"\\f\" \"\\\\f\"\n \"\\n\" \"\\\\n\"\n \"\\r\" \"\\\\r\"\n \"\\t\" \"\\\\t\"))\n\n(defn ^:private quote-string\n [s]\n (str \\\"\n (.replace s (js/RegExp \"[\\\\\\\\\\\"\\b\\f\\n\\r\\t]\" \"g\")\n (fn [match] (unchecked-get char-escapes match)))\n \\\"))\n\n(declare print-map)\n\n(defn print-meta? [opts obj]\n (and (boolean (get opts :meta))\n (implements? IMeta obj)\n (not (nil? (meta obj)))))\n\n(defn- pr-writer-impl\n [obj writer opts]\n (cond\n (nil? obj) (-write writer \"nil\")\n :else\n (do\n (when (print-meta? opts obj)\n (-write writer \"^\")\n (pr-writer (meta obj) writer opts)\n (-write writer \" \"))\n (cond\n ;; handle CLJS ctors\n ^boolean (.-cljs$lang$type obj)\n (.cljs$lang$ctorPrWriter obj obj writer opts)\n\n ; Use the new, more efficient, IPrintWithWriter interface when possible.\n (satisfies? IPrintWithWriter obj)\n (-pr-writer obj writer opts)\n\n (or (true? obj) (false? obj))\n (-write writer (str obj))\n\n (number? obj)\n (-write writer\n (cond\n ^boolean (js/isNaN obj) \"##NaN\"\n (identical? obj js/Number.POSITIVE_INFINITY) \"##Inf\"\n (identical? obj js/Number.NEGATIVE_INFINITY) \"##-Inf\"\n :else (str obj)))\n\n (object? obj)\n (do\n (-write writer \"#js \")\n (print-map\n (map (fn [k]\n (MapEntry. (cond-> k (some? (re-matches #\"[A-Za-z_\\*\\+\\?!\\-'][\\w\\*\\+\\?!\\-']*\" k)) keyword) (unchecked-get obj k) nil))\n (js-keys obj))\n pr-writer writer opts))\n\n (array? obj)\n (pr-sequential-writer writer pr-writer \"#js [\" \" \" \"]\" opts obj)\n\n (string? obj)\n (if (:readably opts)\n (-write writer (quote-string obj))\n (-write writer obj))\n\n (js-fn? obj)\n (let [name (.-name obj)\n name (if (or (nil? name) (gstring/isEmpty name))\n \"Function\"\n name)]\n (write-all writer \"#object[\" name\n (if *print-fn-bodies*\n (str \" \\\"\" (str obj) \"\\\"\")\n \"\")\n \"]\"))\n\n (instance? js/Date obj)\n (let [normalize (fn [n len]\n (loop [ns (str n)]\n (if (< (count ns) len)\n (recur (str \"0\" ns))\n ns)))]\n (write-all writer\n \"#inst \\\"\"\n (normalize (.getUTCFullYear obj) 4) \"-\"\n (normalize (inc (.getUTCMonth obj)) 2) \"-\"\n (normalize (.getUTCDate obj) 2) \"T\"\n (normalize (.getUTCHours obj) 2) \":\"\n (normalize (.getUTCMinutes obj) 2) \":\"\n (normalize (.getUTCSeconds obj) 2) \".\"\n (normalize (.getUTCMilliseconds obj) 3) \"-\"\n \"00:00\\\"\"))\n\n (regexp? obj) (write-all writer \"#\\\"\" (.-source obj) \"\\\"\")\n\n (js-symbol? obj) (write-all writer \"#object[\" (.toString obj) \"]\" )\n\n :else\n (if (some-> obj .-constructor .-cljs$lang$ctorStr)\n (write-all writer\n \"#object[\" (.replace (.. obj -constructor -cljs$lang$ctorStr)\n (js/RegExp. \"/\" \"g\") \".\") \"]\")\n (let [name (some-> obj .-constructor .-name)\n name (if (or (nil? name) (gstring/isEmpty name))\n \"Object\"\n name)]\n (if (nil? (. obj -constructor))\n (write-all writer \"#object[\" name \"]\")\n (write-all writer \"#object[\" name \" \" (str obj) \"]\"))))))))\n\n(defn- pr-writer\n \"Prefer this to pr-seq, because it makes the printing function\n configurable, allowing efficient implementations such as appending\n to a StringBuffer.\"\n [obj writer opts]\n (if-let [alt-impl (:alt-impl opts)]\n (alt-impl obj writer (assoc opts :fallback-impl pr-writer-impl))\n (pr-writer-impl obj writer opts)))\n\n(defn pr-seq-writer [objs writer opts]\n (pr-writer (first objs) writer opts)\n (doseq [obj (next objs)]\n (-write writer \" \")\n (pr-writer obj writer opts)))\n\n(defn- pr-sb-with-opts [objs opts]\n (let [sb (StringBuffer.)\n writer (StringBufferWriter. sb)]\n (pr-seq-writer objs writer opts)\n (-flush writer)\n sb))\n\n(defn pr-str-with-opts\n \"Prints a sequence of objects to a string, observing all the\n options given in opts\"\n [objs opts]\n (if (empty? objs)\n \"\"\n (str (pr-sb-with-opts objs opts))))\n\n(defn prn-str-with-opts\n \"Same as pr-str-with-opts followed by (newline)\"\n [objs opts]\n (if (empty? objs)\n \"\\n\"\n (let [sb (pr-sb-with-opts objs opts)]\n (.append sb \\newline)\n (str sb))))\n\n(defn- pr-with-opts\n \"Prints a sequence of objects using string-print, observing all\n the options given in opts\"\n [objs opts]\n (string-print (pr-str-with-opts objs opts)))\n\n(defn newline\n \"Prints a newline using *print-fn*\"\n ([] (newline nil))\n ([opts]\n (string-print \"\\n\")\n (when (get opts :flush-on-newline)\n (flush))))\n\n(defn pr-str\n \"pr to a string, returning it. Fundamental entrypoint to IPrintWithWriter.\"\n [& objs]\n (pr-str-with-opts objs (pr-opts)))\n\n(defn prn-str\n \"Same as pr-str followed by (newline)\"\n [& objs]\n (prn-str-with-opts objs (pr-opts)))\n\n(defn pr\n \"Prints the object(s) using string-print. Prints the\n object(s), separated by spaces if there is more than one.\n By default, pr and prn print in a way that objects can be\n read by the reader\"\n [& objs]\n (pr-with-opts objs (pr-opts)))\n\n(def ^{:doc\n \"Prints the object(s) using string-print.\n print and println produce output for human consumption.\"}\n print\n (fn cljs-core-print [& objs]\n (pr-with-opts objs (assoc (pr-opts) :readably false))))\n\n(defn print-str\n \"print to a string, returning it\"\n [& objs]\n (pr-str-with-opts objs (assoc (pr-opts) :readably false)))\n\n(defn println\n \"Same as print followed by (newline)\"\n [& objs]\n (pr-with-opts objs (assoc (pr-opts) :readably false))\n (when *print-newline*\n (newline (pr-opts))))\n\n(defn println-str\n \"println to a string, returning it\"\n [& objs]\n (prn-str-with-opts objs (assoc (pr-opts) :readably false)))\n\n(defn prn\n \"Same as pr followed by (newline).\"\n [& objs]\n (pr-with-opts objs (pr-opts))\n (when *print-newline*\n (newline (pr-opts))))\n\n(defn- strip-ns\n [named]\n (if (symbol? named)\n (symbol nil (name named))\n (keyword nil (name named))))\n\n(defn- lift-ns\n \"Returns [lifted-ns lifted-map] or nil if m can't be lifted.\"\n [m]\n (when *print-namespace-maps*\n (loop [ns nil\n [[k v :as entry] & entries] (seq m)\n lm (empty m)]\n (if entry\n (when (or (keyword? k) (symbol? k))\n (if ns\n (when (= ns (namespace k))\n (recur ns entries (assoc lm (strip-ns k) v)))\n (when-let [new-ns (namespace k)]\n (recur new-ns entries (assoc lm (strip-ns k) v)))))\n [ns lm]))))\n\n(defn print-prefix-map [prefix m print-one writer opts]\n (pr-sequential-writer\n writer\n (fn [e w opts]\n (do (print-one (key e) w opts)\n (-write w \\space)\n (print-one (val e) w opts)))\n (str prefix \"{\") \", \" \"}\"\n opts (seq m)))\n\n(defn print-map [m print-one writer opts]\n (let [[ns lift-map] (when (map? m)\n (lift-ns m))]\n (if ns\n (print-prefix-map (str \"#:\" ns) lift-map print-one writer opts)\n (print-prefix-map nil m print-one writer opts))))\n\n(extend-protocol IPrintWithWriter\n LazySeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n TransformerIterator\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n IndexedSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n RSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentQueue\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"#queue [\" \" \" \"]\" opts (seq coll)))\n\n PersistentQueueSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentTreeMapSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n NodeSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ArrayNodeSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n List\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Cons\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n EmptyList\n (-pr-writer [coll writer opts] (-write writer \"()\"))\n\n PersistentVector\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n ChunkedCons\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ChunkedSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Subvec\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n BlackNode\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n RedNode\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n MapEntry\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n ObjMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n KeySeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ValSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentArrayMapSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentArrayMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n PersistentHashMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n PersistentTreeMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n PersistentHashSet\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"#{\" \" \" \"}\" opts coll))\n\n PersistentTreeSet\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"#{\" \" \" \"}\" opts coll))\n\n Range\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n IntegerRange\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Cycle\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Repeat\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Iterate\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ES6IteratorSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Atom\n (-pr-writer [a writer opts]\n (-write writer \"#object[cljs.core.Atom \")\n (pr-writer {:val (.-state a)} writer opts)\n (-write writer \"]\"))\n\n Volatile\n (-pr-writer [a writer opts]\n (-write writer \"#object[cljs.core.Volatile \")\n (pr-writer {:val (.-state a)} writer opts)\n (-write writer \"]\"))\n\n Var\n (-pr-writer [a writer opts]\n (-write writer \"#'\")\n (pr-writer (.-sym a) writer opts)))\n\n;; IComparable\n(extend-protocol IComparable\n Symbol\n (-compare [x y]\n (if (symbol? y)\n (compare-symbols x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n Keyword\n (-compare [x y]\n (if (keyword? y)\n (compare-keywords x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n Subvec\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n PersistentVector\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n MapEntry\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n BlackNode\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n RedNode\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js/Error. (str \"Cannot compare \" x \" to \" y))))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Reference Types ;;;;;;;;;;;;;;;;\n\n(defn alter-meta!\n \"Atomically sets the metadata for a namespace/var/ref/agent/atom to be:\n\n (apply f its-current-meta args)\n\n f must be free of side-effects\"\n [iref f & args]\n (set! (.-meta iref) (apply f (.-meta iref) args)))\n\n(defn reset-meta!\n \"Atomically resets the metadata for an atom\"\n [iref m]\n (set! (.-meta iref) m))\n\n(defn add-watch\n \"Adds a watch function to an atom reference. The watch fn must be a\n fn of 4 args: a key, the reference, its old-state, its\n new-state. Whenever the reference's state might have been changed,\n any registered watches will have their functions called. The watch\n fn will be called synchronously. Note that an atom's state\n may have changed again prior to the fn call, so use old/new-state\n rather than derefing the reference. Keys must be unique per\n reference, and can be used to remove the watch with remove-watch,\n but are otherwise considered opaque by the watch mechanism. Bear in\n mind that regardless of the result or action of the watch fns the\n atom's value will change. Example:\n\n (def a (atom 0))\n (add-watch a :inc (fn [k r o n] (assert (== 0 n))))\n (swap! a inc)\n ;; Assertion Error\n (deref a)\n ;=> 1\"\n [iref key f]\n (-add-watch iref key f)\n iref)\n\n(defn remove-watch\n \"Removes a watch (set by add-watch) from a reference\"\n [iref key]\n (-remove-watch iref key)\n iref)\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; gensym ;;;;;;;;;;;;;;;;\n;; Internal - do not use!\n(def\n ^{:jsdoc [\"@type {*}\"]}\n gensym_counter nil)\n\n(defn gensym\n \"Returns a new symbol with a unique name. If a prefix string is\n supplied, the name is prefix# where # is some unique number. If\n prefix is not supplied, the prefix is 'G__'.\"\n ([] (gensym \"G__\"))\n ([prefix-string]\n (when (nil? gensym_counter)\n (set! gensym_counter (atom 0)))\n (symbol (str prefix-string (swap! gensym_counter inc)))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Delay ;;;;;;;;;;;;;;;;;;;;\n\n(deftype Delay [^:mutable f ^:mutable value]\n IDeref\n (-deref [_]\n (when f\n (set! value (f))\n (set! f nil))\n value)\n\n IPending\n (-realized? [x]\n (not f))\n\n IPrintWithWriter\n (-pr-writer [x writer opts]\n (-write writer \"#object[cljs.core.Delay \")\n (pr-writer {:status (if (nil? f) :ready :pending), :val value} writer opts)\n (-write writer \"]\")))\n\n(defn delay?\n \"returns true if x is a Delay created with delay\"\n [x] (instance? Delay x))\n\n(defn force\n \"If x is a Delay, returns the (possibly cached) value of its expression, else returns x\"\n [x]\n (if (delay? x)\n (deref x)\n x))\n\n(defn ^boolean realized?\n \"Returns true if a value has been produced for a delay or lazy sequence.\"\n [x]\n (-realized? x))\n\n(defn- preserving-reduced\n [rf]\n #(let [ret (rf %1 %2)]\n (if (reduced? ret)\n (reduced ret)\n ret)))\n\n(defn cat\n \"A transducer which concatenates the contents of each input, which must be a\n collection, into the reduction.\"\n {:added \"1.7\"}\n [rf]\n (let [rf1 (preserving-reduced rf)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (reduce rf1 result input)))))\n\n(defn halt-when\n \"Returns a transducer that ends transduction when pred returns true\n for an input. When retf is supplied it must be a fn of 2 arguments -\n it will be passed the (completed) result so far and the input that\n triggered the predicate, and its return value (if it does not throw\n an exception) will be the return value of the transducer. If retf\n is not supplied, the input that triggered the predicate will be\n returned. If the predicate never returns true the transduction is\n unaffected.\"\n {:added \"1.9\"}\n ([pred] (halt-when pred nil))\n ([pred retf]\n (fn [rf]\n (fn\n ([] (rf))\n ([result]\n (if (and (map? result) (contains? result ::halt))\n (::halt result)\n (rf result)))\n ([result input]\n (if (pred input)\n (reduced {::halt (if retf (retf (rf result) input) input)})\n (rf result input)))))))\n\n(defn dedupe\n \"Returns a lazy sequence removing consecutive duplicates in coll.\n Returns a transducer when no collection is provided.\"\n ([]\n (fn [rf]\n (let [pa (volatile! ::none)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [prior @pa]\n (vreset! pa input)\n (if (= prior input)\n result\n (rf result input))))))))\n ([coll] (sequence (dedupe) coll)))\n\n(declare rand)\n\n(defn random-sample\n \"Returns items from coll with random probability of prob (0.0 -\n 1.0). Returns a transducer when no collection is provided.\"\n ([prob]\n (filter (fn [_] (< (rand) prob))))\n ([prob coll]\n (filter (fn [_] (< (rand) prob)) coll)))\n\n(deftype Eduction [xform coll]\n Object\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ISequential\n\n IIterable\n (-iterator [_]\n (.create TransformerIterator xform (iter coll)))\n\n ISeqable\n (-seq [_] (seq (sequence xform coll)))\n\n IReduce\n (-reduce [_ f] (transduce xform (completing f) coll))\n (-reduce [_ f init] (transduce xform (completing f) init coll))\n\n IPrintWithWriter\n (-pr-writer [coll writer opts]\n (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll)))\n\n(es6-iterable Eduction)\n\n(defn eduction\n \"Returns a reducible/iterable application of the transducers\n to the items in coll. Transducers are applied in order as if\n combined with comp. Note that these applications will be\n performed every time reduce/iterator is called.\"\n {:arglists '([xform* coll])}\n [& xforms]\n (Eduction. (apply comp (butlast xforms)) (last xforms)))\n\n(defn run!\n \"Runs the supplied procedure (via reduce), for purposes of side\n effects, on successive items in the collection. Returns nil\"\n [proc coll]\n (reduce #(proc %2) nil coll)\n nil)\n\n(defn iteration\n \"Creates a seqable/reducible via repeated calls to step,\n a function of some (continuation token) 'k'. The first call to step\n will be passed initk, returning 'ret'. Iff (somef ret) is true,\n (vf ret) will be included in the iteration, else iteration will\n terminate and vf/kf will not be called. If (kf ret) is non-nil it\n will be passed to the next step call, else iteration will terminate.\n This can be used e.g. to consume APIs that return paginated or batched data.\n step - (possibly impure) fn of 'k' -> 'ret'\n :somef - fn of 'ret' -> logical true/false, default 'some?'\n :vf - fn of 'ret' -> 'v', a value produced by the iteration, default 'identity'\n :kf - fn of 'ret' -> 'next-k' or nil (signaling 'do not continue'), default 'identity'\n :initk - the first value passed to step, default 'nil'\n It is presumed that step with non-initk is unreproducible/non-idempotent.\n If step with initk is unreproducible it is on the consumer to not consume twice.\"\n {:added \"1.11\"}\n [step & {:keys [somef vf kf initk]\n :or {vf identity\n kf identity\n somef some?\n initk nil}}]\n (reify\n ISeqable\n (-seq [_]\n ((fn next [ret]\n (when (somef ret)\n (cons (vf ret)\n (when-some [k (kf ret)]\n (lazy-seq (next (step k)))))))\n (step initk)))\n IReduce\n (-reduce [_ rf init]\n (loop [acc init\n ret (step initk)]\n (if (somef ret)\n (let [acc (rf acc (vf ret))]\n (if (reduced? acc)\n @acc\n (if-some [k (kf ret)]\n (recur acc (step k))\n acc)))\n acc)))))\n\n(defprotocol IEncodeJS\n (-clj->js [x] \"Recursively transforms clj values to JavaScript\")\n (-key->js [x] \"Transforms map keys to valid JavaScript keys. Arbitrary keys are\n encoded to their string representation via (pr-str x)\"))\n\n(declare clj->js)\n\n(defn key->js\n ([k] (key->js k clj->js))\n ([k primitive-fn]\n (cond\n (satisfies? IEncodeJS k) (-clj->js k)\n (or (string? k)\n (number? k)\n (keyword? k)\n (symbol? k)) (primitive-fn k)\n :default (pr-str k))))\n\n(defn clj->js\n \"Recursively transforms ClojureScript values to JavaScript.\n sets/vectors/lists become Arrays, Keywords and Symbol become Strings,\n Maps become Objects. Arbitrary keys are encoded to by `key->js`.\n Options is a key-value pair, where the only valid key is\n :keyword-fn, which should point to a single-argument function to be\n called on keyword keys. Default to `name`.\"\n [x & {:keys [keyword-fn]\n :or {keyword-fn name}\n :as options}]\n (letfn [(keyfn [k] (key->js k thisfn))\n (thisfn [x] (cond\n (nil? x) nil\n (satisfies? IEncodeJS x) (-clj->js x)\n (keyword? x) (keyword-fn x)\n (symbol? x) (str x)\n (map? x) (let [m (js-obj)]\n (doseq [[k v] x]\n (gobject/set m (keyfn k) (thisfn v)))\n m)\n (coll? x) (let [arr (array)]\n (doseq [x (map thisfn x)]\n (.push arr x))\n arr)\n :else x))]\n (thisfn x)))\n\n\n(defprotocol IEncodeClojure\n (-js->clj [x options] \"Transforms JavaScript values to Clojure\"))\n\n(defn js->clj\n \"Recursively transforms JavaScript arrays into ClojureScript\n vectors, and JavaScript objects into ClojureScript maps. With\n option ':keywordize-keys true' will convert object fields from\n strings to keywords.\"\n ([x] (js->clj x :keywordize-keys false))\n ([x & opts]\n (let [{:keys [keywordize-keys]} opts\n keyfn (if keywordize-keys keyword str)\n f (fn thisfn [x]\n (cond\n (satisfies? IEncodeClojure x)\n (-js->clj x (apply array-map opts))\n\n (seq? x)\n (doall (map thisfn x))\n\n (map-entry? x)\n (MapEntry. (thisfn (key x)) (thisfn (val x)) nil)\n\n (coll? x)\n (into (empty x) (map thisfn) x)\n\n (array? x)\n (persistent!\n (reduce #(conj! %1 (thisfn %2))\n (transient []) x))\n\n (identical? (type x) js/Object)\n (persistent!\n (reduce (fn [r k] (assoc! r (keyfn k) (thisfn (gobject/get x k))))\n (transient {}) (js-keys x)))\n :else x))]\n (f x))))\n\n(defn memoize\n \"Returns a memoized version of a referentially transparent function. The\n memoized version of the function keeps a cache of the mapping from arguments\n to results and, when calls with the same arguments are repeated often, has\n higher performance at the expense of higher memory use.\"\n [f]\n (let [mem (atom {})]\n (fn [& args]\n (let [v (get @mem args lookup-sentinel)]\n (if (identical? v lookup-sentinel)\n (let [ret (apply f args)]\n (swap! mem assoc args ret)\n ret)\n v)))))\n\n(defn trampoline\n \"trampoline can be used to convert algorithms requiring mutual\n recursion without stack consumption. Calls f with supplied args, if\n any. If f returns a fn, calls that fn with no arguments, and\n continues to repeat, until the return value is not a fn, then\n returns that non-fn value. Note that if you want to return a fn as a\n final value, you must wrap it in some data structure and unpack it\n after trampoline returns.\"\n ([f]\n (let [ret (f)]\n (if (fn? ret)\n (recur ret)\n ret)))\n ([f & args]\n (trampoline #(apply f args))))\n\n(defn rand\n \"Returns a random floating point number between 0 (inclusive) and\n n (default 1) (exclusive).\"\n ([] (rand 1))\n ([n] (* (Math/random) n)))\n\n(defn rand-int\n \"Returns a random integer between 0 (inclusive) and n (exclusive).\"\n [n] (Math/floor (* (Math/random) n)))\n\n(defn rand-nth\n \"Return a random element of the (sequential) collection. Will have\n the same performance characteristics as nth for the given\n collection.\"\n [coll]\n (nth coll (rand-int (count coll))))\n\n(defn group-by\n \"Returns a map of the elements of coll keyed by the result of\n f on each element. The value at each key will be a vector of the\n corresponding elements, in the order they appeared in coll.\"\n [f coll]\n (persistent!\n (reduce\n (fn [ret x]\n (let [k (f x)]\n (assoc! ret k (conj (get ret k []) x))))\n (transient {}) coll)))\n\n(defn make-hierarchy\n \"Creates a hierarchy object for use with derive, isa? etc.\"\n [] {:parents {} :descendants {} :ancestors {}})\n\n(def\n ^{:private true\n :jsdoc [\"@type {*}\"]}\n -global-hierarchy nil)\n\n(defn- get-global-hierarchy []\n (when (nil? -global-hierarchy)\n (set! -global-hierarchy (atom (make-hierarchy))))\n -global-hierarchy)\n\n(defn- swap-global-hierarchy! [f & args]\n (apply swap! (get-global-hierarchy) f args))\n\n(defn ^boolean isa?\n \"Returns true if (= child parent), or child is directly or indirectly derived from\n parent, either via a JavaScript type inheritance relationship or a\n relationship established via derive. h must be a hierarchy obtained\n from make-hierarchy, if not supplied defaults to the global\n hierarchy\"\n ([child parent] (isa? @(get-global-hierarchy) child parent))\n ([h child parent]\n (or (= child parent)\n ;; (and (class? parent) (class? child)\n ;; (. ^Class parent isAssignableFrom child))\n (contains? ((:ancestors h) child) parent)\n ;;(and (class? child) (some #(contains? ((:ancestors h) %) parent) (supers child)))\n (and (vector? parent) (vector? child)\n (== (count parent) (count child))\n (loop [ret true i 0]\n (if (or (not ret) (== i (count parent)))\n ret\n (recur (isa? h (child i) (parent i)) (inc i))))))))\n\n(defn parents\n \"Returns the immediate parents of tag, either via a JavaScript type\n inheritance relationship or a relationship established via derive. h\n must be a hierarchy obtained from make-hierarchy, if not supplied\n defaults to the global hierarchy\"\n ([tag] (parents @(get-global-hierarchy) tag))\n ([h tag] (not-empty (get (:parents h) tag))))\n\n(defn ancestors\n \"Returns the immediate and indirect parents of tag, either via a JavaScript type\n inheritance relationship or a relationship established via derive. h\n must be a hierarchy obtained from make-hierarchy, if not supplied\n defaults to the global hierarchy\"\n ([tag] (ancestors @(get-global-hierarchy) tag))\n ([h tag] (not-empty (get (:ancestors h) tag))))\n\n(defn descendants\n \"Returns the immediate and indirect children of tag, through a\n relationship established via derive. h must be a hierarchy obtained\n from make-hierarchy, if not supplied defaults to the global\n hierarchy. Note: does not work on JavaScript type inheritance\n relationships.\"\n ([tag] (descendants @(get-global-hierarchy) tag))\n ([h tag] (not-empty (get (:descendants h) tag))))\n\n(defn derive\n \"Establishes a parent/child relationship between parent and\n tag. Parent must be a namespace-qualified symbol or keyword and\n child can be either a namespace-qualified symbol or keyword or a\n class. h must be a hierarchy obtained from make-hierarchy, if not\n supplied defaults to, and modifies, the global hierarchy.\"\n ([tag parent]\n (assert (namespace parent))\n ;; (assert (or (class? tag) (and (instance? cljs.core.Named tag) (namespace tag))))\n (swap-global-hierarchy! derive tag parent) nil)\n ([h tag parent]\n (assert (not= tag parent))\n ;; (assert (or (class? tag) (instance? clojure.lang.Named tag)))\n ;; (assert (instance? clojure.lang.INamed tag))\n ;; (assert (instance? clojure.lang.INamed parent))\n (let [tp (:parents h)\n td (:descendants h)\n ta (:ancestors h)\n tf (fn [m source sources target targets]\n (reduce (fn [ret k]\n (assoc ret k\n (reduce conj (get targets k #{}) (cons target (targets target)))))\n m (cons source (sources source))))]\n (or\n (when-not (contains? (tp tag) parent)\n (when (contains? (ta tag) parent)\n (throw (js/Error. (str tag \"already has\" parent \"as ancestor\"))))\n (when (contains? (ta parent) tag)\n (throw (js/Error. (str \"Cyclic derivation:\" parent \"has\" tag \"as ancestor\"))))\n {:parents (assoc (:parents h) tag (conj (get tp tag #{}) parent))\n :ancestors (tf (:ancestors h) tag td parent ta)\n :descendants (tf (:descendants h) parent ta tag td)})\n h))))\n\n(defn underive\n \"Removes a parent/child relationship between parent and\n tag. h must be a hierarchy obtained from make-hierarchy, if not\n supplied defaults to, and modifies, the global hierarchy.\"\n ([tag parent]\n (swap-global-hierarchy! underive tag parent)\n nil)\n ([h tag parent]\n (let [parentMap (:parents h)\n childsParents (if (parentMap tag)\n (disj (parentMap tag) parent) #{})\n newParents (if (not-empty childsParents)\n (assoc parentMap tag childsParents)\n (dissoc parentMap tag))\n deriv-seq (flatten (map #(cons (first %) (interpose (first %) (second %)))\n (seq newParents)))]\n (if (contains? (parentMap tag) parent)\n (reduce #(apply derive %1 %2) (make-hierarchy)\n (partition 2 deriv-seq))\n h))))\n\n(defn- reset-cache\n [method-cache method-table cached-hierarchy hierarchy]\n (swap! method-cache (fn [_] (deref method-table)))\n (swap! cached-hierarchy (fn [_] (deref hierarchy))))\n\n(defn- prefers*\n [x y prefer-table]\n (let [xprefs (@prefer-table x)]\n (or\n (when (and xprefs (xprefs y))\n true)\n (loop [ps (parents y)]\n (when (pos? (count ps))\n (when (prefers* x (first ps) prefer-table)\n true)\n (recur (rest ps))))\n (loop [ps (parents x)]\n (when (pos? (count ps))\n (when (prefers* (first ps) y prefer-table)\n true)\n (recur (rest ps))))\n false)))\n\n(defn- dominates\n [x y prefer-table hierarchy]\n (or (prefers* x y prefer-table) (isa? hierarchy x y)))\n\n(defn- find-and-cache-best-method\n [name dispatch-val hierarchy method-table prefer-table method-cache cached-hierarchy default-dispatch-val]\n (let [best-entry (reduce (fn [be [k _ :as e]]\n (if (isa? @hierarchy dispatch-val k)\n (let [be2 (if (or (nil? be) (dominates k (first be) prefer-table @hierarchy))\n e\n be)]\n (when-not (dominates (first be2) k prefer-table @hierarchy)\n (throw (js/Error.\n (str \"Multiple methods in multimethod '\" name\n \"' match dispatch value: \" dispatch-val \" -> \" k\n \" and \" (first be2) \", and neither is preferred\"))))\n be2)\n be))\n nil @method-table)\n best-entry (if-let [entry (and (nil? best-entry) (@method-table default-dispatch-val))]\n [default-dispatch-val entry]\n best-entry)]\n (when best-entry\n (if (= @cached-hierarchy @hierarchy)\n (do\n (swap! method-cache assoc dispatch-val (second best-entry))\n (second best-entry))\n (do\n (reset-cache method-cache method-table cached-hierarchy hierarchy)\n (find-and-cache-best-method name dispatch-val hierarchy method-table prefer-table\n method-cache cached-hierarchy default-dispatch-val))))))\n\n(defprotocol IMultiFn\n (-reset [mf])\n (-add-method [mf dispatch-val method])\n (-remove-method [mf dispatch-val])\n (-prefer-method [mf dispatch-val dispatch-val-y])\n (-get-method [mf dispatch-val])\n (-methods [mf])\n (-prefers [mf])\n (-default-dispatch-val [mf])\n (-dispatch-fn [mf]))\n\n(defn- throw-no-method-error [name dispatch-val]\n (throw (js/Error. (str \"No method in multimethod '\" name \"' for dispatch value: \" dispatch-val))))\n\n(deftype MultiFn [name dispatch-fn default-dispatch-val hierarchy\n method-table prefer-table method-cache cached-hierarchy]\n IFn\n (-invoke [mf]\n (let [dispatch-val (dispatch-fn)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn)))\n (-invoke [mf a]\n (let [dispatch-val (dispatch-fn a)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a)))\n (-invoke [mf a b]\n (let [dispatch-val (dispatch-fn a b)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b)))\n (-invoke [mf a b c]\n (let [dispatch-val (dispatch-fn a b c)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c)))\n (-invoke [mf a b c d]\n (let [dispatch-val (dispatch-fn a b c d)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d)))\n (-invoke [mf a b c d e]\n (let [dispatch-val (dispatch-fn a b c d e)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e)))\n (-invoke [mf a b c d e f]\n (let [dispatch-val (dispatch-fn a b c d e f)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f)))\n (-invoke [mf a b c d e f g]\n (let [dispatch-val (dispatch-fn a b c d e f g)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g)))\n (-invoke [mf a b c d e f g h]\n (let [dispatch-val (dispatch-fn a b c d e f g h)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h)))\n (-invoke [mf a b c d e f g h i]\n (let [dispatch-val (dispatch-fn a b c d e f g h i)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i)))\n (-invoke [mf a b c d e f g h i j]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j)))\n (-invoke [mf a b c d e f g h i j k]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k)))\n (-invoke [mf a b c d e f g h i j k l]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l)))\n (-invoke [mf a b c d e f g h i j k l m]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m)))\n (-invoke [mf a b c d e f g h i j k l m n]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n)))\n (-invoke [mf a b c d e f g h i j k l m n o]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o)))\n (-invoke [mf a b c d e f g h i j k l m n o p]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p)))\n (-invoke [mf a b c d e f g h i j k l m n o p q]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q r)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q r)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r s]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q r s)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q r s)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r s t]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q r s t)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q r s t)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r s t rest]\n (let [dispatch-val (apply dispatch-fn a b c d e f g h i j k l m n o p q r s t rest)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (apply target-fn a b c d e f g h i j k l m n o p q r s t rest)))\n\n IMultiFn\n (-reset [mf]\n (swap! method-table (fn [mf] {}))\n (swap! method-cache (fn [mf] {}))\n (swap! prefer-table (fn [mf] {}))\n (swap! cached-hierarchy (fn [mf] nil))\n mf)\n\n (-add-method [mf dispatch-val method]\n (swap! method-table assoc dispatch-val method)\n (reset-cache method-cache method-table cached-hierarchy hierarchy)\n mf)\n\n (-remove-method [mf dispatch-val]\n (swap! method-table dissoc dispatch-val)\n (reset-cache method-cache method-table cached-hierarchy hierarchy)\n mf)\n\n (-get-method [mf dispatch-val]\n (when-not (= @cached-hierarchy @hierarchy)\n (reset-cache method-cache method-table cached-hierarchy hierarchy))\n (if-let [target-fn (@method-cache dispatch-val)]\n target-fn\n (find-and-cache-best-method name dispatch-val hierarchy method-table\n prefer-table method-cache cached-hierarchy default-dispatch-val)))\n\n (-prefer-method [mf dispatch-val-x dispatch-val-y]\n (when (prefers* dispatch-val-y dispatch-val-x prefer-table)\n (throw (js/Error. (str \"Preference conflict in multimethod '\" name \"': \" dispatch-val-y\n \" is already preferred to \" dispatch-val-x))))\n (swap! prefer-table\n (fn [old]\n (assoc old dispatch-val-x\n (conj (get old dispatch-val-x #{})\n dispatch-val-y))))\n (reset-cache method-cache method-table cached-hierarchy hierarchy))\n\n (-methods [mf] @method-table)\n (-prefers [mf] @prefer-table)\n (-default-dispatch-val [mf] default-dispatch-val)\n (-dispatch-fn [mf] dispatch-fn)\n\n INamed\n (-name [this] (-name name))\n (-namespace [this] (-namespace name))\n\n IHash\n (-hash [this] (goog/getUid this)))\n\n(defn remove-all-methods\n \"Removes all of the methods of multimethod.\"\n [multifn]\n (-reset multifn))\n\n(defn remove-method\n \"Removes the method of multimethod associated with dispatch-value.\"\n [multifn dispatch-val]\n (-remove-method multifn dispatch-val))\n\n(defn prefer-method\n \"Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y\n when there is a conflict\"\n [multifn dispatch-val-x dispatch-val-y]\n (-prefer-method multifn dispatch-val-x dispatch-val-y))\n\n(defn methods\n \"Given a multimethod, returns a map of dispatch values -> dispatch fns\"\n [multifn] (-methods multifn))\n\n(defn get-method\n \"Given a multimethod and a dispatch value, returns the dispatch fn\n that would apply to that value, or nil if none apply and no default\"\n [multifn dispatch-val] (-get-method multifn dispatch-val))\n\n(defn prefers\n \"Given a multimethod, returns a map of preferred value -> set of other values\"\n [multifn] (-prefers multifn))\n\n(defn default-dispatch-val\n \"Given a multimethod, return its default-dispatch-val.\"\n [multifn] (-default-dispatch-val multifn))\n\n(defn dispatch-fn\n \"Given a multimethod, return its dispatch-fn.\"\n [multifn] (-dispatch-fn multifn))\n\n;; UUID\n(defprotocol IUUID \"A marker protocol for UUIDs\")\n\n(deftype UUID [uuid ^:mutable __hash]\n IUUID\n\n Object\n (toString [_] uuid)\n (equiv [this other]\n (-equiv this other))\n\n IEquiv\n (-equiv [_ other]\n (and (implements? IUUID other) (identical? uuid (.-uuid other))))\n\n IPrintWithWriter\n (-pr-writer [_ writer _]\n (-write writer (str \"#uuid \\\"\" uuid \"\\\"\")))\n\n IHash\n (-hash [this]\n (when (nil? __hash)\n (set! __hash (hash uuid)))\n __hash)\n\n IComparable\n (-compare [this other]\n (if (instance? UUID other)\n (garray/defaultCompare uuid (.-uuid other))\n (throw (js/Error. (str \"Cannot compare \" this \" to \" other))))))\n\n(defn uuid\n \"Returns a UUID consistent with the string s.\"\n [s]\n (assert (string? s))\n (UUID. (.toLowerCase s) nil))\n\n(defn random-uuid\n \"Returns a pseudo-randomly generated UUID instance (i.e. type 4).\"\n []\n (letfn [(^string quad-hex []\n (let [unpadded-hex ^string (.toString (rand-int 65536) 16)]\n (case (count unpadded-hex)\n 1 (str \"000\" unpadded-hex)\n 2 (str \"00\" unpadded-hex)\n 3 (str \"0\" unpadded-hex)\n unpadded-hex)))]\n (let [ver-tripple-hex ^string (.toString (bit-or 0x4000 (bit-and 0x0fff (rand-int 65536))) 16)\n res-tripple-hex ^string (.toString (bit-or 0x8000 (bit-and 0x3fff (rand-int 65536))) 16)]\n (uuid\n (str (quad-hex) (quad-hex) \"-\" (quad-hex) \"-\"\n ver-tripple-hex \"-\" res-tripple-hex \"-\"\n (quad-hex) (quad-hex) (quad-hex))))))\n\n(defn uuid?\n \"Return true if x is a UUID.\"\n [x] (implements? IUUID x))\n\n;;; ExceptionInfo\n\n(defn- pr-writer-ex-info [obj writer opts]\n (-write writer \"#error {:message \")\n (pr-writer (.-message obj) writer opts)\n (when (.-data obj)\n (-write writer \", :data \")\n (pr-writer (.-data obj) writer opts))\n (when (.-cause obj)\n (-write writer \", :cause \")\n (pr-writer (.-cause obj) writer opts))\n (-write writer \"}\"))\n\n(defn ^{:jsdoc [\"@constructor\"]}\n ExceptionInfo [message data cause]\n (let [e (js/Error. message)]\n (this-as this\n (set! (.-message this) message)\n (set! (.-data this) data)\n (set! (.-cause this) cause)\n (do\n (set! (.-name this) (.-name e))\n ;; non-standard\n (set! (.-description this) (.-description e))\n (set! (.-number this) (.-number e))\n (set! (.-fileName this) (.-fileName e))\n (set! (.-lineNumber this) (.-lineNumber e))\n (set! (.-columnNumber this) (.-columnNumber e))\n (set! (.-stack this) (.-stack e)))\n this)))\n\n(set! (.. ExceptionInfo -prototype -__proto__) js/Error.prototype)\n\n(extend-type ExceptionInfo\n IPrintWithWriter\n (-pr-writer [obj writer opts]\n (pr-writer-ex-info obj writer opts)))\n\n(set! (.. ExceptionInfo -prototype -toString)\n (fn []\n (this-as this (pr-str* this))))\n\n(defn ex-info\n \"Create an instance of ExceptionInfo, an Error type that carries a\n map of additional data.\"\n ([msg data] (ex-info msg data nil))\n ([msg data cause]\n (ExceptionInfo. msg data cause)))\n\n(defn ex-data\n \"Returns exception data (a map) if ex is an ExceptionInfo.\n Otherwise returns nil.\"\n [ex]\n (when (instance? ExceptionInfo ex)\n (.-data ex)))\n\n(defn ex-message\n \"Returns the message attached to the given Error / ExceptionInfo object.\n For non-Errors returns nil.\"\n [ex]\n (when (instance? js/Error ex)\n (.-message ex)))\n\n(defn ex-cause\n \"Returns exception cause (an Error / ExceptionInfo) if ex is an\n ExceptionInfo.\n Otherwise returns nil.\"\n [ex]\n (when (instance? ExceptionInfo ex)\n (.-cause ex)))\n\n(defn Throwable->map\n \"Constructs a data representation for an Error with keys:\n :cause - root cause message\n :phase - error phase\n :via - cause chain, with cause keys:\n :type - exception class symbol\n :message - exception message\n :data - ex-data\n :at - top stack element\n :trace - root cause stack elements\"\n [o]\n (let [base (fn [t]\n (merge {:type (cond\n (instance? ExceptionInfo t) `ExceptionInfo\n (instance? js/Error t) (symbol \"js\" (.-name t))\n :else nil)}\n (when-let [msg (ex-message t)]\n {:message msg})\n (when-let [ed (ex-data t)]\n {:data ed})\n #_(let [st (extract-canonical-stacktrace t)]\n (when (pos? (count st))\n {:at st}))))\n via (loop [via [], t o]\n (if t\n (recur (conj via t) (ex-cause t))\n via))\n root (peek via)]\n (merge {:via (vec (map base via))\n :trace nil #_(extract-canonical-stacktrace (or root o))}\n (when-let [root-msg (ex-message root)]\n {:cause root-msg})\n (when-let [data (ex-data root)]\n {:data data})\n (when-let [phase (-> o ex-data :clojure.error/phase)]\n {:phase phase}))))\n\n(defn comparator\n \"Returns an JavaScript compatible comparator based upon pred.\"\n [pred]\n (fn [x y]\n (cond (pred x y) -1 (pred y x) 1 :else 0)))\n\n(defn ^boolean special-symbol?\n \"Returns true if x names a special form\"\n [x]\n (contains?\n '#{if def fn* do let* loop* letfn* throw try catch finally\n recur new set! ns deftype* defrecord* . js* & quote case* var ns*}\n x))\n\n(defn test\n \"test [v] finds fn at key :test in var metadata and calls it,\n presuming failure will throw exception\"\n [v]\n (let [f (.-cljs$lang$test v)]\n (if f\n (do (f) :ok)\n :no-test)))\n\n\n(deftype TaggedLiteral [tag form]\n Object\n (toString [coll]\n (pr-str* coll))\n\n IEquiv\n (-equiv [this other]\n (and (instance? TaggedLiteral other)\n (= tag (.-tag other))\n (= form (.-form other))))\n\n IHash\n (-hash [this]\n (+ (* 31 (hash tag))\n (hash form)))\n\n ILookup\n (-lookup [this v]\n (-lookup this v nil))\n (-lookup [this v not-found]\n (case v\n :tag tag\n :form form\n not-found))\n\n IPrintWithWriter\n (-pr-writer [o writer opts]\n (-write writer (str \"#\" tag \" \"))\n (pr-writer form writer opts)))\n\n(defn tagged-literal?\n \"Return true if the value is the data representation of a tagged literal\"\n [value]\n (instance? TaggedLiteral value))\n\n(defn tagged-literal\n \"Construct a data representation of a tagged literal from a\n tag symbol and a form.\"\n [tag form]\n {:pre [(symbol? tag)]}\n (TaggedLiteral. tag form))\n\n(def\n ^{:private true\n :jsdoc [\"@type {*}\"]}\n js-reserved-arr\n #js [\"arguments\" \"abstract\" \"await\" \"boolean\" \"break\" \"byte\" \"case\"\n \"catch\" \"char\" \"class\" \"const\" \"continue\"\n \"debugger\" \"default\" \"delete\" \"do\" \"double\"\n \"else\" \"enum\" \"export\" \"extends\" \"final\"\n \"finally\" \"float\" \"for\" \"function\" \"goto\" \"if\"\n \"implements\" \"import\" \"in\" \"instanceof\" \"int\"\n \"interface\" \"let\" \"long\" \"native\" \"new\"\n \"package\" \"private\" \"protected\" \"public\"\n \"return\" \"short\" \"static\" \"super\" \"switch\"\n \"synchronized\" \"this\" \"throw\" \"throws\"\n \"transient\" \"try\" \"typeof\" \"var\" \"void\"\n \"volatile\" \"while\" \"with\" \"yield\" \"methods\"\n \"null\" \"constructor\"])\n\n(def\n ^{:jsdoc [\"@type {null|Object}\"]}\n js-reserved nil)\n\n(defn- js-reserved? [x]\n (when (nil? js-reserved)\n (set! js-reserved\n (reduce #(do (gobject/set %1 %2 true) %1)\n #js {} js-reserved-arr)))\n (.hasOwnProperty js-reserved x))\n\n(defn- demunge-pattern []\n (when-not DEMUNGE_PATTERN\n (set! DEMUNGE_PATTERN\n (let [ks (sort (fn [a b] (- (. b -length) (. a -length)))\n (js-keys DEMUNGE_MAP))]\n (loop [ks ks ret \"\"]\n (if (seq ks)\n (recur\n (next ks)\n (str\n (cond-> ret\n (not (identical? ret \"\")) (str \"|\"))\n (first ks)))\n (str ret \"|\\\\$\"))))))\n DEMUNGE_PATTERN)\n\n(defn- ^string munge-str [name]\n (let [sb (StringBuffer.)]\n (loop [i 0]\n (if (< i (. name -length))\n (let [c (.charAt name i)\n sub (gobject/get CHAR_MAP c)]\n (if-not (nil? sub)\n (.append sb sub)\n (.append sb c))\n (recur (inc i)))))\n (.toString sb)))\n\n(defn munge [name]\n (let [name' (munge-str (str name))\n name' (cond\n (identical? name' \"..\") \"_DOT__DOT_\"\n (js-reserved? name') (str name' \"$\")\n :else name')]\n (if (symbol? name)\n (symbol name')\n name')))\n\n(defn- demunge-str [munged-name]\n (let [r (js/RegExp. (demunge-pattern) \"g\")\n munged-name (if (gstring/endsWith munged-name \"$\")\n (.substring munged-name 0 (dec (. munged-name -length)))\n munged-name)]\n (loop [ret \"\" last-match-end 0]\n (if-let [match (.exec r munged-name)]\n (let [[x] match]\n (recur\n (str ret\n (.substring munged-name last-match-end\n (- (. r -lastIndex) (. x -length)))\n (if (identical? x \"$\") \"/\" (gobject/get DEMUNGE_MAP x)))\n (. r -lastIndex)))\n (str ret\n (.substring munged-name last-match-end (.-length munged-name)))))))\n\n(defn demunge [name]\n ((if (symbol? name) symbol str)\n (let [name' (str name)]\n (if (identical? name' \"_DOT__DOT_\")\n \"..\"\n (demunge-str name')))))\n\n(defonce ^{:jsdoc [\"@type {*}\"] :private true}\n tapset nil)\n\n(defn- maybe-init-tapset []\n (when (nil? tapset)\n (set! tapset (atom #{}))))\n\n(defn add-tap\n \"Adds f, a fn of one argument, to the tap set. This function will be called with\n anything sent via tap>. Remember f in order to remove-tap\"\n [f]\n (maybe-init-tapset)\n (swap! tapset conj f)\n nil)\n\n(defn remove-tap\n \"Remove f from the tap set.\"\n [f]\n (maybe-init-tapset)\n (swap! tapset disj f)\n nil)\n\n(defn ^boolean tap>\n \"Sends x to any taps. Returns the result of *exec-tap-fn*, a Boolean value.\"\n [x]\n (maybe-init-tapset)\n (*exec-tap-fn*\n (fn []\n (doseq [tap @tapset]\n (try\n (tap x)\n (catch js/Error ex))))))\n\n(defn update-vals\n \"m f => {k (f v) ...}\n Given a map m and a function f of 1-argument, returns a new map where the keys of m\n are mapped to result of applying f to the corresponding values of m.\"\n {:added \"1.11\"}\n [m f]\n (with-meta\n (persistent!\n (reduce-kv (fn [acc k v] (assoc! acc k (f v)))\n (if (implements? IEditableCollection m)\n (transient m)\n (transient {}))\n m))\n (meta m)))\n\n(defn update-keys\n \"m f => {(f k) v ...}\n Given a map m and a function f of 1-argument, returns a new map whose\n keys are the result of applying f to the keys of m, mapped to the\n corresponding values of m.\n f must return a unique key for each key of m, else the behavior is undefined.\"\n {:added \"1.11\"}\n [m f]\n (let [ret (persistent!\n (reduce-kv (fn [acc k v] (assoc! acc (f k) v))\n (transient {})\n m))]\n (with-meta ret (meta m))))\n\n;; -----------------------------------------------------------------------------\n;; Bootstrap helpers - incompatible with advanced compilation\n\n(defn- ns-lookup\n \"Bootstrap only.\"\n [ns-obj k]\n (fn [] (gobject/get ns-obj k)))\n\n;; Bootstrap only\n(deftype Namespace [obj name]\n Object\n (findInternedVar [this sym]\n (let [k (munge (str sym))]\n (when ^boolean (gobject/containsKey obj k)\n (let [var-sym (symbol (str name) (str sym))\n var-meta {:ns this}]\n (Var. (ns-lookup obj k) var-sym var-meta)))))\n (getName [_] name)\n (toString [_]\n (str name))\n IEquiv\n (-equiv [_ other]\n (if (instance? Namespace other)\n (= name (.-name other))\n false))\n IHash\n (-hash [_]\n (hash name)))\n\n(def\n ^{:doc \"Bootstrap only.\" :jsdoc [\"@type {*}\"]}\n NS_CACHE nil)\n\n(defn- find-ns-obj*\n \"Bootstrap only.\"\n [ctxt xs]\n (cond\n (nil? ctxt) nil\n (nil? xs) ctxt\n :else (recur (gobject/get ctxt (first xs)) (next xs))))\n\n(defn find-ns-obj\n \"Bootstrap only.\"\n [ns]\n (let [munged-ns (munge (str ns))\n segs (.split munged-ns \".\")]\n (case *target*\n \"nodejs\" (if ^boolean js/COMPILED\n ; Under simple optimizations on nodejs, namespaces will be in module\n ; rather than global scope and must be accessed by a direct call to eval.\n ; The first segment may refer to an undefined variable, so its evaluation\n ; may throw ReferenceError.\n (find-ns-obj*\n (try\n (let [ctxt (js/eval (first segs))]\n (when (and ctxt (object? ctxt))\n ctxt))\n (catch js/ReferenceError e\n nil))\n (next segs))\n (find-ns-obj* goog/global segs))\n (\"default\" \"webworker\") (find-ns-obj* goog/global segs)\n (throw (js/Error. (str \"find-ns-obj not supported for target \" *target*))))))\n\n(defn ns-interns*\n \"Returns a map of the intern mappings for the namespace.\n Bootstrap only.\"\n [sym]\n (let [ns-obj (find-ns-obj sym)\n ns (Namespace. ns-obj sym)]\n (letfn [(step [ret k]\n (let [var-sym (symbol (demunge k))]\n (assoc ret\n var-sym (Var. #(gobject/get ns-obj k)\n (symbol (str sym) (str var-sym)) {:ns ns}))))]\n (reduce step {} (js-keys ns-obj)))))\n\n(defn create-ns\n \"Create a new namespace named by the symbol. Bootstrap only.\"\n ([sym]\n (create-ns sym (find-ns-obj sym)))\n ([sym ns-obj]\n (Namespace. ns-obj sym)))\n\n(defn find-ns\n \"Returns the namespace named by the symbol or nil if it doesn't exist.\n Bootstrap only.\"\n [ns]\n (when (nil? NS_CACHE)\n (set! NS_CACHE (atom {})))\n (let [the-ns (get @NS_CACHE ns)]\n (if-not (nil? the-ns)\n the-ns\n (let [ns-obj (find-ns-obj ns)]\n (when-not (nil? ns-obj)\n (let [new-ns (create-ns ns ns-obj)]\n (swap! NS_CACHE assoc ns new-ns)\n new-ns))))))\n\n(defn find-macros-ns\n \"Returns the macros namespace named by the symbol or nil if it doesn't exist.\n Bootstrap only.\"\n [ns]\n (when (nil? NS_CACHE)\n (set! NS_CACHE (atom {})))\n (let [ns-str (str ns)\n ns (if (not ^boolean (gstring/contains ns-str \"$macros\"))\n (symbol (str ns-str \"$macros\"))\n ns)\n the-ns (get @NS_CACHE ns)]\n (if-not (nil? the-ns)\n the-ns\n (let [ns-obj (find-ns-obj ns)]\n (when-not (nil? ns-obj)\n (let [new-ns (create-ns ns ns-obj)]\n (swap! NS_CACHE assoc ns new-ns)\n new-ns))))))\n\n(defn ns-name\n \"Returns the name of the namespace, a Namespace object.\n Bootstrap only.\"\n [ns-obj]\n (.-name ns-obj))\n\n(defn uri?\n \"Returns true x is a goog.Uri instance.\"\n {:added \"1.9\"}\n [x]\n (instance? goog.Uri x))\n\n(defn ^boolean NaN?\n \"Returns true if num is NaN, else false\"\n [val]\n (js/isNaN val))\n\n(defn ^:private parsing-err\n \"Construct message for parsing for non-string parsing error\"\n [val]\n (str \"Expected string, got: \" (if (nil? val) \"nil\" (goog/typeOf val))))\n\n(defn ^number parse-long\n \"Parse string of decimal digits with optional leading -/+ and return an\n integer value, or nil if parse fails\"\n [s]\n (if (string? s)\n (and (re-matches #\"[+-]?\\d+\" s)\n (let [i (js/parseInt s)]\n (when (and (<= i js/Number.MAX_SAFE_INTEGER)\n (>= i js/Number.MIN_SAFE_INTEGER))\n i)))\n (throw (js/Error. (parsing-err s)))))\n\n(defn ^number parse-double\n \"Parse string with floating point components and return a floating point value,\n or nil if parse fails.\n Grammar: https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#valueOf-java.lang.String-\"\n [s]\n (if (string? s)\n (cond\n ^boolean (re-matches #\"[\\x00-\\x20]*[+-]?NaN[\\x00-\\x20]*\" s) ##NaN\n ^boolean (re-matches\n #\"[\\x00-\\x20]*[+-]?(Infinity|((\\d+\\.?\\d*|\\.\\d+)([eE][+-]?\\d+)?)[dDfF]?)[\\x00-\\x20]*\"\n s) (js/parseFloat s)\n :default nil)\n (throw (js/Error. (parsing-err s)))))\n\n(def ^:private uuid-regex\n #\"^[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]$\")\n\n(defn parse-uuid\n \"Parse a string representing a UUID and return a UUID instance,\n or nil if parse fails.\n Grammar: https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html#toString--\"\n [s]\n (if (string? s)\n (when ^boolean (re-matches uuid-regex s)\n (uuid s))\n (throw (js/Error. (parsing-err s)))))\n\n(defn parse-boolean\n \"Parse strings \\\"true\\\" or \\\"false\\\" and return a boolean, or nil if invalid. Note that this explicitly\n excludes strings with different cases, or space characters.\"\n [s]\n (if (string? s)\n (case s\n \"true\" true\n \"false\" false\n nil)\n (throw (js/Error. (parsing-err s)))))\n\n(defn- maybe-enable-print! []\n (cond\n (exists? js/console)\n (enable-console-print!)\n\n (or (identical? *target* \"nashorn\")\n (identical? *target* \"graaljs\"))\n (let [system (.type js/Java \"java.lang.System\")]\n (set! *print-newline* false)\n (set-print-fn!\n (fn []\n (let [xs (js-arguments)\n s (.join (garray/clone xs) \"\")]\n (.println (.-out system) s))))\n (set-print-err-fn!\n (fn []\n (let [xs (js-arguments)\n s (.join (garray/clone xs) \"\")]\n (.println (.-error system) s)))))))\n\n(maybe-enable-print!)\n\n(defonce\n ^{:doc \"Runtime environments may provide a way to evaluate ClojureScript\n forms. Whatever function *eval* is bound to will be passed any forms which\n should be evaluated.\" :dynamic true}\n *eval*\n (fn [_]\n (throw (js/Error. \"cljs.core/*eval* not bound\"))))\n\n(defn eval\n \"Evaluates the form data structure (not text!) and returns the result.\n Delegates to cljs.core/*eval*. Intended for use in self-hosted ClojureScript,\n which sets up an implementation of cljs.core/*eval* for that environment.\"\n [form]\n (*eval* form))\n\n(when ^boolean js/COMPILED\n (when (identical? \"nodejs\" *target*)\n (set! goog/global js/global))\n (cond\n (identical? \"window\" *global*) (set! goog/global js/window)\n (identical? \"self\" *global*) (set! goog/global js/self)\n (identical? \"global\" *global*) (set! goog/global js/global)))\n","","; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n\n(ns ^{:doc \"A port of clojure/core.cache to Clojurescript\"\n :author \"Matt Burbidge\"}\n cljs.cache\n (:require [tailrecursion.priority-map :refer [priority-map]])\n (:require-macros [cljs.cache :refer [defcache]]))\n\n(defprotocol CacheProtocol\n \"This is the protocol describing the basic cache capability.\"\n (lookup [cache e]\n [cache e not-found]\n \"Retrieve the value associated with `e` if it exists, else `nil` in\n the 2-arg case. Retrieve the value associated with `e` if it exists,\n else `not-found` in the 3-arg case.\")\n (has? [cache e]\n \"Checks if the cache contains a value associated with `e`\")\n (hit [cache e]\n \"Is meant to be called if the cache is determined to contain a value\n associated with `e`\")\n (miss [cache e ret]\n \"Is meant to be called if the cache is determined to **not** contain a\n value associated with `e`\")\n (evict [cache e]\n \"Removes an entry from the cache\")\n (seed [cache base]\n \"Is used to signal that the cache should be created with a seed.\n The contract is that said cache should return an instance of its\n own type.\"))\n\n(def ^{:private true} default-wrapper-fn #(%1 %2))\n\n(defn through\n \"The basic hit/miss logic for the cache system. Expects a wrap function and\n value function. The wrap function takes the value function and the item in\n question and is expected to run the value function with the item whenever a\n cache miss occurs. The intent is to hide any cache-specific cells from\n leaking into the cache logic itelf.\"\n ([cache item] (through default-wrapper-fn identity cache item))\n ([value-fn cache item] (through default-wrapper-fn value-fn cache item))\n ([wrap-fn value-fn cache item]\n (if (has? cache item)\n (hit cache item)\n (miss cache item (wrap-fn #(value-fn %) item)))))\n\n(defcache BasicCache [cache]\n CacheProtocol\n (lookup [_ item]\n (get cache item))\n (lookup [_ item not-found]\n (get cache item not-found))\n (has? [_ item]\n (contains? cache item))\n (hit [this item] this)\n (miss [_ item result]\n (BasicCache. (assoc cache item result)))\n (evict [_ key]\n (BasicCache. (dissoc cache key)))\n (seed [_ base]\n (BasicCache. base))\n Object\n (toString [_] (str cache)))\n\n;; TTL Cache\n\n(defn- get-time []\n (.getTime (js/Date.)))\n\n(defn- key-killer-fn\n \"returns a fn that dissocs expired keys from a map\"\n [ttl expiry now]\n (let [ks (map key (filter #(> (- now (val %)) expiry) ttl))]\n #(apply dissoc % ks)))\n\n(defcache TTLCache [cache ttl ttl-ms]\n CacheProtocol\n (lookup [this item]\n (let [ret (lookup this item ::nope)]\n (when-not (= ret ::nope) ret)))\n (lookup [this item not-found]\n (if (has? this item)\n (get cache item)\n not-found))\n (has? [_ item]\n (let [t (get ttl item (- ttl-ms))]\n (< (- (get-time)\n t)\n ttl-ms)))\n (hit [this item] this)\n (miss [this item result]\n (let [now (get-time)\n kill-old (key-killer-fn ttl ttl-ms now)]\n (TTLCache. (assoc (kill-old cache) item result)\n (assoc (kill-old ttl) item now)\n ttl-ms)))\n (seed [_ base]\n (let [now (get-time)]\n (TTLCache. base\n (into {} (for [x base] [(key x) now]))\n ttl-ms)))\n (evict [_ key]\n (TTLCache. (dissoc cache key)\n (dissoc ttl key)\n ttl-ms))\n Object\n (toString [_]\n (str cache \\, \\space ttl \\, \\space ttl-ms)))\n\n;; LRU Cache\n\n(defn- build-leastness-queue\n [base limit start-at]\n (into (priority-map)\n (concat (take (- limit (count base)) (for [k (range (- limit) 0)] [k k]))\n (for [[k _] base] [k start-at]))))\n\n\n(defcache LRUCache [cache lru tick limit]\n CacheProtocol\n (lookup [_ item]\n (get cache item))\n (lookup [_ item not-found]\n (get cache item not-found))\n (has? [_ item]\n (contains? cache item))\n (hit [_ item]\n (let [tick+ (inc tick)]\n (LRUCache. cache\n (if (contains? cache item)\n (assoc lru item tick+)\n lru)\n tick+\n limit)))\n (miss [_ item result]\n (let [tick+ (inc tick)]\n (if (>= (count lru) limit)\n (let [k (if (contains? lru item)\n item\n (first (peek lru))) ;; minimum-key, maybe evict case\n c (-> cache (dissoc k) (assoc item result))\n l (-> lru (dissoc k) (assoc item tick+))]\n (LRUCache. c l tick+ limit))\n (LRUCache. (assoc cache item result) ;; no change case\n (assoc lru item tick+)\n tick+\n limit))))\n (evict [this key]\n (if (contains? cache key)\n (LRUCache. (dissoc cache key)\n (dissoc lru key)\n (inc tick)\n limit)\n this))\n (seed [_ base]\n (LRUCache. base\n (build-leastness-queue base limit 0)\n 0\n limit))\n Object\n (toString [_]\n (str cache \\, \\space lru \\, \\space tick \\, \\space limit)))\n\n\n;; Factories\n\n(defn basic-cache-factory\n \"Returns a pluggable basic cache initialied to `base`\"\n [base]\n {:pre [(map? base)]}\n (BasicCache. base))\n\n(defn ttl-cache-factory\n \"Returns a TTL cache with the cache and expiration-table initialied to `base` --\n each with the same time-to-live.\n\n This function also allows an optional `:ttl` argument that defines the default\n time in milliseconds that entries are allowed to reside in the cache.\"\n [base & {ttl :ttl :or {ttl 2000}}]\n {:pre [(number? ttl) (<= 0 ttl)\n (map? base)]}\n (seed (TTLCache. {} {} ttl) base))\n\n(defn lru-cache-factory\n \"Returns an LRU cache with the cache and usage-table initialied to `base` --\n each entry is initialized with the same usage value.\n This function takes an optional `:threshold` argument that defines the maximum number\n of elements in the cache before the LRU semantics apply (default is 32).\"\n [base & {threshold :threshold :or {threshold 32}}]\n {:pre [(number? threshold) (< 0 threshold)\n (map? base)]}\n (seed (LRUCache. {} (priority-map) 0 threshold) base))\n","","/**\n * @license\n * Copyright The Closure Library Authors.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview Bootstrap for the Google JS Library (Closure).\n *\n * In uncompiled mode base.js will attempt to load Closure's deps file, unless\n * the global CLOSURE_NO_DEPS is set to true. This allows projects\n * to include their own deps file(s) from different locations.\n *\n * Avoid including base.js more than once. This is strictly discouraged and not\n * supported. goog.require(...) won't work properly in that case.\n *\n * @suppress {deprecated} Users cannot remove deprecated uses here.\n * @provideGoog\n */\n\n\n/**\n * @define {boolean} Overridden to true by the compiler.\n */\nvar COMPILED = false;\n\n\n/**\n * Base namespace for the Closure library. Checks to see goog is already\n * defined in the current scope before assigning to prevent clobbering if\n * base.js is loaded more than once.\n *\n * @const\n */\nvar goog = goog || {};\n\n/**\n * Reference to the global object.\n * https://www.ecma-international.org/ecma-262/9.0/index.html#sec-global-object\n *\n * More info on this implementation here:\n * https://docs.google.com/document/d/1NAeW4Wk7I7FV0Y2tcUFvQdGMc89k2vdgSXInw8_nvCI/edit\n *\n * @const\n * @suppress {undefinedVars} self won't be referenced unless `this` is falsy.\n * @type {!Global}\n */\ngoog.global = global;\n\n\n/**\n * A hook for overriding the define values in uncompiled mode.\n *\n * In uncompiled mode, `CLOSURE_UNCOMPILED_DEFINES` may be defined before\n * loading base.js. If a key is defined in `CLOSURE_UNCOMPILED_DEFINES`,\n * `goog.define` will use the value instead of the default value. This\n * allows flags to be overwritten without compilation (this is normally\n * accomplished with the compiler's \"define\" flag).\n *\n * Example:\n *
\n *   var CLOSURE_UNCOMPILED_DEFINES = {'goog.DEBUG': false};\n * 
\n *\n * @type {Object|undefined}\n */\ngoog.global.CLOSURE_UNCOMPILED_DEFINES;\n\n\n/**\n * A hook for overriding the define values in uncompiled or compiled mode,\n * like CLOSURE_UNCOMPILED_DEFINES but effective in compiled code. In\n * uncompiled code CLOSURE_UNCOMPILED_DEFINES takes precedence.\n *\n * Also unlike CLOSURE_UNCOMPILED_DEFINES the values must be number, boolean or\n * string literals or the compiler will emit an error.\n *\n * While any @define value may be set, only those set with goog.define will be\n * effective for uncompiled code.\n *\n * Example:\n *
\n *   var CLOSURE_DEFINES = {'goog.DEBUG': false} ;\n * 
\n *\n * Currently the Closure Compiler will only recognize very simple definitions of\n * this value when looking for values to apply to compiled code and ignore all\n * other references. Specifically, it looks the value defined at the variable\n * declaration, as with the example above.\n *\n * TODO(user): Improve the recognized definitions.\n *\n * @type {!Object|null|undefined}\n */\ngoog.global.CLOSURE_DEFINES;\n\n\n/**\n * Builds an object structure for the provided namespace path, ensuring that\n * names that already exist are not overwritten. For example:\n * \"a.b.c\" -> a = {};a.b={};a.b.c={};\n * Used by goog.provide and goog.exportSymbol.\n * @param {string} name The name of the object that this file defines.\n * @param {*=} object The object to expose at the end of the path.\n * @param {boolean=} overwriteImplicit If object is set and a previous call\n * implicitly constructed the namespace given by name, this parameter\n * controls whether object should overwrite the implicitly constructed\n * namespace or be merged into it. Defaults to false.\n * @param {?Object=} objectToExportTo The object to add the path to; if this\n * field is not specified, its value defaults to `goog.global`.\n * @private\n */\ngoog.exportPath_ = function(name, object, overwriteImplicit, objectToExportTo) {\n var parts = name.split('.');\n var cur = objectToExportTo || goog.global;\n\n // Internet Explorer exhibits strange behavior when throwing errors from\n // methods externed in this manner. See the testExportSymbolExceptions in\n // base_test.html for an example.\n if (!(parts[0] in cur) && typeof cur.execScript != 'undefined') {\n cur.execScript('var ' + parts[0]);\n }\n\n for (var part; parts.length && (part = parts.shift());) {\n if (!parts.length && object !== undefined) {\n if (!overwriteImplicit && goog.isObject(object) &&\n goog.isObject(cur[part])) {\n // Merge properties on object (the input parameter) with the existing\n // implicitly defined namespace, so as to not clobber previously\n // defined child namespaces.\n for (var prop in object) {\n if (object.hasOwnProperty(prop)) {\n cur[part][prop] = object[prop];\n }\n }\n } else {\n // Either there is no existing implicit namespace, or overwriteImplicit\n // is set to true, so directly assign object (the input parameter) to\n // the namespace.\n cur[part] = object;\n }\n } else if (cur[part] && cur[part] !== Object.prototype[part]) {\n cur = cur[part];\n } else {\n cur = cur[part] = {};\n }\n }\n};\n\n\n/**\n * Defines a named value. In uncompiled mode, the value is retrieved from\n * CLOSURE_DEFINES or CLOSURE_UNCOMPILED_DEFINES if the object is defined and\n * has the property specified, and otherwise used the defined defaultValue.\n * When compiled the default can be overridden using the compiler options or the\n * value set in the CLOSURE_DEFINES object. Returns the defined value so that it\n * can be used safely in modules. Note that the value type MUST be either\n * boolean, number, or string.\n *\n * @param {string} name The distinguished name to provide.\n * @param {T} defaultValue\n * @return {T} The defined value.\n * @template T\n */\ngoog.define = function(name, defaultValue) {\n var value = defaultValue;\n if (!COMPILED) {\n var uncompiledDefines = goog.global.CLOSURE_UNCOMPILED_DEFINES;\n var defines = goog.global.CLOSURE_DEFINES;\n if (uncompiledDefines &&\n // Anti DOM-clobbering runtime check (b/37736576).\n /** @type {?} */ (uncompiledDefines).nodeType === undefined &&\n Object.prototype.hasOwnProperty.call(uncompiledDefines, name)) {\n value = uncompiledDefines[name];\n } else if (\n defines &&\n // Anti DOM-clobbering runtime check (b/37736576).\n /** @type {?} */ (defines).nodeType === undefined &&\n Object.prototype.hasOwnProperty.call(defines, name)) {\n value = defines[name];\n }\n }\n return value;\n};\n\n\n/**\n * @define {number} Integer year indicating the set of browser features that are\n * guaranteed to be present. This is defined to include exactly features that\n * work correctly on all \"modern\" browsers that are stable on January 1 of the\n * specified year. For example,\n * ```js\n * if (goog.FEATURESET_YEAR >= 2019) {\n * // use APIs known to be available on all major stable browsers Jan 1, 2019\n * } else {\n * // polyfill for older browsers\n * }\n * ```\n * This is intended to be the primary define for removing\n * unnecessary browser compatibility code (such as ponyfills and workarounds),\n * and should inform the default value for most other defines:\n * ```js\n * const ASSUME_NATIVE_PROMISE =\n * goog.define('ASSUME_NATIVE_PROMISE', goog.FEATURESET_YEAR >= 2016);\n * ```\n *\n * The default assumption is that IE9 is the lowest supported browser, which was\n * first available Jan 1, 2012.\n *\n * TODO(user): Reference more thorough documentation when it's available.\n */\ngoog.FEATURESET_YEAR = goog.define('goog.FEATURESET_YEAR', 2012);\n\n\n/**\n * @define {boolean} DEBUG is provided as a convenience so that debugging code\n * that should not be included in a production. It can be easily stripped\n * by specifying --define goog.DEBUG=false to the Closure Compiler aka\n * JSCompiler. For example, most toString() methods should be declared inside an\n * \"if (goog.DEBUG)\" conditional because they are generally used for debugging\n * purposes and it is difficult for the JSCompiler to statically determine\n * whether they are used.\n */\ngoog.DEBUG = goog.define('goog.DEBUG', true);\n\n\n/**\n * @define {string} LOCALE defines the locale being used for compilation. It is\n * used to select locale specific data to be compiled in js binary. BUILD rule\n * can specify this value by \"--define goog.LOCALE=\" as a compiler\n * option.\n *\n * Take into account that the locale code format is important. You should use\n * the canonical Unicode format with hyphen as a delimiter. Language must be\n * lowercase, Language Script - Capitalized, Region - UPPERCASE.\n * There are few examples: pt-BR, en, en-US, sr-Latin-BO, zh-Hans-CN.\n *\n * See more info about locale codes here:\n * http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers\n *\n * For language codes you should use values defined by ISO 693-1. See it here\n * http://www.w3.org/WAI/ER/IG/ert/iso639.htm. There is only one exception from\n * this rule: the Hebrew language. For legacy reasons the old code (iw) should\n * be used instead of the new code (he).\n *\n */\ngoog.LOCALE = goog.define('goog.LOCALE', 'en'); // default to en\n\n\n/**\n * @define {boolean} Whether this code is running on trusted sites.\n *\n * On untrusted sites, several native functions can be defined or overridden by\n * external libraries like Prototype, Datejs, and JQuery and setting this flag\n * to false forces closure to use its own implementations when possible.\n *\n * If your JavaScript can be loaded by a third party site and you are wary about\n * relying on non-standard implementations, specify\n * \"--define goog.TRUSTED_SITE=false\" to the compiler.\n */\ngoog.TRUSTED_SITE = goog.define('goog.TRUSTED_SITE', true);\n\n\n/**\n * @define {boolean} Whether code that calls {@link goog.setTestOnly} should\n * be disallowed in the compilation unit.\n */\ngoog.DISALLOW_TEST_ONLY_CODE =\n goog.define('goog.DISALLOW_TEST_ONLY_CODE', COMPILED && !goog.DEBUG);\n\n\n/**\n * @define {boolean} Whether to use a Chrome app CSP-compliant method for\n * loading scripts via goog.require. @see appendScriptSrcNode_.\n */\ngoog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING =\n goog.define('goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING', false);\n\n\n/**\n * Defines a namespace in Closure.\n *\n * A namespace may only be defined once in a codebase. It may be defined using\n * goog.provide() or goog.module().\n *\n * The presence of one or more goog.provide() calls in a file indicates\n * that the file defines the given objects/namespaces.\n * Provided symbols must not be null or undefined.\n *\n * In addition, goog.provide() creates the object stubs for a namespace\n * (for example, goog.provide(\"goog.foo.bar\") will create the object\n * goog.foo.bar if it does not already exist).\n *\n * Build tools also scan for provide/require/module statements\n * to discern dependencies, build dependency files (see deps.js), etc.\n *\n * @see goog.require\n * @see goog.module\n * @param {string} name Namespace provided by this file in the form\n * \"goog.package.part\".\n * deprecated Use goog.module (see b/159289405)\n */\ngoog.provide = function(name) {\n if (goog.isInModuleLoader_()) {\n throw new Error('goog.provide cannot be used within a module.');\n }\n if (!COMPILED) {\n // Ensure that the same namespace isn't provided twice.\n // A goog.module/goog.provide maps a goog.require to a specific file\n if (goog.isProvided_(name)) {\n throw new Error('Namespace \"' + name + '\" already declared.');\n }\n }\n\n goog.constructNamespace_(name);\n};\n\n\n/**\n * @param {string} name Namespace provided by this file in the form\n * \"goog.package.part\".\n * @param {?Object=} object The object to embed in the namespace.\n * @param {boolean=} overwriteImplicit If object is set and a previous call\n * implicitly constructed the namespace given by name, this parameter\n * controls whether opt_obj should overwrite the implicitly constructed\n * namespace or be merged into it. Defaults to false.\n * @private\n */\ngoog.constructNamespace_ = function(name, object, overwriteImplicit) {\n if (!COMPILED) {\n delete goog.implicitNamespaces_[name];\n\n var namespace = name;\n while ((namespace = namespace.substring(0, namespace.lastIndexOf('.')))) {\n if (goog.getObjectByName(namespace)) {\n break;\n }\n goog.implicitNamespaces_[namespace] = true;\n }\n }\n\n goog.exportPath_(name, object, overwriteImplicit);\n};\n\n\n/**\n * According to the CSP3 spec a nonce must be a valid base64 string.\n * @see https://www.w3.org/TR/CSP3/#grammardef-base64-value\n * @private @const\n */\ngoog.NONCE_PATTERN_ = /^[\\w+/_-]+[=]{0,2}$/;\n\n\n/**\n * Returns CSP nonce, if set for any script tag.\n * @param {?Window=} opt_window The window context used to retrieve the nonce.\n * Defaults to global context.\n * @return {string} CSP nonce or empty string if no nonce is present.\n * @private\n */\ngoog.getScriptNonce_ = function(opt_window) {\n var doc = (opt_window || goog.global).document;\n var script = doc.querySelector && doc.querySelector('script[nonce]');\n if (script) {\n // Try to get the nonce from the IDL property first, because browsers that\n // implement additional nonce protection features (currently only Chrome) to\n // prevent nonce stealing via CSS do not expose the nonce via attributes.\n // See https://github.com/whatwg/html/issues/2369\n var nonce = script['nonce'] || script.getAttribute('nonce');\n if (nonce && goog.NONCE_PATTERN_.test(nonce)) {\n return nonce;\n }\n }\n return '';\n};\n\n\n/**\n * Module identifier validation regexp.\n * Note: This is a conservative check, it is very possible to be more lenient,\n * the primary exclusion here is \"/\" and \"\\\" and a leading \".\", these\n * restrictions are intended to leave the door open for using goog.require\n * with relative file paths rather than module identifiers.\n * @private\n */\ngoog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\n\n\n/**\n * Defines a module in Closure.\n *\n * Marks that this file must be loaded as a module and claims the namespace.\n *\n * A namespace may only be defined once in a codebase. It may be defined using\n * goog.provide() or goog.module().\n *\n * goog.module() has three requirements:\n * - goog.module may not be used in the same file as goog.provide.\n * - goog.module must be the first statement in the file.\n * - only one goog.module is allowed per file.\n *\n * When a goog.module annotated file is loaded, it is enclosed in\n * a strict function closure. This means that:\n * - any variables declared in a goog.module file are private to the file\n * (not global), though the compiler is expected to inline the module.\n * - The code must obey all the rules of \"strict\" JavaScript.\n * - the file will be marked as \"use strict\"\n *\n * NOTE: unlike goog.provide, goog.module does not declare any symbols by\n * itself. If declared symbols are desired, use\n * goog.module.declareLegacyNamespace().\n *\n *\n * See the public goog.module proposal: http://goo.gl/Va1hin\n *\n * @param {string} name Namespace provided by this file in the form\n * \"goog.package.part\", is expected but not required.\n * @return {void}\n */\ngoog.module = function(name) {\n if (typeof name !== 'string' || !name ||\n name.search(goog.VALID_MODULE_RE_) == -1) {\n throw new Error('Invalid module identifier');\n }\n if (!goog.isInGoogModuleLoader_()) {\n throw new Error(\n 'Module ' + name + ' has been loaded incorrectly. Note, ' +\n 'modules cannot be loaded as normal scripts. They require some kind of ' +\n 'pre-processing step. You\\'re likely trying to load a module via a ' +\n 'script tag or as a part of a concatenated bundle without rewriting the ' +\n 'module. For more info see: ' +\n 'https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.');\n }\n if (goog.moduleLoaderState_.moduleName) {\n throw new Error('goog.module may only be called once per module.');\n }\n\n // Store the module name for the loader.\n goog.moduleLoaderState_.moduleName = name;\n if (!COMPILED) {\n // Ensure that the same namespace isn't provided twice.\n // A goog.module/goog.provide maps a goog.require to a specific file\n if (goog.isProvided_(name)) {\n throw new Error('Namespace \"' + name + '\" already declared.');\n }\n delete goog.implicitNamespaces_[name];\n }\n};\n\n\n/**\n * @param {string} name The module identifier.\n * @return {?} The module exports for an already loaded module or null.\n *\n * Note: This is not an alternative to goog.require, it does not\n * indicate a hard dependency, instead it is used to indicate\n * an optional dependency or to access the exports of a module\n * that has already been loaded.\n * @suppress {missingProvide}\n */\ngoog.module.get = function(name) {\n return goog.module.getInternal_(name);\n};\n\n\n/**\n * @param {string} name The module identifier.\n * @return {?} The module exports for an already loaded module or null.\n * @private\n */\ngoog.module.getInternal_ = function(name) {\n if (!COMPILED) {\n if (name in goog.loadedModules_) {\n return goog.loadedModules_[name].exports;\n } else if (!goog.implicitNamespaces_[name]) {\n var ns = goog.getObjectByName(name);\n return ns != null ? ns : null;\n }\n }\n return null;\n};\n\n/**\n * Types of modules the debug loader can load.\n * @enum {string}\n */\ngoog.ModuleType = {\n ES6: 'es6',\n GOOG: 'goog'\n};\n\n\n/**\n * @private {?{\n * moduleName: (string|undefined),\n * declareLegacyNamespace:boolean,\n * type: ?goog.ModuleType\n * }}\n */\ngoog.moduleLoaderState_ = null;\n\n\n/**\n * @private\n * @return {boolean} Whether a goog.module or an es6 module is currently being\n * initialized.\n */\ngoog.isInModuleLoader_ = function() {\n return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();\n};\n\n\n/**\n * @private\n * @return {boolean} Whether a goog.module is currently being initialized.\n */\ngoog.isInGoogModuleLoader_ = function() {\n return !!goog.moduleLoaderState_ &&\n goog.moduleLoaderState_.type == goog.ModuleType.GOOG;\n};\n\n\n/**\n * @private\n * @return {boolean} Whether an es6 module is currently being initialized.\n */\ngoog.isInEs6ModuleLoader_ = function() {\n var inLoader = !!goog.moduleLoaderState_ &&\n goog.moduleLoaderState_.type == goog.ModuleType.ES6;\n\n if (inLoader) {\n return true;\n }\n\n var jscomp = goog.global['$jscomp'];\n\n if (jscomp) {\n // jscomp may not have getCurrentModulePath if this is a compiled bundle\n // that has some of the runtime, but not all of it. This can happen if\n // optimizations are turned on so the unused runtime is removed but renaming\n // and Closure pass are off (so $jscomp is still named $jscomp and the\n // goog.provide/require calls still exist).\n if (typeof jscomp.getCurrentModulePath != 'function') {\n return false;\n }\n\n // Bundled ES6 module.\n return !!jscomp.getCurrentModulePath();\n }\n\n return false;\n};\n\n\n/**\n * Provide the module's exports as a globally accessible object under the\n * module's declared name. This is intended to ease migration to goog.module\n * for files that have existing usages.\n * @suppress {missingProvide}\n */\ngoog.module.declareLegacyNamespace = function() {\n if (!COMPILED && !goog.isInGoogModuleLoader_()) {\n throw new Error(\n 'goog.module.declareLegacyNamespace must be called from ' +\n 'within a goog.module');\n }\n if (!COMPILED && !goog.moduleLoaderState_.moduleName) {\n throw new Error(\n 'goog.module must be called prior to ' +\n 'goog.module.declareLegacyNamespace.');\n }\n goog.moduleLoaderState_.declareLegacyNamespace = true;\n};\n\n\n/**\n * Associates an ES6 module with a Closure module ID so that is available via\n * goog.require. The associated ID acts like a goog.module ID - it does not\n * create any global names, it is merely available via goog.require /\n * goog.module.get / goog.forwardDeclare / goog.requireType. goog.require and\n * goog.module.get will return the entire module as if it was import *'d. This\n * allows Closure files to reference ES6 modules for the sake of migration.\n *\n * @param {string} namespace\n * @suppress {missingProvide}\n */\ngoog.declareModuleId = function(namespace) {\n if (!COMPILED) {\n if (!goog.isInEs6ModuleLoader_()) {\n throw new Error(\n 'goog.declareModuleId may only be called from ' +\n 'within an ES6 module');\n }\n if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) {\n throw new Error(\n 'goog.declareModuleId may only be called once per module.');\n }\n if (namespace in goog.loadedModules_) {\n throw new Error(\n 'Module with namespace \"' + namespace + '\" already exists.');\n }\n }\n if (goog.moduleLoaderState_) {\n // Not bundled - debug loading.\n goog.moduleLoaderState_.moduleName = namespace;\n } else {\n // Bundled - not debug loading, no module loader state.\n var jscomp = goog.global['$jscomp'];\n if (!jscomp || typeof jscomp.getCurrentModulePath != 'function') {\n throw new Error(\n 'Module with namespace \"' + namespace +\n '\" has been loaded incorrectly.');\n }\n var exports = jscomp.require(jscomp.getCurrentModulePath());\n goog.loadedModules_[namespace] = {\n exports: exports,\n type: goog.ModuleType.ES6,\n moduleId: namespace\n };\n }\n};\n\n\n/**\n * Marks that the current file should only be used for testing, and never for\n * live code in production.\n *\n * In the case of unit tests, the message may optionally be an exact namespace\n * for the test (e.g. 'goog.stringTest'). The linter will then ignore the extra\n * provide (if not explicitly defined in the code).\n *\n * @param {string=} opt_message Optional message to add to the error that's\n * raised when used in production code.\n */\ngoog.setTestOnly = function(opt_message) {\n if (goog.DISALLOW_TEST_ONLY_CODE) {\n opt_message = opt_message || '';\n throw new Error(\n 'Importing test-only code into non-debug environment' +\n (opt_message ? ': ' + opt_message : '.'));\n }\n};\n\n\n/**\n * Forward declares a symbol. This is an indication to the compiler that the\n * symbol may be used in the source yet is not required and may not be provided\n * in compilation.\n *\n * The most common usage of forward declaration is code that takes a type as a\n * function parameter but does not need to require it. By forward declaring\n * instead of requiring, no hard dependency is made, and (if not required\n * elsewhere) the namespace may never be required and thus, not be pulled\n * into the JavaScript binary. If it is required elsewhere, it will be type\n * checked as normal.\n *\n * Before using goog.forwardDeclare, please read the documentation at\n * https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation to\n * understand the options and tradeoffs when working with forward declarations.\n *\n * @param {string} name The namespace to forward declare in the form of\n * \"goog.package.part\".\n * @deprecated See go/noforwarddeclaration, Use `goog.requireType` instead.\n */\ngoog.forwardDeclare = function(name) {};\n\n\n/**\n * Forward declare type information. Used to assign types to goog.global\n * referenced object that would otherwise result in unknown type references\n * and thus block property disambiguation.\n */\ngoog.forwardDeclare('Document');\ngoog.forwardDeclare('HTMLScriptElement');\ngoog.forwardDeclare('XMLHttpRequest');\n\n\nif (!COMPILED) {\n /**\n * Check if the given name has been goog.provided. This will return false for\n * names that are available only as implicit namespaces.\n * @param {string} name name of the object to look for.\n * @return {boolean} Whether the name has been provided.\n * @private\n */\n goog.isProvided_ = function(name) {\n return (name in goog.loadedModules_) ||\n (!goog.implicitNamespaces_[name] && goog.getObjectByName(name) != null);\n };\n\n /**\n * Namespaces implicitly defined by goog.provide. For example,\n * goog.provide('goog.events.Event') implicitly declares that 'goog' and\n * 'goog.events' must be namespaces.\n *\n * @type {!Object}\n * @private\n */\n goog.implicitNamespaces_ = {'goog.module': true};\n\n // NOTE: We add goog.module as an implicit namespace as goog.module is defined\n // here and because the existing module package has not been moved yet out of\n // the goog.module namespace. This satisifies both the debug loader and\n // ahead-of-time dependency management.\n}\n\n\n/**\n * Returns an object based on its fully qualified external name. The object\n * is not found if null or undefined. If you are using a compilation pass that\n * renames property names beware that using this function will not find renamed\n * properties.\n *\n * @param {string} name The fully qualified name.\n * @param {Object=} opt_obj The object within which to look; default is\n * |goog.global|.\n * @return {?} The value (object or primitive) or, if not found, null.\n */\ngoog.getObjectByName = function(name, opt_obj) {\n var parts = name.split('.');\n var cur = opt_obj || goog.global;\n for (var i = 0; i < parts.length; i++) {\n cur = cur[parts[i]];\n if (cur == null) {\n return null;\n }\n }\n return cur;\n};\n\n\n/**\n * Adds a dependency from a file to the files it requires.\n * @param {string} relPath The path to the js file.\n * @param {!Array} provides An array of strings with\n * the names of the objects this file provides.\n * @param {!Array} requires An array of strings with\n * the names of the objects this file requires.\n * @param {boolean|!Object=} opt_loadFlags Parameters indicating\n * how the file must be loaded. The boolean 'true' is equivalent\n * to {'module': 'goog'} for backwards-compatibility. Valid properties\n * and values include {'module': 'goog'} and {'lang': 'es6'}.\n */\ngoog.addDependency = function(relPath, provides, requires, opt_loadFlags) {\n if (!COMPILED && goog.DEPENDENCIES_ENABLED) {\n goog.debugLoader_.addDependency(relPath, provides, requires, opt_loadFlags);\n }\n};\n\n\n// NOTE(nnaze): The debug DOM loader was included in base.js as an original way\n// to do \"debug-mode\" development. The dependency system can sometimes be\n// confusing, as can the debug DOM loader's asynchronous nature.\n//\n// With the DOM loader, a call to goog.require() is not blocking -- the script\n// will not load until some point after the current script. If a namespace is\n// needed at runtime, it needs to be defined in a previous script, or loaded via\n// require() with its registered dependencies.\n//\n// User-defined namespaces may need their own deps file. For a reference on\n// creating a deps file, see:\n// Externally: https://developers.google.com/closure/library/docs/depswriter\n//\n// Because of legacy clients, the DOM loader can't be easily removed from\n// base.js. Work was done to make it disableable or replaceable for\n// different environments (DOM-less JavaScript interpreters like Rhino or V8,\n// for example). See bootstrap/ for more information.\n\n\n/**\n * @define {boolean} Whether to enable the debug loader.\n *\n * If enabled, a call to goog.require() will attempt to load the namespace by\n * appending a script tag to the DOM (if the namespace has been registered).\n *\n * If disabled, goog.require() will simply assert that the namespace has been\n * provided (and depend on the fact that some outside tool correctly ordered\n * the script).\n */\ngoog.ENABLE_DEBUG_LOADER = goog.define('goog.ENABLE_DEBUG_LOADER', true);\n\n\n/**\n * @param {string} msg\n * @private\n */\ngoog.logToConsole_ = function(msg) {\n if (goog.global.console) {\n goog.global.console['error'](msg);\n }\n};\n\n\n/**\n * Implements a system for the dynamic resolution of dependencies that works in\n * parallel with the BUILD system.\n *\n * Note that all calls to goog.require will be stripped by the compiler.\n *\n * @see goog.provide\n * @param {string} namespace Namespace (as was given in goog.provide,\n * goog.module, or goog.declareModuleId) in the form\n * \"goog.package.part\".\n * @return {?} If called within a goog.module or ES6 module file, the associated\n * namespace or module otherwise null.\n */\ngoog.require = function(namespace) {\n if (!COMPILED) {\n // Might need to lazy load on old IE.\n if (goog.ENABLE_DEBUG_LOADER) {\n goog.debugLoader_.requested(namespace);\n }\n\n // If the object already exists we do not need to do anything.\n if (goog.isProvided_(namespace)) {\n if (goog.isInModuleLoader_()) {\n return goog.module.getInternal_(namespace);\n }\n } else if (goog.ENABLE_DEBUG_LOADER) {\n var moduleLoaderState = goog.moduleLoaderState_;\n goog.moduleLoaderState_ = null;\n try {\n goog.debugLoader_.load_(namespace);\n } finally {\n goog.moduleLoaderState_ = moduleLoaderState;\n }\n }\n\n return null;\n }\n};\n\n\n/**\n * Requires a symbol for its type information. This is an indication to the\n * compiler that the symbol may appear in type annotations, yet it is not\n * referenced at runtime.\n *\n * When called within a goog.module or ES6 module file, the return value may be\n * assigned to or destructured into a variable, but it may not be otherwise used\n * in code outside of a type annotation.\n *\n * Note that all calls to goog.requireType will be stripped by the compiler.\n *\n * @param {string} namespace Namespace (as was given in goog.provide,\n * goog.module, or goog.declareModuleId) in the form\n * \"goog.package.part\".\n * @return {?}\n */\ngoog.requireType = function(namespace) {\n // Return an empty object so that single-level destructuring of the return\n // value doesn't crash at runtime when using the debug loader. Multi-level\n // destructuring isn't supported.\n return {};\n};\n\n\n/**\n * Path for included scripts.\n * @type {string}\n */\ngoog.basePath = '';\n\n\n/**\n * A hook for overriding the base path.\n * @type {string|undefined}\n */\ngoog.global.CLOSURE_BASE_PATH;\n\n\n/**\n * Whether to attempt to load Closure's deps file. By default, when uncompiled,\n * deps files will attempt to be loaded.\n * @type {boolean|undefined}\n */\ngoog.global.CLOSURE_NO_DEPS;\n\n\n/**\n * A function to import a single script. This is meant to be overridden when\n * Closure is being run in non-HTML contexts, such as web workers. It's defined\n * in the global scope so that it can be set before base.js is loaded, which\n * allows deps.js to be imported properly.\n *\n * The first parameter the script source, which is a relative URI. The second,\n * optional parameter is the script contents, in the event the script needed\n * transformation. It should return true if the script was imported, false\n * otherwise.\n * @type {(function(string, string=): boolean)|undefined}\n */\ngoog.global.CLOSURE_IMPORT_SCRIPT;\n\n\n/**\n * When defining a class Foo with an abstract method bar(), you can do:\n * Foo.prototype.bar = goog.abstractMethod\n *\n * Now if a subclass of Foo fails to override bar(), an error will be thrown\n * when bar() is invoked.\n *\n * @type {!Function}\n * @throws {Error} when invoked to indicate the method should be overridden.\n * @deprecated Use \"@abstract\" annotation instead of goog.abstractMethod in new\n * code. See\n * https://github.com/google/closure-compiler/wiki/@abstract-classes-and-methods\n */\ngoog.abstractMethod = function() {\n throw new Error('unimplemented abstract method');\n};\n\n\n/**\n * Adds a `getInstance` static method that always returns the same\n * instance object.\n * @param {!Function} ctor The constructor for the class to add the static\n * method to.\n * @suppress {missingProperties} 'instance_' isn't a property on 'Function'\n * but we don't have a better type to use here.\n */\ngoog.addSingletonGetter = function(ctor) {\n // instance_ is immediately set to prevent issues with sealed constructors\n // such as are encountered when a constructor is returned as the export object\n // of a goog.module in unoptimized code.\n // Delcare type to avoid conformance violations that ctor.instance_ is unknown\n /** @type {undefined|!Object} @suppress {underscore} */\n ctor.instance_ = undefined;\n ctor.getInstance = function() {\n if (ctor.instance_) {\n return ctor.instance_;\n }\n if (goog.DEBUG) {\n // NOTE: JSCompiler can't optimize away Array#push.\n goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor;\n }\n // Cast to avoid conformance violations that ctor.instance_ is unknown\n return /** @type {!Object|undefined} */ (ctor.instance_) = new ctor;\n };\n};\n\n\n/**\n * All singleton classes that have been instantiated, for testing. Don't read\n * it directly, use the `goog.testing.singleton` module. The compiler\n * removes this variable if unused.\n * @type {!Array}\n * @private\n */\ngoog.instantiatedSingletons_ = [];\n\n\n/**\n * @define {boolean} Whether to load goog.modules using `eval` when using\n * the debug loader. This provides a better debugging experience as the\n * source is unmodified and can be edited using Chrome Workspaces or similar.\n * However in some environments the use of `eval` is banned\n * so we provide an alternative.\n */\ngoog.LOAD_MODULE_USING_EVAL = goog.define('goog.LOAD_MODULE_USING_EVAL', true);\n\n\n/**\n * @define {boolean} Whether the exports of goog.modules should be sealed when\n * possible.\n */\ngoog.SEAL_MODULE_EXPORTS = goog.define('goog.SEAL_MODULE_EXPORTS', goog.DEBUG);\n\n\n/**\n * The registry of initialized modules:\n * The module identifier or path to module exports map.\n * @private @const {!Object}\n */\ngoog.loadedModules_ = {};\n\n\n/**\n * True if the debug loader enabled and used.\n * @const {boolean}\n */\ngoog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;\n\n\n/**\n * @define {string} How to decide whether to transpile. Valid values\n * are 'always', 'never', and 'detect'. The default ('detect') is to\n * use feature detection to determine which language levels need\n * transpilation.\n */\n// NOTE(sdh): we could expand this to accept a language level to bypass\n// detection: e.g. goog.TRANSPILE == 'es5' would transpile ES6 files but\n// would leave ES3 and ES5 files alone.\ngoog.TRANSPILE = goog.define('goog.TRANSPILE', 'detect');\n\n/**\n * @define {boolean} If true assume that ES modules have already been\n * transpiled by the jscompiler (in the same way that transpile.js would\n * transpile them - to jscomp modules). Useful only for servers that wish to use\n * the debug loader and transpile server side. Thus this is only respected if\n * goog.TRANSPILE is \"never\".\n */\ngoog.ASSUME_ES_MODULES_TRANSPILED =\n goog.define('goog.ASSUME_ES_MODULES_TRANSPILED', false);\n\n\n/**\n * @define {string} Trusted Types policy name. If non-empty then Closure will\n * use Trusted Types.\n */\ngoog.TRUSTED_TYPES_POLICY_NAME =\n goog.define('goog.TRUSTED_TYPES_POLICY_NAME', 'goog');\n\n\n/**\n * @package {?boolean}\n * Visible for testing.\n */\ngoog.hasBadLetScoping = null;\n\n\n/**\n * @param {function(?):?|string} moduleDef The module definition.\n */\ngoog.loadModule = function(moduleDef) {\n // NOTE: we allow function definitions to be either in the from\n // of a string to eval (which keeps the original source intact) or\n // in a eval forbidden environment (CSP) we allow a function definition\n // which in its body must call `goog.module`, and return the exports\n // of the module.\n var previousState = goog.moduleLoaderState_;\n try {\n goog.moduleLoaderState_ = {\n moduleName: '',\n declareLegacyNamespace: false,\n type: goog.ModuleType.GOOG\n };\n var origExports = {};\n var exports = origExports;\n if (typeof moduleDef === 'function') {\n exports = moduleDef.call(undefined, exports);\n } else if (typeof moduleDef === 'string') {\n exports = goog.loadModuleFromSource_.call(undefined, exports, moduleDef);\n } else {\n throw new Error('Invalid module definition');\n }\n\n var moduleName = goog.moduleLoaderState_.moduleName;\n if (typeof moduleName === 'string' && moduleName) {\n // Don't seal legacy namespaces as they may be used as a parent of\n // another namespace\n if (goog.moduleLoaderState_.declareLegacyNamespace) {\n // Whether exports was overwritten via default export assignment.\n // This is important for legacy namespaces as it dictates whether\n // previously a previously loaded implicit namespace should be clobbered\n // or not.\n var isDefaultExport = origExports !== exports;\n goog.constructNamespace_(moduleName, exports, isDefaultExport);\n } else if (\n goog.SEAL_MODULE_EXPORTS && Object.seal &&\n typeof exports == 'object' && exports != null) {\n Object.seal(exports);\n }\n\n var data = {\n exports: exports,\n type: goog.ModuleType.GOOG,\n moduleId: goog.moduleLoaderState_.moduleName\n };\n goog.loadedModules_[moduleName] = data;\n } else {\n throw new Error('Invalid module name \\\"' + moduleName + '\\\"');\n }\n } finally {\n goog.moduleLoaderState_ = previousState;\n }\n};\n\n\n/**\n * @private @const\n */\ngoog.loadModuleFromSource_ =\n /** @type {function(!Object, string):?} */ (function(exports) {\n // NOTE: we avoid declaring parameters or local variables here to avoid\n // masking globals or leaking values into the module definition.\n 'use strict';\n eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(arguments[1]));\n return exports;\n });\n\n\n/**\n * Normalize a file path by removing redundant \"..\" and extraneous \".\" file\n * path components.\n * @param {string} path\n * @return {string}\n * @private\n */\ngoog.normalizePath_ = function(path) {\n var components = path.split('/');\n var i = 0;\n while (i < components.length) {\n if (components[i] == '.') {\n components.splice(i, 1);\n } else if (\n i && components[i] == '..' && components[i - 1] &&\n components[i - 1] != '..') {\n components.splice(--i, 2);\n } else {\n i++;\n }\n }\n return components.join('/');\n};\n\n\n/**\n * Provides a hook for loading a file when using Closure's goog.require() API\n * with goog.modules. In particular this hook is provided to support Node.js.\n *\n * @type {(function(string):string)|undefined}\n */\ngoog.global.CLOSURE_LOAD_FILE_SYNC;\n\n\n/**\n * Loads file by synchronous XHR. Should not be used in production environments.\n * @param {string} src Source URL.\n * @return {?string} File contents, or null if load failed.\n * @private\n */\ngoog.loadFileSync_ = function(src) {\n if (goog.global.CLOSURE_LOAD_FILE_SYNC) {\n return goog.global.CLOSURE_LOAD_FILE_SYNC(src);\n } else {\n try {\n /** @type {XMLHttpRequest} */\n var xhr = new goog.global['XMLHttpRequest']();\n xhr.open('get', src, false);\n xhr.send();\n // NOTE: Successful http: requests have a status of 200, but successful\n // file: requests may have a status of zero. Any other status, or a\n // thrown exception (particularly in case of file: requests) indicates\n // some sort of error, which we treat as a missing or unavailable file.\n return xhr.status == 0 || xhr.status == 200 ? xhr.responseText : null;\n } catch (err) {\n // No need to rethrow or log, since errors should show up on their own.\n return null;\n }\n }\n};\n\n//==============================================================================\n// Language Enhancements\n//==============================================================================\n\n\n/**\n * This is a \"fixed\" version of the typeof operator. It differs from the typeof\n * operator in such a way that null returns 'null' and arrays return 'array'.\n * @param {?} value The value to get the type of.\n * @return {string} The name of the type.\n */\ngoog.typeOf = function(value) {\n var s = typeof value;\n\n if (s != 'object') {\n return s;\n }\n\n if (!value) {\n return 'null';\n }\n\n if (Array.isArray(value)) {\n return 'array';\n }\n return s;\n};\n\n\n/**\n * Returns true if the object looks like an array. To qualify as array like\n * the value needs to be either a NodeList or an object with a Number length\n * property. Note that for this function neither strings nor functions are\n * considered \"array-like\".\n *\n * @param {?} val Variable to test.\n * @return {boolean} Whether variable is an array.\n */\ngoog.isArrayLike = function(val) {\n var type = goog.typeOf(val);\n // We do not use goog.isObject here in order to exclude function values.\n return type == 'array' || type == 'object' && typeof val.length == 'number';\n};\n\n\n/**\n * Returns true if the object looks like a Date. To qualify as Date-like the\n * value needs to be an object and have a getFullYear() function.\n * @param {?} val Variable to test.\n * @return {boolean} Whether variable is a like a Date.\n */\ngoog.isDateLike = function(val) {\n return goog.isObject(val) && typeof val.getFullYear == 'function';\n};\n\n\n/**\n * Returns true if the specified value is an object. This includes arrays and\n * functions.\n * @param {?} val Variable to test.\n * @return {boolean} Whether variable is an object.\n */\ngoog.isObject = function(val) {\n var type = typeof val;\n return type == 'object' && val != null || type == 'function';\n // return Object(val) === val also works, but is slower, especially if val is\n // not an object.\n};\n\n\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. The unique ID is\n * guaranteed to be unique across the current session amongst objects that are\n * passed into `getUid`. There is no guarantee that the ID is unique or\n * consistent across sessions. It is unsafe to generate unique ID for function\n * prototypes.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {number} The unique ID for the object.\n */\ngoog.getUid = function(obj) {\n // TODO(arv): Make the type stricter, do not accept null.\n return Object.prototype.hasOwnProperty.call(obj, goog.UID_PROPERTY_) &&\n obj[goog.UID_PROPERTY_] ||\n (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_);\n};\n\n\n/**\n * Whether the given object is already assigned a unique ID.\n *\n * This does not modify the object.\n *\n * @param {!Object} obj The object to check.\n * @return {boolean} Whether there is an assigned unique id for the object.\n */\ngoog.hasUid = function(obj) {\n return !!obj[goog.UID_PROPERTY_];\n};\n\n\n/**\n * Removes the unique ID from an object. This is useful if the object was\n * previously mutated using `goog.getUid` in which case the mutation is\n * undone.\n * @param {Object} obj The object to remove the unique ID field from.\n */\ngoog.removeUid = function(obj) {\n // TODO(arv): Make the type stricter, do not accept null.\n\n // In IE, DOM nodes are not instances of Object and throw an exception if we\n // try to delete. Instead we try to use removeAttribute.\n if (obj !== null && 'removeAttribute' in obj) {\n obj.removeAttribute(goog.UID_PROPERTY_);\n }\n\n try {\n delete obj[goog.UID_PROPERTY_];\n } catch (ex) {\n }\n};\n\n\n/**\n * Name for unique ID property. Initialized in a way to help avoid collisions\n * with other closure JavaScript on the same page.\n * @type {string}\n * @private\n */\ngoog.UID_PROPERTY_ = 'closure_uid_' + ((Math.random() * 1e9) >>> 0);\n\n\n/**\n * Counter for UID.\n * @type {number}\n * @private\n */\ngoog.uidCounter_ = 0;\n\n\n/**\n * Clones a value. The input may be an Object, Array, or basic type. Objects and\n * arrays will be cloned recursively.\n *\n * WARNINGS:\n * goog.cloneObject does not detect reference loops. Objects that\n * refer to themselves will cause infinite recursion.\n *\n * goog.cloneObject is unaware of unique identifiers, and copies\n * UIDs created by getUid into cloned results.\n *\n * @param {*} obj The value to clone.\n * @return {*} A clone of the input value.\n * @deprecated goog.cloneObject is unsafe. Prefer the goog.object methods.\n */\ngoog.cloneObject = function(obj) {\n var type = goog.typeOf(obj);\n if (type == 'object' || type == 'array') {\n if (typeof obj.clone === 'function') {\n return obj.clone();\n }\n if (typeof Map !== 'undefined' && obj instanceof Map) {\n return new Map(obj);\n } else if (typeof Set !== 'undefined' && obj instanceof Set) {\n return new Set(obj);\n }\n var clone = type == 'array' ? [] : {};\n for (var key in obj) {\n clone[key] = goog.cloneObject(obj[key]);\n }\n return clone;\n }\n\n return obj;\n};\n\n\n/**\n * A native implementation of goog.bind.\n * @param {?function(this:T, ...)} fn A function to partially apply.\n * @param {T} selfObj Specifies the object which this should point to when the\n * function is run.\n * @param {...*} var_args Additional arguments that are partially applied to the\n * function.\n * @return {!Function} A partially-applied form of the function goog.bind() was\n * invoked as a method of.\n * @template T\n * @private\n */\ngoog.bindNative_ = function(fn, selfObj, var_args) {\n return /** @type {!Function} */ (fn.call.apply(fn.bind, arguments));\n};\n\n\n/**\n * A pure-JS implementation of goog.bind.\n * @param {?function(this:T, ...)} fn A function to partially apply.\n * @param {T} selfObj Specifies the object which this should point to when the\n * function is run.\n * @param {...*} var_args Additional arguments that are partially applied to the\n * function.\n * @return {!Function} A partially-applied form of the function goog.bind() was\n * invoked as a method of.\n * @template T\n * @private\n */\ngoog.bindJs_ = function(fn, selfObj, var_args) {\n if (!fn) {\n throw new Error();\n }\n\n if (arguments.length > 2) {\n var boundArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n // Prepend the bound arguments to the current arguments.\n var newArgs = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(newArgs, boundArgs);\n return fn.apply(selfObj, newArgs);\n };\n\n } else {\n return function() {\n return fn.apply(selfObj, arguments);\n };\n }\n};\n\n\n/**\n * Partially applies this function to a particular 'this object' and zero or\n * more arguments. The result is a new function with some arguments of the first\n * function pre-filled and the value of this 'pre-specified'.\n *\n * Remaining arguments specified at call-time are appended to the pre-specified\n * ones.\n *\n * Also see: {@link #partial}.\n *\n * Usage:\n *
var barMethBound = goog.bind(myFunction, myObj, 'arg1', 'arg2');\n * barMethBound('arg3', 'arg4');
\n *\n * @param {?function(this:T, ...)} fn A function to partially apply.\n * @param {T} selfObj Specifies the object which this should point to when the\n * function is run.\n * @param {...*} var_args Additional arguments that are partially applied to the\n * function.\n * @return {!Function} A partially-applied form of the function goog.bind() was\n * invoked as a method of.\n * @template T\n * @suppress {deprecated} See above.\n * @deprecated use `=> {}` or Function.prototype.bind instead.\n */\ngoog.bind = function(fn, selfObj, var_args) {\n // TODO(nicksantos): narrow the type signature.\n if (Function.prototype.bind &&\n // NOTE(nicksantos): Somebody pulled base.js into the default Chrome\n // extension environment. This means that for Chrome extensions, they get\n // the implementation of Function.prototype.bind that calls goog.bind\n // instead of the native one. Even worse, we don't want to introduce a\n // circular dependency between goog.bind and Function.prototype.bind, so\n // we have to hack this to make sure it works correctly.\n Function.prototype.bind.toString().indexOf('native code') != -1) {\n goog.bind = goog.bindNative_;\n } else {\n goog.bind = goog.bindJs_;\n }\n return goog.bind.apply(null, arguments);\n};\n\n\n/**\n * Like goog.bind(), except that a 'this object' is not required. Useful when\n * the target function is already bound.\n *\n * Usage:\n * var g = goog.partial(f, arg1, arg2);\n * g(arg3, arg4);\n *\n * @param {Function} fn A function to partially apply.\n * @param {...*} var_args Additional arguments that are partially applied to fn.\n * @return {!Function} A partially-applied form of the function goog.partial()\n * was invoked as a method of.\n */\ngoog.partial = function(fn, var_args) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function() {\n // Clone the array (with slice()) and append additional arguments\n // to the existing arguments.\n var newArgs = args.slice();\n newArgs.push.apply(newArgs, arguments);\n return fn.apply(/** @type {?} */ (this), newArgs);\n };\n};\n\n\n/**\n * @return {number} An integer value representing the number of milliseconds\n * between midnight, January 1, 1970 and the current time.\n * @deprecated Use Date.now\n */\ngoog.now = function() {\n return Date.now();\n};\n\n\n/**\n * Evals JavaScript in the global scope.\n *\n * Throws an exception if neither execScript or eval is defined.\n * @param {string|!TrustedScript} script JavaScript string.\n */\ngoog.globalEval = function(script) {\n (0, eval)(script);\n};\n\n\n/**\n * Optional map of CSS class names to obfuscated names used with\n * goog.getCssName().\n * @private {!Object|undefined}\n * @see goog.setCssNameMapping\n */\ngoog.cssNameMapping_;\n\n\n/**\n * Optional obfuscation style for CSS class names. Should be set to either\n * 'BY_WHOLE' or 'BY_PART' if defined.\n * @type {string|undefined}\n * @private\n * @see goog.setCssNameMapping\n */\ngoog.cssNameMappingStyle_;\n\n\n\n/**\n * A hook for modifying the default behavior goog.getCssName. The function\n * if present, will receive the standard output of the goog.getCssName as\n * its input.\n *\n * @type {(function(string):string)|undefined}\n */\ngoog.global.CLOSURE_CSS_NAME_MAP_FN;\n\n\n/**\n * Handles strings that are intended to be used as CSS class names.\n *\n * This function works in tandem with @see goog.setCssNameMapping.\n *\n * Without any mapping set, the arguments are simple joined with a hyphen and\n * passed through unaltered.\n *\n * When there is a mapping, there are two possible styles in which these\n * mappings are used. In the BY_PART style, each part (i.e. in between hyphens)\n * of the passed in css name is rewritten according to the map. In the BY_WHOLE\n * style, the full css name is looked up in the map directly. If a rewrite is\n * not specified by the map, the compiler will output a warning.\n *\n * When the mapping is passed to the compiler, it will replace calls to\n * goog.getCssName with the strings from the mapping, e.g.\n * var x = goog.getCssName('foo');\n * var y = goog.getCssName(this.baseClass, 'active');\n * becomes:\n * var x = 'foo';\n * var y = this.baseClass + '-active';\n *\n * If one argument is passed it will be processed, if two are passed only the\n * modifier will be processed, as it is assumed the first argument was generated\n * as a result of calling goog.getCssName.\n *\n * @param {string} className The class name.\n * @param {string=} opt_modifier A modifier to be appended to the class name.\n * @return {string} The class name or the concatenation of the class name and\n * the modifier.\n */\ngoog.getCssName = function(className, opt_modifier) {\n // String() is used for compatibility with compiled soy where the passed\n // className can be non-string objects.\n if (String(className).charAt(0) == '.') {\n throw new Error(\n 'className passed in goog.getCssName must not start with \".\".' +\n ' You passed: ' + className);\n }\n\n var getMapping = function(cssName) {\n return goog.cssNameMapping_[cssName] || cssName;\n };\n\n var renameByParts = function(cssName) {\n // Remap all the parts individually.\n var parts = cssName.split('-');\n var mapped = [];\n for (var i = 0; i < parts.length; i++) {\n mapped.push(getMapping(parts[i]));\n }\n return mapped.join('-');\n };\n\n var rename;\n if (goog.cssNameMapping_) {\n rename =\n goog.cssNameMappingStyle_ == 'BY_WHOLE' ? getMapping : renameByParts;\n } else {\n rename = function(a) {\n return a;\n };\n }\n\n var result =\n opt_modifier ? className + '-' + rename(opt_modifier) : rename(className);\n\n // The special CLOSURE_CSS_NAME_MAP_FN allows users to specify further\n // processing of the class name.\n if (goog.global.CLOSURE_CSS_NAME_MAP_FN) {\n return goog.global.CLOSURE_CSS_NAME_MAP_FN(result);\n }\n\n return result;\n};\n\n\n/**\n * Sets the map to check when returning a value from goog.getCssName(). Example:\n *
\n * goog.setCssNameMapping({\n *   \"goog\": \"a\",\n *   \"disabled\": \"b\",\n * });\n *\n * var x = goog.getCssName('goog');\n * // The following evaluates to: \"a a-b\".\n * goog.getCssName('goog') + ' ' + goog.getCssName(x, 'disabled')\n * 
\n * When declared as a map of string literals to string literals, the JSCompiler\n * will replace all calls to goog.getCssName() using the supplied map if the\n * --process_closure_primitives flag is set.\n *\n * @param {!Object} mapping A map of strings to strings where keys are possible\n * arguments to goog.getCssName() and values are the corresponding values\n * that should be returned.\n * @param {string=} opt_style The style of css name mapping. There are two valid\n * options: 'BY_PART', and 'BY_WHOLE'.\n * @see goog.getCssName for a description.\n */\ngoog.setCssNameMapping = function(mapping, opt_style) {\n goog.cssNameMapping_ = mapping;\n goog.cssNameMappingStyle_ = opt_style;\n};\n\n\n/**\n * To use CSS renaming in compiled mode, one of the input files should have a\n * call to goog.setCssNameMapping() with an object literal that the JSCompiler\n * can extract and use to replace all calls to goog.getCssName(). In uncompiled\n * mode, JavaScript code should be loaded before this base.js file that declares\n * a global variable, CLOSURE_CSS_NAME_MAPPING, which is used below. This is\n * to ensure that the mapping is loaded before any calls to goog.getCssName()\n * are made in uncompiled mode.\n *\n * A hook for overriding the CSS name mapping.\n * @type {!Object|undefined}\n */\ngoog.global.CLOSURE_CSS_NAME_MAPPING;\n\n\nif (!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING) {\n // This does not call goog.setCssNameMapping() because the JSCompiler\n // requires that goog.setCssNameMapping() be called with an object literal.\n goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING;\n}\n\n/**\n * Options bag type for `goog.getMsg()` third argument.\n *\n * It is important to note that these options need to be known at compile time,\n * so they must always be provided to `goog.getMsg()` as an actual object\n * literal in the function call. Otherwise, closure-compiler will report an\n * error.\n * @record\n */\ngoog.GetMsgOptions = function() {};\n\n/**\n * If `true`, escape '<' in the message string to '<'.\n *\n * Used by Closure Templates where the generated code size and performance is\n * critical which is why {@link goog.html.SafeHtmlFormatter} is not used.\n * The value must be literal `true` or `false`.\n * @type {boolean|undefined}\n */\ngoog.GetMsgOptions.prototype.html;\n\n/**\n * If `true`, unescape common html entities: >, <, ', " and\n * &.\n *\n * Used for messages not in HTML context, such as with the `textContent`\n * property.\n * The value must be literal `true` or `false`.\n * @type {boolean|undefined}\n */\ngoog.GetMsgOptions.prototype.unescapeHtmlEntities;\n\n/**\n * Associates placeholder names with strings showing how their values are\n * obtained.\n *\n * This field is intended for use in automatically generated JS code.\n * Human-written code should use meaningful placeholder names instead.\n *\n * closure-compiler uses this as the contents of the `` tag in the\n * XMB file it generates or defaults to `-` for historical reasons.\n *\n * Must be an object literal.\n * Ignored at runtime.\n * Keys are placeholder names.\n * Values are string literals indicating how the value is obtained.\n * Typically this is a snippet of source code.\n * @type {!Object|undefined}\n */\ngoog.GetMsgOptions.prototype.original_code;\n\n/**\n * Associates placeholder names with example values.\n *\n * closure-compiler uses this as the contents of the `` tag in the\n * XMB file it generates or defaults to `-` for historical reasons.\n *\n * Must be an object literal.\n * Ignored at runtime.\n * Keys are placeholder names.\n * Values are string literals containing example placeholder values.\n * (e.g. \"George McFly\" for a name placeholder)\n * @type {!Object|undefined}\n */\ngoog.GetMsgOptions.prototype.example;\n\n/**\n * Gets a localized message.\n *\n * This function is a compiler primitive. If you give the compiler a localized\n * message bundle, it will replace the string at compile-time with a localized\n * version, and expand goog.getMsg call to a concatenated string.\n *\n * Messages must be initialized in the form:\n * \n * var MSG_NAME = goog.getMsg('Hello {$placeholder}', {'placeholder': 'world'});\n * \n *\n * This function produces a string which should be treated as plain text. Use\n * {@link goog.html.SafeHtmlFormatter} in conjunction with goog.getMsg to\n * produce SafeHtml.\n *\n * @param {string} str Translatable string, places holders in the form {$foo}.\n * @param {!Object=} opt_values Maps place holder name to value.\n * @param {!goog.GetMsgOptions=} opt_options see `goog.GetMsgOptions`\n * @return {string} message with placeholders filled.\n */\ngoog.getMsg = function(str, opt_values, opt_options) {\n if (opt_options && opt_options.html) {\n // Note that '&' is not replaced because the translation can contain HTML\n // entities.\n str = str.replace(/')\n .replace(/'/g, '\\'')\n .replace(/"/g, '\"')\n .replace(/&/g, '&');\n }\n if (opt_values) {\n str = str.replace(/\\{\\$([^}]+)}/g, function(match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] :\n match;\n });\n }\n return str;\n};\n\n\n/**\n * Gets a localized message. If the message does not have a translation, gives a\n * fallback message.\n *\n * This is useful when introducing a new message that has not yet been\n * translated into all languages.\n *\n * This function is a compiler primitive. Must be used in the form:\n * var x = goog.getMsgWithFallback(MSG_A, MSG_B);\n * where MSG_A and MSG_B were initialized with goog.getMsg.\n *\n * @param {string} a The preferred message.\n * @param {string} b The fallback message.\n * @return {string} The best translated message.\n */\ngoog.getMsgWithFallback = function(a, b) {\n return a;\n};\n\n\n/**\n * Exposes an unobfuscated global namespace path for the given object.\n * Note that fields of the exported object *will* be obfuscated, unless they are\n * exported in turn via this function or goog.exportProperty.\n *\n * Also handy for making public items that are defined in anonymous closures.\n *\n * ex. goog.exportSymbol('public.path.Foo', Foo);\n *\n * ex. goog.exportSymbol('public.path.Foo.staticFunction', Foo.staticFunction);\n * public.path.Foo.staticFunction();\n *\n * ex. goog.exportSymbol('public.path.Foo.prototype.myMethod',\n * Foo.prototype.myMethod);\n * new public.path.Foo().myMethod();\n *\n * @param {string} publicPath Unobfuscated name to export.\n * @param {*} object Object the name should point to.\n * @param {?Object=} objectToExportTo The object to add the path to; default\n * is goog.global.\n */\ngoog.exportSymbol = function(publicPath, object, objectToExportTo) {\n goog.exportPath_(\n publicPath, object, /* overwriteImplicit= */ true, objectToExportTo);\n};\n\n\n/**\n * Exports a property unobfuscated into the object's namespace.\n * ex. goog.exportProperty(Foo, 'staticFunction', Foo.staticFunction);\n * ex. goog.exportProperty(Foo.prototype, 'myMethod', Foo.prototype.myMethod);\n * @param {Object} object Object whose static property is being exported.\n * @param {string} publicName Unobfuscated name to export.\n * @param {*} symbol Object the name should point to.\n */\ngoog.exportProperty = function(object, publicName, symbol) {\n object[publicName] = symbol;\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * Usage:\n *
\n * function ParentClass(a, b) { }\n * ParentClass.prototype.foo = function(a) { };\n *\n * function ChildClass(a, b, c) {\n *   ChildClass.base(this, 'constructor', a, b);\n * }\n * goog.inherits(ChildClass, ParentClass);\n *\n * var child = new ChildClass('a', 'b', 'see');\n * child.foo(); // This works.\n * 
\n *\n * @param {!Function} childCtor Child class.\n * @param {!Function} parentCtor Parent class.\n * @suppress {strictMissingProperties} superClass_ and base is not defined on\n * Function.\n * @deprecated Use ECMAScript class syntax instead.\n */\ngoog.inherits = function(childCtor, parentCtor) {\n /** @constructor */\n function tempCtor() {}\n tempCtor.prototype = parentCtor.prototype;\n childCtor.superClass_ = parentCtor.prototype;\n childCtor.prototype = new tempCtor();\n /** @override */\n childCtor.prototype.constructor = childCtor;\n\n /**\n * Calls superclass constructor/method.\n *\n * This function is only available if you use goog.inherits to\n * express inheritance relationships between classes.\n *\n * NOTE: This is a replacement for goog.base and for superClass_\n * property defined in childCtor.\n *\n * @param {!Object} me Should always be \"this\".\n * @param {string} methodName The method name to call. Calling\n * superclass constructor can be done with the special string\n * 'constructor'.\n * @param {...*} var_args The arguments to pass to superclass\n * method/constructor.\n * @return {*} The return value of the superclass method/constructor.\n */\n childCtor.base = function(me, methodName, var_args) {\n // Copying using loop to avoid deop due to passing arguments object to\n // function. This is faster in many JS engines as of late 2014.\n var args = new Array(arguments.length - 2);\n for (var i = 2; i < arguments.length; i++) {\n args[i - 2] = arguments[i];\n }\n return parentCtor.prototype[methodName].apply(me, args);\n };\n};\n\n\n/**\n * Allow for aliasing within scope functions. This function exists for\n * uncompiled code - in compiled code the calls will be inlined and the aliases\n * applied. In uncompiled code the function is simply run since the aliases as\n * written are valid JavaScript.\n *\n *\n * @param {function()} fn Function to call. This function can contain aliases\n * to namespaces (e.g. \"var dom = goog.dom\") or classes\n * (e.g. \"var Timer = goog.Timer\").\n * @deprecated Use goog.module instead.\n */\ngoog.scope = function(fn) {\n if (goog.isInModuleLoader_()) {\n throw new Error('goog.scope is not supported within a module.');\n }\n fn.call(goog.global);\n};\n\n\n/*\n * To support uncompiled, strict mode bundles that use eval to divide source\n * like so:\n * eval('someSource;//# sourceUrl sourcefile.js');\n * We need to export the globally defined symbols \"goog\" and \"COMPILED\".\n * Exporting \"goog\" breaks the compiler optimizations, so we required that\n * be defined externally.\n * NOTE: We don't use goog.exportSymbol here because we don't want to trigger\n * extern generation when that compiler option is enabled.\n */\nif (!COMPILED) {\n goog.global['COMPILED'] = COMPILED;\n}\n\n\n//==============================================================================\n// goog.defineClass implementation\n//==============================================================================\n\n\n/**\n * Creates a restricted form of a Closure \"class\":\n * - from the compiler's perspective, the instance returned from the\n * constructor is sealed (no new properties may be added). This enables\n * better checks.\n * - the compiler will rewrite this definition to a form that is optimal\n * for type checking and optimization (initially this will be a more\n * traditional form).\n *\n * @param {Function} superClass The superclass, Object or null.\n * @param {goog.defineClass.ClassDescriptor} def\n * An object literal describing\n * the class. It may have the following properties:\n * \"constructor\": the constructor function\n * \"statics\": an object literal containing methods to add to the constructor\n * as \"static\" methods or a function that will receive the constructor\n * function as its only parameter to which static properties can\n * be added.\n * all other properties are added to the prototype.\n * @return {!Function} The class constructor.\n * @deprecated Use ECMAScript class syntax instead.\n */\ngoog.defineClass = function(superClass, def) {\n // TODO(johnlenz): consider making the superClass an optional parameter.\n var constructor = def.constructor;\n var statics = def.statics;\n // Wrap the constructor prior to setting up the prototype and static methods.\n if (!constructor || constructor == Object.prototype.constructor) {\n constructor = function() {\n throw new Error(\n 'cannot instantiate an interface (no constructor defined).');\n };\n }\n\n var cls = goog.defineClass.createSealingConstructor_(constructor, superClass);\n if (superClass) {\n goog.inherits(cls, superClass);\n }\n\n // Remove all the properties that should not be copied to the prototype.\n delete def.constructor;\n delete def.statics;\n\n goog.defineClass.applyProperties_(cls.prototype, def);\n if (statics != null) {\n if (statics instanceof Function) {\n statics(cls);\n } else {\n goog.defineClass.applyProperties_(cls, statics);\n }\n }\n\n return cls;\n};\n\n\n/**\n * @typedef {{\n * constructor: (!Function|undefined),\n * statics: (Object|undefined|function(Function):void)\n * }}\n */\ngoog.defineClass.ClassDescriptor;\n\n\n/**\n * @define {boolean} Whether the instances returned by goog.defineClass should\n * be sealed when possible.\n *\n * When sealing is disabled the constructor function will not be wrapped by\n * goog.defineClass, making it incompatible with ES6 class methods.\n */\ngoog.defineClass.SEAL_CLASS_INSTANCES =\n goog.define('goog.defineClass.SEAL_CLASS_INSTANCES', goog.DEBUG);\n\n\n/**\n * If goog.defineClass.SEAL_CLASS_INSTANCES is enabled and Object.seal is\n * defined, this function will wrap the constructor in a function that seals the\n * results of the provided constructor function.\n *\n * @param {!Function} ctr The constructor whose results maybe be sealed.\n * @param {Function} superClass The superclass constructor.\n * @return {!Function} The replacement constructor.\n * @private\n */\ngoog.defineClass.createSealingConstructor_ = function(ctr, superClass) {\n if (!goog.defineClass.SEAL_CLASS_INSTANCES) {\n // Do now wrap the constructor when sealing is disabled. Angular code\n // depends on this for injection to work properly.\n return ctr;\n }\n\n // NOTE: The sealing behavior has been removed\n\n /**\n * @this {Object}\n * @return {?}\n */\n var wrappedCtr = function() {\n // Don't seal an instance of a subclass when it calls the constructor of\n // its super class as there is most likely still setup to do.\n var instance = ctr.apply(this, arguments) || this;\n instance[goog.UID_PROPERTY_] = instance[goog.UID_PROPERTY_];\n\n return instance;\n };\n\n return wrappedCtr;\n};\n\n\n\n// TODO(johnlenz): share these values with the goog.object\n/**\n * The names of the fields that are defined on Object.prototype.\n * @type {!Array}\n * @private\n * @const\n */\ngoog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n\n// TODO(johnlenz): share this function with the goog.object\n/**\n * @param {!Object} target The object to add properties to.\n * @param {!Object} source The object to copy properties from.\n * @private\n */\ngoog.defineClass.applyProperties_ = function(target, source) {\n // TODO(johnlenz): update this to support ES5 getters/setters\n\n var key;\n for (key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n\n // For IE the for-in-loop does not contain any properties that are not\n // enumerable on the prototype object (for example isPrototypeOf from\n // Object.prototype) and it will also not include 'replace' on objects that\n // extend String and change 'replace' (not that it is common for anyone to\n // extend anything except Object).\n for (var i = 0; i < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; i++) {\n key = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[i];\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n};\n\n/**\n * Returns the parameter.\n * @param {string} s\n * @return {string}\n * @private\n */\ngoog.identity_ = function(s) {\n return s;\n};\n\n\n/**\n * Creates Trusted Types policy if Trusted Types are supported by the browser.\n * The policy just blesses any string as a Trusted Type. It is not visibility\n * restricted because anyone can also call trustedTypes.createPolicy directly.\n * However, the allowed names should be restricted by a HTTP header and the\n * reference to the created policy should be visibility restricted.\n * @param {string} name\n * @return {?TrustedTypePolicy}\n */\ngoog.createTrustedTypesPolicy = function(name) {\n var policy = null;\n var policyFactory = goog.global.trustedTypes;\n if (!policyFactory || !policyFactory.createPolicy) {\n return policy;\n }\n // trustedTypes.createPolicy throws if called with a name that is already\n // registered, even in report-only mode. Until the API changes, catch the\n // error not to break the applications functionally. In such case, the code\n // will fall back to using regular Safe Types.\n // TODO(koto): Remove catching once createPolicy API stops throwing.\n try {\n policy = policyFactory.createPolicy(name, {\n createHTML: goog.identity_,\n createScript: goog.identity_,\n createScriptURL: goog.identity_\n });\n } catch (e) {\n goog.logToConsole_(e.message);\n }\n return policy;\n};\n\n// There's a bug in the compiler where without collapse properties the\n// Closure namespace defines do not guard code correctly. To help reduce code\n// size also check for !COMPILED even though it redundant until this is fixed.\nif (!COMPILED && goog.DEPENDENCIES_ENABLED) {\n\n\n /**\n * Tries to detect whether the current browser is Edge, based on the user\n * agent. This matches only pre-Chromium Edge.\n * @see https://docs.microsoft.com/en-us/microsoft-edge/web-platform/user-agent-string\n * @return {boolean} True if the current browser is Edge.\n * @private\n */\n goog.isEdge_ = function() {\n var userAgent = goog.global.navigator && goog.global.navigator.userAgent ?\n goog.global.navigator.userAgent :\n '';\n var edgeRe = /Edge\\/(\\d+)(\\.\\d)*/i;\n return !!userAgent.match(edgeRe);\n };\n\n\n /**\n * Tries to detect whether is in the context of an HTML document.\n * @return {boolean} True if it looks like HTML document.\n * @private\n */\n goog.inHtmlDocument_ = function() {\n /** @type {!Document} */\n var doc = goog.global.document;\n return doc != null && 'write' in doc; // XULDocument misses write.\n };\n\n\n /**\n * We'd like to check for if the document readyState is 'loading'; however\n * there are bugs on IE 10 and below where the readyState being anything other\n * than 'complete' is not reliable.\n * @return {boolean}\n * @private\n */\n goog.isDocumentLoading_ = function() {\n // attachEvent is available on IE 6 thru 10 only, and thus can be used to\n // detect those browsers.\n /** @type {!HTMLDocument} */\n var doc = goog.global.document;\n return doc.attachEvent ? doc.readyState != 'complete' :\n doc.readyState == 'loading';\n };\n\n\n /**\n * Tries to detect the base path of base.js script that bootstraps Closure.\n * @private\n */\n goog.findBasePath_ = function() {\n if (goog.global.CLOSURE_BASE_PATH != undefined &&\n // Anti DOM-clobbering runtime check (b/37736576).\n typeof goog.global.CLOSURE_BASE_PATH === 'string') {\n goog.basePath = goog.global.CLOSURE_BASE_PATH;\n return;\n } else if (!goog.inHtmlDocument_()) {\n return;\n }\n /** @type {!Document} */\n var doc = goog.global.document;\n // If we have a currentScript available, use it exclusively.\n var currentScript = doc.currentScript;\n if (currentScript) {\n var scripts = [currentScript];\n } else {\n var scripts = doc.getElementsByTagName('SCRIPT');\n }\n // Search backwards since the current script is in almost all cases the one\n // that has base.js.\n for (var i = scripts.length - 1; i >= 0; --i) {\n var script = /** @type {!HTMLScriptElement} */ (scripts[i]);\n var src = script.src;\n var qmark = src.lastIndexOf('?');\n var l = qmark == -1 ? src.length : qmark;\n if (src.slice(l - 7, l) == 'base.js') {\n goog.basePath = src.slice(0, l - 7);\n return;\n }\n }\n };\n\n goog.findBasePath_();\n\n /**\n * Rewrites closing script tags in input to avoid ending an enclosing script\n * tag.\n *\n * @param {string} str\n * @return {string}\n * @private\n */\n goog.protectScriptTag_ = function(str) {\n return str.replace(/<\\/(SCRIPT)/ig, '\\\\x3c/$1');\n };\n\n\n /**\n * A debug loader is responsible for downloading and executing javascript\n * files in an unbundled, uncompiled environment.\n *\n * This can be custimized via the setDependencyFactory method, or by\n * CLOSURE_IMPORT_SCRIPT/CLOSURE_LOAD_FILE_SYNC.\n *\n * @struct @constructor @final @private\n */\n goog.DebugLoader_ = function() {\n /** @private @const {!Object} */\n this.dependencies_ = {};\n /** @private @const {!Object} */\n this.idToPath_ = {};\n /** @private @const {!Object} */\n this.written_ = {};\n /** @private @const {!Array} */\n this.loadingDeps_ = [];\n /** @private {!Array} */\n this.depsToLoad_ = [];\n /** @private {boolean} */\n this.paused_ = false;\n /** @private {!goog.DependencyFactory} */\n this.factory_ = new goog.DependencyFactory();\n /** @private @const {!Object} */\n this.deferredCallbacks_ = {};\n /** @private @const {!Array} */\n this.deferredQueue_ = [];\n };\n\n /**\n * @param {!Array} namespaces\n * @param {function(): undefined} callback Function to call once all the\n * namespaces have loaded.\n */\n goog.DebugLoader_.prototype.bootstrap = function(namespaces, callback) {\n var cb = callback;\n function resolve() {\n if (cb) {\n goog.global.setTimeout(cb, 0);\n cb = null;\n }\n }\n\n if (!namespaces.length) {\n resolve();\n return;\n }\n\n var deps = [];\n for (var i = 0; i < namespaces.length; i++) {\n var path = this.getPathFromDeps_(namespaces[i]);\n if (!path) {\n throw new Error('Unregonized namespace: ' + namespaces[i]);\n }\n deps.push(this.dependencies_[path]);\n }\n\n var require = goog.require;\n var loaded = 0;\n for (var i = 0; i < namespaces.length; i++) {\n require(namespaces[i]);\n deps[i].onLoad(function() {\n if (++loaded == namespaces.length) {\n resolve();\n }\n });\n }\n };\n\n\n /**\n * Loads the Closure Dependency file.\n *\n * Exposed a public function so CLOSURE_NO_DEPS can be set to false, base\n * loaded, setDependencyFactory called, and then this called. i.e. allows\n * custom loading of the deps file.\n */\n goog.DebugLoader_.prototype.loadClosureDeps = function() {\n // Circumvent addDependency, which would try to transpile deps.js if\n // transpile is set to always.\n var relPath = 'deps.js';\n this.depsToLoad_.push(this.factory_.createDependency(\n goog.normalizePath_(goog.basePath + relPath), relPath, [], [], {}));\n this.loadDeps_();\n };\n\n\n /**\n * Notifies the debug loader when a dependency has been requested.\n *\n * @param {string} absPathOrId Path of the dependency or goog id.\n * @param {boolean=} opt_force\n */\n goog.DebugLoader_.prototype.requested = function(absPathOrId, opt_force) {\n var path = this.getPathFromDeps_(absPathOrId);\n if (path &&\n (opt_force || this.areDepsLoaded_(this.dependencies_[path].requires))) {\n var callback = this.deferredCallbacks_[path];\n if (callback) {\n delete this.deferredCallbacks_[path];\n callback();\n }\n }\n };\n\n\n /**\n * Sets the dependency factory, which can be used to create custom\n * goog.Dependency implementations to control how dependencies are loaded.\n *\n * @param {!goog.DependencyFactory} factory\n */\n goog.DebugLoader_.prototype.setDependencyFactory = function(factory) {\n this.factory_ = factory;\n };\n\n\n /**\n * Travserses the dependency graph and queues the given dependency, and all of\n * its transitive dependencies, for loading and then starts loading if not\n * paused.\n *\n * @param {string} namespace\n * @private\n */\n goog.DebugLoader_.prototype.load_ = function(namespace) {\n if (!this.getPathFromDeps_(namespace)) {\n var errorMessage = 'goog.require could not find: ' + namespace;\n goog.logToConsole_(errorMessage);\n } else {\n var loader = this;\n\n var deps = [];\n\n /** @param {string} namespace */\n var visit = function(namespace) {\n var path = loader.getPathFromDeps_(namespace);\n\n if (!path) {\n throw new Error('Bad dependency path or symbol: ' + namespace);\n }\n\n if (loader.written_[path]) {\n return;\n }\n\n loader.written_[path] = true;\n\n var dep = loader.dependencies_[path];\n for (var i = 0; i < dep.requires.length; i++) {\n if (!goog.isProvided_(dep.requires[i])) {\n visit(dep.requires[i]);\n }\n }\n\n deps.push(dep);\n };\n\n visit(namespace);\n\n var wasLoading = !!this.depsToLoad_.length;\n this.depsToLoad_ = this.depsToLoad_.concat(deps);\n\n if (!this.paused_ && !wasLoading) {\n this.loadDeps_();\n }\n }\n };\n\n\n /**\n * Loads any queued dependencies until they are all loaded or paused.\n *\n * @private\n */\n goog.DebugLoader_.prototype.loadDeps_ = function() {\n var loader = this;\n var paused = this.paused_;\n\n while (this.depsToLoad_.length && !paused) {\n (function() {\n var loadCallDone = false;\n var dep = loader.depsToLoad_.shift();\n\n var loaded = false;\n loader.loading_(dep);\n\n var controller = {\n pause: function() {\n if (loadCallDone) {\n throw new Error('Cannot call pause after the call to load.');\n } else {\n paused = true;\n }\n },\n resume: function() {\n if (loadCallDone) {\n loader.resume_();\n } else {\n // Some dep called pause and then resume in the same load call.\n // Just keep running this same loop.\n paused = false;\n }\n },\n loaded: function() {\n if (loaded) {\n throw new Error('Double call to loaded.');\n }\n\n loaded = true;\n loader.loaded_(dep);\n },\n pending: function() {\n // Defensive copy.\n var pending = [];\n for (var i = 0; i < loader.loadingDeps_.length; i++) {\n pending.push(loader.loadingDeps_[i]);\n }\n return pending;\n },\n /**\n * @param {goog.ModuleType} type\n */\n setModuleState: function(type) {\n goog.moduleLoaderState_ = {\n type: type,\n moduleName: '',\n declareLegacyNamespace: false\n };\n },\n /** @type {function(string, string, string=)} */\n registerEs6ModuleExports: function(\n path, exports, opt_closureNamespace) {\n if (opt_closureNamespace) {\n goog.loadedModules_[opt_closureNamespace] = {\n exports: exports,\n type: goog.ModuleType.ES6,\n moduleId: opt_closureNamespace || ''\n };\n }\n },\n /** @type {function(string, ?)} */\n registerGoogModuleExports: function(moduleId, exports) {\n goog.loadedModules_[moduleId] = {\n exports: exports,\n type: goog.ModuleType.GOOG,\n moduleId: moduleId\n };\n },\n clearModuleState: function() {\n goog.moduleLoaderState_ = null;\n },\n defer: function(callback) {\n if (loadCallDone) {\n throw new Error(\n 'Cannot register with defer after the call to load.');\n }\n loader.defer_(dep, callback);\n },\n areDepsLoaded: function() {\n return loader.areDepsLoaded_(dep.requires);\n }\n };\n\n try {\n dep.load(controller);\n } finally {\n loadCallDone = true;\n }\n })();\n }\n\n if (paused) {\n this.pause_();\n }\n };\n\n\n /** @private */\n goog.DebugLoader_.prototype.pause_ = function() {\n this.paused_ = true;\n };\n\n\n /** @private */\n goog.DebugLoader_.prototype.resume_ = function() {\n if (this.paused_) {\n this.paused_ = false;\n this.loadDeps_();\n }\n };\n\n\n /**\n * Marks the given dependency as loading (load has been called but it has not\n * yet marked itself as finished). Useful for dependencies that want to know\n * what else is loading. Example: goog.modules cannot eval if there are\n * loading dependencies.\n *\n * @param {!goog.Dependency} dep\n * @private\n */\n goog.DebugLoader_.prototype.loading_ = function(dep) {\n this.loadingDeps_.push(dep);\n };\n\n\n /**\n * Marks the given dependency as having finished loading and being available\n * for require.\n *\n * @param {!goog.Dependency} dep\n * @private\n */\n goog.DebugLoader_.prototype.loaded_ = function(dep) {\n for (var i = 0; i < this.loadingDeps_.length; i++) {\n if (this.loadingDeps_[i] == dep) {\n this.loadingDeps_.splice(i, 1);\n break;\n }\n }\n\n for (var i = 0; i < this.deferredQueue_.length; i++) {\n if (this.deferredQueue_[i] == dep.path) {\n this.deferredQueue_.splice(i, 1);\n break;\n }\n }\n\n if (this.loadingDeps_.length == this.deferredQueue_.length &&\n !this.depsToLoad_.length) {\n // Something has asked to load these, but they may not be directly\n // required again later, so load them now that we know we're done loading\n // everything else. e.g. a goog module entry point.\n while (this.deferredQueue_.length) {\n this.requested(this.deferredQueue_.shift(), true);\n }\n }\n\n dep.loaded();\n };\n\n\n /**\n * @param {!Array} pathsOrIds\n * @return {boolean}\n * @private\n */\n goog.DebugLoader_.prototype.areDepsLoaded_ = function(pathsOrIds) {\n for (var i = 0; i < pathsOrIds.length; i++) {\n var path = this.getPathFromDeps_(pathsOrIds[i]);\n if (!path ||\n (!(path in this.deferredCallbacks_) &&\n !goog.isProvided_(pathsOrIds[i]))) {\n return false;\n }\n }\n\n return true;\n };\n\n\n /**\n * @param {string} absPathOrId\n * @return {?string}\n * @private\n */\n goog.DebugLoader_.prototype.getPathFromDeps_ = function(absPathOrId) {\n if (absPathOrId in this.idToPath_) {\n return this.idToPath_[absPathOrId];\n } else if (absPathOrId in this.dependencies_) {\n return absPathOrId;\n } else {\n return null;\n }\n };\n\n\n /**\n * @param {!goog.Dependency} dependency\n * @param {!Function} callback\n * @private\n */\n goog.DebugLoader_.prototype.defer_ = function(dependency, callback) {\n this.deferredCallbacks_[dependency.path] = callback;\n this.deferredQueue_.push(dependency.path);\n };\n\n\n /**\n * Interface for goog.Dependency implementations to have some control over\n * loading of dependencies.\n *\n * @record\n */\n goog.LoadController = function() {};\n\n\n /**\n * Tells the controller to halt loading of more dependencies.\n */\n goog.LoadController.prototype.pause = function() {};\n\n\n /**\n * Tells the controller to resume loading of more dependencies if paused.\n */\n goog.LoadController.prototype.resume = function() {};\n\n\n /**\n * Tells the controller that this dependency has finished loading.\n *\n * This causes this to be removed from pending() and any load callbacks to\n * fire.\n */\n goog.LoadController.prototype.loaded = function() {};\n\n\n /**\n * List of dependencies on which load has been called but which have not\n * called loaded on their controller. This includes the current dependency.\n *\n * @return {!Array}\n */\n goog.LoadController.prototype.pending = function() {};\n\n\n /**\n * Registers an object as an ES6 module's exports so that goog.modules may\n * require it by path.\n *\n * @param {string} path Full path of the module.\n * @param {?} exports\n * @param {string=} opt_closureNamespace Closure namespace to associate with\n * this module.\n */\n goog.LoadController.prototype.registerEs6ModuleExports = function(\n path, exports, opt_closureNamespace) {};\n\n\n /**\n * Sets the current module state.\n *\n * @param {goog.ModuleType} type Type of module.\n */\n goog.LoadController.prototype.setModuleState = function(type) {};\n\n\n /**\n * Clears the current module state.\n */\n goog.LoadController.prototype.clearModuleState = function() {};\n\n\n /**\n * Registers a callback to call once the dependency is actually requested\n * via goog.require + all of the immediate dependencies have been loaded or\n * all other files have been loaded. Allows for lazy loading until\n * require'd without pausing dependency loading, which is needed on old IE.\n *\n * @param {!Function} callback\n */\n goog.LoadController.prototype.defer = function(callback) {};\n\n\n /**\n * @return {boolean}\n */\n goog.LoadController.prototype.areDepsLoaded = function() {};\n\n\n /**\n * Basic super class for all dependencies Closure Library can load.\n *\n * This default implementation is designed to load untranspiled, non-module\n * scripts in a web broswer.\n *\n * For goog.modules see {@see goog.GoogModuleDependency}.\n * For untranspiled ES6 modules {@see goog.Es6ModuleDependency}.\n *\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array} provides goog.provided or goog.module symbols\n * in this file.\n * @param {!Array} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object} loadFlags\n * @struct @constructor\n */\n goog.Dependency = function(\n path, relativePath, provides, requires, loadFlags) {\n /** @const */\n this.path = path;\n /** @const */\n this.relativePath = relativePath;\n /** @const */\n this.provides = provides;\n /** @const */\n this.requires = requires;\n /** @const */\n this.loadFlags = loadFlags;\n /** @private {boolean} */\n this.loaded_ = false;\n /** @private {!Array} */\n this.loadCallbacks_ = [];\n };\n\n\n /**\n * @return {string} The pathname part of this dependency's path if it is a\n * URI.\n */\n goog.Dependency.prototype.getPathName = function() {\n var pathName = this.path;\n var protocolIndex = pathName.indexOf('://');\n if (protocolIndex >= 0) {\n pathName = pathName.substring(protocolIndex + 3);\n var slashIndex = pathName.indexOf('/');\n if (slashIndex >= 0) {\n pathName = pathName.substring(slashIndex + 1);\n }\n }\n return pathName;\n };\n\n\n /**\n * @param {function()} callback Callback to fire as soon as this has loaded.\n * @final\n */\n goog.Dependency.prototype.onLoad = function(callback) {\n if (this.loaded_) {\n callback();\n } else {\n this.loadCallbacks_.push(callback);\n }\n };\n\n\n /**\n * Marks this dependency as loaded and fires any callbacks registered with\n * onLoad.\n * @final\n */\n goog.Dependency.prototype.loaded = function() {\n this.loaded_ = true;\n var callbacks = this.loadCallbacks_;\n this.loadCallbacks_ = [];\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i]();\n }\n };\n\n\n /**\n * Whether or not document.written / appended script tags should be deferred.\n *\n * @private {boolean}\n */\n goog.Dependency.defer_ = false;\n\n\n /**\n * Map of script ready / state change callbacks. Old IE cannot handle putting\n * these properties on goog.global.\n *\n * @private @const {!Object}\n */\n goog.Dependency.callbackMap_ = {};\n\n\n /**\n * @param {function(...?):?} callback\n * @return {string}\n * @private\n */\n goog.Dependency.registerCallback_ = function(callback) {\n var key = Math.random().toString(32);\n goog.Dependency.callbackMap_[key] = callback;\n return key;\n };\n\n\n /**\n * @param {string} key\n * @private\n */\n goog.Dependency.unregisterCallback_ = function(key) {\n delete goog.Dependency.callbackMap_[key];\n };\n\n\n /**\n * @param {string} key\n * @param {...?} var_args\n * @private\n * @suppress {unusedPrivateMembers}\n */\n goog.Dependency.callback_ = function(key, var_args) {\n if (key in goog.Dependency.callbackMap_) {\n var callback = goog.Dependency.callbackMap_[key];\n var args = [];\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n callback.apply(undefined, args);\n } else {\n var errorMessage = 'Callback key ' + key +\n ' does not exist (was base.js loaded more than once?).';\n throw Error(errorMessage);\n }\n };\n\n\n /**\n * Starts loading this dependency. This dependency can pause loading if it\n * needs to and resume it later via the controller interface.\n *\n * When this is loaded it should call controller.loaded(). Note that this will\n * end up calling the loaded method of this dependency; there is no need to\n * call it explicitly.\n *\n * @param {!goog.LoadController} controller\n */\n goog.Dependency.prototype.load = function(controller) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT(this.path)) {\n controller.loaded();\n } else {\n controller.pause();\n }\n return;\n }\n\n if (!goog.inHtmlDocument_()) {\n goog.logToConsole_(\n 'Cannot use default debug loader outside of HTML documents.');\n if (this.relativePath == 'deps.js') {\n // Some old code is relying on base.js auto loading deps.js failing with\n // no error before later setting CLOSURE_IMPORT_SCRIPT.\n // CLOSURE_IMPORT_SCRIPT should be set *before* base.js is loaded, or\n // CLOSURE_NO_DEPS set to true.\n goog.logToConsole_(\n 'Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, ' +\n 'or setting CLOSURE_NO_DEPS to true.');\n controller.loaded();\n } else {\n controller.pause();\n }\n return;\n }\n\n /** @type {!HTMLDocument} */\n var doc = goog.global.document;\n\n // If the user tries to require a new symbol after document load,\n // something has gone terribly wrong. Doing a document.write would\n // wipe out the page. This does not apply to the CSP-compliant method\n // of writing script tags.\n if (doc.readyState == 'complete' &&\n !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {\n // Certain test frameworks load base.js multiple times, which tries\n // to write deps.js each time. If that happens, just fail silently.\n // These frameworks wipe the page between each load of base.js, so this\n // is OK.\n var isDeps = /\\bdeps.js$/.test(this.path);\n if (isDeps) {\n controller.loaded();\n return;\n } else {\n throw Error('Cannot write \"' + this.path + '\" after document load');\n }\n }\n\n var nonce = goog.getScriptNonce_();\n if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING &&\n goog.isDocumentLoading_()) {\n var key;\n var callback = function(script) {\n if (script.readyState && script.readyState != 'complete') {\n script.onload = callback;\n return;\n }\n goog.Dependency.unregisterCallback_(key);\n controller.loaded();\n };\n key = goog.Dependency.registerCallback_(callback);\n\n var defer = goog.Dependency.defer_ ? ' defer' : '';\n var nonceAttr = nonce ? ' nonce=\"' + nonce + '\"' : '';\n var script = '